Files
playbook/skills/cook-it-through/workflows/feature-planning.md
T

3.3 KiB
Raw Blame History

入口 4feature 规划与入队

选择与建立上下文

巨大而模糊的工作先用 wayfinder;需要外部事实时用 research。先进入 grill-with-docs, 研究报告不能替代 grilling。进入 grill-with-docs 前,重读 memory-bank/project-brief.mdmemory-bank/tech-context.mdmemory-bank/system-patterns.md 以及会改变设计的项目规则、领域文档和 ADR。 首次运行 setup-matt-pocock-skills 时选择 local Markdown tracker。

grilling 清空 design frontier 并取得用户确认;seam confirmation 在 to-spectdd tdd 不得在未经确认的 seam 上开始。按顺序推进:

setup-matt-pocock-skills -> grill-with-docs -> to-spec -> to-tickets -> main_loop.py enqueue -> 提交 planning baseline -> main_loop.py claim

关键规划链是 to-spec -> to-tickets

Ticket 身份与依赖格式

  • FeatureId:小写字母或数字开头,只含小写字母、数字和连字符。
  • TicketIdqualified feature-slug/NNfeature slug 与至少两位数字共同构成身份。
  • FeatureIntegrationIdfeature-slug@integrated
  • Dependency 只能是后两类身份;标题和文件名中的可读 slug 不是身份。

每个 ticket 必须恰有一行 **Blocked by:** None,或 **Blocked by:** feature-a/01; feature-b@integrated。执行 hard cutNone 只能单独出现; 同 feature 也写完整身份;只用分号;拒绝裸数字、标题描述、逗号、隐式当前 feature、 非法/重复/缺失目标、自依赖和跨 feature cycle。旧格式必须在 enqueue 前人工迁移; 禁止增加 fallback、双解析器或自动重写。

全局图与两个 Frontier

  • 锁内加载全部 queued features:每个 ticket 是节点,每个 feature 增加 integration node。
  • ticket 使用 Blocked by 边;integration node 依赖本 feature 全部 ticketsqueue 顺序只连接 integration nodes,不形成 ticket claim 门槛。
  • ticket frontier 是依赖已满足且 ready-for-agent 的 tickets,按 queue feature、ticket number、 稳定 slug 排序;integration frontier 是首个尚未集成的 feature,两者独立。
  • ticket 在 resolvedskipped 时满足;integration dependency 只在持久状态含有效 integration_commit 时满足。skipped 令 feature partial,集成时必须显式授权。
  • 枚举顺序不得改变 frontier、claim 或错误顺序。

入队与 planning baseline

第三方 to-tickets 只定义通用 tracker 行为;主循环格式以本文件和执行引擎为准。 跨 feature 前向依赖必须把相关 feature 放在同一批次;同批重复 --feature 与现有 queue 一起校验。 任一解析、目标或 DAG 校验失败,都不得写 queue、ticket metadata/status 或 feature state enqueue 是最终机器校验边界。参数与结果只查相应 --help,不维护命令职责表。

生成和入队不隐式提交。任何 claim 前,提交 .scratch/<feature>/spec.md.scratch/<feature>/issues/*.md.scratch/queue.md 作为 planning baseline;随后读 workflows/ticket-execution.md,由 main_loop.py status / main_loop.py claim 取得正式 assignment。

尚未 claim ticket 时,加载 to-questionnaire,把问题写入 control checkout 的 .scratch/questions/<slug>.md,并从 grill-with-docs 恢复;不得把问题写入稳定知识。