Feature Lifecycle Sample
下面用一个虚构 feature feat-12-user-billing-reconciliation 演示 backlog feature 的完整生命周期。
1. Proposed
创建目录:
planning/backlog/active/feat-12-user-billing-reconciliation/
PRD.md
implementation-checklist.md
此时建议:
PRD.md状态写为Proposed当前阶段可写为PRD and checklist only- checklist 先建立空的验收面板
2. Active
当 feature 进入正式推进或修复窗口后:
PRD.md状态切到Active当前阶段写清当前正在推进的阶段- checklist 开始回填各模块的结果项
此时目录仍然在 active/
3. Implemented
当代码已经进入主线,但 backlog 文档、索引、验证还没完全追平时:
PRD.md状态切到Implemented- feature 仍可留在
active/ active/README.md用日期化说明记录它“已实现但尚未完成收口”
这是 jqkai 方法里很重要的一步,因为真实项目里经常出现“实现先行、文档滞后”。
4. Completed
只有在下面事项都完成后,才把目录整体迁移到 completed/:
- PRD 状态切到
Completed - checklist 已追平当前现实
- 根 backlog README 已同步
active/README.md已移除该条
迁移前:
planning/backlog/active/feat-12-user-billing-reconciliation/
迁移后:
planning/backlog/completed/feat-12-user-billing-reconciliation/
5. Archived
如果这条 completed feature 后续只需要保留历史参考,不想继续混在现行 completed 列表里,可以再迁入:
planning/backlog/completed/archive/feat-12-user-billing-reconciliation/
这一步表示“历史层级变化”,不是再次改变 feature 真义。
6. Supplemental PRD
如果 feature 内出现一个局部议题,例如 rename guardrail:
- 不新开
13 - 直接在原目录下增加
rename-guardrail-PRD.md
适用场景:
- 局部纠偏
- rename 约束
- 误判提案保留
如果后续证明这份补充提案不成立:
- 将该文件状态标为
Superseded - 在主
PRD.md顶部显式链接 - 说明它“不作为实现真源”
7. Numbering Conflict
编号冲突处理建议:
- 新建 feature 前,先搜索
active/、completed/、archive/ - 找出当前最大编号和同号目录
- 如果发现冲突,优先重新分配新编号
- 不要让两个新 feature 长期共享同一编号
建议把“分配前先查重”写入团队规则,而不是靠记忆。