dev-playbooks-cn 1.2.6 → 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 (21) 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 +3 -3
  12. package/skills/devbooks-delivery-workflow/SKILL.md +52 -0
  13. 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
  14. package/skills/devbooks-design-backport/SKILL.md +3 -3
  15. package/skills/devbooks-design-doc/SKILL.md +1 -1
  16. package/skills/devbooks-router/SKILL.md +3 -3
  17. package/templates/dev-playbooks/README.md +2 -2
  18. package/templates/dev-playbooks/docs/DevBooks/351/205/215/347/275/256/346/214/207/345/215/227.md +1 -1
  19. package/templates/dev-playbooks/docs/workflow-diagram.svg +2 -2
  20. package/skills/devbooks-spec-gardener/SKILL.md +0 -227
  21. /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.6",
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
 
@@ -172,7 +172,7 @@ override dispose() {
172
172
 
173
173
  | 条件 | 下一个 Skill | 原因 |
174
174
  |------|--------------|------|
175
- | 有 spec deltas | `devbooks-spec-gardener` | 归档前合并规格到真理 |
175
+ | 有 spec deltas | `devbooks-archiver` | 归档前合并规格到真理 |
176
176
  | 无 spec deltas | 归档完成 | 无需其他 skill |
177
177
  | 发现重大问题 | 交回 `devbooks-coder` | 归档前修复问题 |
178
178
 
@@ -192,7 +192,7 @@ Review 通过后,Reviewer 必须执行:
192
192
  ```markdown
193
193
  ## 推荐的下一步
194
194
 
195
- **下一步:`devbooks-spec-gardener`**(如果有 spec deltas)
195
+ **下一步:`devbooks-archiver`**(如果有 spec deltas)
196
196
 
197
197
  **归档完成**(如果无 spec deltas)
198
198
 
@@ -200,7 +200,7 @@ Review 通过后,Reviewer 必须执行:
200
200
 
201
201
  ### 如何调用(如果有 spec deltas)
202
202
  ```
203
- 运行 devbooks-spec-gardener skill 处理变更 <change-id>
203
+ 运行 devbooks-archiver skill 处理变更 <change-id>
204
204
  ```
205
205
  ```
206
206
 
@@ -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 必须删除
@@ -13,12 +13,12 @@ allowed-tools:
13
13
 
14
14
  ## 工作流位置感知(Workflow Position Awareness)
15
15
 
16
- > **核心原则**:Design Backport 现在**主要由 Spec Gardener 在归档阶段自动调用**,用户通常不需要手动调用。
16
+ > **核心原则**:Design Backport 现在**主要由 Archiver 在归档阶段自动调用**,用户通常不需要手动调用。
17
17
 
18
18
  ### 我在整体工作流中的位置
19
19
 
20
20
  ```
21
- proposal → design → test-owner → coder → test-owner(验证) → code-review → [Archive/Spec Gardener]
21
+ proposal → design → test-owner → coder → test-owner(验证) → code-review → [Archive/Archiver]
22
22
  ↓ ↓
23
23
  记录偏离到 deviation-log.md 自动调用 design-backport
24
24
  ```
@@ -32,7 +32,7 @@ coder 有偏离 → 用户手动调用 design-backport → 再归档
32
32
 
33
33
  **新流程**(自动处理):
34
34
  ```
35
- coder 有偏离 → 归档时 spec-gardener 自动检测并回写 → 归档
35
+ coder 有偏离 → 归档时 archiver 自动检测并回写 → 归档
36
36
  ```
37
37
 
38
38
  ### 何时仍需手动调用
@@ -100,7 +100,7 @@ proposal → [Design Doc] → spec-contract → implementation-plan → test-own
100
100
 
101
101
  设计文档中**必须**包含「架构影响」章节,声明本次变更对系统架构的影响。这是确保架构变更走验证闭环的关键机制。
102
102
 
103
- > **设计决策**:C4 架构变更不再由独立的 `devbooks-c4-map` skill 直接写入真理目录,而是作为 design.md 的一部分,在变更验收通过后由 `devbooks-spec-gardener` 合并到真理。
103
+ > **设计决策**:C4 架构变更不再由独立的 `devbooks-c4-map` skill 直接写入真理目录,而是作为 design.md 的一部分,在变更验收通过后由 `devbooks-archiver` 合并到真理。
104
104
 
105
105
  ### 模板
106
106
 
@@ -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
  ---
@@ -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,227 +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
- ## 工作流位置感知(Workflow Position Awareness)
15
-
16
- > **核心原则**:Spec Gardener 是归档阶段的终点,负责将变更包产物合并到真理,**并自动处理任何未完成的回写**。
17
-
18
- ### 我在整体工作流中的位置
19
-
20
- ```
21
- proposal → design → test-owner → coder → test-owner(验证) → code-review → [Spec Gardener/Archive]
22
-
23
- 自动回写 + 合并到真理 + 归档
24
- ```
25
-
26
- ### Spec Gardener 的职责
27
-
28
- 1. **自动回写检测**:检查 deviation-log.md 是否有未回写记录
29
- 2. **自动执行回写**:如有未回写记录,自动执行设计回写
30
- 3. **合并到真理**:将 specs/contracts/architecture 合并到 truth-root
31
- 4. **归档变更包**:设置 verification.md Status = Archived
32
-
33
- ### 为什么在归档阶段自动回写?
34
-
35
- **设计决策**:用户只需线性调用 skills,不需要判断是否需要回写。
36
-
37
- | 场景 | 旧设计(需手动判断) | 新设计(自动处理) |
38
- |------|---------------------|-------------------|
39
- | Coder 有偏离 | 用户需调用 design-backport → 再归档 | Spec Gardener 自动检测并回写 |
40
- | Coder 无偏离 | 直接归档 | 直接归档 |
41
-
42
- ---
43
-
44
- ## 前置:配置发现(协议无关)
45
-
46
- - `<truth-root>`:当前真理目录根
47
- - `<change-root>`:变更包目录根
48
-
49
- 执行前**必须**按以下顺序查找配置(找到后停止):
50
- 1. `.devbooks/config.yaml`(如存在)→ 解析并使用其中的映射
51
- 2. `dev-playbooks/project.md`(如存在)→ DevBooks 2.0 协议,使用默认映射
52
- 3. `project.md`(如存在)→ template 协议,使用默认映射
53
- 4. 若仍无法确定 → **停止并询问用户**
54
-
55
- **关键约束**:
56
- - 如果配置中指定了 `agents_doc`(规则文档),**必须先阅读该文档**再执行任何操作
57
- - 禁止猜测目录根
58
- - 禁止跳过规则文档阅读
59
-
60
- ---
61
-
62
- ## 核心职责
63
-
64
- ### 0. 自动回写检测与处理(归档前必做)
65
-
66
- > **设计决策**:归档阶段自动处理所有未回写的偏离,用户无需手动调用 design-backport。
67
-
68
- **检测流程**:
69
-
70
- ```
71
- 1. 读取 <change-root>/<change-id>/deviation-log.md
72
- 2. 检查是否有 "| ❌" 未回写记录
73
- → 有:执行自动回写(步骤 3-5)
74
- → 无:跳过,直接进入合并阶段
75
-
76
- 3. 对每条未回写记录,判断是否为 Design-level 内容:
77
- - DESIGN_GAP, CONSTRAINT_CHANGE, API_CHANGE → 需要回写
78
- - 纯实现细节(文件名/类名/临时步骤) → 不回写,标记为 IMPL_ONLY
79
-
80
- 4. 执行设计回写:
81
- - 读取 design.md
82
- - 按 design-backport 协议的"可回写内容范围"更新
83
- - 在 design.md 末尾添加变更记录
84
-
85
- 5. 更新 deviation-log.md:
86
- - 将已回写的记录标记为 ✅
87
- - 记录回写时间和归档批次
88
- ```
89
-
90
- **自动回写的内容范围**(继承自 design-backport):
91
-
92
- | 可回写 | 不可回写 |
93
- |--------|----------|
94
- | 对外语义/用户可感知行为 | 具体文件路径、类名/函数名 |
95
- | 系统级不可变约束(Invariants) | PR 切分、任务执行顺序 |
96
- | 核心数据契约与演进策略 | 过细的算法伪代码 |
97
- | 跨阶段治理策略 | 脚本命令 |
98
- | 关键取舍与决策 | 表名/字段名 |
99
-
100
- **deviation-log.md 更新格式**:
101
-
102
- ```markdown
103
- | 时间 | 类型 | 描述 | 涉及文件 | 已回写 | 回写批次 |
104
- |------|------|------|----------|:------:|----------|
105
- | 2024-01-15 10:30 | DESIGN_GAP | 并发场景 | tests/... | ✅ | archive-2024-01-16 |
106
- | 2024-01-15 11:00 | IMPL_ONLY | 重命名变量 | src/... | ⏭️ | (跳过) |
107
- ```
108
-
109
- ### 1. 规格合并与维护
110
-
111
- 在归档阶段,将变更包中的规格产物合并到 `<truth-root>`:
112
-
113
- | 源路径 | 目标路径 | 合并策略 |
114
- |--------|----------|----------|
115
- | `<change-root>/<change-id>/specs/**` | `<truth-root>/specs/**` | 增量合并 |
116
- | `<change-root>/<change-id>/contracts/**` | `<truth-root>/contracts/**` | 版本化合并 |
117
-
118
- ### 2. C4 架构地图合并(新增)
119
-
120
- > **设计决策**:C4 架构变更现在通过 design.md 的 Architecture Impact 章节记录,由 spec-gardener 在归档时合并到真理。
121
-
122
- 在归档阶段,检测并合并架构变更:
123
-
124
- | 检测源 | 目标路径 | 合并逻辑 |
125
- |--------|----------|----------|
126
- | `<change-root>/<change-id>/design.md` 的 "Architecture Impact" 章节 | `<truth-root>/architecture/c4.md` | 增量更新 |
127
-
128
- **C4 合并流程**:
129
-
130
- 1. **检测架构变更**:解析 `design.md` 中的 "Architecture Impact" 章节
131
- 2. **判断是否需要合并**:
132
- - 若 "无架构变更" 被勾选 → 跳过合并
133
- - 若 "有架构变更" → 执行合并
134
- 3. **执行合并**:
135
- - 读取 `<truth-root>/architecture/c4.md`(若不存在则创建)
136
- - 根据 Architecture Impact 中的变更描述更新对应章节
137
- - 更新 Container/Component 表格
138
- - 更新依赖关系
139
- - 更新分层约束(如有变更)
140
- 4. **记录合并日志**:在 c4.md 末尾添加变更记录
141
-
142
- **合并输出格式**(追加到 c4.md):
143
-
144
- ```markdown
145
- ## Change History
146
-
147
- | Date | Change ID | Impact Summary |
148
- |------|-----------|----------------|
149
- | <date> | <change-id> | <brief description of architecture changes> |
150
- ```
151
-
152
- ### 3. 去重与清理
153
-
154
- 在维护模式下执行:
155
-
156
- - 检测重复的规格定义
157
- - 清理过时/废弃的规格
158
- - 整理目录结构
159
- - 修复一致性问题
160
-
161
- ## 执行方式
162
-
163
- 1) 先阅读并遵守:`_shared/references/通用守门协议.md`(可验证性 + 结构质量守门)。
164
- 2) 严格按完整提示词执行:`references/规格园丁提示词.md`。
165
-
166
- ---
167
-
168
- ## 上下文感知
169
-
170
- 本 Skill 在执行前自动检测上下文,选择合适的维护模式。
171
-
172
- 检测规则参考:`skills/_shared/context-detection-template.md`
173
-
174
- ### 检测流程
175
-
176
- 1. 检测 `<truth-root>/` 目录状态
177
- 2. 若提供 change-id,检测变更包归档条件
178
- 3. 检测重复/过时规格
179
-
180
- ### 本 Skill 支持的模式
181
-
182
- | 模式 | 触发条件 | 行为 |
183
- |------|----------|------|
184
- | **归档模式** | 提供 change-id 且闸门通过 | **自动回写** → 合并到 truth-root → 设置 Status=Archived |
185
- | **维护模式** | 无 change-id | 执行去重、清理、整理操作 |
186
- | **检查模式** | 带 --dry-run 参数 | 只输出建议,不实际修改 |
187
-
188
- ### 归档模式完整流程
189
-
190
- ```
191
- 1. 前置检查:
192
- - [ ] 变更包存在
193
- - [ ] verification.md Status = Ready 或 Done
194
- - [ ] evidence/green-final/ 存在
195
- - [ ] tasks.md 全部 [x]
196
-
197
- 2. 自动回写(如有需要):
198
- - [ ] 检测 deviation-log.md
199
- - [ ] 回写 design.md
200
- - [ ] 更新 deviation-log.md 标记
201
-
202
- 3. 合并到真理:
203
- - [ ] 合并 specs/**
204
- - [ ] 合并 contracts/**
205
- - [ ] 合并 Architecture Impact 到 c4.md
206
-
207
- 4. 归档:
208
- - [ ] 设置 verification.md Status = Archived
209
- - [ ] 输出归档报告
210
- ```
211
-
212
- ### 检测输出示例
213
-
214
- ```
215
- 检测结果:
216
- - truth-root:存在,包含 12 个 spec 文件
217
- - 变更包:存在,闸门全绿
218
- - 运行模式:归档模式
219
- ```
220
-
221
- ---
222
-
223
- ## MCP 增强
224
-
225
- 本 Skill 不依赖 MCP 服务,无需运行时检测。
226
-
227
- MCP 增强规则参考:`skills/_shared/mcp-enhancement-template.md`