3.3 KiB
入口 4:feature 规划与入队
选择与建立上下文
巨大而模糊的工作先用 wayfinder;需要外部事实时用 research。先进入 grill-with-docs,
研究报告不能替代 grilling。进入 grill-with-docs 前,重读
memory-bank/project-brief.md、memory-bank/tech-context.md、
memory-bank/system-patterns.md 以及会改变设计的项目规则、领域文档和 ADR。
首次运行 setup-matt-pocock-skills 时选择 local Markdown tracker。
让 grilling 清空 design frontier 并取得用户确认;seam confirmation 在 to-spec 与 tdd,
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:小写字母或数字开头,只含小写字母、数字和连字符。TicketId:qualifiedfeature-slug/NN;feature slug 与至少两位数字共同构成身份。FeatureIntegrationId:feature-slug@integrated。- Dependency 只能是后两类身份;标题和文件名中的可读 slug 不是身份。
每个 ticket 必须恰有一行 **Blocked by:** None,或
**Blocked by:** feature-a/01; feature-b@integrated。执行 hard cut:None 只能单独出现;
同 feature 也写完整身份;只用分号;拒绝裸数字、标题描述、逗号、隐式当前 feature、
非法/重复/缺失目标、自依赖和跨 feature cycle。旧格式必须在 enqueue 前人工迁移;
禁止增加 fallback、双解析器或自动重写。
全局图与两个 Frontier
- 锁内加载全部 queued features:每个 ticket 是节点,每个 feature 增加 integration node。
- ticket 使用
Blocked by边;integration node 依赖本 feature 全部 tickets;queue 顺序只连接 integration nodes,不形成 ticket claim 门槛。 - ticket frontier 是依赖已满足且
ready-for-agent的 tickets,按 queue feature、ticket number、 稳定 slug 排序;integration frontier 是首个尚未集成的 feature,两者独立。 - ticket 在
resolved或skipped时满足;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 恢复;不得把问题写入稳定知识。