用途:面向中大型长任务(新产品从 0 到 1、框架/SDK 迁移、大型重构、长文档工程、合规整改、数据治理等),把任务建模为有序 phase 合同链,让 AI 在小上下文窗口内执行小合同、完成即写回外部状态,稳定连续工作并在压缩或换会话后无损续跑。单次 bug 修复、探索型研究、需求频繁变动时不适用。
前置条件:目标项目根目录须为 git 工作区(git rev-parse --is-inside-work-tree 返回 true),本地 Ruby ≥ 2.6;不满足则不生成任何文件。非 git 场景需先 export PHASE_CONTRACT_ALLOW_NON_GIT=1 并在 plan/common.md 记录偏离风险与补偿措施。
主要能力:生成 plan/(manifest.yaml、common.md、workflow.md、state.yaml、handoff.md、phases/ 定位合同、execution/ 执行合同)、scripts/planctl 调度脚本、AGENTS.md 强制层及指向它的 CLAUDE.md 符号链接。核心原则包括状态外部化、调度与执行分离、三文件上下文律、双层合同、依赖强制校验、完成即写入、固定恢复协议、里程碑外部化、显式整体收尾、完整性先于推进。
使用方式:先满足前置条件,再收集项目定位、切分维度、phase 列表与全局硬约束,生成骨架与 planctl,为 phase-0 及即将启动的 phase 写正式合同,其余用占位合同。常规循环为 ruby scripts/planctl advance --strict、lint-contracts、complete <phase-id> --summary ... --next-focus ... --continue;冷启动用 resume --strict,体检用 doctor;全部完成后跑 finalize 收尾。complete 会自动写回 state 与 handoff 并做 git 里程碑提交推送,推送失败仅告警不回滚。
限制:phase 数建议 5–12 个,超过 12 要求重切或引入 epic 分组;依赖不得成环;完成判定禁止主观词;allowed_paths 须为路径白名单;不得一次加载全部 phase 文档;finalize 在 phase 未全部完成时以 exit 2 拒绝;未写入 state.yaml 的 phase 不视为完成。上述为资料明确内容,其余细节暂未提供。