tonmoy007/forge-os

GitHub: tonmoy007/forge-os

一款本地优先、内核无关的 SDLC 编排 CLI,通过确定性的 12 阶段生命周期和质量门禁为 AI 编码 agent 提供可审计、可重放的工程治理框架。

Stars: 0 | Forks: 0

# Forge OS [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/tonmoy007/forge-os/actions/workflows/ci.yml) [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE) [![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](pyproject.toml) **Forge OS** 是一个本地优先、内核无关的 SDLC 编排 CLI。它驱动着一个 确定性的 12 阶段软件生命周期 —— 从需求到发布 —— 并带有 强制执行的质量门禁、工件依赖跟踪、可重放的 agent 运行, 以及一个可以生成真实 AI 编码 agent 的安全审计适配器边界。所有 状态都存在于您的项目目录中;无需服务器,无云依赖,无 遥测。 编排引擎掌握着规范状态。AI 提供商、人类和插件 *仅仅是执行面* —— 只需更改配置即可切换内核,而无需 更改代码。 ``` git clone https://github.com/tonmoy007/forge-os && cd forge-os pip install -e . forge init --path ./demo --name Demo # dummy adapter — no AI provider needed cd ./demo && forge agent run --stage srs # writes SRS.md, validated against its contract ``` 只需一行配置更改,即可驱动真实的 AI 内核(Claude Code、Codex、OpenCode……)—— 请参阅 [快速开始](#quick-start) 和 [内核适配器](#kernel-adapters)。 ## 为什么 AI 编码 agent 功能强大但缺乏问责制:没有生命周期,没有门禁,没有 审计跟踪,也没有办法重放发生过的事情。Forge OS 在 agent *周围* 放置了一个确定性的编排层:每一次生成都会针对 安全配置文件进行验证,记录到仅追加的事件存储中,根据 声明的输出契约进行检查,并在工件依赖图中进行注册。 内核(Claude Code、Codex、OpenCode、终端上的人类操作员……)是 一个可插拔的细节。 **验证点:** 使用 Claude Code 适配器运行 `forge agent run --stage srs` 如今可以端到端地运行 —— 从角色设定 → subprocess → 由 agent 编写 `SRS.md` → 契约验证 → 工件注册 —— 并记录完整的生命周期。 ## 内核适配器 | 适配器 | 后端 | 状态 | |---------|---------|--------| | `dummy` | 确定性存根(无 AI) | ✅ 正常工作 —— 默认 | | `claude_code` | `claude` CLI subprocess,stream-json | ✅ 正常工作 —— 已针对 claude 2.1.x 验证 | | `claude_raw` | Anthropic Messages API | ✅ 已实现(`pip install .[claude-raw]`) | | `claude_sdk` | Claude Agent SDK | ✅ 已实现(`pip install .[claude-sdk]`) | | `codex` | Codex app-server (JSON-RPC) | ✅ 已实现(需要 `codex` CLI) | | `opencode` | OpenCode HTTP + SSE | ✅ 已实现(`pip install .[opencode]`) | | `human` | 终端操作员 | ✅ 已实现 —— 零依赖 | | `openclaw`、`local_llm` | — | 🚧 占位符 | 在初始化时选择一个内核(`forge init --adapter claude-code`),或者稍后通过 `.forge/config.yaml` 中的 `default_adapter` 进行配置。`forge adapter status` 会显示 每个适配器的可用性、功能和安装提示。使用 `pip install -e '.[all-adapters]'` 可以一次安装所有 可选的适配器后端(或者如果仅需 ACP 集成依赖,请使用 `'.[acp]'`)。 `claude_code` 适配器还支持:每次生成的事件存储记录,带有确定性 **重放**(`run_id` → 相同的句柄,无 subprocess),`.claude/settings.json` 钩子生命周期,一个在生成前严格阻断的 **SecurityEnforcer** 安全门禁(审计到 `.forge/security-audit.jsonl`),`--model` 以及 `--permission-mode`。 ## 快速开始 ``` # 安装 (Python 3.11+) git clone https://github.com/tonmoy007/forge-os && cd forge-os pip install -e . # 初始化项目 (dummy adapter — 无需任何 AI provider 即可运行) forge init --path ./my-project --name Demo cd ./my-project forge status # 或驱动真正的 Claude Code kernel (要求 PATH 中包含 `claude` CLI) forge init --path ./my-project --adapter claude-code --permission-mode acceptEdits # 运行当前阶段的 agent (SRS stage 会写入 SRS.md,并由 contract 检查) forge agent run --stage srs # 走一遍 pipeline forge stage list forge stage advance # 检查所有内容 forge adapter status # adapter availability + capabilities forge gate report # quality gates forge events tail -n 20 # lifecycle event log forge security audit # security decisions forge health check # subsystem health ``` ## 命令概览 `init` · `status` · `explain` 以及各个子应用: `config`(show、validate)· `stage`(list、start、complete、advance、override)· `events`(list、tail)· `gate`(list、check、report)· `adapter`(list、status)· `agent`(list、contracts、run)· `lesson`(list、add、approve、deprecate)· `reflection`(list、show)· `artifact`(list、register、refresh)· `context`(select、budget、lazy-stats)· `backtrack`(list、plan、approve、run)· `security`(audit)· `health`(check)· `acp`(discover、list、install、sessions、close-session)· `dreamer`(digest、scan、decay)· `daemon`(start、stop、status、logs、restart) ## 架构 严格的分层,由合并前检查强制执行: ``` cli/ ──▶ use_cases/ ──▶ core/, gates/, project/, context/, memory/, kernel/, events/, hooks/, agents/, adapters/ │ ▼ schemas/ (pure Pydantic, zero internal imports) ``` - **`StateManager`** 是 `.forge/state.json` 的唯一写入者 —— 原子写入, Pydantic 验证,每一次修改都会追加一个生命周期事件。一个 SQLite 事件 存储与其同时进行双重写入(WAL 模式),正逐步向事件溯源的 权威性发展。 - **`KernelAdapter`** 是可移植性边界:引擎从不导入 提供商的 SDK。异步适配器通过 `AsyncToSyncBridge` 插入同步引擎;兼容 ACP 的 agent 以附加方式插入。 - **状态绝不会因为适配器、钩子或插件失败而推进。** 深入探讨:[`ARCHITECTURE.md`](ARCHITECTURE.md) · [`BUILD_SPEC.md`](BUILD_SPEC.md) · [`SCHEMAS.md`](SCHEMAS.md) · 位于 [`adr/`](adr/) 中的 ADR ## 项目布局(由 `forge init` 创建) ``` .forge/ config.yaml, state.json, events.jsonl, security-audit.jsonl, lessons.yaml, reflections/, agents/{personas,contracts}/ pipeline/ stages.yaml, gates.yaml, state.md (human-readable mirror), decisions/, log/ tasks/ task plans and notes ``` ## 开发 ``` pip install -e .[dev] python -m pytest # full suite (649 tests) python -m ruff check src tests # lint (E F I UP B, line length 100) python -m compileall src tests # syntax sweep ``` 参考环境是一个干净的 `python:3.12-slim` 容器;CI (`.github/workflows/ci.yml`)在每个 PR 上运行相同的门禁。 ## 许可证 [Apache-2.0](LICENSE)
标签:AI编程助手, Python, SDLC编排, SOC Prime, 命令行工具(CLI), 开发工具, 文档结构分析, 无后门, 网络调试, 自动化