dev-playbooks-cn 1.6.7 → 1.7.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/package.json +1 -1
- package/skills/_shared//344/270/212/344/270/213/346/226/207/346/243/200/346/265/213/346/250/241/346/235/{277-context-detection.md → 277.md} +2 -2
- package/skills/devbooks-archiver/SKILL.md +2 -2
- package/skills/devbooks-brownfield-bootstrap/SKILL.md +3 -3
- package/skills/devbooks-code-review/SKILL.md +3 -3
- package/skills/devbooks-coder/SKILL.md +114 -328
- package/skills/devbooks-coder/references//345/256/214/346/210/220/347/212/266/346/200/201/344/270/216/350/267/257/347/224/261.md +74 -0
- package/skills/devbooks-coder/references//346/265/213/350/257/225/350/277/220/350/241/214/347/255/226/347/225/245.md +51 -0
- package/skills/devbooks-coder/references//347/203/255/347/202/271/346/204/237/347/237/245/344/270/216/351/243/216/351/231/251/350/257/204/344/274/260.md +37 -0
- package/skills/devbooks-delivery-workflow/SKILL.md +23 -259
- package/skills/devbooks-delivery-workflow/references//345/255/220Agent/350/260/203/347/224/250/350/247/204/350/214/203.md +42 -0
- package/skills/devbooks-delivery-workflow/references//347/274/226/346/216/222/351/200/273/350/276/221/344/274/252/344/273/243/347/240/201.md +115 -0
- package/skills/devbooks-delivery-workflow/references//351/227/270/351/227/250/346/243/200/346/237/245/344/270/216/351/224/231/350/257/257/345/244/204/347/220/206.md +79 -0
- package/skills/devbooks-design-backport/SKILL.md +2 -2
- package/skills/devbooks-design-doc/SKILL.md +3 -3
- package/skills/devbooks-entropy-monitor/SKILL.md +2 -2
- package/skills/devbooks-impact-analysis/SKILL.md +2 -2
- package/skills/devbooks-implementation-plan/SKILL.md +3 -3
- package/skills/devbooks-proposal-author/SKILL.md +3 -3
- package/skills/devbooks-proposal-challenger/SKILL.md +2 -2
- package/skills/devbooks-proposal-judge/SKILL.md +2 -2
- package/skills/devbooks-router/SKILL.md +2 -2
- package/skills/devbooks-spec-contract/SKILL.md +3 -3
- package/skills/devbooks-test-owner/SKILL.md +120 -467
- package/skills/devbooks-test-owner/references/verification/346/250/241/346/235/277/344/270/216/347/273/223/346/236/204.md +140 -0
- package/skills/devbooks-test-owner/references//346/265/213/350/257/225/345/210/206/345/261/202/344/270/216/350/277/220/350/241/214/347/255/226/347/225/245.md +66 -0
- package/skills/devbooks-test-owner/references//347/273/235/345/257/271/347/246/201/344/273/244/344/270/216/350/247/204/345/210/231.md +108 -0
- package/skills/devbooks-test-owner/references//351/230/266/346/256/2652/350/257/201/346/215/256/345/256/241/350/256/241/346/270/205/345/215/225.md +125 -0
- package/skills/devbooks-test-reviewer/SKILL.md +2 -2
- package/skills//346/270/220/350/277/233/346/212/253/351/234/262/346/224/271/350/277/233/345/273/272/350/256/256.md +143 -0
- /package/skills/_shared/MCP/345/242/236/345/274/272/346/250/241/346/235/{277-mcp-enhancement.md" → 277.md"} +0 -0
- /package/skills/_shared//345/267/245/344/275/234/346/265/201/344/270/213/344/270/200/346/255/{245-workflow-next-steps.md" → 245.md"} +0 -0
- /package/skills/_template//351/205/215/347/275/256/345/217/221/347/216/260/346/250/241/346/235/{277-config-discovery.md" → 277.md"} +0 -0
- /package/skills/devbooks-brownfield-bootstrap/templates//351/241/271/347/233/256/347/224/273/345/203/217/346/250/241/346/235/{277-project-profile.md" → 277.md"} +0 -0
- /package/skills/devbooks-delivery-workflow/templates//344/272/244/346/216/245/346/226/207/346/241/{243-handoff.md" → 243.md"} +0 -0
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 本模板为所有 SKILL.md 提供标准化的上下文检测规则。
|
|
4
4
|
>
|
|
5
|
-
> 产物落点:`skills/_shared
|
|
5
|
+
> 产物落点:`skills/_shared/上下文检测模板.md`
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -277,7 +277,7 @@ echo "=== 测试完成 ==="
|
|
|
277
277
|
|
|
278
278
|
本 Skill 在执行前自动检测上下文,选择合适的运行模式。
|
|
279
279
|
|
|
280
|
-
检测规则参考:`skills/_shared
|
|
280
|
+
检测规则参考:`skills/_shared/上下文检测模板.md`
|
|
281
281
|
|
|
282
282
|
### 检测流程
|
|
283
283
|
|
|
@@ -290,7 +290,7 @@ archived-by: devbooks-archiver
|
|
|
290
290
|
|
|
291
291
|
本 Skill 在执行前自动检测上下文,选择合适的运行模式。
|
|
292
292
|
|
|
293
|
-
检测规则参考:`skills/_shared
|
|
293
|
+
检测规则参考:`skills/_shared/上下文检测模板.md`
|
|
294
294
|
|
|
295
295
|
### 检测流程
|
|
296
296
|
|
|
@@ -412,4 +412,4 @@ archived-by: devbooks-archiver
|
|
|
412
412
|
|
|
413
413
|
本 Skill 不依赖 MCP 服务,无需运行时检测。
|
|
414
414
|
|
|
415
|
-
MCP 增强规则参考:`skills/_shared/MCP
|
|
415
|
+
MCP 增强规则参考:`skills/_shared/MCP增强模板.md`
|
|
@@ -184,7 +184,7 @@ allowed-tools:
|
|
|
184
184
|
|
|
185
185
|
- 工作流:`references/存量项目初始化.md`
|
|
186
186
|
- 代码导航策略:`references/代码导航策略.md`
|
|
187
|
-
- **项目画像模板(三层架构)**:`templates
|
|
187
|
+
- **项目画像模板(三层架构)**:`templates/项目画像模板.md`
|
|
188
188
|
- 一次性提示词:`references/存量项目初始化提示词.md`
|
|
189
189
|
- 模板(按需):`references/术语表模板.md`
|
|
190
190
|
|
|
@@ -194,7 +194,7 @@ allowed-tools:
|
|
|
194
194
|
|
|
195
195
|
本 Skill 在执行前自动检测上下文,选择合适的初始化范围。
|
|
196
196
|
|
|
197
|
-
检测规则参考:`skills/_shared
|
|
197
|
+
检测规则参考:`skills/_shared/上下文检测模板.md`
|
|
198
198
|
|
|
199
199
|
### 检测流程
|
|
200
200
|
|
|
@@ -234,7 +234,7 @@ allowed-tools:
|
|
|
234
234
|
|
|
235
235
|
本 Skill 支持 MCP 运行时增强,自动检测并启用高级功能。
|
|
236
236
|
|
|
237
|
-
MCP 增强规则参考:`skills/_shared/MCP
|
|
237
|
+
MCP 增强规则参考:`skills/_shared/MCP增强模板.md`
|
|
238
238
|
|
|
239
239
|
### 依赖的 MCP 服务
|
|
240
240
|
|
|
@@ -136,7 +136,7 @@ override dispose() {
|
|
|
136
136
|
|
|
137
137
|
本 Skill 在执行前自动检测上下文,选择合适的审查范围。
|
|
138
138
|
|
|
139
|
-
检测规则参考:`skills/_shared
|
|
139
|
+
检测规则参考:`skills/_shared/上下文检测模板.md`
|
|
140
140
|
|
|
141
141
|
### 检测流程
|
|
142
142
|
|
|
@@ -166,7 +166,7 @@ override dispose() {
|
|
|
166
166
|
|
|
167
167
|
## 下一步推荐
|
|
168
168
|
|
|
169
|
-
**参考**:`skills/_shared
|
|
169
|
+
**参考**:`skills/_shared/工作流下一步.md`
|
|
170
170
|
|
|
171
171
|
完成 code-review 后,下一步取决于具体情况:
|
|
172
172
|
|
|
@@ -210,7 +210,7 @@ Review 通过后,Reviewer 必须执行:
|
|
|
210
210
|
|
|
211
211
|
本 Skill 支持 MCP 运行时增强,自动检测并启用高级功能。
|
|
212
212
|
|
|
213
|
-
MCP 增强规则参考:`skills/_shared/MCP
|
|
213
|
+
MCP 增强规则参考:`skills/_shared/MCP增强模板.md`
|
|
214
214
|
|
|
215
215
|
### 依赖的 MCP 服务
|
|
216
216
|
|
|
@@ -12,11 +12,15 @@ allowed-tools:
|
|
|
12
12
|
|
|
13
13
|
# DevBooks:实现负责人(Coder)
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## 快速开始
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
我的职责:
|
|
18
|
+
1. **严格按 tasks.md 实现功能**
|
|
19
|
+
2. **运行快轨测试**(@smoke + @critical)
|
|
20
|
+
3. **触发 @full 测试**(CI 异步)
|
|
21
|
+
4. **禁止修改 tests/**
|
|
18
22
|
|
|
19
|
-
|
|
23
|
+
## 工作流位置
|
|
20
24
|
|
|
21
25
|
```
|
|
22
26
|
proposal → design → [TEST-OWNER] → [CODER] → [TEST-OWNER] → code-review → archive
|
|
@@ -25,9 +29,7 @@ proposal → design → [TEST-OWNER] → [CODER] → [TEST-OWNER] → code-revie
|
|
|
25
29
|
(@smoke/@critical) (不重跑@full)
|
|
26
30
|
```
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
> **重要变更**:本协议针对 AI 编程 + 个人开发场景优化,**去掉了"单独会话"的硬性要求**。
|
|
32
|
+
## AI 时代优化
|
|
31
33
|
|
|
32
34
|
| 旧设计 | 新设计 | 原因 |
|
|
33
35
|
|--------|--------|------|
|
|
@@ -35,89 +37,74 @@ proposal → design → [TEST-OWNER] → [CODER] → [TEST-OWNER] → code-revie
|
|
|
35
37
|
| Coder 跑完整测试等待结果 | Coder 跑快轨(`@smoke`/`@critical`),`@full` 异步触发 | 快速迭代 |
|
|
36
38
|
| 完成后直接交给 Test Owner | 完成后状态为 `Implementation Done`,等 @full 通过 | 异步不阻塞,归档同步 |
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
| 允许 | 禁止 |
|
|
41
|
-
|------|------|
|
|
42
|
-
| 修改 `src/**` 代码 | ❌ 修改 `tests/**` |
|
|
43
|
-
| 勾选 `tasks.md` 任务项 | ❌ 修改 `verification.md` |
|
|
44
|
-
| 记录偏离到 `deviation-log.md` | ❌ 勾选 AC 覆盖矩阵 |
|
|
45
|
-
| 运行快轨测试(`@smoke`/`@critical`) | ❌ 设置 verification.md Status 为 Verified/Done |
|
|
46
|
-
| 触发 `@full` 测试(CI/后台) | ❌ 等待 @full 完成(可以开始下一个变更) |
|
|
40
|
+
---
|
|
47
41
|
|
|
48
|
-
|
|
42
|
+
## 前置:配置发现
|
|
49
43
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
- @full 通过 → Test Owner 进入阶段 2 审计证据
|
|
56
|
-
- @full 失败 → Coder 修复
|
|
44
|
+
执行前**必须**按以下顺序查找配置(找到后停止):
|
|
45
|
+
1. `.devbooks/config.yaml`(如存在)→ 解析并使用其中的映射
|
|
46
|
+
2. `dev-playbooks/project.md`(如存在)→ Dev-Playbooks 协议
|
|
47
|
+
3. `project.md`(如存在)→ template 协议
|
|
48
|
+
4. 若仍无法确定 → **停止并询问用户**
|
|
57
49
|
|
|
58
|
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
50
|
+
**关键约束**:
|
|
51
|
+
- 如果配置中指定了 `agents_doc`(规则文档),**必须先阅读该文档**再执行任何操作
|
|
52
|
+
- 禁止猜测目录根
|
|
61
53
|
|
|
62
54
|
---
|
|
63
55
|
|
|
64
|
-
##
|
|
56
|
+
## 📚 参考文档
|
|
65
57
|
|
|
66
|
-
|
|
58
|
+
### 必读(立即阅读)
|
|
67
59
|
|
|
68
|
-
|
|
60
|
+
1. **通用守门协议**:`~/.claude/skills/_shared/references/通用守门协议.md`
|
|
61
|
+
- 可验证性守门、结构质量守门、完整性守门
|
|
62
|
+
- 所有 skills 的基础规则
|
|
69
63
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
| `@critical` | 关键功能验证 | 准备提交前 | 分钟级 |
|
|
74
|
-
| `@full` | 完整验收测试 | **不运行**,触发 CI 异步执行 | 可以慢 |
|
|
64
|
+
2. **代码实现提示词**:`references/代码实现提示词.md`
|
|
65
|
+
- 完整的代码实现指南
|
|
66
|
+
- 严格按此提示词执行
|
|
75
67
|
|
|
76
|
-
###
|
|
68
|
+
### 按需阅读
|
|
77
69
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
70
|
+
3. **测试运行策略**:`references/测试运行策略.md`
|
|
71
|
+
- @smoke/@critical/@full 标签详解
|
|
72
|
+
- 异步与同步的边界
|
|
73
|
+
- 何时阅读:需要理解测试运行策略时
|
|
81
74
|
|
|
82
|
-
|
|
83
|
-
|
|
75
|
+
4. **完成状态与路由**:`references/完成状态与路由.md`
|
|
76
|
+
- 完成状态分类(MECE)
|
|
77
|
+
- 路由输出模板
|
|
78
|
+
- 何时阅读:任务完成时输出状态
|
|
84
79
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
80
|
+
5. **热点感知与风险评估**:`references/热点感知与风险评估.md`
|
|
81
|
+
- MCP 增强功能
|
|
82
|
+
- 热点文件预警
|
|
83
|
+
- 何时阅读:需要风险评估时
|
|
89
84
|
|
|
90
|
-
|
|
85
|
+
6. **低风险改动技术**:`references/低风险改动技术.md`
|
|
86
|
+
- 安全重构技巧
|
|
87
|
+
- 何时阅读:需要重构时
|
|
91
88
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
| `@critical` 测试 | 同步 | 提交前必须通过 |
|
|
96
|
-
| `@full` 测试 | **异步** | CI 后台运行,不阻塞 Coder |
|
|
97
|
-
| 开始下一个变更 | **不阻塞** | Coder 可以立即开始 |
|
|
98
|
-
| 归档 | **阻塞** | 必须等 @full 通过 |
|
|
89
|
+
7. **编码风格细则**:`references/编码风格细则.md`
|
|
90
|
+
- 代码风格规范
|
|
91
|
+
- 何时阅读:不确定代码风格时
|
|
99
92
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
93
|
+
8. **日志规范**:`references/日志规范.md`
|
|
94
|
+
- 日志级别和格式
|
|
95
|
+
- 何时阅读:需要添加日志时
|
|
103
96
|
|
|
104
|
-
|
|
105
|
-
-
|
|
97
|
+
9. **错误码规范**:`references/错误码规范.md`
|
|
98
|
+
- 错误码设计
|
|
99
|
+
- 何时阅读:需要定义错误码时
|
|
106
100
|
|
|
107
|
-
|
|
108
|
-
1. `.devbooks/config.yaml`(如存在)→ 解析并使用其中的映射
|
|
109
|
-
2. `dev-playbooks/project.md`(如存在)→ Dev-Playbooks 协议,使用默认映射
|
|
110
|
-
3. `project.md`(如存在)→ template 协议,使用默认映射
|
|
111
|
-
4. 若仍无法确定 → **停止并询问用户**
|
|
101
|
+
---
|
|
112
102
|
|
|
113
|
-
|
|
114
|
-
- 如果配置中指定了 `agents_doc`(规则文档),**必须先阅读该文档**再执行任何操作
|
|
115
|
-
- 禁止猜测目录根
|
|
116
|
-
- 禁止跳过规则文档阅读
|
|
103
|
+
## 核心流程
|
|
117
104
|
|
|
118
|
-
|
|
105
|
+
### 1. 断点续做
|
|
119
106
|
|
|
120
|
-
|
|
107
|
+
每次开始前**必须**执行:
|
|
121
108
|
|
|
122
109
|
1. **读取进度**:打开 `<change-root>/<change-id>/tasks.md`,识别已勾选 `- [x]` 的任务
|
|
123
110
|
2. **定位续做点**:找到"最后一个 `[x]`"后的第一个 `- [ ]`
|
|
@@ -125,46 +112,12 @@ git push # 触发 CI
|
|
|
125
112
|
```
|
|
126
113
|
检测到 T1-T6 已完成(6/10),从 T7 继续。
|
|
127
114
|
```
|
|
128
|
-
4. **检查断点区**:如果 tasks.md 有"断点区"记录,优先恢复断点状态
|
|
129
|
-
5. **异常处理**:如果发现"未勾选但代码已存在"的任务,提示用户确认
|
|
130
115
|
|
|
131
|
-
###
|
|
132
|
-
|
|
133
|
-
```markdown
|
|
134
|
-
### 断点区 (Context Switch Breakpoint Area)
|
|
135
|
-
- 上次进度:T6 完成,T7 开始但未完成
|
|
136
|
-
- 当前阻塞:<阻塞原因>
|
|
137
|
-
- 下一步最短路径:<建议动作>
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## 实时进度更新协议(Real-time Progress Update)
|
|
116
|
+
### 2. 实时进度更新
|
|
143
117
|
|
|
144
118
|
> **核心原则**:完成一个任务,立即勾选一个。不要等到全部完成再批量勾选。
|
|
145
119
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
### 单任务完成后立即勾选
|
|
149
|
-
|
|
150
|
-
每完成 tasks.md 中的一个任务项后,**立即**将其从 `- [ ]` 改为 `- [x]`:
|
|
151
|
-
|
|
152
|
-
```markdown
|
|
153
|
-
# 任务完成前
|
|
154
|
-
- [ ] MP1.1 实现缓存管理器基础结构
|
|
155
|
-
|
|
156
|
-
# 任务完成后,立即更新
|
|
157
|
-
- [x] MP1.1 实现缓存管理器基础结构
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
### 为什么必须实时勾选
|
|
161
|
-
|
|
162
|
-
1. **断点恢复**:中断后可以准确知道从哪里继续
|
|
163
|
-
2. **进度可视**:用户和 AI 都能清楚看到当前进度
|
|
164
|
-
3. **避免遗忘**:批量勾选容易遗漏已完成项
|
|
165
|
-
4. **证据链完整**:每个勾选代表一个完成的里程碑
|
|
166
|
-
|
|
167
|
-
### 勾选时机
|
|
120
|
+
**勾选时机**:
|
|
168
121
|
|
|
169
122
|
| 时机 | 操作 |
|
|
170
123
|
|------|------|
|
|
@@ -173,63 +126,40 @@ git push # 触发 CI
|
|
|
173
126
|
| 相关测试通过 | **立即勾选** |
|
|
174
127
|
| 多个任务一起完成 | 逐个勾选,不要批量 |
|
|
175
128
|
|
|
176
|
-
###
|
|
129
|
+
### 3. 实现代码
|
|
177
130
|
|
|
178
|
-
|
|
179
|
-
- ❌ 禁止"代码写完就算完成"而不勾选
|
|
180
|
-
- ❌ 禁止勾选后又改回未勾选状态(除非回滚代码)
|
|
131
|
+
严格按 `references/代码实现提示词.md` 执行。
|
|
181
132
|
|
|
182
|
-
|
|
133
|
+
### 4. 运行测试
|
|
183
134
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
| 场景 | 处理方式 |
|
|
189
|
-
|------|----------|
|
|
190
|
-
| 命令输出 > 50 行 | 只保留首尾各 10 行 + 中间摘要 |
|
|
191
|
-
| 测试输出 | 提取关键失败信息,不要全量贴入对话 |
|
|
192
|
-
| 日志输出 | 落盘到 `<change-root>/<change-id>/evidence/`,对话中只引用路径 |
|
|
193
|
-
| 大文件内容 | 引用路径,不要内联 |
|
|
194
|
-
|
|
195
|
-
**示例**:
|
|
196
|
-
```
|
|
197
|
-
❌ 错误:贴入 2000 行测试日志
|
|
198
|
-
✅ 正确:测试失败 3 个,详见 <change-root>/<change-id>/evidence/green-final/test-output.log
|
|
199
|
-
关键错误:FAIL src/order.test.ts:45 - Expected 400, got 500
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
---
|
|
135
|
+
```bash
|
|
136
|
+
# 开发过程中:频繁运行 @smoke
|
|
137
|
+
npm test -- --grep "@smoke"
|
|
203
138
|
|
|
204
|
-
|
|
139
|
+
# 准备提交前:运行 @critical
|
|
140
|
+
npm test -- --grep "@smoke|@critical"
|
|
205
141
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
<change-root>/<change-id>/evidence/green-final/
|
|
142
|
+
# 提交后:CI 自动运行 @full(Coder 不等待)
|
|
143
|
+
git push # 触发 CI
|
|
209
144
|
```
|
|
210
145
|
|
|
211
|
-
|
|
212
|
-
- ❌ `./evidence/`(项目根目录)
|
|
213
|
-
- ❌ `evidence/`(相对于当前工作目录)
|
|
146
|
+
### 5. 输出完成状态
|
|
214
147
|
|
|
215
|
-
|
|
216
|
-
```bash
|
|
217
|
-
# Dev-Playbooks 默认路径
|
|
218
|
-
dev-playbooks/changes/<change-id>/evidence/green-final/test-$(date +%Y%m%d-%H%M%S).log
|
|
219
|
-
|
|
220
|
-
# 使用脚本
|
|
221
|
-
devbooks change-evidence <change-id> --label green-final -- npm test
|
|
222
|
-
```
|
|
148
|
+
参考 `references/完成状态与路由.md`。
|
|
223
149
|
|
|
224
150
|
---
|
|
225
151
|
|
|
226
152
|
## 关键约束
|
|
227
153
|
|
|
228
|
-
###
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
154
|
+
### 角色边界
|
|
155
|
+
|
|
156
|
+
| 允许 | 禁止 |
|
|
157
|
+
|------|------|
|
|
158
|
+
| 修改 `src/**` 代码 | ❌ 修改 `tests/**` |
|
|
159
|
+
| 勾选 `tasks.md` 任务项 | ❌ 修改 `verification.md` |
|
|
160
|
+
| 记录偏离到 `deviation-log.md` | ❌ 勾选 AC 覆盖矩阵 |
|
|
161
|
+
| 运行快轨测试(`@smoke`/`@critical`) | ❌ 设置 verification.md Status 为 Verified/Done |
|
|
162
|
+
| 触发 `@full` 测试(CI/后台) | ❌ 等待 @full 完成(可以开始下一个变更) |
|
|
233
163
|
|
|
234
164
|
### 代码质量约束
|
|
235
165
|
|
|
@@ -269,75 +199,42 @@ if rg -l 'console\.(log|debug)|debugger' src/ --type ts; then
|
|
|
269
199
|
fi
|
|
270
200
|
```
|
|
271
201
|
|
|
272
|
-
### 验证前置约束
|
|
273
|
-
|
|
274
|
-
**核心要求**:每次修改代码后,必须运行验证命令并确认通过。
|
|
275
|
-
|
|
276
|
-
- [ ] 修改代码后立即运行 `npm run compile`
|
|
277
|
-
- [ ] 编译通过后运行 `npm run lint`
|
|
278
|
-
- [ ] Lint 通过后运行 `npm test`
|
|
279
|
-
- [ ] 禁止在验证失败时声明"任务完成"
|
|
280
|
-
- [ ] 验证命令输出必须记录到证据文件
|
|
281
|
-
|
|
282
|
-
### 资源清理约束
|
|
283
|
-
|
|
284
|
-
- [ ] 临时文件必须在任务结束时删除
|
|
285
|
-
- [ ] 后台进程必须在任务结束时终止
|
|
286
|
-
- [ ] 无论成功失败,都必须执行清理
|
|
287
|
-
|
|
288
|
-
## 执行方式
|
|
289
|
-
|
|
290
|
-
1) 先阅读并遵守:`~/.claude/skills/_shared/references/通用守门协议.md`(可验证性 + 结构质量守门)。
|
|
291
|
-
2) 阅读低风险改动技术:`references/低风险改动技术.md`(需要时再读)。
|
|
292
|
-
3) 严格按完整提示词执行:`references/代码实现提示词.md`。
|
|
293
|
-
|
|
294
202
|
---
|
|
295
203
|
|
|
296
|
-
##
|
|
297
|
-
|
|
298
|
-
本 Skill 在执行前自动检测上下文,确保前置条件满足。
|
|
299
|
-
|
|
300
|
-
检测规则参考:`skills/_shared/上下文检测模板-context-detection.md`
|
|
204
|
+
## 输出管理
|
|
301
205
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
1. 检测 `tasks.md` 是否存在
|
|
305
|
-
2. 检测 `verification.md` 是否存在(Test Owner 已完成)
|
|
306
|
-
3. 检测当前会话是否已执行过 Test Owner 角色
|
|
307
|
-
4. 识别 tasks.md 中的进度(已完成/待做)
|
|
206
|
+
防止大量输出污染 context:
|
|
308
207
|
|
|
309
|
-
|
|
208
|
+
| 场景 | 处理方式 |
|
|
209
|
+
|------|----------|
|
|
210
|
+
| 命令输出 > 50 行 | 只保留首尾各 10 行 + 中间摘要 |
|
|
211
|
+
| 测试输出 | 提取关键失败信息,不要全量贴入对话 |
|
|
212
|
+
| 日志输出 | 落盘到 `<change-root>/<change-id>/evidence/`,对话中只引用路径 |
|
|
213
|
+
| 大文件内容 | 引用路径,不要内联 |
|
|
310
214
|
|
|
311
|
-
|
|
312
|
-
|------|----------|------|
|
|
313
|
-
| **首次实现** | tasks.md 全部为 `[ ]` | 从 MP1.1 开始 |
|
|
314
|
-
| **断点续做** | tasks.md 有部分 `[x]` | 从最后 `[x]` 后的第一个 `[ ]` 继续 |
|
|
315
|
-
| **闸门修复** | 测试失败需要修复 | 优先处理失败项 |
|
|
215
|
+
---
|
|
316
216
|
|
|
317
|
-
|
|
217
|
+
## 证据路径约定
|
|
318
218
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
-
|
|
322
|
-
|
|
219
|
+
**Green 证据必须保存*:
|
|
220
|
+
```
|
|
221
|
+
<change-root>/<change-id>/evidence/green-final/
|
|
222
|
+
```
|
|
323
223
|
|
|
324
|
-
|
|
224
|
+
**正确的路径示例**:
|
|
225
|
+
```bash
|
|
226
|
+
# Dev-Playbooks 默认路径
|
|
227
|
+
dev-playbooks/changes/<change-id>/evidence/green-final/test-$(date +%Y%m%d-%H%M%S).log
|
|
325
228
|
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
- 产物存在性:tasks.md ✓, verification.md ✓
|
|
329
|
-
- 角色隔离:✓(当前会话未执行 Test Owner)
|
|
330
|
-
- 进度:6/10 已完成
|
|
331
|
-
- 运行模式:断点续做,从 MP1.7 继续
|
|
229
|
+
# 使用脚本
|
|
230
|
+
devbooks change-evidence <change-id> --label green-final -- npm test
|
|
332
231
|
```
|
|
333
232
|
|
|
334
233
|
---
|
|
335
234
|
|
|
336
|
-
##
|
|
235
|
+
## 偏离检测与落盘
|
|
337
236
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
### 实时落盘要求
|
|
237
|
+
**参考**:`~/.claude/skills/_shared/references/偏离检测与路由协议.md`
|
|
341
238
|
|
|
342
239
|
在实现过程中,**必须立即**将以下情况写入 `deviation-log.md`:
|
|
343
240
|
|
|
@@ -345,136 +242,25 @@ fi
|
|
|
345
242
|
|------|------|------|
|
|
346
243
|
| 添加了 tasks.md 中没有的功能 | NEW_FEATURE | 新增 warmup() 方法 |
|
|
347
244
|
| 修改了 design.md 中的约束 | CONSTRAINT_CHANGE | 超时改为 60s |
|
|
348
|
-
| 发现设计未覆盖的边界情况 | DESIGN_GAP |
|
|
349
|
-
| 公共接口与设计不一致 | API_CHANGE | 参数增加 |
|
|
350
|
-
|
|
351
|
-
### deviation-log.md 格式
|
|
352
|
-
|
|
353
|
-
```markdown
|
|
354
|
-
# 偏离日志
|
|
355
|
-
|
|
356
|
-
## 待回写记录
|
|
357
|
-
|
|
358
|
-
| 时间 | 类型 | 描述 | 涉及文件 | 已回写 |
|
|
359
|
-
|------|------|------|----------|:------:|
|
|
360
|
-
| 2024-01-15 10:30 | NEW_FEATURE | 添加缓存预热功能 | src/cache.ts | ❌ |
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
### Compact 保护
|
|
364
|
-
|
|
365
|
-
**重要**:deviation-log.md 是持久化文件,不受 compact 影响。即使对话被压缩,偏离信息仍然保留。
|
|
245
|
+
| 发现设计未覆盖的边界情况 | DESIGN_GAP | 公共接口与设计不一致 | API_CHANGE | 参数增加 |
|
|
366
246
|
|
|
367
247
|
---
|
|
368
248
|
|
|
369
|
-
##
|
|
370
|
-
|
|
371
|
-
### 完成状态分类(MECE)
|
|
372
|
-
|
|
373
|
-
| 状态码 | 状态 | 判定条件 | 下一步 |
|
|
374
|
-
|:------:|------|----------|--------|
|
|
375
|
-
| ✅ | IMPLEMENTATION_DONE | 快轨测试绿,@full 已触发,无偏离 | 切换到 `[TEST-OWNER]` 等待 @full |
|
|
376
|
-
| ⚠️ | IMPLEMENTATION_DONE_WITH_DEVIATION | 快轨绿,deviation-log 有未回写记录 | `devbooks-design-backport` |
|
|
377
|
-
| 🔄 | HANDOFF | 发现测试问题需要修改 | 切换到 `[TEST-OWNER]` 模式修复测试 |
|
|
378
|
-
| ❌ | BLOCKED | 需要外部输入/决策 | 记录断点,等待用户 |
|
|
379
|
-
| 💥 | FAILED | 快轨测试未通过 | 修复后重试 |
|
|
380
|
-
|
|
381
|
-
### 状态判定流程
|
|
382
|
-
|
|
383
|
-
```
|
|
384
|
-
1. 检查 deviation-log.md 是否有 "| ❌" 记录
|
|
385
|
-
→ 有:IMPLEMENTATION_DONE_WITH_DEVIATION
|
|
386
|
-
|
|
387
|
-
2. 检查是否需要修改 tests/
|
|
388
|
-
→ 是:HANDOFF to [TEST-OWNER] 模式
|
|
389
|
-
|
|
390
|
-
3. 检查快轨测试(@smoke + @critical)是否全部通过
|
|
391
|
-
→ 否:FAILED
|
|
392
|
-
|
|
393
|
-
4. 检查 tasks.md 是否全部完成
|
|
394
|
-
→ 否:BLOCKED 或继续实现
|
|
395
|
-
|
|
396
|
-
5. 以上都通过,触发 @full
|
|
397
|
-
→ IMPLEMENTATION_DONE
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
### 路由输出模板(必须使用)
|
|
401
|
-
|
|
402
|
-
完成 coder 后,**必须**输出以下格式:
|
|
403
|
-
|
|
404
|
-
```markdown
|
|
405
|
-
## 完成状态
|
|
406
|
-
|
|
407
|
-
**状态**:✅ IMPLEMENTATION_DONE / ⚠️ ... / 🔄 HANDOFF / ❌ BLOCKED / 💥 FAILED
|
|
408
|
-
|
|
409
|
-
**任务进度**:X/Y 已完成
|
|
410
|
-
|
|
411
|
-
**快轨测试**:@smoke ✅ / @critical ✅
|
|
412
|
-
|
|
413
|
-
**@full 测试**:已触发(CI 异步运行中)
|
|
414
|
-
|
|
415
|
-
**偏离记录**:有 N 条待回写 / 无
|
|
416
|
-
|
|
417
|
-
## 下一步
|
|
418
|
-
|
|
419
|
-
**推荐**:切换到 `[TEST-OWNER]` 模式等待 @full / `devbooks-xxx skill`
|
|
420
|
-
|
|
421
|
-
**原因**:[具体原因]
|
|
422
|
-
|
|
423
|
-
**注意**:可以开始下一个变更,不需要等待 @full 完成
|
|
424
|
-
```
|
|
425
|
-
|
|
426
|
-
### 具体路由规则
|
|
427
|
-
|
|
428
|
-
| 我的状态 | 下一步 | 原因 |
|
|
429
|
-
|----------|--------|------|
|
|
430
|
-
| IMPLEMENTATION_DONE | 切换到 `[TEST-OWNER]` 模式(等 @full) | 快轨绿,等 @full 通过后审计证据 |
|
|
431
|
-
| IMPLEMENTATION_DONE_WITH_DEVIATION | `devbooks-design-backport` | 先回写设计 |
|
|
432
|
-
| HANDOFF (测试问题) | 切换到 `[TEST-OWNER]` 模式 | Coder 不能修改测试 |
|
|
433
|
-
| BLOCKED | 等待用户 | 记录断点区 |
|
|
434
|
-
| FAILED | 修复后重试 | 分析失败原因 |
|
|
435
|
-
|
|
436
|
-
**关键约束**:
|
|
437
|
-
- Coder **永远不能修改** `tests/**`
|
|
438
|
-
- 如发现测试问题,必须切换到 `[TEST-OWNER]` 模式处理
|
|
439
|
-
- 如有偏离,必须先 design-backport 再继续
|
|
440
|
-
- **Coder 完成后状态是 `Implementation Done`,必须等 @full 通过后才能进入 Test Owner 阶段 2**
|
|
441
|
-
- **模式切换替代会话隔离**:使用 `[TEST-OWNER]` / `[CODER]` 标签切换模式
|
|
442
|
-
|
|
443
|
-
---
|
|
444
|
-
|
|
445
|
-
## MCP 增强
|
|
446
|
-
|
|
447
|
-
本 Skill 支持 MCP 运行时增强,自动检测并启用高级功能。
|
|
448
|
-
|
|
449
|
-
MCP 增强规则参考:`skills/_shared/MCP增强模板-mcp-enhancement.md`
|
|
450
|
-
|
|
451
|
-
### 依赖的 MCP 服务
|
|
452
|
-
|
|
453
|
-
| 服务 | 用途 | 超时 |
|
|
454
|
-
|------|------|------|
|
|
455
|
-
| `mcp__ckb__getHotspots` | 检测热点文件,输出预警 | 2s |
|
|
456
|
-
| `mcp__ckb__getStatus` | 检测 CKB 索引可用性 | 2s |
|
|
457
|
-
|
|
458
|
-
### 检测流程
|
|
459
|
-
|
|
460
|
-
1. 调用 `mcp__ckb__getStatus`(2s 超时)
|
|
461
|
-
2. 若 CKB 可用 → 调用 `mcp__ckb__getHotspots` 获取热点文件
|
|
462
|
-
3. 若超时或失败 → 降级到基础模式(无热点预警)
|
|
463
|
-
|
|
464
|
-
### 增强模式 vs 基础模式
|
|
249
|
+
## 上下文感知
|
|
465
250
|
|
|
466
|
-
|
|
467
|
-
|------|----------|----------|
|
|
468
|
-
| 热点文件预警 | CKB 实时分析 | 不可用 |
|
|
469
|
-
| 风险文件识别 | 自动高亮高热点变更 | 手动识别 |
|
|
470
|
-
| 代码导航 | 符号级跳转 | 文件级搜索 |
|
|
251
|
+
检测规则参考:`~/.claude/skills/_shared/上下文检测模板.md`
|
|
471
252
|
|
|
472
|
-
###
|
|
253
|
+
### 本 Skill 支持的模式
|
|
473
254
|
|
|
474
|
-
|
|
255
|
+
| 模式 | 触发条件 | 行为 |
|
|
256
|
+
|------|----------|------|
|
|
257
|
+
| **首次实现** | tasks.md 全部为 `[ ]` | 从 MP1.1 开始 |
|
|
258
|
+
| **断点续做** | tasks.md 有部分 `[x]` | 从最后 `[x]` 后的第一个 `[ ]` 继续 |
|
|
259
|
+
| **闸门修复** | 测试失败需要修复 | 优先处理失败项 |
|
|
475
260
|
|
|
476
|
-
|
|
477
|
-
⚠️ CKB 不可用,跳过热点检测。
|
|
478
|
-
如需启用热点预警,请手动生成 SCIP 索引。
|
|
479
|
-
```
|
|
261
|
+
### 前置检查
|
|
480
262
|
|
|
263
|
+
- [ ] `tasks.md` 存在
|
|
264
|
+
- [ ] `verification.md` 存在
|
|
265
|
+
- [ ] 当前会话未执行过 Test Owner
|
|
266
|
+
- [ ] `tests/**` 有测试文件
|