Skip to content

Latest commit

 

History

History
62 lines (48 loc) · 4.09 KB

File metadata and controls

62 lines (48 loc) · 4.09 KB

问题与特性台账

本仓已确认缺陷与待实现特性的唯一真源backlog.d/:一条目一个碎片 文件。台账只维护编号、标题、动机、目标版本、实施状态和 Proposal 指针;优先级、依赖、验收与技术 方案分别由版本计划和 Proposal 维护。完整权责见 规划与交付治理。完成后由发布 MR 聚合进 CHANGELOG 对应版本段,并在四包实际发布之后由 finalize 删除对应碎片。 design-gate 条目未经仓主裁决不得进入实现 MR。 已裁决不做的方向见 design.md 的非目标台账,此处不重复、不重提。

当前排期见 Patchbay 0.5.0 版本计划。进入版本计划不等于越过设计闸门; 待裁决 条目必须先完成对应裁决,才能进入实现 MR。

本文件为什么没有大表

台账曾经是本文件里的四张大表。仓规要求每个实现 MR 更新自己条目的状态行,而大表把所有条目放在同一 个文件的相邻行上——并行分支各改各的行,三方合并却稳定撞成 hunk 冲突。这不是协作纪律问题,是存储 结构问题:写入是按条目独占的,存储却是按文件共享的。

治法与当年的根 CHANGELOG.md(PB-040-20)相同:把条目拆成 backlog.d/ 下 一条目一个碎片。独立修改从此落在不同文件里;两个 MR 真的在改同一条目时才冲突,那正是需要冲突的 情况。

同理,本文件也不做入库的生成物总表:入库总表会被每个实现 MR 重新生成,相邻行的冲突原样回来, 等于白拆。要看全表就按需现渲一份,看完即弃。

目录与编号

四类条目共用一个碎片目录,种类由编号前缀决定:

前缀 章节 用途
PB 特性 已登记的特性 / 治理项,例如 PB-050-13.md
BUG 缺陷 未排期缺陷,例如 BUG-20260826-01.md
DOC 文档债 可随任意批次走的文档快赢项
DG design-gate 需仓主裁决后才能动工的裁决点

字段、状态词表、单行小节约束和文件名规则以 backlog.d/README.md 为准。

怎么读

$ dart run tool/backlog_render.dart                     # 渲染只读总表到 stdout
$ dart run tool/backlog_render.dart --out /tmp/view.md  # 或落一份临时文件

渲染视图是视图不是真源,不要提交。查单条直接读 docs/backlog.d/<编号>.md;查某个版本的排期 读版本计划,那里才有优先级、依赖和退出条件。

维护规则

  • 一条目一个碎片文件;动机一句话,证据给指针;不粘贴过程,不在状态或备注中重复版本优先级和依赖。
  • 实现 MR 只改自己条目的碎片。 不要顺手整理别人的碎片,不要把多个条目的状态合进一次编辑, 也不要以任何形式重新引入入库总表——这三条是碎片化能消除冲突的前提。
  • 状态只用:待排期待裁决已排期实现中已验证,外加发布收尾专用的 待真机验收 (由收尾人标注、release_finalize 消费,口径见发版清单第 10 节,日常 MR 不用);design-gate 只用 待裁决已裁决。版本计划负责优先级、依赖和退出条件。
  • 已验证 的判据是验收条件已被机检完全覆盖并跑绿(CI 门禁、golden、包内测试)。版本计划的退出条件 点名真机或接入方书面确认的条目,合入后只能记 实现中,直到证据到位——绿的单测不代表真机结论。
  • 待裁决 条目必须同时引用 design-gate 和 Proposal;Proposal 状态不代表实施状态。
  • 完成 = 移入 CHANGELOG 对应版本段并删除碎片;放弃 = 移入 design.md 非目标台账并写理由。
  • 延期 = 通过范围变更 MR 把 target 清成 status 标回 待排期,并保留未满足的证据指针。
  • 每个 MR 和发版前运行 dart run tool/check_planning.dart