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

56 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 入口 4feature 规划与入队
## 选择与建立上下文
巨大而模糊的工作先用 `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`qualified `feature-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 全部 ticketsqueue 顺序只连接
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` 恢复;不得把问题写入稳定知识。