dev-playbooks-cn 1.5.5 → 1.6.0

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.
package/README.md CHANGED
@@ -97,6 +97,20 @@ dev-playbooks-cn init --tools claude --scope project # 项目级
97
97
  dev-playbooks-cn init --tools claude --scope global # 全局
98
98
  ```
99
99
 
100
+ ### 更新
101
+
102
+ 使用 `update` 命令同时更新 CLI 和项目中的 Skills:
103
+
104
+ ```bash
105
+ dev-playbooks-cn update
106
+ ```
107
+
108
+ 更新命令会:
109
+ 1. **检查 CLI 新版本**:自动检测 npm 上是否有新版本,交互式询问是否更新
110
+ 2. **更新项目文件**:更新 Skills、规则文件、指令文件等
111
+
112
+ > **提示**:不再需要手动运行 `npm install -g dev-playbooks-cn`,`update` 命令会自动处理。
113
+
100
114
  ### 快速集成
101
115
 
102
116
  DevBooks 使用两个目录根:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-playbooks-cn",
3
- "version": "1.5.5",
3
+ "version": "1.6.0",
4
4
  "description": "AI-driven spec-based development workflow",
5
5
  "keywords": [
6
6
  "devbooks",
@@ -12,6 +12,36 @@ allowed-tools:
12
12
 
13
13
  # DevBooks:归档器(Archiver)
14
14
 
15
+ ## 🚨 绝对禁令(ABSOLUTE RULES)
16
+
17
+ > **这些规则没有例外,违反即失败。**
18
+
19
+ ### 禁令 1:禁止跳过脚本验证
20
+
21
+ ```
22
+ ❌ 禁止:不运行 change-check.sh 就执行归档
23
+ ❌ 禁止:change-check.sh 返回非零就继续归档
24
+ ❌ 禁止:手动跳过或绕过脚本检查
25
+
26
+ ✅ 必须:归档前运行 change-check.sh --mode strict
27
+ ✅ 必须:脚本返回 0 才能继续
28
+ ✅ 必须:脚本失败时停止并输出完整错误信息
29
+ ```
30
+
31
+ ### 禁令 2:禁止假完成归档
32
+
33
+ ```
34
+ ❌ 禁止:evidence/green-final/ 不存在或为空时归档
35
+ ❌ 禁止:verification.md AC 覆盖率 < 100% 时归档
36
+ ❌ 禁止:tasks.md 存在未完成任务时归档
37
+
38
+ ✅ 必须:所有检查项全部通过
39
+ ✅ 必须:Green 证据目录非空
40
+ ✅ 必须:AC 覆盖率 100%
41
+ ```
42
+
43
+ ---
44
+
15
45
  ## 工作流位置感知(Workflow Position Awareness)
16
46
 
17
47
  > **核心原则**:Archiver 是归档阶段的**唯一入口**,负责完成从代码评审到变更包归档的所有收尾工作。
@@ -62,10 +92,48 @@ proposal → design → test-owner(P1) → coder → test-owner(P2) → code-rev
62
92
 
63
93
  ## 归档完整流程
64
94
 
65
- ### 第 1 步:前置检查
95
+ ### 第 0 步:运行强制验证脚本(MANDATORY)
96
+
97
+ > **这是归档的第一个动作,不可跳过。**
98
+
99
+ ```bash
100
+ # 必须运行此命令
101
+ change-check.sh <change-id> --mode strict
102
+ ```
103
+
104
+ **执行规则**:
105
+
106
+ | 脚本返回值 | 行为 |
107
+ |-----------|------|
108
+ | `0` (成功) | 继续执行后续步骤 |
109
+ | 非零 (失败) | **立即停止**,输出完整错误信息,不执行任何归档操作 |
110
+
111
+ **脚本检查内容**(--mode strict):
112
+
113
+ - 变更包存在性
114
+ - verification.md 状态和 AC 覆盖率
115
+ - evidence/green-final/ 存在且非空
116
+ - tasks.md 任务完成率
117
+ - 所有闸门检查
118
+
119
+ **失败时的输出格式**:
120
+
121
+ ```
122
+ ❌ 归档前置检查失败
123
+
124
+ 脚本输出:
125
+ <change-check.sh 的完整输出>
126
+
127
+ 建议操作:
128
+ - 根据上述错误修复问题
129
+ - 重新运行 change-check.sh --mode strict
130
+ - 确认所有检查通过后再次尝试归档
131
+ ```
132
+
133
+ ### 第 1 步:前置检查(脚本通过后的二次确认)
66
134
 
67
135
  ```markdown
68
- 前置检查清单:
136
+ 前置检查清单(验证脚本已检查,此为二次确认):
69
137
  - [ ] 变更包存在(<change-root>/<change-id>/)
70
138
  - [ ] verification.md Status = Ready 或 Done
71
139
  - [ ] evidence/green-final/ 存在且非空
@@ -234,7 +302,7 @@ archived-by: devbooks-archiver
234
302
 
235
303
  | 模式 | 触发条件 | 行为 |
236
304
  |------|----------|------|
237
- | **归档模式** | 提供 change-id 且闸门通过 | 执行完整归档流程(6步) |
305
+ | **归档模式** | 提供 change-id 且闸门通过 | 执行完整归档流程(7步:0-6 |
238
306
  | **维护模式** | 无 change-id | 执行 truth-root 去重、清理、整理 |
239
307
  | **检查模式** | 带 --dry-run 参数 | 只输出计划,不实际修改/移动 |
240
308
 
@@ -245,7 +313,13 @@ archived-by: devbooks-archiver
245
313
  │ 归档模式流程 │
246
314
  ├─────────────────────────────────────────────────────────────┤
247
315
  │ │
248
- 1. 前置检查
316
+ 0. 运行强制验证脚本(MANDATORY)
317
+ │ └─ change-check.sh <change-id> --mode strict │
318
+ │ │ │
319
+ │ ├─ 返回非零 → ❌ 停止,输出错误 │
320
+ │ │ │
321
+ │ ▼ 返回 0 │
322
+ │ 1. 前置检查(二次确认) │
249
323
  │ ├─ 变更包存在? │
250
324
  │ ├─ verification.md Status = Ready/Done? │
251
325
  │ ├─ evidence/green-final/ 存在? │
@@ -13,253 +13,363 @@ allowed-tools:
13
13
 
14
14
  # DevBooks:交付验收工作流(完整闭环编排器)
15
15
 
16
- > **定位**:本 Skill 是**编排层**,不是日常手动使用的 Skill。它在支持子 Agent 的 AI 编程工具(如 Claude Code with Task tool)中调用,自动编排完整的变更闭环。
16
+ > **定位**:本 Skill 是**纯编排层**,不是执行层。它只负责**调用子 Agent**,绝不自己执行任何变更工作。
17
17
 
18
- ## 前置:配置发现(协议无关)
18
+ ---
19
19
 
20
- - `<truth-root>`:当前真理目录根
21
- - `<change-root>`:变更包目录根
20
+ ## 🚨 绝对禁令(ABSOLUTE RULES)
22
21
 
23
- 执行前**必须**按以下顺序查找配置(找到后停止):
24
- 1. `.devbooks/config.yaml`(如存在)→ 解析并使用其中的映射
25
- 2. `dev-playbooks/project.md`(如存在)→ Dev-Playbooks 协议,使用默认映射
26
- 3. `project.md`(如存在)→ template 协议,使用默认映射
27
- 4. 若仍无法确定 → **停止并询问用户**
22
+ > **这些规则没有例外,违反即失败。**
28
23
 
29
- **关键约束**:
30
- - 如果配置中指定了 `agents_doc`(规则文档),**必须先阅读该文档**再执行任何操作
31
- - 禁止猜测目录根
32
- - 禁止跳过规则文档阅读
24
+ ### 禁令 1:禁止主 Agent 直接工作
33
25
 
34
- ## 核心职责:完整闭环编排
26
+ ```
27
+ ❌ 禁止:主 Agent 自己写 proposal.md / design.md / tests/ / src/
28
+ ❌ 禁止:主 Agent 直接修改任何变更包内容
29
+ ❌ 禁止:主 Agent 跳过子 Agent 调用
35
30
 
36
- Skill 的核心能力是**编排子 Agent 完成完整变更闭环**。
31
+ 必须:所有工作通过 Task 工具调用子 Agent 完成
32
+ ✅ 必须:每个阶段都有对应的子 Agent 调用
33
+ ✅ 必须:主 Agent 只做编排、等待、验证
34
+ ```
37
35
 
38
- ### 闭环流程(8 个阶段)
36
+ ### 禁令 2:禁止跳过任何强制阶段
39
37
 
40
38
  ```
41
- ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
42
- │ 1. Propose ──▶ │ 2. Design │ ──▶ │ 3. Spec │ ──▶ │ 4. Plan │
43
- │ (提案) │ │ (设计) │ │ (规格) │ │ (计划) │
44
- └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
45
- │ │
46
- ▼ ▼
47
- ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
48
- │ 8. Archive ◀── │ 7. Review │ ◀── │ 6. Code │ ◀── │ 5. Test │
49
- │ (归档) │ │ (评审) │ │ (实现) │ │ (测试) │
50
- └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
39
+ ❌ 禁止:跳过 Challenger/Judge 阶段
40
+ 禁止:跳过 Test-Reviewer 阶段
41
+ ❌ 禁止:跳过 Code-Review 阶段
42
+ ❌ 禁止:跳过 Green-Verify 阶段
43
+ ❌ 禁止:未通过 strict 检查就归档
44
+
45
+ ✅ 必须:完整执行 12 个强制阶段
46
+ 必须:每个阶段的子 Agent 返回成功才能继续
51
47
  ```
52
48
 
53
- ### 阶段详解与对应 Skill
49
+ ### 禁令 3:禁止假完成归档
50
+
51
+ ```
52
+ ❌ 禁止:evidence/green-final/ 不存在或为空时归档
53
+ ❌ 禁止:verification.md AC 覆盖率 < 100% 时归档
54
+ ❌ 禁止:tasks.md 存在未完成任务时归档
55
+ ❌ 禁止:change-check.sh --mode strict 失败时归档
56
+
57
+ ✅ 必须:Archiver 子 Agent 先运行检查脚本
58
+ ✅ 必须:所有检查通过后才执行归档
59
+ ```
60
+
61
+ ---
62
+
63
+ ## 前置:配置发现(协议无关)
64
+
65
+ 执行前**必须**按以下顺序查找配置:
66
+ 1. `.devbooks/config.yaml`(如存在)→ 解析并使用其中的映射
67
+ 2. `dev-playbooks/project.md`(如存在)→ Dev-Playbooks 协议
68
+ 3. `project.md`(如存在)→ template 协议
69
+ 4. 若仍无法确定 → **停止并询问用户**
54
70
 
55
- | 阶段 | Skill | 产物 | 角色 |
56
- |------|-------|------|------|
57
- | 1. Propose | `devbooks-proposal-author` | proposal.md | Author |
58
- | 1.5 Challenge(可选) | `devbooks-proposal-challenger` | 质疑意见 | Challenger |
59
- | 1.6 Judge(可选) | `devbooks-proposal-judge` | 裁决结果 | Judge |
60
- | 2. Design | `devbooks-design-doc` | design.md | Designer |
61
- | 3. Spec | `devbooks-spec-contract` | specs/*.md | Spec Owner |
62
- | 4. Plan | `devbooks-implementation-plan` | tasks.md | Planner |
63
- | 5. Test | `devbooks-test-owner` | verification.md + tests/ | Test Owner |
64
- | 6. Code | `devbooks-coder` | src/ 实现 | Coder |
65
- | 7. Review | `devbooks-code-review` | 评审意见 | Reviewer |
66
- | 7.5 Test Review(可选) | `devbooks-test-reviewer` | 测试评审 | Test Reviewer |
67
- | 8. Archive | `devbooks-archiver` | 归档到真理源 | Archiver |
71
+ ---
68
72
 
69
- ### 编排逻辑
73
+ ## 完整闭环流程(12 个强制阶段)
70
74
 
71
75
  ```
72
- 1. 接收用户需求
73
- 2. 调用 proposal-author 创建提案(自动生成 change-id)
74
- 3. [可选] 调用 proposal-challenger 质疑提案
75
- 4. [可选] 调用 proposal-judge 裁决
76
- 5. 调用 design-doc 创建设计文档
77
- 6. [如有对外契约] 调用 spec-contract 定义规格
78
- 7. 调用 implementation-plan 创建实现计划
79
- 8. 调用 test-owner 编写测试(独立 Agent)
80
- 9. 调用 coder 实现功能(独立 Agent)
81
- 10. 调用 code-review 评审代码
82
- 11. [可选] 调用 test-reviewer 评审测试
83
- 12. 调用 archiver 归档到真理源
76
+ ┌──────────────────────────────────────────────────────────────────────────┐
77
+ │ 强制流程(无可选阶段) │
78
+ ├──────────────────────────────────────────────────────────────────────────┤
79
+ │ │
80
+ │ ┌─────────┐ ┌───────────┐ ┌─────────┐ ┌─────────┐ │
81
+ │ │1.Propose│──▶│2.Challenge│──▶│ 3.Judge │──▶│4.Design │ │
82
+ │ └─────────┘ └───────────┘ └─────────┘ └─────────┘ │
83
+ │ │ │ │
84
+ │ │ ┌─────────────────────────────┘ │
85
+ │ │ ▼ │
86
+ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
87
+ │ │ │ 5.Spec │──▶│ 6.Plan │──▶│7.Test-R │ │
88
+ │ │ └─────────┘ └─────────┘ └─────────┘ │
89
+ │ │ │ │
90
+ │ │ ┌───────────────────────────┘ │
91
+ │ │ ▼ │
92
+ │ │ ┌─────────┐ ┌──────────┐ ┌──────────┐ │
93
+ │ │ │ 8.Code │──▶│9.TestRev │──▶│10.CodeRev│ │
94
+ │ │ └─────────┘ └──────────┘ └──────────┘ │
95
+ │ │ │ │
96
+ │ │ ┌─────────────────────────────┘ │
97
+ │ │ ▼ │
98
+ │ │ ┌───────────┐ ┌─────────┐ │
99
+ │ └───────▶│11.GreenV │──▶│12.Archive│ │
100
+ │ └───────────┘ └─────────┘ │
101
+ │ │
102
+ └──────────────────────────────────────────────────────────────────────────┘
84
103
  ```
85
104
 
86
- ### 角色隔离约束
105
+ ### 阶段详解与子 Agent 调用
106
+
107
+ | # | 阶段 | 子 Agent | Skill | 产物 | 强制 |
108
+ |---|------|----------|-------|------|------|
109
+ | 1 | Propose | `devbooks-proposal-author` | devbooks-proposal-author | proposal.md | ✅ |
110
+ | 2 | Challenge | `devbooks-challenger` | devbooks-proposal-challenger | 质疑意见 | ✅ |
111
+ | 3 | Judge | `devbooks-judge` | devbooks-proposal-judge | Decision Log | ✅ |
112
+ | 4 | Design | `devbooks-designer` | devbooks-design-doc | design.md | ✅ |
113
+ | 5 | Spec | `devbooks-spec-owner` | devbooks-spec-contract | specs/*.md | ✅ |
114
+ | 6 | Plan | `devbooks-planner` | devbooks-implementation-plan | tasks.md | ✅ |
115
+ | 7 | Test-Red | `devbooks-test-owner` | devbooks-test-owner | verification.md + tests/ | ✅ |
116
+ | 8 | Code | `devbooks-coder` | devbooks-coder | src/ 实现 | ✅ |
117
+ | 9 | Test-Review | `devbooks-reviewer` | devbooks-test-reviewer | 测试评审意见 | ✅ |
118
+ | 10 | Code-Review | `devbooks-reviewer` | devbooks-code-review | 代码评审意见 | ✅ |
119
+ | 11 | Green-Verify | `devbooks-test-owner` | devbooks-test-owner | evidence/green-final/ | ✅ |
120
+ | 12 | Archive | `devbooks-archiver` | devbooks-archiver | 归档到 archive/ | ✅ |
87
121
 
88
- **关键原则**:Test Owner 和 Coder 必须使用**独立的 Agent 实例/会话**。
122
+ ---
89
123
 
90
- | 角色 | 隔离要求 | 原因 |
91
- |------|----------|------|
92
- | Test Owner | 独立 Agent | 防止 Coder 篡改测试 |
93
- | Coder | 独立 Agent | 防止 Coder 看到测试实现细节 |
94
- | Reviewer | 独立 Agent(推荐) | 保持评审客观性 |
124
+ ## 编排逻辑(伪代码)
125
+
126
+ ```python
127
+ def run_delivery_workflow(user_requirement):
128
+ """
129
+ 主 Agent 只执行此编排逻辑,不做任何实际工作
130
+ """
131
+
132
+ # ==================== 阶段 1: Propose ====================
133
+ change_id = call_subagent("devbooks-proposal-author", {
134
+ "task": "创建变更提案",
135
+ "requirement": user_requirement
136
+ })
137
+ verify_output(f"{change_root}/{change_id}/proposal.md")
138
+
139
+ # ==================== 阶段 2: Challenge ====================
140
+ challenge_result = call_subagent("devbooks-challenger", {
141
+ "task": "质疑提案",
142
+ "change_id": change_id
143
+ })
144
+ # 不跳过,即使没有质疑也要运行
145
+
146
+ # ==================== 阶段 3: Judge ====================
147
+ judge_result = call_subagent("devbooks-judge", {
148
+ "task": "裁决提案",
149
+ "change_id": change_id,
150
+ "challenge_result": challenge_result
151
+ })
152
+ if judge_result == "REJECTED":
153
+ return "提案被拒绝,流程终止"
154
+ if judge_result == "REVISE":
155
+ # 回到阶段 1,重新编写提案
156
+ return run_delivery_workflow(revised_requirement)
157
+ # judge_result == "APPROVED" 继续
158
+
159
+ # ==================== 阶段 4: Design ====================
160
+ call_subagent("devbooks-designer", {
161
+ "task": "创建设计文档",
162
+ "change_id": change_id
163
+ })
164
+ verify_output(f"{change_root}/{change_id}/design.md")
165
+
166
+ # ==================== 阶段 5: Spec ====================
167
+ call_subagent("devbooks-spec-owner", {
168
+ "task": "定义规格契约",
169
+ "change_id": change_id
170
+ })
171
+ # specs/ 目录可能为空(无对外契约时)
172
+
173
+ # ==================== 阶段 6: Plan ====================
174
+ call_subagent("devbooks-planner", {
175
+ "task": "创建实现计划",
176
+ "change_id": change_id
177
+ })
178
+ verify_output(f"{change_root}/{change_id}/tasks.md")
179
+
180
+ # ==================== 阶段 7: Test-Red ====================
181
+ # 必须使用独立 Agent 会话
182
+ call_subagent("devbooks-test-owner", {
183
+ "task": "编写测试并建立 Red 基线",
184
+ "change_id": change_id,
185
+ "isolation": "required" # 强制隔离
186
+ })
187
+ verify_output(f"{change_root}/{change_id}/verification.md")
188
+ verify_output(f"{change_root}/{change_id}/evidence/red-baseline/")
189
+
190
+ # ==================== 阶段 8: Code ====================
191
+ # 必须使用独立 Agent 会话
192
+ call_subagent("devbooks-coder", {
193
+ "task": "按 tasks.md 实现功能",
194
+ "change_id": change_id,
195
+ "isolation": "required" # 强制隔离
196
+ })
197
+
198
+ # ==================== 阶段 9: Test-Review ====================
199
+ test_review_result = call_subagent("devbooks-reviewer", {
200
+ "task": "评审测试质量",
201
+ "change_id": change_id,
202
+ "review_type": "test-review"
203
+ })
204
+ if test_review_result == "REVISE REQUIRED":
205
+ # 回到阶段 7,修复测试问题
206
+ goto_stage(7)
207
+
208
+ # ==================== 阶段 10: Code-Review ====================
209
+ code_review_result = call_subagent("devbooks-reviewer", {
210
+ "task": "评审代码质量",
211
+ "change_id": change_id,
212
+ "review_type": "code-review"
213
+ })
214
+ if code_review_result == "REVISE REQUIRED":
215
+ # 回到阶段 8,修复代码问题
216
+ goto_stage(8)
217
+
218
+ # ==================== 阶段 11: Green-Verify ====================
219
+ # 必须使用独立 Agent 会话(与阶段 7 相同的 Test Owner)
220
+ call_subagent("devbooks-test-owner", {
221
+ "task": "运行所有测试并收集 Green 证据",
222
+ "change_id": change_id,
223
+ "isolation": "required",
224
+ "phase": "green-verify"
225
+ })
226
+ verify_output(f"{change_root}/{change_id}/evidence/green-final/")
227
+
228
+ # ==================== 阶段 12: Archive ====================
229
+ # Archiver 会自动运行 change-check.sh --mode strict
230
+ call_subagent("devbooks-archiver", {
231
+ "task": "执行归档",
232
+ "change_id": change_id
233
+ })
234
+
235
+ return "闭环完成"
236
+ ```
95
237
 
96
- ### 闸门检查点
238
+ ---
97
239
 
98
- 每个阶段完成后,调用 `change-check.sh` 验证:
240
+ ## Agent 调用模板
99
241
 
100
- ```bash
101
- # 提案阶段检查
102
- change-check.sh <change-id> --mode proposal
242
+ ### 调用格式
103
243
 
104
- # 实现阶段检查(Test Owner)
105
- change-check.sh <change-id> --mode apply --role test-owner
244
+ 使用 Task 工具调用子 Agent:
106
245
 
107
- # 实现阶段检查(Coder)
108
- change-check.sh <change-id> --mode apply --role coder
246
+ ```markdown
247
+ ## 调用 devbooks-proposal-author Agent
109
248
 
110
- # 归档前检查
111
- change-check.sh <change-id> --mode archive
249
+ 请执行以下任务:
250
+ - 使用 devbooks-proposal-author skill
251
+ - 为以下需求创建变更提案:[需求描述]
252
+ - 生成符合规范的 change-id
253
+ - 完成后输出 change-id 和 proposal.md 路径
112
254
  ```
113
255
 
114
- ## 参考骨架(按需读取)
256
+ ### 各阶段调用示例
257
+
258
+ | 阶段 | 子 Agent | 调用 Prompt |
259
+ |------|----------|-------------|
260
+ | 1 | devbooks-proposal-author | "使用 devbooks-proposal-author skill 为 [需求] 创建变更提案" |
261
+ | 2 | devbooks-challenger | "使用 devbooks-proposal-challenger skill 质疑变更 [change-id] 的提案" |
262
+ | 3 | devbooks-judge | "使用 devbooks-proposal-judge skill 裁决变更 [change-id]" |
263
+ | 4 | devbooks-designer | "使用 devbooks-design-doc skill 为变更 [change-id] 创建设计文档" |
264
+ | 5 | devbooks-spec-owner | "使用 devbooks-spec-contract skill 为变更 [change-id] 定义规格" |
265
+ | 6 | devbooks-planner | "使用 devbooks-implementation-plan skill 为变更 [change-id] 创建计划" |
266
+ | 7 | devbooks-test-owner | "使用 devbooks-test-owner skill 为变更 [change-id] 编写测试并建立 Red 基线" |
267
+ | 8 | devbooks-coder | "使用 devbooks-coder skill 为变更 [change-id] 实现功能" |
268
+ | 9 | devbooks-reviewer | "使用 devbooks-test-reviewer skill 评审变更 [change-id] 的测试" |
269
+ | 10 | devbooks-reviewer | "使用 devbooks-code-review skill 评审变更 [change-id] 的代码" |
270
+ | 11 | devbooks-test-owner | "使用 devbooks-test-owner skill 运行变更 [change-id] 的所有测试并收集 Green 证据" |
271
+ | 12 | devbooks-archiver | "使用 devbooks-archiver skill 归档变更 [change-id]" |
115
272
 
116
- - 工作流:`references/交付验收工作流.md`
117
- - 模板:`references/变更验证与追溯模板.md`
273
+ ---
118
274
 
119
- ## 可选检查脚本
275
+ ## 角色隔离约束
120
276
 
121
- 脚本位于本 Skill `scripts/` 目录(可执行;优先"跑脚本拿结果",而不是把脚本正文读进上下文)。
122
-
123
- - 初始化变更包骨架:`change-scaffold.sh <change-id> --project-root <repo-root> --change-root <change-root> --truth-root <truth-root>`
124
- - 一键校验变更包:`change-check.sh <change-id> --mode <proposal|apply|review|archive|strict> --role <test-owner|coder|reviewer> --project-root <repo-root> --change-root <change-root> --truth-root <truth-root>`
125
- - 结构守门决策校验(strict 会自动调用):`guardrail-check.sh <change-id> --project-root <repo-root> --change-root <change-root>`
126
- - 初始化 spec delta 骨架:`change-spec-delta-scaffold.sh <change-id> <capability> --project-root <repo-root> --change-root <change-root>`
127
- - 证据采集(把 tests/命令输出落盘到 evidence):`change-evidence.sh <change-id> --label <name> --project-root <repo-root> --change-root <change-root> -- <command> [args...]`
128
- - 大规模机械变更(LSC)codemod 脚本骨架:`change-codemod-scaffold.sh <change-id> --name <codemod-name> --project-root <repo-root> --change-root <change-root>`
129
- - 卫生检查(临时文件/进程清理):`hygiene-check.sh <change-id> --project-root <repo-root> --change-root <change-root>`
130
-
131
- ## 质量闸门脚本(v2)
132
-
133
- 以下脚本用于强化质量闸门,拦截"假完成":
134
-
135
- - 角色交接检查:`handoff-check.sh <change-id> --project-root <repo-root> --change-root <change-root>`
136
- - 环境声明检查:`env-match-check.sh <change-id> --project-root <repo-root> --change-root <change-root>`
137
- - 审计全量扫描:`audit-scope.sh <directory> --format <markdown|json>`
138
- - 进度仪表板:`progress-dashboard.sh <change-id> --project-root <repo-root> --change-root <change-root>`
139
- - v2 闸门迁移:`migrate-to-v2-gates.sh <change-id> --project-root <repo-root> --change-root <change-root>`
140
-
141
- ### change-check.sh v2 新增检查项
142
-
143
- | 检查项 | 触发模式 | 说明 | AC |
144
- |--------|----------|------|-----|
145
- | `check_evidence_closure()` | archive, strict | 验证 `evidence/green-final/` 存在且非空 | AC-001 |
146
- | `check_task_completion_rate()` | strict | 验证任务完成率 100%(支持 SKIP-APPROVED) | AC-002 |
147
- | `check_role_boundaries()` | apply --role | 验证角色边界(扩展自 check_no_tests_changed) | AC-003 |
148
- | `check_skip_approval()` | strict | 验证 P0 任务跳过有审批记录 | AC-005 |
149
- | `check_env_match()` | archive, strict | 调用 env-match-check.sh 检查环境声明 | AC-006 |
150
- | `check_test_failure_in_evidence()` | archive, strict | 检测 Green 证据中的失败模式 | AC-007 |
151
-
152
- ### change-check.sh 基础检查项
153
-
154
- | 检查项 | 触发模式 | 说明 |
155
- |--------|----------|------|
156
- | `check_proposal()` | 所有模式 | 检查 proposal.md 格式与决策状态 |
157
- | `check_design()` | 所有模式 | 检查 design.md 结构(AC 列表、Problem Context 等) |
158
- | `check_tasks()` | 所有模式 | 检查 tasks.md 结构(主线计划区、断点区) |
159
- | `check_verification()` | 所有模式 | 检查 verification.md 四大必填节 |
160
- | `check_spec_deltas()` | 所有模式 | 检查 specs/ 目录下 spec delta 格式 |
161
- | `check_implicit_changes()` | apply, archive, strict | 检测隐式变更(依赖、配置、构建) |
162
-
163
- ### 角色边界约束
164
-
165
- | 角色 | 禁止修改 |
166
- |------|----------|
167
- | Coder | `tests/**`、`verification.md`、`.devbooks/` |
168
- | Test Owner | `src/**` |
169
- | Reviewer | 代码文件(`.ts`、`.js`、`.py`、`.sh` 等) |
170
-
171
- 详细说明参见:`docs/quality-gates-guide.md`
172
-
173
- ## 架构合规检查(依赖卫士)
174
-
175
- 在合并前进行架构合规检查,防止依赖方向违规。
176
-
177
- ### guardrail-check.sh 完整选项
178
-
179
- ```bash
180
- guardrail-check.sh <change-id> [options]
181
-
182
- Options:
183
- --project-root <dir> 项目根目录
184
- --change-root <dir> 变更包目录
185
- --truth-root <dir> 真理目录(包含 architecture/c4.md)
186
- --role <role> 角色权限检查 (coder|test-owner|reviewer)
187
- --check-lockfile 检查 lockfile 变更是否声明
188
- --check-engineering 检查工程系统变更是否声明
189
- --check-layers 检查分层约束违规(依赖卫士核心)
190
- --check-cycles 检查循环依赖
191
- --check-hotspots 警告热点文件变更
192
- ```
277
+ **关键原则**:Test Owner Coder 必须使用**独立的 Agent 实例/会话**。
278
+
279
+ | 角色 | 隔离要求 | 原因 |
280
+ |------|----------|------|
281
+ | Test Owner (阶段 7, 11) | 独立 Agent | 防止 Coder 篡改测试 |
282
+ | Coder (阶段 8) | 独立 Agent | 防止 Coder 看到测试实现细节 |
283
+ | Reviewer (阶段 9, 10) | 独立 Agent(推荐) | 保持评审客观性 |
193
284
 
194
- ### 分层约束检查内容
285
+ ---
286
+
287
+ ## 闸门检查点
195
288
 
196
- `--check-layers` 会检测以下违规:
289
+ ### 阶段闸门
197
290
 
198
- | 违规类型 | 示例 | 严重程度 |
199
- |----------|------|----------|
200
- | 下层引用上层 | `base/` 导入 `platform/` | 🔴 Critical |
201
- | common 引用 browser/node | `common/` 导入 `browser/` | 🔴 Critical |
202
- | common 使用 DOM API | `document.` common | 🔴 Critical |
203
- | core 引用 contrib | 违反扩展点设计 | 🟡 High |
291
+ | 检查点 | 时机 | 命令 |
292
+ |--------|------|------|
293
+ | 提案完成 | 阶段 3 | `change-check.sh <change-id> --mode proposal` |
294
+ | 设计完成 | 阶段 6 后 | `change-check.sh <change-id> --mode apply --role test-owner` |
295
+ | 实现完成 | 阶段 10 | `change-check.sh <change-id> --mode apply --role coder` |
296
+ | 归档前 | 阶段 12 | `change-check.sh <change-id> --mode strict` |
204
297
 
205
- ### 推荐用法
298
+ ### 归档前强制检查项
206
299
 
207
- ```bash
208
- # 完整架构检查(合并前)
209
- guardrail-check.sh <change-id> \
210
- --truth-root devbooks \
211
- --check-layers \
212
- --check-cycles \
213
- --check-hotspots \
214
- --check-lockfile \
215
- --check-engineering
300
+ Archiver 子 Agent 必须验证:
216
301
 
217
- # 快速检查(日常开发)
218
- guardrail-check.sh <change-id> --check-layers --check-cycles
302
+ | 检查项 | 要求 |
303
+ |--------|------|
304
+ | evidence/green-final/ | 存在且非空 |
305
+ | verification.md AC 覆盖 | 100%(所有 AC 有对应测试) |
306
+ | tasks.md 任务完成率 | 100%(所有 [x] 或 SKIP-APPROVED) |
307
+ | change-check.sh --mode strict | 全部通过 |
308
+
309
+ ---
310
+
311
+ ## 错误处理
312
+
313
+ ### Judge 返回 REVISE
314
+
315
+ ```
316
+ 阶段 3 返回 REVISE
317
+
318
+ 通知用户裁决意见
319
+
320
+ 回到阶段 1,携带修改建议
321
+
322
+ 重新执行阶段 1-3
219
323
  ```
220
324
 
221
- ### CI 集成示例
325
+ ### Review 返回 REVISE REQUIRED
222
326
 
223
- ```yaml
224
- # .github/workflows/pr.yml
225
- - name: Architecture Compliance Check
226
- run: |
227
- ./scripts/guardrail-check.sh ${{ github.event.pull_request.number }} \
228
- --truth-root devbooks \
229
- --check-layers \
230
- --check-cycles
327
+ ```
328
+ 阶段 9(Test-Review)返回 REVISE REQUIRED
329
+
330
+ 回到阶段 7,修复测试问题
331
+
332
+ 重新执行阶段 7-9
333
+
334
+ 阶段 10(Code-Review)返回 REVISE REQUIRED
335
+
336
+ 回到阶段 8,修复代码问题
337
+
338
+ 重新执行阶段 8-10
231
339
  ```
232
340
 
233
- ---
341
+ ### Archive 检查失败
234
342
 
235
- ## 上下文感知
343
+ ```
344
+ 阶段 12 检查失败
345
+
346
+ 输出失败原因(缺失 evidence / AC 未覆盖 / 任务未完成)
347
+
348
+ 回到相应阶段修复
349
+
350
+ 重新执行到阶段 12
351
+ ```
236
352
 
237
- 本 Skill 在执行前自动检测上下文,选择合适的工作流阶段。
353
+ ---
238
354
 
239
- 检测规则参考:`skills/_shared/context-detection-template.md`
355
+ ## 上下文感知
240
356
 
241
357
  ### 检测流程
242
358
 
243
359
  1. 检测变更包是否存在
244
- 2. 检测当前阶段(proposal/apply/archive)
245
- 3. 检测闸门状态
360
+ 2. 检测当前阶段(哪些阶段已完成)
361
+ 3. 从断点继续执行
246
362
 
247
- ### 本 Skill 支持的模式
363
+ ### 断点续跑
248
364
 
249
- | 模式 | 触发条件 | 行为 |
250
- |------|----------|------|
251
- | **初始化模式** | 变更包不存在 | 创建变更包骨架 |
252
- | **检查模式** | 带 --check 参数 | 只运行闸门检查 |
253
- | **完整闭环** | 无特殊参数 | 执行完整 Design→Archive 流程 |
254
-
255
- ### 检测输出示例
365
+ 若变更包已存在部分产物,从最近完成的阶段继续:
256
366
 
257
367
  ```
258
368
  检测结果:
259
369
  - 变更包:存在
260
- - 当前阶段:apply
261
- - 闸门状态:proposal ✓, design ✓, tasks ✓
262
- - 运行模式:检查模式(apply 阶段)
370
+ - 已完成阶段:1-6(proposal, challenge, judge, design, spec, plan)
371
+ - 下一阶段:7(Test-Red)
372
+ - 运行模式:断点续跑
263
373
  ```
264
374
 
265
375
  ---
@@ -268,8 +378,6 @@ guardrail-check.sh <change-id> --check-layers --check-cycles
268
378
 
269
379
  本 Skill 支持 MCP 运行时增强,自动检测并启用高级功能。
270
380
 
271
- MCP 增强规则参考:`skills/_shared/mcp-enhancement-template.md`
272
-
273
381
  ### 依赖的 MCP 服务
274
382
 
275
383
  | 服务 | 用途 | 超时 |
@@ -282,19 +390,19 @@ MCP 增强规则参考:`skills/_shared/mcp-enhancement-template.md`
282
390
  2. 在工作流状态报告中标注索引可用性
283
391
  3. 若不可用 → 建议在 apply 阶段前生成索引
284
392
 
285
- ### 增强模式 vs 基础模式
393
+ ---
286
394
 
287
- | 功能 | 增强模式 | 基础模式 |
288
- |------|----------|----------|
289
- | 架构检查 | 精确依赖分析 | 基于 import 语句 |
290
- | 热点预警 | CKB 实时分析 | 不可用 |
291
- | 影响评估 | 调用图分析 | 文件级估算 |
395
+ ## 参考骨架(按需读取)
292
396
 
293
- ### 降级提示
397
+ - 工作流:`references/交付验收工作流.md`
398
+ - 模板:`references/变更验证与追溯模板.md`
294
399
 
295
- MCP 不可用时,输出以下提示:
400
+ ## 可选检查脚本
296
401
 
297
- ```
298
- ⚠️ CKB 索引不可用,架构检查将使用基础模式。
299
- 建议手动生成 SCIP 索引以启用精确检查。
300
- ```
402
+ 脚本位于本 Skill 的 `scripts/` 目录:
403
+
404
+ - 初始化变更包骨架:`change-scaffold.sh`
405
+ - 一键校验变更包:`change-check.sh`
406
+ - 结构守门决策校验:`guardrail-check.sh`
407
+ - 证据采集:`change-evidence.sh`
408
+ - 进度仪表板:`progress-dashboard.sh`
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: devbooks-archiver
3
+ description: DevBooks Archiver 子代理:执行归档闭环(验证→回写→规格合并→移动归档),必须先通过所有检查。
4
+ skills: devbooks-archiver
5
+ ---
6
+
7
+ # DevBooks Archiver 子代理
8
+
9
+ 此子代理用于在 Task 工具中执行归档任务。
10
+
11
+ ## 使用场景
12
+
13
+ 当主编排器需要委托归档任务给子代理时使用,例如:
14
+ - delivery-workflow 编排器在 Green Verify 通过后调用
15
+ - 在隔离上下文中执行归档
16
+
17
+ ## 约束
18
+
19
+ - **必须先运行** `change-check.sh --mode strict` 并通过
20
+ - 若检查失败 → 停止归档,输出失败原因
21
+ - 若检查通过 → 执行完整归档流程(6 步)
22
+ - 完成后输出归档报告
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: devbooks-challenger
3
+ description: DevBooks Challenger 子代理:质疑提案,发现风险、遗漏和不一致,输出质疑意见。
4
+ skills: devbooks-proposal-challenger
5
+ ---
6
+
7
+ # DevBooks Challenger 子代理
8
+
9
+ 此子代理用于在 Task 工具中执行提案质疑任务。
10
+
11
+ ## 使用场景
12
+
13
+ 当主编排器需要委托质疑任务给子代理时使用,例如:
14
+ - delivery-workflow 编排器调用以质疑提案
15
+ - 在隔离上下文中执行深度质疑分析
16
+
17
+ ## 约束
18
+
19
+ - 只输出质疑意见,不修改 proposal.md
20
+ - 必须指出风险、遗漏、不一致
21
+ - 完成后输出 CHALLENGE_REPORT(质疑要点 + 风险等级)
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: devbooks-designer
3
+ description: DevBooks Designer 子代理:创建设计文档(design.md),定义 What/Constraints/AC-xxx,不写实现步骤。
4
+ skills: devbooks-design-doc
5
+ ---
6
+
7
+ # DevBooks Designer 子代理
8
+
9
+ 此子代理用于在 Task 工具中执行设计文档撰写任务。
10
+
11
+ ## 使用场景
12
+
13
+ 当主编排器需要委托设计任务给子代理时使用,例如:
14
+ - delivery-workflow 编排器在 Judge 通过后调用
15
+ - 在隔离上下文中执行设计分析
16
+
17
+ ## 约束
18
+
19
+ - 必须产出 design.md
20
+ - 只定义 What/Constraints/AC-xxx,不写实现步骤
21
+ - AC 必须是可观察的 Pass/Fail 标准
22
+ - 完成后输出 AC 列表摘要
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: devbooks-judge
3
+ description: DevBooks Judge 子代理:裁决提案,输出 Approved/Revise/Rejected 决策并写入 Decision Log。
4
+ skills: devbooks-proposal-judge
5
+ ---
6
+
7
+ # DevBooks Judge 子代理
8
+
9
+ 此子代理用于在 Task 工具中执行提案裁决任务。
10
+
11
+ ## 使用场景
12
+
13
+ 当主编排器需要委托裁决任务给子代理时使用,例如:
14
+ - delivery-workflow 编排器在 Challenger 完成后调用
15
+ - 在隔离上下文中执行裁决分析
16
+
17
+ ## 约束
18
+
19
+ - 必须综合 proposal.md 和 Challenger 意见
20
+ - 必须输出明确决策:APPROVED / REVISE / REJECTED
21
+ - 若 REVISE:指出需修改的具体内容
22
+ - 必须更新 proposal.md 的 Decision Log 章节
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: devbooks-planner
3
+ description: DevBooks Planner 子代理:从设计文档推导编码计划(tasks.md),输出可跟踪的主线计划。
4
+ skills: devbooks-implementation-plan
5
+ ---
6
+
7
+ # DevBooks Planner 子代理
8
+
9
+ 此子代理用于在 Task 工具中执行计划编写任务。
10
+
11
+ ## 使用场景
12
+
13
+ 当主编排器需要委托计划编写任务给子代理时使用,例如:
14
+ - delivery-workflow 编排器在 Spec 完成后调用
15
+ - 在隔离上下文中执行计划拆分
16
+
17
+ ## 约束
18
+
19
+ - 必须产出 tasks.md
20
+ - 只从 design.md 推导,禁止从 tests/ 反推
21
+ - 每个任务必须绑定 AC-xxx
22
+ - 完成后输出任务数量和依赖关系
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: devbooks-proposal-author
3
+ description: DevBooks Proposal Author 子代理:创建变更提案(proposal.md),定义 Why/What/Impact,生成 change-id。
4
+ skills: devbooks-proposal-author
5
+ ---
6
+
7
+ # DevBooks Proposal Author 子代理
8
+
9
+ 此子代理用于在 Task 工具中执行提案撰写任务。
10
+
11
+ ## 使用场景
12
+
13
+ 当主编排器需要委托提案撰写任务给子代理时使用,例如:
14
+ - delivery-workflow 编排器调用以创建新变更提案
15
+ - 在隔离上下文中执行提案撰写
16
+
17
+ ## 约束
18
+
19
+ - 必须产出 proposal.md
20
+ - 必须生成符合规范的 change-id(YYYYMMDD-HHMM-<动词>-描述)
21
+ - 只定义 Why/What/Impact,不写实现代码
22
+ - 完成后输出 change-id 和 proposal.md 路径
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: devbooks-spec-owner
3
+ description: DevBooks Spec Owner 子代理:定义对外行为规格与契约(specs/*.md),包括 API/Schema/兼容策略。
4
+ skills: devbooks-spec-contract
5
+ ---
6
+
7
+ # DevBooks Spec Owner 子代理
8
+
9
+ 此子代理用于在 Task 工具中执行规格定义任务。
10
+
11
+ ## 使用场景
12
+
13
+ 当主编排器需要委托规格定义任务给子代理时使用,例如:
14
+ - delivery-workflow 编排器在 Design 完成后调用
15
+ - 在隔离上下文中执行契约设计
16
+
17
+ ## 约束
18
+
19
+ - 必须产出 specs/**/*.md
20
+ - 定义对外 API/Schema/Event 契约
21
+ - 包含兼容策略和迁移方案
22
+ - 完成后输出受影响的契约列表