恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
OpenRig Slice 实施 PRD 模板深度解析:Intent → Mini-requirements → Proof Contract 三段式切片规范
首页
资讯中心
/
OpenRig Slice 实施 PRD 模板深度解析:Intent → Mini-requirements → Proof Contract 三段式切片规范
OpenRig Slice 实施 PRD 模板深度解析:Intent → Mini-requirements → Proof Contract 三段式切片规范
发布时间:2026/10/1 15:53:38
人工智能AI Agent多智能体Agent 编排代码智能体CLI【免费下载链接】openrigMulti-agent harness that runs Claude Code and Codex together as one system项目地址https://gitcode.com/GitHub_Trending/op/openrig点击查看免费下载本文以 OpenRig 仓库中packages/cli/src/lib/scope-templates/implementation-prd.md为骨架系统拆解 OpenRig 多 Agent 编排系统中切片Slice实施规格说明书的标准模板从 frontmatter 元数据、ELASTIC MIDDLE弹性中段与三点捕获three-capture-points教义、Intent / Mini-requirements / Proof contract 三段结构到它与rig scope slice create、rig proof add等 CLI 命令和 scope-audit 审计机制的底层联动。读完本文你将掌握 OpenRig 中切片从立项、需求收敛到证据闭环的完整规范写法并能在仓库源码层面理解这套模板为何能约束多 Agent 协同时的需求漂移与证据造假。模板定位切片级 PRD 是正式立项前的捕获点在 OpenRig 的 scope 体系中每个任务切片Slice目录下会落地一组固定文件其中implementation-prd.md模板渲染出的产物在较新的 CLI 流程中渲染为SPEC.md旧树兼容README.md是切片最核心的规格文档。它回答三个问题要做什么Intent、验收从哪开始看Mini-requirements、拿什么证明做完Proof contract。从源码看模板不是静态文案而是由模板引擎在创建切片时实例化的。核心实现在 packages/cli/src/lib/scope/templates.tsrenderSliceTemplate(kind, opts)按SliceTemplateKind读取scope-templates/kind.md并替换占位符renderImplementationPrdTemplate(opts)是保留给旧调用方读取或修复旧约定树的渲染入口新创建的 scope 脚手架不会再调用它但仍直接读取本模板文件resolveTemplate(filename)按源码树开发→ dist构建后→ 源码树相对 dist三级候选根解析模板文件模板缺失时会抛出带fact / consequence / action三段信息的ScopeCliError。模板占位符由applyPlaceholders统一替换与本文档相关的关键变量包括{{id}}点分 ID、{{slice_number}}两位零填充序号、{{slug}}、{{mission}}、{{title}}、{{created_date}}、{{intent}}。这些字段在 packages/cli/src/commands/scope.ts 的rig scope slice create命令中实际赋值。模板结构逐段解读frontmatter切片身份的机器可读锚点模板头部是 YAML frontmatter渲染后形如--- id: {{id}} # 渲染后形如 OPR.0.3.2.12 slice: {{slice_number}}-{{slug}} # 形如 12-rig-slice-cli-primitive mission: {{mission}} # 所在 mission 目录名 status: intent # 初始认知状态 stage: wip # 认知成熟度阶梯 created: {{created_date}} # ISO 日期 ---字段含义与源码约束如下id稳定点分 ID格式为项目前缀.版本.n如OPR.0.3.2.12由sliceIdFromMission(missionId, nn)铸造。点分 ID 的类型定义在 packages/cli/src/lib/scope/types.tsDotId接口project/version/n/m四段。slice两位序号加 slug目录名规则为NN-slug序号由nextSliceNN递增、pad2补零。status: intent与stage: wipstage的合法取值枚举在types.ts的Stage类型中wip / provisional / established / canonical / superseded / retired超出枚举的杜撰值会被拒绝superseded必须指名其继任者。createdtodayDateISO()生成。ELASTIC MIDDLE 注释为什么模板刻意保持瘦模板文件顶部有一段醒目的架构注释这是理解整份模板设计哲学的关键——三点捕获教义three-capture-points doctrineSDLC 恰好固定三个捕获点intent意图→ proportional structured requirement成比例的、结构化的需求→ proof证据。中间的一切都是弹性的ELASTIC。含义是对一个小切片下面的 Mini-requirements 可能本身就是完整 PRD只有在工作确实需要时才加深细节脚手架不允许为流程而制造仪式感The scaffold must not mint ceremony。注释还指明了约定的唯一事实来源SSOT仓库内的docs/reference/sdlc-conventions.md安装后位于$OPENRIG_HOME/reference/sdlc-conventions.md。Intent与切片 README 保持同步的原始意图## Intent [The recorded intent, verbatim — kept in sync with the slice README.]Intent 段要求逐字记录立项时登记过的意图并始终与切片 README 保持同步。在rig scope slice create中--intent text选项把作者意图写入 frontmatter默认回退为 title渲染时同时替换{{intent}}与{{intent_yaml}}。scope-audit 会校验SPEC.mdfrontmatter 存在非空intent:缺失时给出 remediationAdd a non-emptyintent:to SPEC.md frontmatter.见 packages/cli/src/lib/scope/scope-audit.ts。Mini-requirements批准从这里开始## Mini-requirements 1. [The concise one-glance requirement tier — this is where approval starts.]这是一眼可读的需求层级one-glance requirement tier评审的起点。源码对它有明确的机器可读约束packages/cli/src/lib/scope/scaffold-placeholder.ts 定义了模板占位符识别语法整行被方括号包裹如[……]即为脚手架占位符不是作者内容hasAuthoredNumberedItem要求至少有一个编号条目1.或1)形式且其文本不是占位符——纯散文或纯 bullet 列表不视为已创作scope-audit 对## Mini-requirements的检查同文件缺失时提示scope plan has no concise requirements tier存在但无编号条目时提示carries no numbered items (1. …) — the one-glance requirement tier is where approval starts补救措施要求写编号的可观察结果列表小切片可把它当作整个规格说明。这一机制防止 Agent 留空模板冒充完成——编号层级才是批准开始的地方。Proof contract与 DELIVERED 配对的证据来源## Proof contract - [ ] [One promised deliverable, written as an observable outcome — captured. This list is the source the DELIVERED section pairs proof against — pair each item via rig proof add … --evidences --media (never hand-place evidence without the drop); UI deliverables name their planned mockup (plannedRef).]Proof contract 是模板中最重的段落其核心要求可拆解为每行是一个承诺交付物写成可观察结果observable outcome——描述能看到/能验证什么而非内部实现动作它是后续 Living Notes 中 DELIVERED 段落的配对来源pairing source交付时逐项通过rig proof add …配对严禁手工放置证据never hand-place evidence without the drop——证据必须通过rig proof add命令落下drop命令会写出 C1 证据头供 DELIVERED 配对联接UI 类交付物需指明计划中的 mockupplannedRef。scope-audit 对## Proof contract的检查与之呼应缺失时报 proof has no promised-deliverables source to pair against存在但无 checkbox 交付物- [ ] …时报 carries no checkbox deliverables (- [ ] …) for proof to pair against并要求每行一个承诺交付物、写成可观察结果。Notes (elastic)按需填充的设计区## Notes (elastic) [Design, seams, risks, sequencing — only as much as the slice needs.]Notes 是弹性区承载设计、接缝seams、风险、排序等原则仍是切片需要多少就写多少与 ELASTIC MIDDLE 教义一致。与切片生命周期文件的配合PROGRESS 与 PROOFimplementation-prd.md不是孤立文件。rig scope slice create创建切片时会同时生成见 packages/cli/src/commands/scope.ts渲染后的 PRD/SPEC 主体写为SPEC.md--readme-only时在 frontmatter 注入progress_rail: readme-only并跳过 PROGRESS.md 脚手架PROGRESS.md来自 packages/cli/src/lib/scope-templates/slice-progress.md内含通用的三行验收清单Implementation complete/Tests passing/Review approved——这三条字面量在scaffold-placeholder.ts的GENERIC_SCAFFOLD_ACCEPTANCE常量中被同步测试锁定模板与常量漂移会导致 CI 失败PROOF.md来自 packages/cli/src/lib/scope-templates/proof.md即切片关闭时的证据文件。PROOF.md明确要求切片未完成当且仅当此文件存在且 SPEC 的 proof-contract 每一条都有证据与proof/目录下产物 1:1 映射。其HOW段落给出了 drop 命令的完整形态rig proof add {{id}} --artifact-type qa --verdict PASS \ --candidate-sha tip \ --money-evidence one line \ --evidences 1 \ --media screenshot-01.png对应实现见 packages/cli/src/commands/proof.ts--artifact-type必须是 C1 枚举之一C1_ARTIFACT_TYPES--candidate-sha是约定的联接键convention C2被证明的候选 commit--money-evidence是一行真金白银证据手工放置文件而不 drop交付物会停留在unverified状态。scope-audit 对缺失 drop 的 remediation 也复用了同一命令模板Re-drop via: rig proof add slice --artifact-type … --verdict … --candidate-sha sha --money-evidence line。证据源选择SPEC → PRD → README 的降级链当需要为 DELIVERED 配对证明时OpenRig 并不会盲目读取某个文件而是遵循selectProofContractBodypackages/cli/src/lib/scope/scaffold-placeholder.ts的按段选择逻辑若SPEC.md的对应段已创作存在且非纯净脚手架段取spec——这是当前唯一的现行契约否则若 PRD 段已创作取prd旧版回退否则若 README 段已创作取readme更早的回退全部缺失返回null。纯净脚手架段由isPristineScaffoldSection判定段内每一非空行含编号、checkbox、bullet 行剥离前缀后都是占位符即为未创作。同一 PRD 模板的另一关键函数isScaffoldPlaceholderText的判定规则是文本 trim 后整体被[…]包裹即为占位符因此写作时务必注意——[a] and [b]这类以[开头、以]结尾的真实交付描述会被识别为占位符架构上有意不做特判保持单一语法。这套段落级纯净性判定 三级降级选择是为了修复历史上三类读者proof-add、review compose、scope-audit 双胞胎各自推导回退目标导致的分叉证据录在一条契约上、却显示在另一条上。如今三类消费者统一走同一选择函数。实战最小切片的完整模板填写示例假设要在release-0.4.8mission 下创建切片12-tmux-session-naming执行rig scope slice create release-0.4.8 tmux-session-naming \ --template release-feature \ --title Deterministic Tmux Session Naming \ --intent Give every spawned tmux session a deterministic, host-qualified name so multi-host restores never collide. \ --depends-on OPR.0.4.7.11命令会铸造 ID如OPR.0.4.8.12、创建slices/12-tmux-session-naming/目录与proof/子目录、写入SPEC.md/PROGRESS.md/PROOF.md/slice.yaml并在 mission 清单中登记成员关系。随后把SPEC.md中的模板占位符替换为真实内容--- id: OPR.0.4.8.12 slice: 12-tmux-session-naming mission: release-0.4.8 status: intent stage: wip created: 2026-09-30 --- # Slice 12 — Deterministic Tmux Session Naming ## Intent Give every spawned tmux session a deterministic, host-qualified name so multi-host restores never collide. 与切片 README 保持逐字同步。 ## Mini-requirements 1. 新生成的会话名以 host 名称为前缀同一 host 下重复生成不产生新会话。 2. 名称在 CMUX transport 与本地终端两条路径上渲染一致不区分大小写。 ## Proof contract - [ ] 在双 host 测试床上并发启动两个切片rig up 输出中两个会话名互不相同可观察输出。 - [ ] 重启 daemon 后 rig up --restore 能按确定性名称精确恢复不弹交互选择UI 交付物plannedRef: docs/ui/mockups/restore-name.png。 ## Notes (elastic) - 接缝与 CMUX adapter 的名称布局方法对接cmux-layout-service。 - 风险旧会话名格式的存量数据迁移排序上先于恢复链路改造。关闭切片时按 PROOF.md 的 HOW 逐项 drop 证据rig proof add OPR.0.4.8.12 --artifact-type qa --verdict PASS \ --candidate-sha 合并后的 tip SHA \ --money-evidence 两个 host 会话名互不相同且 restore 无交互恢复成功 \ --evidences 1 --media two-host-sessions.png之后scope audit会核对Mini-requirements 有非占位符编号条目、Proof contract 有 checkbox 交付物、每条交付物都有 drop 证据且证据头联接键candidate-sha有效。常见误区与规避把模板当最终文档提交占位符行整行方括号包裹会被hasAuthoredNumberedItem/isPristineScaffoldSection判定为未创作scope-audit 会给出 remediation 并可能影响评审通过手工把截图丢进proof/而不 drop证据头缺失交付物保持unverifiedDELIVERED 配对不上在 Notes 里堆砌仪式感ELASTIC MIDDLE 教义要求脚手架不制造仪式Notes 按需填充即可破坏[a] and [b]类文本真实交付描述若整行被方括号包裹会被误判为占位符写作时应避免整行包裹。结语一份模板如何约束多 Agent 诚实交付implementation-prd.md表面是一份三段的 Markdown 模板实际是 OpenRig 交付纪律的落地装置frontmatter 提供机器可读的身份与认知状态Intent 防止需求被改写Mini-requirements 以编号 可观察定义批准起点Proof contract 用 checkbox drop 命令把证据和交付物 1:1 配对。配合scope-audit的占位符识别与证据源降级选择这套机制在源码层templates.ts、scope-audit.ts、proof.ts被固化为可执行约束——这正是多 Agent 协同系统中防止看起来在做、其实没做的关键防线。更多约定细节可继续查阅仓库内的docs/reference/sdlc-conventions.md安装后$OPENRIG_HOME/reference/sdlc-conventions.md与mission-slice-sop技能。赞分享人工智能AI Agent多智能体Agent 编排代码智能体CLI【免费下载链接】openrigMulti-agent harness that runs Claude Code and Codex together as one system项目地址https://gitcode.com/GitHub_Trending/op/openrig点击查看免费下载相关推荐openrig 的 Slice 进度追踪模板深入解析 PROGRESS.md 的持久化验收状态契约openrig 的 Slice 进度追踪模板深入解析 PROGRESS.md 的持久化验收状态契约 slice progress.md 是 openrigM人工智能AI Agent多智能体Agent 编排代码智能体CLITruffle 合约工件Contract ArtifactJSON Schema 全解析contract-schema 规范、字段定义与规范化实现Truffle 合约工件Contract ArtifactJSON Schema 全解析contract schema 规范、字段定义与规范化实现 导读区块链开发工具Web3OpenRig 技术债务治理实战用 backlog-tech-debt Slice 模板把存量债变成可审计、可验证的工作切片OpenRig 技术债务治理实战用 backlog tech debt Slice 模板把存量债变成可审计、可验证的工作切片 本文围绕 OpenRig 仓库中人工智能AI Agent多智能体Agent 编排代码智能体CLI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考