DevBooks:Knife(Epic 切片与 Knife Plan)
目标
把“大需求(Epic)”切成可并行、可收敛、可验收的 Slice 队列,并把切片计划落盘为 Knife Plan(机读合同),作为后续 DevBooks 变更包的上游约束与验证锚点集合。
何时必须使用(MUST)
当满足任一条件时,本 skill 必须执行并落盘 Knife Plan:
- •
risk_level=high - •
request_kind=epic
原因:严格闸门将把 Knife Plan 作为 G3 强制项 校验(缺失/路径错/字段不对齐会阻断)。
输入
最小输入(建议从 Bootstrap/Proposal 汇总):
- •
epic_id(稳定且全局唯一) - •Epic 级 AC 清单(或可枚举的验收标准集合)
- •风险等级
risk_level - •
request_kind(应为epic) - •依赖与假设(允许不完整,但必须显式)
输出(必须落盘)
1) Knife Plan(机读,MUST)
落点(MUST):
- •
dev-playbooks/specs/_meta/epics/<epic_id>/knife-plan.yaml(或knife-plan.json)
一致性(MUST):
- •
knife-plan.(yaml|json)内的epic_id必须等于目录名<epic_id> - •若变更包声明了
slice_id,则 Knife Plan 的slice_id必须与之对齐
2) Slice 队列(建议)
以 slices[] 表达 Slice DAG(依赖拓扑),每个 Slice 至少包含:
- •
slice_id - •
change_id(建议预分配变更包目录名) - •
ac_subset[](MECE 子集) - •
verification_anchors[](确定性验证锚点:命令/测试/证据路径) - •
rollback_strategy(摘要或指向详细说明)
执行步骤(提示词层)
- •先做配置发现(优先
.devbooks/config.yaml),读取agents_doc与constitution.md。 - •确认
epic_id/ 风险等级 /request_kind=epic(缺失则在 Delivery/Void 先补齐)。 - •产出 Slice DAG:保证每个 Slice 都能以单一变更包闭环(≤12 tasks)。
- •落盘 Knife Plan 到规定路径,并在内容中显式绑定
epic_id/slice_id。 - •输出下一步路由建议:进入
devbooks-delivery-workflow(或先进入 Proposal/Design/Spec/Plan),并给出升级条件。
并行执行调度
当 Knife Plan 包含多个 Slice 时,可以使用 knife-parallel-schedule.sh 生成并行执行清单:
bash
# 生成 Markdown 格式的并行调度清单 knife-parallel-schedule.sh <epic-id> --format md --out parallel-schedule.md # 生成 JSON 格式(供程序消费) knife-parallel-schedule.sh <epic-id> --format json --out parallel-schedule.json
输出内容
- •最大并行度:可同时启动的最大 Agent 数量
- •分层执行清单:
- •Layer 0:无依赖,可立即启动
- •Layer 1:依赖 Layer 0 完成
- •Layer N:依赖 Layer N-1 完成
- •关键路径:串行依赖深度
- •启动命令模板:每个 Slice 的 Agent 启动命令
- •溯源信息:Epic ID、Plan ID、Plan Revision
使用场景
由于当前 AI 编程工具不支持二级子代理调用,Epic 拆分后需要人类协调多个独立 Agent 并行完成:
- •运行
knife-parallel-schedule.sh生成清单 - •根据清单的 Layer 0 启动多个独立 Agent
- •等待 Layer 0 全部完成后,启动 Layer 1
- •重复直到所有 Layer 完成
- •运行
requirements-ledger-derive.sh更新账本
参考
- •
dev-playbooks/specs/knife/spec.md(Knife 的规范与闸门接线要求) - •
dev-playbooks/specs/_meta/epics/README.md(Epic 工件目录约束) - •
skills/devbooks-delivery-workflow/scripts/knife-parallel-schedule.sh(并行调度脚本)