用途:编排一个 ideation 项目的全阶段执行。它负责沙箱引擎做不到的三件事:读取 contract、执行 git log 跳过预检、以及交互式失败门控与续跑;阶段之间的拓扑波次规划、并行调度和结果校验由引擎完成,调用方无需自行计算波次或解析 RESULT 文本。
主要能力:
- 定位与解析 contract。参数可选指定 contract.md 路径,省略时用 ./docs/ideation/*/contract.md 通配自动检测,多个则让用户选择。读取同目录 contract-data.json,取其 execution.phases 作为执行清单,并读取 projectName、slug、approvalMode(express 表示单次确认批准)、branch。若 contract-data.json 缺失,则回退解析 contract.md 的 ## Execution Plan 与头部 Approval 行。
- 分支重断言。若声明了 branch,先执行 git branch --show-current,不同则 git switch <branch>(不存在时用 git switch -c 创建)。示例中的命令为:git log --oneline -F --grep="<specPath>",仅使用带 slug 的完整 specPath 形式,命中即视为该阶段已完成并加入 completedPhases,报告为 Skipping "Phase title" (already committed: abc1234)。
- 构建引擎参数。组装包含 projectName、slug、projectDir、strict、phases、completedPhases 的清单;prereqs 为阶段标题,直接透传;express 合同设 strict: true。调用前需自检每个 prereqs 都能对应到阶段标题或 completedPhases,且无重复标题。files 取自各 spec 的 File Changes 表格(New/Modified/Deleted Files)并原样透传;缺失或无法解析时设为 [] 并提示该阶段按并行安全处理。
- 调用引擎。Claude Code 中通过 Workflow 工具传入引擎绝对路径;pi 中调用 run_ideation_contract 工具。引擎不可用时降级为手动按依赖顺序逐阶段执行 /ideation:execute-spec <specPath>,express 合同沿用 --strict 语义。
- 处理摘要与失败门控。摘要含 completed、noops、failed、skipped、results 及可选 error。error 表示规划失败(依赖环、未知前置、重复标题),需原样报告并停止,不视为空成功。noops 是完成而非失败。若 failed 非空,用 AskUserQuestion 询问重试、停止或接受并完成;无人值守时按“停止”语义处理。
- 运行记录与完成报告。在失败门控之前,将记录写为 {projectDir}run-{date}.json 及同名 .html,包含固定九个顶层键:projectName、slug、date、branch、baseBranch、strict、summary、verify(null)、notesFiles。用 Bash heredoc 写入,再用 node ${CLAUDE_PLUGIN_ROOT}/scripts/run-report-gen.ts --input {recordPath} --output {htmlPath} 渲染;生成器为唯一渲染方式,校验失败会列出违规 JSON 路径,需修正后重跑。完成报告优先展示警告,逐条给出阶段、提交哈希、review 状态。
限制:资料未提供收费标准、平台支持范围与效果数据;noops 阶段不可重复派发;file-less 阶段可能被并行执行而存在文件重叠风险;引擎或渲染命令被权限拒绝时需提示用户手动执行。