forge sync 会把这份来源编译成每个工具的原生
配置。四层描述的是 大脑如何被表达;编译器描述的是它 如何被
交付。
一份来源,多个输出
规则只写一次(source/rules.json);一个确定性的编译器(forge sync)
把它输出成每个工具的原生格式,带一个内容哈希头,所以漂移是可探测的,
再跑一次是幂等的。任何一条规则都不会被写两遍。规范来源由三个
文件组成:
四层
每一层都有品牌名,并且跨工具输出。tools — 模型可调用的能力
tools — 模型可调用的能力
~/.forge/tools/ → ~/.claude/skills/。模型可调用的 skill,遵循
SKILL.md 标准(frontmatter 里的 name + description)。crew — 隔离的子代理
crew — 隔离的子代理
~/.forge/crew/ → ~/.claude/agents/。上下文隔离的子代理,例如 scout、
verifier 和 frontend-verifier。guards — 确定性钩子(唯一具备强制力的层)
guards — 确定性钩子(唯一具备强制力的层)
~/.forge/guards/ → settings.json hooks。唯一进行 强制 而不只是
建议 的层。 一个 guard 就是一个确定性钩子,模型没法漂离它。
CLAUDE.md 里的自然语言规则会被口头承认,然后在压缩之后被遗忘;一个 guard
不会。每一条可强制的不变量都应该落在这里。mcp — 协议层
mcp — 协议层
Forge 内置一个 stdio 服务器(
src/cortex_mcp.js),暴露 19 个 MCP 工具:
基底检查(substrate_check / predict_impact / assumption_gate / …)、
记忆的读 和 写(forge_remember、账本的 ratify/retract),以及运维/健康检查。Guard 胜过自然语言
模型允许漂离的规则活在自然语言里;模型永远不能打破的规则 活在 guards 里(确定性 shell 钩子)。一个 guard 在上下文 压缩之后也不会被遗忘。把每一条可强制的不变量从
CLAUDE.md 里挪进一个 guard;让自然语言
尽量薄。这是 Forge 设计里最重要的一条纪律。已验证的跨工具输出矩阵
Forge 为九个工具输出配置,加上一个给 Roo Code 和 VS Code 的 MCP 服务器。每 一行都对着厂商文档核对过。
Roo Code 和 VS Code 通过
forge init(.roo/mcp.json、
.vscode/mcp.json)拿到 Forge 的 MCP 服务器,而不是一份规则文件。