SuperAPI AI 工具集

forge

编程与开发

查看项目

更新于 10-18 17:14

技能介绍

Forge 是一个用于软件产品设计、规划与规格说明的平台,目标是将初始想法——即使模糊——转化为完整的产品与实施计划,结构化到足够精确,使得即使能力较弱的 AI 也能无歧义地实现每个 slice。

六个文档层级

Forge 将规划工作组织为六个逐级深入的层级:

  • 第 0 层(INTENT):产品为何存在、面向谁、解决什么问题(PRD)。
  • 第 1 层(SCOPE):做什么、何时做。MVP、V1、V2 等路线图与范围权衡。
  • 第 2 层(DESIGN):外观如何。标准、视觉方向、界面、流程、交互。
  • 第 3 层(ARCHITECTURE):如何组织。slice、模块、基础、数据模型、API、依赖。
  • 第 4 层(PLAN):如何实现每个 slice。契约、算法、组件、任务清单、验收标准。
  • 第 5 层(VALIDATION):如何验证一切正常。单元测试、集成测试、E2E、UI(Chrome MCP)、回归测试。

三种规划单元

  • Slice:端到端的完整功能——UI、业务逻辑、数据访问、集成。它是规格说明与实施的基本单元,源自 PRD 中识别的用户需求。
  • 模块:技术上的连贯分组(如“认证”“支付”),包含多个 slice,用于架构组织而非实施规划。其等级由使用频率决定。
  • 基础:横向关注点(设计系统、认证、错误处理、i18n、配置、日志、CI/CD),在业务 slice 之前实现,保持原子性,不分解为 slice。

核心原则

Forge 应用五项基本原则:

  1. 稳定 ID 与可追溯性:所有业务规则(B1、B2…)、边界情况(E1、E2…)、验证(V1、V2…)和约束(C1、C2…)都带有稳定标识符,即使规则被删除也不复用。它们构成从 PRD 到架构、计划、测试的追溯主干。
  2. 人类 gate 不可协商:每个阶段结束时必须获得明确批准。不得将沉默或提问视为批准。此规则由守卫机制强制执行:每个产出物属于某个阶段,state.js register 拒绝在阶段到达前注册产出物,forge-guard 会捕获已写入磁盘的过早产出物(no_premature_artifacts)。
  3. 完整性优先于速度:表面连贯但隐藏漏洞的计划比更慢但真正完整的计划更糟。持续追问“缺少什么?什么被遗忘了?”
  4. 系统性多视角:在锁定重大文档(PRD、架构、计划)前,至少由两个不同视角进行分析,目的不是确认“没问题”,而是找出主视角遗漏的内容。
  5. 交付物只存放在 .forge 中:在临时文件夹中产生的文档就是丢失的文档。此约束由 forge-guard.js 机械校验。

脚本使用方式

脚本安装在 skill 目录中(如 ~/.agents/skills/forge/scripts/),不在项目内。需定义 skill 路径并在各命令中使用:

export FORGE=/chemin/vers/skills/forge node "$FORGE/scripts/state.js" start

当前目录是项目而非 skill 目录;脚本从 process.cwd() 解析锚点。若当前目录不是项目根目录,需显式传入锚点:node "$FORGE/scripts/state.js" start /chemin/du/projet。

状态恢复流程

每次调用时首先执行:node "$FORGE/scripts/state.js" start。该命令显示当前阶段、待处理的 gate、各状态 slice 及其计划与测试用例的实际存在情况、哈希漂移的文档、开放分歧、未提升的发现,以及项目记忆状态。

然后解析当前项目:node "$FORGE/scripts/state.js" anchor。若存在 .forge/state.json 则优先使用;否则查找项目标记(package.json、pyproject.toml、go.mod、.git 等);否则使用当前工作目录。

若 anchor 返回 state_exists: true,读取 state.json 了解最后完成阶段、各 slice/基础状态与待处理 gate,从下一阶段继续,不得重新生成已批准文档。

写入位置规则

所有 Forge 交付物必须写入 <anchor>/.forge/ 下的规范路径。项目状态存放在 .forge/state.json(仅元数据,不含内容)。审计日志在 .forge/audit/。三项禁止:不得在 .forge/ 之外写交付物;不得在 state.json 中存放文档内容;不得手动在 .md 的 front matter 中写 status:,唯一写入者是 state.js set-status。

工具包完整性

forge-guard.js kit-integrity 命令通过 .forge/kit-manifest.json 记录每个工具包文件的 sha256 指纹进行校验。脚本变更导致硬失败,参考文档变更仅警告。清单只能通过显式操作写入,绝不自动写入。

补充脚本放在 .forge/tools/ 并需在 state.json 的 project.tools 中声明,forge-guard.js tools 会检查未声明工具、无目的工具及声明但缺失的工具。

状态同步

state.json 是状态权威,front matter 是镜像。若出现不一致,可用 node "$FORGE/scripts/forge-guard.js" sync . 检测(exit 1),用 --fix 将镜像对齐到权威。content_hash 仅针对文档正文,更改状态不会使计划失效。

与 project-rules-architect 的边界

Forge 拥有 .forge/(构建什么、进展到哪)及 state.json(状态、路径、ID、指纹)。project-rules-architect 拥有 AGENTS.md、.opencode/rules/*.md、DECISIONS.md、LEARNINGS.md、SESSION_LOG.md。业务或技术事实存放在 project-rules-architect 拥有的文件中,state.json 仅含指针。发现需通过 state.js finding 命令路由,域为必填项。

两种运行模式

  • 引导模式(默认):每个阶段一个 gate;第 4-5 阶段手动逐 slice 进行;第 7 阶段手动;验证者在会话中轮换姿态。
  • 快速通道:第 5 阶段结束时一个 gate,第 7 阶段每个里程碑一个 gate;第 4-5 阶段自动化,由子代理验证;第 7 阶段每个 slice 可执行门;验证者 quality-analyst、red-team、plan-validator 并行。激活条件为 PRD、约定、设计、界面、基准已批准。可随时回退到正常模式。

快速通道不消除验证,而是消除重复。

阶段流程

按顺序执行各阶段,每个阶段以明确的人类验证 gate 结束。阶段在未产出应产出物前不得批准。complete-phase 和 set-phase … approved 会拒绝缺少交付物的阶段。在进入 gate 前应运行守卫命令:

node "$FORGE/scripts/forge-guard.js" all <anchor> node "$FORGE/scripts/consistency-check.js" all <anchor>

forge-guard 逐文档读取,检查存在性与契约;consistency-check 检查产出物之间的差异。失败不是建议,必须在展示文档前修正。

适用场景与限制

Forge 适用于需要将模糊想法转化为结构化产品计划的场景,特别是需要 AI 无歧义实现、强调可追溯性与阶段验证的软件项目。其限制包括:所有交付物必须存放在 .forge 中;阶段 gate 必须由人类明确批准;工具包脚本不可修改(经完整性校验);补充脚本需声明并放在 .forge/tools/。关于收费、平台支持范围等具体信息,资料中暂未提供。