dev-playbooks-cn 1.2.5 → 1.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/README.md +2 -2
  2. package/bin/devbooks.js +2 -2
  3. package/package.json +1 -1
  4. package/skills/Skills/344/275/277/347/224/250/350/257/264/346/230/216.md +2 -2
  5. package/skills/Skill/345/274/200/345/217/221/346/214/207/345/215/227.md +2 -2
  6. package/skills/_shared/mcp-enhancement-template.md +1 -1
  7. package/skills/_shared/references//345/201/217/347/246/273/346/243/200/346/265/213/344/270/216/350/267/257/347/224/261/345/215/217/350/256/256.md +1 -1
  8. package/skills/_shared/workflow-next-steps.md +3 -3
  9. package/skills/devbooks-archiver/SKILL.md +315 -0
  10. package/skills/devbooks-brownfield-bootstrap/SKILL.md +1 -1
  11. package/skills/devbooks-code-review/SKILL.md +31 -3
  12. package/skills/devbooks-coder/SKILL.md +37 -2
  13. package/skills/devbooks-delivery-workflow/SKILL.md +52 -0
  14. package/skills/devbooks-delivery-workflow/references//344/272/244/344/273/230/351/252/214/346/224/266/345/267/245/344/275/234/346/265/201.md +2 -2
  15. package/skills/devbooks-design-backport/SKILL.md +34 -0
  16. package/skills/devbooks-design-doc/SKILL.md +23 -1
  17. package/skills/devbooks-implementation-plan/SKILL.md +36 -0
  18. package/skills/devbooks-router/SKILL.md +3 -3
  19. package/skills/devbooks-test-owner/SKILL.md +93 -18
  20. package/templates/dev-playbooks/README.md +2 -2
  21. package/templates/dev-playbooks/docs/DevBooks/351/205/215/347/275/256/346/214/207/345/215/227.md +1 -1
  22. package/templates/dev-playbooks/docs/workflow-diagram.svg +2 -2
  23. package/skills/devbooks-spec-gardener/SKILL.md +0 -128
  24. /package/skills/{devbooks-spec-gardener/references//350/247/204/346/240/274/345/233/255/344/270/201 → devbooks-archiver/references//345/275/222/346/241/243/345/231/250}/346/217/220/347/244/272/350/257/215.md" +0 -0
package/README.md CHANGED
@@ -145,7 +145,7 @@ DevBooks 使用两个目录根:
145
145
  **4. Archive 阶段**
146
146
 
147
147
  ```
148
- 请运行 devbooks-spec-gardener skill,变更 ID:add-oauth2
148
+ 请运行 devbooks-archiver skill,变更 ID:add-oauth2
149
149
  ```
150
150
 
151
151
  ---
@@ -184,7 +184,7 @@ DevBooks 使用两个目录根:
184
184
 
185
185
  | Skill | 说明 |
186
186
  |-------|------|
187
- | `devbooks-spec-gardener` | 规格维护与去重 |
187
+ | `devbooks-archiver` | 规格维护与去重 |
188
188
  | `devbooks-delivery-workflow` | 完整交付闭环 |
189
189
 
190
190
  ### 独立技能
package/bin/devbooks.js CHANGED
@@ -644,7 +644,7 @@ ${DEVBOOKS_MARKERS.start}
644
644
  - \`/devbooks-implementation-plan\`:编码计划(tasks.md)
645
645
  - \`/devbooks-test-owner\`:验收测试与追溯(独立对话)
646
646
  - \`/devbooks-coder\`:按 tasks 实现(禁止改 tests/)
647
- - \`/devbooks-spec-gardener\`:归档前规格修剪
647
+ - \`/devbooks-archiver\`:归档前规格修剪
648
648
 
649
649
  ## 核心约束(必须遵守)
650
650
 
@@ -806,7 +806,7 @@ ${DEVBOOKS_MARKERS.start}
806
806
  | \`devbooks-proposal-author\` | 创建变更提案 |
807
807
  | \`devbooks-design-doc\` | 创建设计文档 |
808
808
  | \`devbooks-test-owner / devbooks-coder\` | 执行实现 |
809
- | \`devbooks-spec-gardener\` | 归档变更包 |
809
+ | \`devbooks-archiver\` | 归档变更包 |
810
810
 
811
811
  ${DEVBOOKS_MARKERS.end}
812
812
  `;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-playbooks-cn",
3
- "version": "1.2.5",
3
+ "version": "1.2.7",
4
4
  "description": "AI-driven spec-based development workflow",
5
5
  "keywords": [
6
6
  "devbooks",
@@ -245,7 +245,7 @@
245
245
 
246
246
  ---
247
247
 
248
- ## `devbooks-spec-gardener`(Spec Gardener
248
+ ## `devbooks-archiver`(Archiver
249
249
 
250
250
  - 作用:归档前修剪与维护 `<truth-root>`(去重合并/删除过时/目录整理/一致性修复),避免 specs 堆叠失控。
251
251
  - 使用场景:
@@ -253,7 +253,7 @@
253
253
  - 发现 `<truth-root>` 里重复/重叠/过时条目
254
254
  - 使用话术:
255
255
  ```text
256
- 你现在是 Spec Gardener。请点名使用 `devbooks-spec-gardener`。
256
+ 你现在是 Archiver。请点名使用 `devbooks-archiver`。
257
257
  输入:`dev-playbooks/changes/<change-id>/specs/**` + `dev-playbooks/specs/**` + `dev-playbooks/changes/<change-id>/design.md`(如有)
258
258
  只允许修改 `dev-playbooks/specs/**` 做合并/去重/归类/删除过时;不要修改 change 包内容。
259
259
  输出按顺序:变更操作清单(CREATE/UPDATE/MOVE/DELETE)→ 每个 CREATE/UPDATE 的完整文件内容 → 合并映射摘要 → Open Questions(<=3)。
@@ -20,7 +20,7 @@
20
20
  |------------|------------|------|
21
21
  | **验证/检查类** | 必须幂等(不修改文件) | `change-check.sh`、`guardrail-check.sh`、`devbooks-code-review` |
22
22
  | **生成类** | 必须明确"覆盖/增量"行为 | `change-scaffold.sh`、`devbooks-design-doc`、`devbooks-proposal-author` |
23
- | **修改类** | 必须可安全重跑 | `devbooks-spec-gardener`、`devbooks-design-backport` |
23
+ | **修改类** | 必须可安全重跑 | `devbooks-archiver`、`devbooks-design-backport` |
24
24
 
25
25
  **验证/检查类 Skill 必须遵守**:
26
26
  - [ ] 不修改任何文件(只读操作)
@@ -95,7 +95,7 @@ echo "ok: verification passed"
95
95
 
96
96
  ### 1.5 真理源分离原则
97
97
 
98
- - **只读真理源**:Skill 只能读取 `<truth-root>/`,不能直接修改(除了 `spec-gardener` 等归档类 Skill)
98
+ - **只读真理源**:Skill 只能读取 `<truth-root>/`,不能直接修改(除了 `archiver` 等归档类 Skill)
99
99
  - **写入工作区**:Skill 的写入目标是 `<change-root>/<change-id>/`
100
100
  - **归档即合并**:归档操作将工作区内容合并回真理源
101
101
 
@@ -66,7 +66,7 @@
66
66
  - devbooks-proposal-challenger(纯评审)
67
67
  - devbooks-proposal-judge(纯裁决)
68
68
  - devbooks-design-backport(文档回写)
69
- - devbooks-spec-gardener(文件整理)
69
+ - devbooks-archiver(文件整理)
70
70
  - devbooks-test-reviewer(测试评审)
71
71
 
72
72
  对于这些 Skills,MCP 增强章节应写:
@@ -128,7 +128,7 @@ deviation-log.md 是**持久化文件**,不受 compact 影响。即使对话
128
128
  | coder | HANDOFF (测试问题) | `devbooks-test-owner` |
129
129
  | test-owner | COMPLETED | `devbooks-coder` |
130
130
  | test-owner | HANDOFF (设计问题) | `devbooks-design-backport` |
131
- | code-review | COMPLETED (有 spec delta) | `devbooks-spec-gardener` |
131
+ | code-review | COMPLETED (有 spec delta) | `devbooks-archiver` |
132
132
  | code-review | COMPLETED (无 spec delta) | 归档完成 |
133
133
  | 任意 | BLOCKED | 记录断点,等待用户 |
134
134
  | 任意 | FAILED | 修复后重试当前 skill |
@@ -25,7 +25,7 @@
25
25
 
26
26
  ┌─────────────────────────────────────────────────────────────────┐
27
27
  │ 归档阶段 (ARCHIVE) │
28
- spec-gardener
28
+ archiver
29
29
  └─────────────────────────────────────────────────────────────────┘
30
30
  ```
31
31
 
@@ -45,11 +45,11 @@
45
45
  | `devbooks-implementation-plan` | `devbooks-test-owner` | 始终(必须单独会话) |
46
46
  | `devbooks-test-owner` | `devbooks-coder` | Red 基线后(必须单独会话) |
47
47
  | `devbooks-coder` | `devbooks-code-review` | 所有任务完成后 |
48
- | `devbooks-code-review` | `devbooks-spec-gardener` | 如果有 spec deltas |
48
+ | `devbooks-code-review` | `devbooks-archiver` | 如果有 spec deltas |
49
49
  | `devbooks-code-review` | 归档完成 | 如果无 spec deltas |
50
50
  | `devbooks-test-reviewer` | `devbooks-coder` | 如果发现测试问题,交回 |
51
51
  | `devbooks-design-backport` | `devbooks-implementation-plan` | 设计更新后重跑计划 |
52
- | `devbooks-spec-gardener` | 归档完成 | 始终 |
52
+ | `devbooks-archiver` | 归档完成 | 始终 |
53
53
 
54
54
  ## 关键约束
55
55
 
@@ -0,0 +1,315 @@
1
+ ---
2
+ name: devbooks-archiver
3
+ description: devbooks-archiver:归档阶段的唯一入口,负责完整的归档闭环(自动回写→规格合并→文档同步检查→变更包归档移动)。用户说"归档/archive/收尾/闭环/合并到真理"等时使用。
4
+ allowed-tools:
5
+ - Glob
6
+ - Grep
7
+ - Read
8
+ - Write
9
+ - Edit
10
+ - Bash
11
+ ---
12
+
13
+ # DevBooks:归档器(Archiver)
14
+
15
+ ## 工作流位置感知(Workflow Position Awareness)
16
+
17
+ > **核心原则**:Archiver 是归档阶段的**唯一入口**,负责完成从代码评审到变更包归档的所有收尾工作。
18
+
19
+ ### 我在整体工作流中的位置
20
+
21
+ ```
22
+ proposal → design → test-owner(P1) → coder → test-owner(P2) → code-review → [Archiver]
23
+
24
+ 自动回写 → 规格合并 → 文档检查 → 移动归档
25
+ ```
26
+
27
+ ### 为什么重命名为 Archiver?
28
+
29
+ | 旧名称 | 新名称 | 变更原因 |
30
+ |--------|--------|----------|
31
+ | `spec-gardener` | `archiver` | 职责已扩展,不仅是规格合并,而是完整的归档闭环 |
32
+
33
+ ### Archiver 的完整职责
34
+
35
+ | 阶段 | 职责 | 说明 |
36
+ |------|------|------|
37
+ | 1 | 自动回写检测与处理 | 检测 deviation-log.md,自动回写设计文档 |
38
+ | 2 | 规格合并 | 将 specs/contracts 合并到 truth-root |
39
+ | 3 | 架构合并 | 将 design.md 的 Architecture Impact 合并到 c4.md |
40
+ | 4 | 文档同步检查 | 检查 design.md 的 Documentation Impact 是否已处理 |
41
+ | 5 | 变更包归档移动 | 将变更包移动到 `<change-root>/archive/` |
42
+
43
+ ---
44
+
45
+ ## 前置:配置发现(协议无关)
46
+
47
+ - `<truth-root>`:当前真理目录根
48
+ - `<change-root>`:变更包目录根
49
+
50
+ 执行前**必须**按以下顺序查找配置(找到后停止):
51
+ 1. `.devbooks/config.yaml`(如存在)→ 解析并使用其中的映射
52
+ 2. `dev-playbooks/project.md`(如存在)→ DevBooks 2.0 协议,使用默认映射
53
+ 3. `project.md`(如存在)→ template 协议,使用默认映射
54
+ 4. 若仍无法确定 → **停止并询问用户**
55
+
56
+ **关键约束**:
57
+ - 如果配置中指定了 `agents_doc`(规则文档),**必须先阅读该文档**再执行任何操作
58
+ - 禁止猜测目录根
59
+ - 禁止跳过规则文档阅读
60
+
61
+ ---
62
+
63
+ ## 归档完整流程
64
+
65
+ ### 第 1 步:前置检查
66
+
67
+ ```markdown
68
+ 前置检查清单:
69
+ - [ ] 变更包存在(<change-root>/<change-id>/)
70
+ - [ ] verification.md Status = Ready 或 Done
71
+ - [ ] evidence/green-final/ 存在且非空
72
+ - [ ] tasks.md 所有任务已完成([x])
73
+ - [ ] 代码评审已通过(verification.md Status = Done 由 Reviewer 设置)
74
+ ```
75
+
76
+ 若检查失败 → 停止并输出缺失项,建议用户先完成前置步骤。
77
+
78
+ ### 第 2 步:自动回写检测与处理
79
+
80
+ > **设计决策**:归档阶段自动处理所有未回写的偏离,用户无需手动调用 design-backport。
81
+
82
+ **检测流程**:
83
+
84
+ ```
85
+ 1. 读取 <change-root>/<change-id>/deviation-log.md
86
+ 2. 检查是否有 "| ❌" 未回写记录
87
+ → 有:执行自动回写(步骤 3-5)
88
+ → 无:跳过,直接进入合并阶段
89
+
90
+ 3. 对每条未回写记录,判断是否为 Design-level 内容:
91
+ - DESIGN_GAP, CONSTRAINT_CHANGE, API_CHANGE → 需要回写
92
+ - 纯实现细节(文件名/类名/临时步骤) → 不回写,标记为 IMPL_ONLY
93
+
94
+ 4. 执行设计回写:
95
+ - 读取 design.md
96
+ - 按 design-backport 协议的"可回写内容范围"更新
97
+ - 在 design.md 末尾添加变更记录
98
+
99
+ 5. 更新 deviation-log.md:
100
+ - 将已回写的记录标记为 ✅
101
+ - 记录回写时间和归档批次
102
+ ```
103
+
104
+ **自动回写的内容范围**(继承自 design-backport):
105
+
106
+ | 可回写 | 不可回写 |
107
+ |--------|----------|
108
+ | 对外语义/用户可感知行为 | 具体文件路径、类名/函数名 |
109
+ | 系统级不可变约束(Invariants) | PR 切分、任务执行顺序 |
110
+ | 核心数据契约与演进策略 | 过细的算法伪代码 |
111
+ | 跨阶段治理策略 | 脚本命令 |
112
+ | 关键取舍与决策 | 表名/字段名 |
113
+
114
+ ### 第 3 步:规格合并
115
+
116
+ 将变更包中的规格产物合并到 `<truth-root>`:
117
+
118
+ | 源路径 | 目标路径 | 合并策略 |
119
+ |--------|----------|----------|
120
+ | `<change-root>/<change-id>/specs/**` | `<truth-root>/specs/**` | 增量合并 |
121
+ | `<change-root>/<change-id>/contracts/**` | `<truth-root>/contracts/**` | 版本化合并 |
122
+
123
+ ### 第 4 步:架构合并
124
+
125
+ > **设计决策**:C4 架构变更通过 design.md 的 Architecture Impact 章节记录,由 Archiver 在归档时合并到真理。
126
+
127
+ **C4 合并流程**:
128
+
129
+ 1. **检测架构变更**:解析 `design.md` 中的 "Architecture Impact" 章节
130
+ 2. **判断是否需要合并**:
131
+ - 若 "无架构变更" 被勾选 → 跳过合并
132
+ - 若 "有架构变更" → 执行合并
133
+ 3. **执行合并**:
134
+ - 读取 `<truth-root>/architecture/c4.md`(若不存在则创建)
135
+ - 根据 Architecture Impact 中的变更描述更新对应章节
136
+ - 更新 Container/Component 表格
137
+ - 更新依赖关系
138
+ - 更新分层约束(如有变更)
139
+ 4. **记录合并日志**:在 c4.md 末尾添加变更记录
140
+
141
+ ### 第 5 步:文档同步检查
142
+
143
+ 检查 design.md 的 "Documentation Impact" 章节:
144
+
145
+ ```markdown
146
+ 检查项:
147
+ - [ ] 若声明了"需要更新的文档",验证这些文档已更新
148
+ - [ ] 若勾选了"无需更新",确认合理性
149
+ - [ ] 输出文档同步状态报告
150
+ ```
151
+
152
+ **若有未处理的文档更新**:
153
+ - 输出警告,列出需要更新的文档
154
+ - 不阻塞归档,但在归档报告中标记为 "文档待更新"
155
+
156
+ ### 第 6 步:变更包归档移动(新增)
157
+
158
+ 将已完成的变更包移动到归档目录:
159
+
160
+ ```bash
161
+ # 源路径
162
+ <change-root>/<change-id>/
163
+
164
+ # 目标路径
165
+ <change-root>/archive/<change-id>/
166
+ ```
167
+
168
+ **移动流程**:
169
+
170
+ 1. **创建归档目录**(如不存在):`<change-root>/archive/`
171
+ 2. **设置最终状态**:在 verification.md 中设置 `Status: Archived`
172
+ 3. **添加归档时间戳**:在 verification.md 末尾添加 `Archived-At: <timestamp>`
173
+ 4. **移动变更包**:`mv <change-root>/<change-id>/ <change-root>/archive/<change-id>/`
174
+ 5. **输出归档完成报告**
175
+
176
+ **verification.md 归档状态更新**:
177
+
178
+ ```markdown
179
+ ---
180
+ status: Archived
181
+ archived-at: 2024-01-16T10:30:00Z
182
+ archived-by: devbooks-archiver
183
+ ---
184
+ ```
185
+
186
+ ---
187
+
188
+ ## 执行方式
189
+
190
+ 1) 先阅读并遵守:`_shared/references/通用守门协议.md`(可验证性 + 结构质量守门)。
191
+ 2) 严格按完整提示词执行:`references/归档器提示词.md`。
192
+
193
+ ---
194
+
195
+ ## 上下文感知
196
+
197
+ 本 Skill 在执行前自动检测上下文,选择合适的运行模式。
198
+
199
+ 检测规则参考:`skills/_shared/context-detection-template.md`
200
+
201
+ ### 检测流程
202
+
203
+ 1. 检测 `<truth-root>/` 目录状态
204
+ 2. 若提供 change-id,检测变更包归档条件
205
+ 3. 检测重复/过时规格(维护模式)
206
+
207
+ ### 本 Skill 支持的模式
208
+
209
+ | 模式 | 触发条件 | 行为 |
210
+ |------|----------|------|
211
+ | **归档模式** | 提供 change-id 且闸门通过 | 执行完整归档流程(6步) |
212
+ | **维护模式** | 无 change-id | 执行 truth-root 去重、清理、整理 |
213
+ | **检查模式** | 带 --dry-run 参数 | 只输出计划,不实际修改/移动 |
214
+
215
+ ### 归档模式完整流程图
216
+
217
+ ```
218
+ ┌─────────────────────────────────────────────────────────────┐
219
+ │ 归档模式流程 │
220
+ ├─────────────────────────────────────────────────────────────┤
221
+ │ │
222
+ │ 1. 前置检查 │
223
+ │ ├─ 变更包存在? │
224
+ │ ├─ verification.md Status = Ready/Done? │
225
+ │ ├─ evidence/green-final/ 存在? │
226
+ │ └─ tasks.md 全部完成? │
227
+ │ │ │
228
+ │ ▼ │
229
+ │ 2. 自动回写 │
230
+ │ ├─ 读取 deviation-log.md │
231
+ │ ├─ 检测未回写记录 │
232
+ │ └─ 执行回写 → 更新标记 │
233
+ │ │ │
234
+ │ ▼ │
235
+ │ 3. 规格合并 │
236
+ │ ├─ specs/** → truth-root/specs/** │
237
+ │ └─ contracts/** → truth-root/contracts/** │
238
+ │ │ │
239
+ │ ▼ │
240
+ │ 4. 架构合并 │
241
+ │ └─ Architecture Impact → c4.md │
242
+ │ │ │
243
+ │ ▼ │
244
+ │ 5. 文档同步检查 │
245
+ │ └─ 检查 Documentation Impact 是否已处理 │
246
+ │ │ │
247
+ │ ▼ │
248
+ │ 6. 变更包归档移动 │
249
+ │ ├─ 设置 Status: Archived │
250
+ │ └─ mv <change-id>/ → archive/<change-id>/ │
251
+ │ │ │
252
+ │ ▼ │
253
+ │ ✅ 输出归档完成报告 │
254
+ │ │
255
+ └─────────────────────────────────────────────────────────────┘
256
+ ```
257
+
258
+ ### 检测输出示例
259
+
260
+ ```
261
+ 检测结果:
262
+ - truth-root:存在,包含 12 个 spec 文件
263
+ - 变更包:存在,闸门全绿
264
+ - 回写状态:2 条待回写记录
265
+ - 运行模式:归档模式(完整流程)
266
+ ```
267
+
268
+ ---
269
+
270
+ ## 归档报告模板
271
+
272
+ 归档完成后,输出以下报告:
273
+
274
+ ```markdown
275
+ ## 归档报告
276
+
277
+ ### 变更包信息
278
+ - Change ID: <change-id>
279
+ - 归档时间: <timestamp>
280
+
281
+ ### 执行摘要
282
+ | 步骤 | 状态 | 说明 |
283
+ |------|------|------|
284
+ | 前置检查 | ✅ | 全部通过 |
285
+ | 自动回写 | ✅ | 回写 2 条记录 |
286
+ | 规格合并 | ✅ | 合并 3 个 spec 文件 |
287
+ | 架构合并 | ⏭️ | 无架构变更 |
288
+ | 文档检查 | ⚠️ | README.md 待更新 |
289
+ | 归档移动 | ✅ | 已移动到 archive/ |
290
+
291
+ ### 归档位置
292
+ `<change-root>/archive/<change-id>/`
293
+
294
+ ### 后续建议
295
+ - [ ] 更新 README.md(文档检查警告)
296
+ ```
297
+
298
+ ---
299
+
300
+ ## 维护模式职责
301
+
302
+ 在维护模式下(无 change-id)执行:
303
+
304
+ - 检测重复的规格定义
305
+ - 清理过时/废弃的规格
306
+ - 整理目录结构
307
+ - 修复一致性问题
308
+
309
+ ---
310
+
311
+ ## MCP 增强
312
+
313
+ 本 Skill 不依赖 MCP 服务,无需运行时检测。
314
+
315
+ MCP 增强规则参考:`skills/_shared/mcp-enhancement-template.md`
@@ -74,7 +74,7 @@ allowed-tools:
74
74
  | 技术债热点 | `architecture/hotspots.md` | `mcp__ckb__getHotspots` |
75
75
  | 分层约束 | `architecture/layering-constraints.md` | 代码分析(可选) |
76
76
 
77
- > **设计决策**:C4 架构地图现在由 brownfield-bootstrap 在初始化时生成,后续架构变更通过 design.md 的 Architecture Impact 章节记录,由 spec-gardener 在归档时合并。
77
+ > **设计决策**:C4 架构地图现在由 brownfield-bootstrap 在初始化时生成,后续架构变更通过 design.md 的 Architecture Impact 章节记录,由 archiver 在归档时合并。
78
78
 
79
79
  ### 4. 基线变更包
80
80
 
@@ -10,6 +10,34 @@ allowed-tools:
10
10
 
11
11
  # DevBooks:代码评审(Reviewer)
12
12
 
13
+ ## 工作流位置感知(Workflow Position Awareness)
14
+
15
+ > **核心原则**:Code Review 在 Test Owner 阶段 2 验证之后执行,是归档前的最后一个评审步骤。
16
+
17
+ ### 我在整体工作流中的位置
18
+
19
+ ```
20
+ proposal → design → test-owner(阶段1) → coder → test-owner(阶段2) → [Code Review] → archive
21
+
22
+ 可读性/一致性/依赖审查
23
+ ```
24
+
25
+ ### Code Review 的职责边界
26
+
27
+ | 允许 | 禁止 |
28
+ |------|------|
29
+ | 审查代码可读性/一致性 | ❌ 修改代码文件 |
30
+ | 设置 verification.md Status = Done | ❌ 讨论业务正确性(那是 Test Owner 的事) |
31
+ | 提出改进建议 | ❌ 勾选 AC 覆盖矩阵(那是 Test Owner 的事) |
32
+
33
+ ### 前置条件
34
+
35
+ - [ ] Test Owner 阶段 2 已完成(AC 矩阵已打勾)
36
+ - [ ] 测试全绿
37
+ - [ ] evidence/green-final/ 存在
38
+
39
+ ---
40
+
13
41
  ## 前置:配置发现(协议无关)
14
42
 
15
43
  - `<truth-root>`:当前真理目录根
@@ -144,7 +172,7 @@ override dispose() {
144
172
 
145
173
  | 条件 | 下一个 Skill | 原因 |
146
174
  |------|--------------|------|
147
- | 有 spec deltas | `devbooks-spec-gardener` | 归档前合并规格到真理 |
175
+ | 有 spec deltas | `devbooks-archiver` | 归档前合并规格到真理 |
148
176
  | 无 spec deltas | 归档完成 | 无需其他 skill |
149
177
  | 发现重大问题 | 交回 `devbooks-coder` | 归档前修复问题 |
150
178
 
@@ -164,7 +192,7 @@ Review 通过后,Reviewer 必须执行:
164
192
  ```markdown
165
193
  ## 推荐的下一步
166
194
 
167
- **下一步:`devbooks-spec-gardener`**(如果有 spec deltas)
195
+ **下一步:`devbooks-archiver`**(如果有 spec deltas)
168
196
 
169
197
  **归档完成**(如果无 spec deltas)
170
198
 
@@ -172,7 +200,7 @@ Review 通过后,Reviewer 必须执行:
172
200
 
173
201
  ### 如何调用(如果有 spec deltas)
174
202
  ```
175
- 运行 devbooks-spec-gardener skill 处理变更 <change-id>
203
+ 运行 devbooks-archiver skill 处理变更 <change-id>
176
204
  ```
177
205
  ```
178
206
 
@@ -12,6 +12,40 @@ allowed-tools:
12
12
 
13
13
  # DevBooks:实现负责人(Coder)
14
14
 
15
+ ## 工作流位置感知(Workflow Position Awareness)
16
+
17
+ > **核心原则**:Coder 在 Test Owner 阶段 1 之后执行,完成后交给 Test Owner 阶段 2 验证。
18
+
19
+ ### 我在整体工作流中的位置
20
+
21
+ ```
22
+ proposal → design → test-owner(阶段1) → [Coder] → test-owner(阶段2) → code-review → archive
23
+
24
+ 实现代码、让测试变绿
25
+ ```
26
+
27
+ ### Coder 的职责边界
28
+
29
+ | 允许 | 禁止 |
30
+ |------|------|
31
+ | 修改 `src/**` 代码 | ❌ 修改 `tests/**` |
32
+ | 勾选 `tasks.md` 任务项 | ❌ 修改 `verification.md` |
33
+ | 记录偏离到 `deviation-log.md` | ❌ 勾选 AC 覆盖矩阵 |
34
+ | 运行测试验证 | ❌ 设置 verification.md Status |
35
+
36
+ ### Coder 完成后的流程
37
+
38
+ 1. **任务完成**:tasks.md 全部 `[x]`
39
+ 2. **测试全绿**:运行 `npm test` 确认通过
40
+ 3. **交付 Test Owner**:通知 Test Owner 进入阶段 2 验证
41
+ 4. **等待验证结果**:
42
+ - Test Owner 确认全绿 → 进入 Code Review
43
+ - Test Owner 发现问题 → Coder 修复
44
+
45
+ **关键提醒**:Coder 完成后,**不是直接进入 Code Review**,而是先让 Test Owner 验证并打勾。
46
+
47
+ ---
48
+
15
49
  ## 前置:配置发现(协议无关)
16
50
 
17
51
  - `<truth-root>`:当前真理目录根
@@ -334,8 +368,8 @@ fi
334
368
 
335
369
  | 我的状态 | 下一步 | 原因 |
336
370
  |----------|--------|------|
337
- | COMPLETED | `devbooks-code-review` | 评审可读性/一致性 |
338
- | COMPLETED_WITH_DEVIATION | `devbooks-design-backport` | 先回写设计,再评审 |
371
+ | COMPLETED | `devbooks-test-owner`(阶段 2 验证) | 任务完成,需要 Test Owner 验证并打勾 |
372
+ | COMPLETED_WITH_DEVIATION | `devbooks-design-backport` | 先回写设计,再让 Test Owner 验证 |
339
373
  | HANDOFF (测试问题) | `devbooks-test-owner` | Coder 不能修改测试 |
340
374
  | BLOCKED | 等待用户 | 记录断点区 |
341
375
  | FAILED | 修复后重试 | 分析失败原因 |
@@ -344,6 +378,7 @@ fi
344
378
  - Coder **永远不能修改** `tests/**`
345
379
  - 如发现测试问题,必须 HANDOFF 给 Test Owner(单独会话)
346
380
  - 如有偏离,必须先 design-backport 再继续
381
+ - **Coder 完成后必须先经过 Test Owner 阶段 2 验证,再进入 Code Review**
347
382
 
348
383
  ---
349
384
 
@@ -28,6 +28,58 @@ allowed-tools:
28
28
  - 禁止猜测目录根
29
29
  - 禁止跳过规则文档阅读
30
30
 
31
+ ## 变更包命名规范(必须遵守)
32
+
33
+ 变更包 ID(change-id)**必须**遵循以下命名规范:
34
+
35
+ ### 格式
36
+
37
+ ```
38
+ <日期时间>-<动词开头的语义描述>
39
+ ```
40
+
41
+ ### 规则
42
+
43
+ | 组成部分 | 规则 | 示例 |
44
+ |----------|------|------|
45
+ | 日期时间 | `YYYYMMDD-HHMM` 格式 | `20240116-1030` |
46
+ | 分隔符 | 日期时间与语义之间用 `-` 分隔 | `-` |
47
+ | 语义描述 | **必须以动词开头**,使用小写和连字符 | `add-oauth2`, `fix-login-bug` |
48
+
49
+ ### 合法示例
50
+
51
+ ```bash
52
+ # ✅ 正确
53
+ 20240116-1030-add-oauth2-support
54
+ 20240116-1430-fix-user-auth-bug
55
+ 20240116-0900-refactor-payment-module
56
+ 20240115-2200-update-api-docs
57
+
58
+ # ❌ 错误
59
+ add-oauth2 # 缺少日期时间
60
+ 20240116-oauth2 # 语义不是动词开头
61
+ 2024-01-16-add-oauth2 # 日期格式错误(不应有 -)
62
+ oauth2-20240116 # 顺序错误
63
+ ```
64
+
65
+ ### 常用动词
66
+
67
+ | 动词 | 用途 |
68
+ |------|------|
69
+ | `add` | 添加新功能 |
70
+ | `fix` | 修复缺陷 |
71
+ | `update` | 更新现有功能 |
72
+ | `refactor` | 重构代码 |
73
+ | `remove` | 删除功能 |
74
+ | `improve` | 改进性能/体验 |
75
+ | `migrate` | 迁移数据/系统 |
76
+
77
+ ### 为什么这样命名?
78
+
79
+ 1. **时间戳在前**:归档目录中自动按时间排序
80
+ 2. **动词开头**:清晰表达变更意图,方便代码审查
81
+ 3. **小写连字符**:避免跨平台文件名问题
82
+
31
83
  ## 参考骨架(按需读取)
32
84
 
33
85
  - 工作流:`references/交付验收工作流.md`
@@ -237,8 +237,8 @@ change-check.sh <change-id> --mode strict --project-root "$(pwd)" --change-root
237
237
  - 更新编码计划的进度表(只以锚点结果为准)
238
238
  - 更新价值流与度量口径:把本次“价值信号/排队点/稳定性指标”的证据链接写回 `verification.md`(建议落到 `evidence/`)
239
239
  - 若发现“计划错误/设计遗漏”:在下一版本修正 Design Doc / ADR,而不是靠口头约定
240
- - 活文档修剪(Spec Gardening):
241
- - 使用 `devbooks-spec-gardener` Skill 执行
240
+ - 活文档修剪(Archiving):
241
+ - 使用 `devbooks-archiver` Skill 执行
242
242
  - 去重合并:合并相似/重叠的 spec,避免追加式堆叠
243
243
  - 目录整理:按业务能力整理到 `<truth-root>/<capability>/`
244
244
  - 删除过时:被新功能替代的 spec 必须删除
@@ -11,6 +11,40 @@ allowed-tools:
11
11
 
12
12
  # DevBooks:回写设计文档(Design Backport)
13
13
 
14
+ ## 工作流位置感知(Workflow Position Awareness)
15
+
16
+ > **核心原则**:Design Backport 现在**主要由 Archiver 在归档阶段自动调用**,用户通常不需要手动调用。
17
+
18
+ ### 我在整体工作流中的位置
19
+
20
+ ```
21
+ proposal → design → test-owner → coder → test-owner(验证) → code-review → [Archive/Archiver]
22
+ ↓ ↓
23
+ 记录偏离到 deviation-log.md 自动调用 design-backport
24
+ ```
25
+
26
+ ### 设计决策:自动回写
27
+
28
+ **旧流程**(需手动判断):
29
+ ```
30
+ coder 有偏离 → 用户手动调用 design-backport → 再归档
31
+ ```
32
+
33
+ **新流程**(自动处理):
34
+ ```
35
+ coder 有偏离 → 归档时 archiver 自动检测并回写 → 归档
36
+ ```
37
+
38
+ ### 何时仍需手动调用
39
+
40
+ | 场景 | 是否需要手动调用 |
41
+ |------|------------------|
42
+ | 正常流程(偏离记录在 deviation-log.md) | ❌ 归档时自动处理 |
43
+ | 需要立即回写(不等归档) | ✅ 手动调用 |
44
+ | 设计与实现严重冲突需要决策 | ✅ 手动调用并讨论 |
45
+
46
+ ---
47
+
14
48
  ## 前置:配置发现(协议无关)
15
49
 
16
50
  - `<truth-root>`:当前真理目录根
@@ -11,6 +11,28 @@ allowed-tools:
11
11
 
12
12
  # DevBooks:设计文档(Design Doc)
13
13
 
14
+ ## 工作流位置感知(Workflow Position Awareness)
15
+
16
+ > **核心原则**:Design Doc 在 Proposal 批准后执行,是实现阶段的起点。
17
+
18
+ ### 我在整体工作流中的位置
19
+
20
+ ```
21
+ proposal → [Design Doc] → spec-contract → implementation-plan → test-owner → coder → ...
22
+
23
+ 定义 What/Constraints/AC
24
+ ```
25
+
26
+ ### Design Doc 的产出
27
+
28
+ - **What**:做什么(不是怎么做)
29
+ - **Constraints**:约束条件
30
+ - **AC-xxx**:验收标准(可测试的)
31
+
32
+ **关键**:Design Doc 不写实现步骤,那是 implementation-plan 的职责。
33
+
34
+ ---
35
+
14
36
  ## 前置:配置发现(协议无关)
15
37
 
16
38
  - `<truth-root>`:当前真理目录根
@@ -78,7 +100,7 @@ allowed-tools:
78
100
 
79
101
  设计文档中**必须**包含「架构影响」章节,声明本次变更对系统架构的影响。这是确保架构变更走验证闭环的关键机制。
80
102
 
81
- > **设计决策**:C4 架构变更不再由独立的 `devbooks-c4-map` skill 直接写入真理目录,而是作为 design.md 的一部分,在变更验收通过后由 `devbooks-spec-gardener` 合并到真理。
103
+ > **设计决策**:C4 架构变更不再由独立的 `devbooks-c4-map` skill 直接写入真理目录,而是作为 design.md 的一部分,在变更验收通过后由 `devbooks-archiver` 合并到真理。
82
104
 
83
105
  ### 模板
84
106
 
@@ -11,6 +11,42 @@ allowed-tools:
11
11
 
12
12
  # DevBooks:编码计划(Implementation Plan)
13
13
 
14
+ ## 工作流位置感知(Workflow Position Awareness)
15
+
16
+ > **核心原则**:Implementation Plan 在 Design Doc 之后执行,为 Test Owner 和 Coder 提供任务清单。
17
+
18
+ ### 我在整体工作流中的位置
19
+
20
+ ```
21
+ proposal → design → [Implementation Plan] → test-owner(阶段1) → coder → ...
22
+
23
+ tasks.md(任务清单)
24
+ ```
25
+
26
+ ### Implementation Plan 的职责
27
+
28
+ | 允许 | 禁止 |
29
+ |------|------|
30
+ | 从 design.md 推导任务 | ❌ 参考 tests/(避免实现偏见) |
31
+ | 绑定验收锚点 (AC-xxx) | ❌ 写实现代码 |
32
+ | 拆分并行任务 | ❌ 执行任务 |
33
+
34
+ ### 产出:tasks.md 结构
35
+
36
+ ```markdown
37
+ ## 主线计划区
38
+ - [ ] MP1.1 任务描述 (AC-001)
39
+ - [ ] MP1.2 任务描述 (AC-002)
40
+
41
+ ## 临时计划区
42
+ (紧急任务)
43
+
44
+ ## 断点区
45
+ (中断续做信息)
46
+ ```
47
+
48
+ ---
49
+
14
50
  ## 前置:配置发现(协议无关)
15
51
 
16
52
  - `<truth-root>`:当前真理目录根
@@ -195,7 +195,7 @@ skill 列表:
195
195
  - **风险/争议/取舍明显**:`devbooks-proposal-challenger` + `devbooks-proposal-judge`(独立对话,对辩后写回 Decision Log)
196
196
  - **对外行为/契约/数据不变量变化**:`devbooks-spec-contract` → `(<change-root>/<change-id>/specs/**)` + `design.md` Contract 章节
197
197
  - 若需要"确定性创建 spec delta 文件/避免路径写错":`change-spec-delta-scaffold.sh <change-id> <capability> ...`
198
- - **模块边界/依赖方向/架构形态变化**:确保 `devbooks-design-doc` 输出完整的 Architecture Impact 章节 → 归档时由 `devbooks-spec-gardener` 合并到 `(<truth-root>/architecture/c4.md)`
198
+ - **模块边界/依赖方向/架构形态变化**:确保 `devbooks-design-doc` 输出完整的 Architecture Impact 章节 → 归档时由 `devbooks-archiver` 合并到 `(<truth-root>/architecture/c4.md)`
199
199
 
200
200
  硬约束提醒:
201
201
  - proposal 阶段禁止写实现代码;实现发生在 apply 阶段并以测试/闸门为完成判据。
@@ -251,7 +251,7 @@ LSC(大规模同质化修改)建议:
251
251
  触发信号:用户说"归档/合并 specs/关账/收尾"等。
252
252
 
253
253
  默认路由:
254
- - 若本次产生了 spec delta:`devbooks-spec-gardener`(先修剪 `<truth-root>/**` 再归档合并)
254
+ - 若本次产生了 spec delta:`devbooks-archiver`(先修剪 `<truth-root>/**` 再归档合并)
255
255
  - 若需要回写设计决策:`devbooks-design-backport`(按需)
256
256
  - 若影响用户文档:`devbooks-docs-sync`(确保文档与代码一致)
257
257
 
@@ -302,7 +302,7 @@ LSC(大规模同质化修改)建议:
302
302
 
303
303
  ## DevBooks Skill 适配
304
304
 
305
- DevBooks 使用 `devbooks-proposal-author skill`、`devbooks-test-owner/coder skill`、`devbooks-spec-gardener skill` 作为入口。
305
+ DevBooks 使用 `devbooks-proposal-author skill`、`devbooks-test-owner/coder skill`、`devbooks-archiver skill` 作为入口。
306
306
  按上述 A/B/C/D 路由即可,产物路径以项目指路牌里 `<truth-root>/<change-root>` 的映射为准。
307
307
 
308
308
  ---
@@ -12,6 +12,46 @@ allowed-tools:
12
12
 
13
13
  # DevBooks:测试负责人(Test Owner)
14
14
 
15
+ ## 工作流位置感知(Workflow Position Awareness)
16
+
17
+ > **核心原则**:Test Owner 在整体工作流中承担**双阶段职责**,确保与 Coder 的角色隔离。
18
+
19
+ ### 我在整体工作流中的位置
20
+
21
+ ```
22
+ proposal → design → [Test Owner 阶段1] → coder → [Test Owner 阶段2] → code-review → archive
23
+ ↓ ↓
24
+ Red 基线产出 Green 验证 + 打勾
25
+ ```
26
+
27
+ ### Test Owner 的双阶段职责
28
+
29
+ | 阶段 | 触发时机 | 核心职责 | 产出 |
30
+ |------|----------|----------|------|
31
+ | **阶段 1:Red 基线** | design.md 完成后 | 编写测试、产出失败证据 | verification.md (Status=Ready)、Red 基线 |
32
+ | **阶段 2:Green 验证** | Coder 完成后 | 验证测试通过、勾选 AC 覆盖矩阵 | AC 矩阵打勾、Status 保持 Ready(等 Reviewer 设 Done) |
33
+
34
+ ### 阶段 2 详细职责(关键!)
35
+
36
+ 当用户说"Coder 完成了,请验证"或类似请求时,Test Owner 进入**阶段 2**:
37
+
38
+ 1. **运行全部测试**:执行 `npm test` 或项目测试命令
39
+ 2. **验证 Green 状态**:确认所有测试通过
40
+ 3. **勾选 AC 覆盖矩阵**:在 verification.md 的 AC 覆盖矩阵中将 `[ ]` 改为 `[x]`
41
+ 4. **收集 Green 证据**:保存到 `evidence/green-final/`
42
+ 5. **输出验证报告**:总结测试结果和覆盖情况
43
+
44
+ ### AC 覆盖矩阵复选框权限(重要!)
45
+
46
+ | 复选框位置 | 谁可以勾选 | 勾选时机 |
47
+ |------------|-----------|----------|
48
+ | AC 覆盖矩阵中的 `[ ]` | **Test Owner** | 阶段 2 验证 Green 状态后 |
49
+ | Status 字段 `Done` | Reviewer | Code Review 通过后 |
50
+
51
+ **禁止**:Coder 不能勾选 AC 覆盖矩阵,不能修改 verification.md。
52
+
53
+ ---
54
+
15
55
  ## 前置:配置发现(协议无关)
16
56
 
17
57
  - `<truth-root>`:当前真理目录根
@@ -339,28 +379,53 @@ devbooks change-evidence <change-id> --label red-baseline -- npm test
339
379
 
340
380
  ## 完成状态与下一步路由
341
381
 
342
- ### 完成状态分类(MECE)
382
+ ### 阶段感知(关键!)
383
+
384
+ Test Owner 有两个阶段,完成状态因阶段而异:
385
+
386
+ | 当前阶段 | 如何判断 | 完成后下一步 |
387
+ |----------|----------|--------------|
388
+ | **阶段 1** | verification.md 不存在或 Red 基线未产出 | → Coder |
389
+ | **阶段 2** | 用户说"验证/打勾"且 Coder 已完成 | → Code Review |
390
+
391
+ ### 阶段 1 完成状态分类(MECE)
343
392
 
344
393
  | 状态码 | 状态 | 判定条件 | 下一步 |
345
394
  |:------:|------|----------|--------|
346
- | ✅ | COMPLETED | Red 基线产出,无偏离 | `devbooks-coder`(单独会话) |
347
- | ⚠️ | COMPLETED_WITH_DEVIATION | Red 基线产出,deviation-log 有未回写记录 | `devbooks-design-backport` |
395
+ | ✅ | PHASE1_COMPLETED | Red 基线产出,无偏离 | `devbooks-coder`(单独会话) |
396
+ | ⚠️ | PHASE1_COMPLETED_WITH_DEVIATION | Red 基线产出,deviation-log 有未回写记录 | `devbooks-design-backport` |
348
397
  | ❌ | BLOCKED | 需要外部输入/决策 | 记录断点,等待用户 |
349
398
  | 💥 | FAILED | 测试框架问题等 | 修复后重试 |
350
399
 
351
- ### 状态判定流程
400
+ ### 阶段 2 完成状态分类(MECE)
352
401
 
353
- ```
354
- 1. 检查 deviation-log.md 是否有 "| ❌" 记录
355
- 有:COMPLETED_WITH_DEVIATION
402
+ | 状态码 | 状态 | 判定条件 | 下一步 |
403
+ |:------:|------|----------|--------|
404
+ | ✅ | PHASE2_VERIFIED | 测试全绿,AC 矩阵已打勾 | `devbooks-code-review` |
405
+ | ❌ | PHASE2_FAILED | 测试未通过 | 通知 Coder 修复,或 HANDOFF |
406
+ | 🔄 | PHASE2_HANDOFF | 发现测试本身有问题 | 修复测试后重新验证 |
356
407
 
357
- 2. 检查 Red 基线是否产出
358
- - verification.md 存在且有追溯矩阵
359
- - evidence/red-baseline/ 存在
360
- → 否:BLOCKED 或 FAILED
408
+ ### 阶段判定流程
361
409
 
362
- 3. 以上都通过
363
- COMPLETED
410
+ ```
411
+ 1. 检查当前处于哪个阶段:
412
+ - verification.md 不存在 → 阶段 1
413
+ - verification.md 存在但 AC 矩阵全是 [ ] → 阶段 1 或 阶段 2(看用户请求)
414
+ - 用户明确说"验证/打勾/Coder 完成了" → 阶段 2
415
+
416
+ 2. 阶段 1 状态判定:
417
+ a. 检查 deviation-log.md 是否有 "| ❌" 记录
418
+ → 有:PHASE1_COMPLETED_WITH_DEVIATION
419
+ b. 检查 Red 基线是否产出
420
+ → 否:BLOCKED 或 FAILED
421
+ c. 以上都通过 → PHASE1_COMPLETED
422
+
423
+ 3. 阶段 2 状态判定:
424
+ a. 运行测试,检查是否全绿
425
+ → 否:PHASE2_FAILED
426
+ b. 检查测试本身是否有问题
427
+ → 是:PHASE2_HANDOFF
428
+ c. 全绿且无问题 → PHASE2_VERIFIED
364
429
  ```
365
430
 
366
431
  ### 路由输出模板(必须使用)
@@ -370,15 +435,21 @@ devbooks change-evidence <change-id> --label red-baseline -- npm test
370
435
  ```markdown
371
436
  ## 完成状态
372
437
 
373
- **状态**:✅ COMPLETED / ⚠️ COMPLETED_WITH_DEVIATION / ❌ BLOCKED / 💥 FAILED
438
+ **阶段**:阶段 1(Red 基线)/ 阶段 2(Green 验证)
439
+
440
+ **状态**:✅ PHASE1_COMPLETED / ✅ PHASE2_VERIFIED / ⚠️ ... / ❌ ... / 💥 ...
441
+
442
+ **Red 基线**:已产出 / 未完成(仅阶段 1)
443
+
444
+ **Green 验证**:全绿 / 有失败(仅阶段 2)
374
445
 
375
- **Red 基线**:已产出 / 未完成
446
+ **AC 矩阵**:已打勾 N/M / 未打勾(仅阶段 2)
376
447
 
377
448
  **偏离记录**:有 N 条待回写 / 无
378
449
 
379
450
  ## 下一步
380
451
 
381
- **推荐**:`devbooks-xxx skill`(单独会话)
452
+ **推荐**:`devbooks-xxx skill`
382
453
 
383
454
  **原因**:[具体原因]
384
455
 
@@ -390,8 +461,11 @@ devbooks change-evidence <change-id> --label red-baseline -- npm test
390
461
 
391
462
  | 我的状态 | 下一步 | 原因 |
392
463
  |----------|--------|------|
393
- | COMPLETED | `devbooks-coder`(单独会话) | Red 基线已产出,Coder 实现以变绿 |
394
- | COMPLETED_WITH_DEVIATION | `devbooks-design-backport` | 先回写设计,再交给 Coder |
464
+ | PHASE1_COMPLETED | `devbooks-coder`(单独会话) | Red 基线已产出,Coder 实现以变绿 |
465
+ | PHASE1_COMPLETED_WITH_DEVIATION | `devbooks-design-backport` | 先回写设计,再交给 Coder |
466
+ | PHASE2_VERIFIED | `devbooks-code-review` | 测试全绿,可以进入代码评审 |
467
+ | PHASE2_FAILED | 通知 Coder | 测试未通过,需要 Coder 修复 |
468
+ | PHASE2_HANDOFF | 修复测试 | 测试本身有问题,Test Owner 修复 |
395
469
  | BLOCKED | 等待用户 | 记录断点区 |
396
470
  | FAILED | 修复后重试 | 分析失败原因 |
397
471
 
@@ -399,6 +473,7 @@ devbooks change-evidence <change-id> --label red-baseline -- npm test
399
473
  - **角色隔离**:Coder 必须在**单独的会话/实例**中工作
400
474
  - Test Owner 和 Coder 不能共享同一会话上下文
401
475
  - 如有偏离,必须先 design-backport 再交给 Coder
476
+ - **阶段 2 的 AC 矩阵打勾只能由 Test Owner 执行**
402
477
 
403
478
  ---
404
479
 
@@ -160,7 +160,7 @@ DevBooks 使用两个目录根:
160
160
  **4. Archive 阶段**
161
161
 
162
162
  ```
163
- 请运行 devbooks-spec-gardener skill,变更 ID:add-oauth2
163
+ 请运行 devbooks-archiver skill,变更 ID:add-oauth2
164
164
  ```
165
165
 
166
166
  ---
@@ -199,7 +199,7 @@ DevBooks 使用两个目录根:
199
199
 
200
200
  | Skill | 说明 |
201
201
  |-------|------|
202
- | `devbooks-spec-gardener` | 规格维护与去重 |
202
+ | `devbooks-archiver` | 规格维护与去重 |
203
203
  | `devbooks-delivery-workflow` | 完整交付闭环 |
204
204
 
205
205
  ### 独立技能
@@ -132,7 +132,7 @@ change_root: dev-playbooks/changes/ # 变更包目录根
132
132
  | Test Owner | `devbooks-test-owner` | `verification.md` + `tests/` |
133
133
  | Coder | `devbooks-coder` | 按 tasks 实现(禁止改 tests) |
134
134
  | Reviewer | `devbooks-code-review` | 评审意见 |
135
- | Spec Gardener | `devbooks-spec-gardener` | 归档修剪 + C4 合并 |
135
+ | Archiver | `devbooks-archiver` | 归档修剪 + C4 合并 |
136
136
  | Design Backport | `devbooks-design-backport` | 回写设计缺口 |
137
137
 
138
138
  ### 按工作流
@@ -115,7 +115,7 @@
115
115
  <text x="125" y="95" font-family="Arial, sans-serif" font-size="12" fill="#4a5568" text-anchor="middle">Code Review</text>
116
116
 
117
117
  <rect x="20" y="120" width="210" height="40" rx="8" fill="white" stroke="#8e2de2" stroke-width="2"/>
118
- <text x="125" y="145" font-family="Arial, sans-serif" font-size="12" fill="#4a5568" text-anchor="middle">Spec Gardener</text>
118
+ <text x="125" y="145" font-family="Arial, sans-serif" font-size="12" fill="#4a5568" text-anchor="middle">Archiver</text>
119
119
 
120
120
  <rect x="20" y="170" width="210" height="40" rx="8" fill="white" stroke="#8e2de2" stroke-width="2"/>
121
121
  <text x="125" y="195" font-family="Arial, sans-serif" font-size="12" fill="#4a5568" text-anchor="middle">合并到 truth-root</text>
@@ -197,7 +197,7 @@
197
197
  <tspan>Test Owner 与 Coder 必须独立对话。"完成"由测试/构建证据定义,而非 AI 自我声明。</tspan>
198
198
  </text>
199
199
  <text x="0" y="35" font-family="Arial, sans-serif" font-size="10" fill="#a0aec0">
200
- <tspan>Skills: devbooks-proposal-author → devbooks-design-doc → devbooks-implementation-plan → devbooks-test-owner → devbooks-coder → devbooks-code-review → devbooks-spec-gardener</tspan>
200
+ <tspan>Skills: devbooks-proposal-author → devbooks-design-doc → devbooks-implementation-plan → devbooks-test-owner → devbooks-coder → devbooks-code-review → devbooks-archiver</tspan>
201
201
  </text>
202
202
  </g>
203
203
  </svg>
@@ -1,128 +0,0 @@
1
- ---
2
- name: devbooks-spec-gardener
3
- description: devbooks-spec-gardener:归档前修剪与维护 <truth-root>(去重合并/删除过时/目录整理/一致性修复),避免 specs 堆叠失控。用户说"规格园丁/specs 去重合并/归档前整理/清理过时规范",或在 DevBooks archive/归档前收尾时使用。
4
- allowed-tools:
5
- - Glob
6
- - Grep
7
- - Read
8
- - Write
9
- - Edit
10
- ---
11
-
12
- # DevBooks:规格园丁(Spec Gardener)
13
-
14
- ## 前置:配置发现(协议无关)
15
-
16
- - `<truth-root>`:当前真理目录根
17
- - `<change-root>`:变更包目录根
18
-
19
- 执行前**必须**按以下顺序查找配置(找到后停止):
20
- 1. `.devbooks/config.yaml`(如存在)→ 解析并使用其中的映射
21
- 2. `dev-playbooks/project.md`(如存在)→ DevBooks 2.0 协议,使用默认映射
22
- 3. `project.md`(如存在)→ template 协议,使用默认映射
23
- 4. 若仍无法确定 → **停止并询问用户**
24
-
25
- **关键约束**:
26
- - 如果配置中指定了 `agents_doc`(规则文档),**必须先阅读该文档**再执行任何操作
27
- - 禁止猜测目录根
28
- - 禁止跳过规则文档阅读
29
-
30
- ---
31
-
32
- ## 核心职责
33
-
34
- ### 1. 规格合并与维护
35
-
36
- 在归档阶段,将变更包中的规格产物合并到 `<truth-root>`:
37
-
38
- | 源路径 | 目标路径 | 合并策略 |
39
- |--------|----------|----------|
40
- | `<change-root>/<change-id>/specs/**` | `<truth-root>/specs/**` | 增量合并 |
41
- | `<change-root>/<change-id>/contracts/**` | `<truth-root>/contracts/**` | 版本化合并 |
42
-
43
- ### 2. C4 架构地图合并(新增)
44
-
45
- > **设计决策**:C4 架构变更现在通过 design.md 的 Architecture Impact 章节记录,由 spec-gardener 在归档时合并到真理。
46
-
47
- 在归档阶段,检测并合并架构变更:
48
-
49
- | 检测源 | 目标路径 | 合并逻辑 |
50
- |--------|----------|----------|
51
- | `<change-root>/<change-id>/design.md` 的 "Architecture Impact" 章节 | `<truth-root>/architecture/c4.md` | 增量更新 |
52
-
53
- **C4 合并流程**:
54
-
55
- 1. **检测架构变更**:解析 `design.md` 中的 "Architecture Impact" 章节
56
- 2. **判断是否需要合并**:
57
- - 若 "无架构变更" 被勾选 → 跳过合并
58
- - 若 "有架构变更" → 执行合并
59
- 3. **执行合并**:
60
- - 读取 `<truth-root>/architecture/c4.md`(若不存在则创建)
61
- - 根据 Architecture Impact 中的变更描述更新对应章节
62
- - 更新 Container/Component 表格
63
- - 更新依赖关系
64
- - 更新分层约束(如有变更)
65
- 4. **记录合并日志**:在 c4.md 末尾添加变更记录
66
-
67
- **合并输出格式**(追加到 c4.md):
68
-
69
- ```markdown
70
- ## Change History
71
-
72
- | Date | Change ID | Impact Summary |
73
- |------|-----------|----------------|
74
- | <date> | <change-id> | <brief description of architecture changes> |
75
- ```
76
-
77
- ### 3. 去重与清理
78
-
79
- 在维护模式下执行:
80
-
81
- - 检测重复的规格定义
82
- - 清理过时/废弃的规格
83
- - 整理目录结构
84
- - 修复一致性问题
85
-
86
- ## 执行方式
87
-
88
- 1) 先阅读并遵守:`_shared/references/通用守门协议.md`(可验证性 + 结构质量守门)。
89
- 2) 严格按完整提示词执行:`references/规格园丁提示词.md`。
90
-
91
- ---
92
-
93
- ## 上下文感知
94
-
95
- 本 Skill 在执行前自动检测上下文,选择合适的维护模式。
96
-
97
- 检测规则参考:`skills/_shared/context-detection-template.md`
98
-
99
- ### 检测流程
100
-
101
- 1. 检测 `<truth-root>/` 目录状态
102
- 2. 若提供 change-id,检测变更包归档条件
103
- 3. 检测重复/过时规格
104
-
105
- ### 本 Skill 支持的模式
106
-
107
- | 模式 | 触发条件 | 行为 |
108
- |------|----------|------|
109
- | **归档模式** | 提供 change-id 且闸门通过 | 将变更包产物合并到 truth-root |
110
- | **维护模式** | 无 change-id | 执行去重、清理、整理操作 |
111
- | **检查模式** | 带 --dry-run 参数 | 只输出建议,不实际修改 |
112
-
113
- ### 检测输出示例
114
-
115
- ```
116
- 检测结果:
117
- - truth-root:存在,包含 12 个 spec 文件
118
- - 变更包:存在,闸门全绿
119
- - 运行模式:归档模式
120
- ```
121
-
122
- ---
123
-
124
- ## MCP 增强
125
-
126
- 本 Skill 不依赖 MCP 服务,无需运行时检测。
127
-
128
- MCP 增强规则参考:`skills/_shared/mcp-enhancement-template.md`