dev-playbooks-cn 2.3.1 → 2.4.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 +141 -455
- package/package.json +1 -1
- package/skills/devbooks-archiver/SKILL.md +3 -1
- package/skills/devbooks-delivery-workflow/scripts/guardrail-check.sh +51 -10
- package/skills/devbooks-design-backport/SKILL.md +0 -105
- package/skills/devbooks-design-backport/references//345/233/236/345/206/231/350/256/276/350/256/241/346/226/207/346/241/243/346/217/220/347/244/272/350/257/215.md +0 -196
package/README.md
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
# DevBooks
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
> 把大型变更变成可控、可追溯、可验证的闭环:Skills + 质量闸门 + 角色隔离。
|
|
3
|
+
**AI 编程的质量闸门:让 AI 助手从"不可预测"变成"可验证"**
|
|
6
4
|
|
|
7
5
|
[](https://www.npmjs.com/package/dev-playbooks-cn)
|
|
8
6
|
[](LICENSE)
|
|
@@ -11,87 +9,74 @@
|
|
|
11
9
|
|
|
12
10
|
---
|
|
13
11
|
|
|
14
|
-
##
|
|
12
|
+
## 30 秒电梯演讲
|
|
13
|
+
|
|
14
|
+
AI 编程助手很强大,但有个致命问题:**你无法确定它是真的完成了,还是只是看起来完成了。**
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
DevBooks 通过三个核心机制解决这个问题:
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
| **同一对话写测试又写代码** | 测试沦为"通过性测试",而非验证规格 |
|
|
22
|
-
| **无验证闸门** | 伪完成悄悄进入生产环境 |
|
|
23
|
-
| **只支持 0→1 项目** | 存量代码库无从下手 |
|
|
24
|
-
| **命令太少** | 复杂变更不只是"spec/apply/archive" |
|
|
18
|
+
1. **角色隔离** - Test Owner 与 Coder 必须在独立对话中工作,测试不会沦为"通过性测试"
|
|
19
|
+
2. **证据驱动** - 完成由测试通过 + 构建成功定义,而非 AI 自评
|
|
20
|
+
3. **质量闸门** - 多重检查确保每个变更都是真正可交付的
|
|
25
21
|
|
|
26
|
-
|
|
27
|
-
- **基于证据的完成**:完成由测试/构建/证据定义,而非 AI 自我评估
|
|
28
|
-
- **强制角色隔离**:Test Owner 与 Coder 必须在独立对话中工作
|
|
29
|
-
- **多重质量闸门**:Green 证据检查、任务完成率、角色边界检查
|
|
30
|
-
- **18 个 Skills**:覆盖提案、设计、评审、熵度量等完整工作流
|
|
22
|
+
**结果**:从"边修边破"变成"稳定推进"。
|
|
31
23
|
|
|
32
24
|
---
|
|
33
25
|
|
|
34
|
-
##
|
|
26
|
+
## 最佳实践:一键跑完整闭环
|
|
35
27
|
|
|
36
|
-
|
|
28
|
+
不知道怎么用?直接运行:
|
|
37
29
|
|
|
38
|
-
|
|
30
|
+
```bash
|
|
31
|
+
/devbooks-delivery-workflow
|
|
32
|
+
```
|
|
39
33
|
|
|
40
|
-
|
|
41
|
-
- ✅ **会导致什么**:用大白话列出变化
|
|
42
|
-
- ❌ **不会导致什么**:明确说明不变的事情
|
|
43
|
-
- 📝 **一句话总结**:让非技术人员也能理解
|
|
34
|
+
这个 skill 会自动编排完整的开发闭环:Proposal → Design → Spec → Plan → Test → Implement → Review → Archive
|
|
44
35
|
|
|
45
|
-
|
|
36
|
+
**适用场景**:新功能开发、重大重构、不熟悉 DevBooks 工作流
|
|
46
37
|
|
|
47
|
-
|
|
48
|
-
- 👤 **你是谁?**:快速上手者 / 平台构建者 / 快速验证者
|
|
49
|
-
- 🎯 **你要什么?**:显性需求 + 隐藏需求
|
|
50
|
-
- 💡 **多视角推荐**:基于不同角色给出不同方案
|
|
38
|
+
---
|
|
51
39
|
|
|
52
|
-
|
|
40
|
+
## 我们解决的核心问题
|
|
53
41
|
|
|
54
|
-
|
|
55
|
-
- 🎛️ **可配置超时**:proposal 48h / design 24h / tasks 24h / verification 12h
|
|
56
|
-
- 🔒 **保留控制权**:用户可以随时拒绝或自定义
|
|
42
|
+
### 问题 1:逻辑幻觉与事实捏造
|
|
57
43
|
|
|
58
|
-
|
|
44
|
+
**痛点**:AI 在缺乏知识时倾向于自信地编造代码或库,而非承认无知。
|
|
59
45
|
|
|
60
|
-
|
|
61
|
-
-
|
|
46
|
+
**DevBooks 方案**:
|
|
47
|
+
- 规格驱动开发:所有代码必须追溯到 AC-xxx(验收标准)
|
|
48
|
+
- Contract Tests:验证对外契约,防止 API 幻觉
|
|
62
49
|
|
|
63
|
-
|
|
50
|
+
### 问题 2:非收敛性调试
|
|
64
51
|
|
|
65
|
-
|
|
52
|
+
**痛点**:修复一个 Bug 引入两个新 Bug,陷入"打地鼠"循环。
|
|
66
53
|
|
|
67
|
-
|
|
54
|
+
**DevBooks 方案**:
|
|
55
|
+
- 角色隔离:Test Owner 先跑出 Red 基线,Coder 不能修改测试
|
|
56
|
+
- 收敛性审计:`devbooks-convergence-audit` 评估变更包是否有效推进
|
|
68
57
|
|
|
69
|
-
|
|
58
|
+
### 问题 3:局部最优与全局短视
|
|
70
59
|
|
|
71
|
-
|
|
60
|
+
**痛点**:AI 倾向于生成"能跑通"的独立代码块,缺乏对整体架构的考量。
|
|
72
61
|
|
|
73
|
-
|
|
62
|
+
**DevBooks 方案**:
|
|
63
|
+
- 设计先行:Design Doc 定义 What/Constraints,不写 How
|
|
64
|
+
- 架构约束:Fitness Rules 验证架构规则
|
|
65
|
+
- 影响分析:变更前评估跨模块影响
|
|
74
66
|
|
|
75
|
-
###
|
|
67
|
+
### 问题 4:验证疲劳
|
|
76
68
|
|
|
77
|
-
|
|
78
|
-
|------|----------|----------|
|
|
79
|
-
| **Claude Code** | 完整 Skills | `CLAUDE.md` |
|
|
80
|
-
| **Codex CLI** | 完整 Skills | `AGENTS.md` |
|
|
81
|
-
| **Qoder** | 完整 Skills | `AGENTS.md` |
|
|
82
|
-
| **OpenCode** | 完整 Skills | `AGENTS.md` |
|
|
83
|
-
| **Every Code** | 完整 Skills | `AGENTS.md` |
|
|
84
|
-
| **Cursor** | Rules 系统 | `.cursor/rules/` |
|
|
85
|
-
| **Windsurf** | Rules 系统 | `.windsurf/rules/` |
|
|
86
|
-
| **Gemini CLI** | Rules 系统 | `GEMINI.md` |
|
|
87
|
-
| **Continue** | Rules 系统 | `.continue/rules/` |
|
|
88
|
-
| **GitHub Copilot** | 自定义指令 | `.github/copilot-instructions.md` |
|
|
69
|
+
**痛点**:AI 生成速度极快,人类审查代码的警觉性随时间呈指数下降。
|
|
89
70
|
|
|
90
|
-
|
|
71
|
+
**DevBooks 方案**:
|
|
72
|
+
- 自动化质量闸门:Green 证据检查、任务完成率、角色边界检查
|
|
73
|
+
- 强制评审:Reviewer 只审查可维护性,业务正确性由测试保证
|
|
91
74
|
|
|
92
|
-
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 快速开始
|
|
93
78
|
|
|
94
|
-
|
|
79
|
+
### 安装
|
|
95
80
|
|
|
96
81
|
```bash
|
|
97
82
|
# 全局安装
|
|
@@ -101,454 +86,155 @@ npm install -g dev-playbooks-cn
|
|
|
101
86
|
dev-playbooks-cn init
|
|
102
87
|
```
|
|
103
88
|
|
|
104
|
-
**一次性使用:**
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
npx dev-playbooks-cn@latest init
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
**从源码安装(贡献者):**
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
./scripts/install-skills.sh
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### 安装落点
|
|
117
|
-
|
|
118
|
-
初始化时可选择 Skills 安装位置:
|
|
119
|
-
|
|
120
|
-
| 安装范围 | 说明 | 路径示例 |
|
|
121
|
-
|----------|------|----------|
|
|
122
|
-
| **项目级**(默认) | 仅当前项目可用 | `.claude/skills/devbooks-*` |
|
|
123
|
-
| **全局** | 所有项目共享 | `~/.claude/skills/devbooks-*` |
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
# 交互式选择
|
|
127
|
-
dev-playbooks-cn init
|
|
128
|
-
|
|
129
|
-
# 非交互式指定
|
|
130
|
-
dev-playbooks-cn init --tools claude --scope project # 项目级
|
|
131
|
-
dev-playbooks-cn init --tools claude --scope global # 全局
|
|
132
|
-
```
|
|
133
|
-
|
|
134
89
|
### 更新
|
|
135
90
|
|
|
136
|
-
使用 `update` 命令同时更新 CLI 和项目中的 Skills:
|
|
137
|
-
|
|
138
91
|
```bash
|
|
139
92
|
dev-playbooks-cn update
|
|
140
93
|
```
|
|
141
94
|
|
|
142
|
-
|
|
143
|
-
1. **检查 CLI 新版本**:自动检测 npm 上是否有新版本,交互式询问是否更新
|
|
144
|
-
2. **更新项目文件**:更新 Skills、规则文件、指令文件等
|
|
145
|
-
|
|
146
|
-
> **提示**:不再需要手动运行 `npm install -g dev-playbooks-cn`,`update` 命令会自动处理。
|
|
95
|
+
### 支持的 AI 工具
|
|
147
96
|
|
|
148
|
-
|
|
97
|
+
| 工具 | 支持级别 |
|
|
98
|
+
|------|----------|
|
|
99
|
+
| Claude Code | 完整 Skills |
|
|
100
|
+
| Codex CLI | 完整 Skills |
|
|
101
|
+
| Qoder | 完整 Skills |
|
|
102
|
+
| OpenCode | 完整 Skills |
|
|
103
|
+
| Every Code | 完整 Skills |
|
|
104
|
+
| Cursor | Rules 系统 |
|
|
105
|
+
| Windsurf | Rules 系统 |
|
|
106
|
+
| Gemini CLI | Rules 系统 |
|
|
149
107
|
|
|
150
|
-
|
|
108
|
+
---
|
|
151
109
|
|
|
152
|
-
|
|
153
|
-
|------|------|--------|
|
|
154
|
-
| `<truth-root>` | 当前规格(只读真理) | `dev-playbooks/specs/` |
|
|
155
|
-
| `<change-root>` | 变更包(工作区) | `dev-playbooks/changes/` |
|
|
110
|
+
## 文档
|
|
156
111
|
|
|
157
|
-
|
|
112
|
+
- [使用指南](docs/使用指南.md) - 完整工作流程和最佳实践
|
|
113
|
+
- [Skill 详解](docs/Skill详解.md) - 18 个 Skills 的特色和功能
|
|
114
|
+
- [配置指南](dev-playbooks/docs/DevBooks配置指南.md) - 配置说明
|
|
115
|
+
- [推荐 MCP](dev-playbooks/docs/推荐MCP.md) - MCP 服务器推荐
|
|
158
116
|
|
|
159
117
|
---
|
|
160
118
|
|
|
161
|
-
##
|
|
119
|
+
## 核心理念
|
|
162
120
|
|
|
163
|
-
###
|
|
121
|
+
### 1. 角色隔离(Role Isolation)
|
|
164
122
|
|
|
165
|
-
|
|
123
|
+
Test Owner 与 Coder **必须在独立对话**中工作。这不是建议,是硬性约束。
|
|
166
124
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
125
|
+
**为什么?**
|
|
126
|
+
- 同一对话中写测试又写代码 → 测试沦为"通过性测试"
|
|
127
|
+
- 独立对话 → 测试真正验证规格
|
|
170
128
|
|
|
171
|
-
###
|
|
129
|
+
### 2. 规格驱动(Spec-Driven)
|
|
172
130
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
**1. Proposal 阶段(禁止编码)**
|
|
131
|
+
所有代码必须追溯到 AC-xxx(验收标准)。
|
|
176
132
|
|
|
177
133
|
```
|
|
178
|
-
|
|
134
|
+
需求 → Proposal → Design (AC-001, AC-002) → Spec → Tasks → Tests → Code
|
|
179
135
|
```
|
|
180
136
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
**2. Apply 阶段(强制角色隔离)**
|
|
137
|
+
### 3. 证据优先(Evidence-First)
|
|
184
138
|
|
|
185
|
-
|
|
139
|
+
完成由证据定义,而非 AI 声明。
|
|
186
140
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
请运行 devbooks-coder skill,变更 ID:add-oauth2
|
|
193
|
-
```
|
|
141
|
+
必需的证据:
|
|
142
|
+
- 测试通过(Green 证据)
|
|
143
|
+
- 构建成功
|
|
144
|
+
- 静态检查通过
|
|
145
|
+
- 任务完成率 100%
|
|
194
146
|
|
|
195
|
-
|
|
196
|
-
- Coder:按 `tasks.md` 实现,让闸门 **Green**(禁止改测试)
|
|
197
|
-
|
|
198
|
-
**3. Review 阶段**
|
|
199
|
-
|
|
200
|
-
```
|
|
201
|
-
请运行 devbooks-reviewer skill,变更 ID:add-oauth2
|
|
202
|
-
```
|
|
147
|
+
---
|
|
203
148
|
|
|
204
|
-
|
|
149
|
+
## 工作流程
|
|
205
150
|
|
|
206
151
|
```
|
|
207
|
-
|
|
152
|
+
1. Proposal(提案)- 分析需求,评估影响
|
|
153
|
+
↓
|
|
154
|
+
2. Design(设计)- 定义 What/Constraints + AC-xxx
|
|
155
|
+
↓
|
|
156
|
+
3. Spec(规格)- 定义对外行为契约
|
|
157
|
+
↓
|
|
158
|
+
4. Plan(计划)- 制定实现计划和任务拆解
|
|
159
|
+
↓
|
|
160
|
+
5. Test(测试)- 编写验收测试(独立对话)
|
|
161
|
+
↓
|
|
162
|
+
6. Implement(实现)- 实现功能(独立对话)
|
|
163
|
+
↓
|
|
164
|
+
7. Review(评审)- 代码评审
|
|
165
|
+
↓
|
|
166
|
+
8. Archive(归档)- 归档变更包
|
|
208
167
|
```
|
|
209
168
|
|
|
210
169
|
---
|
|
211
170
|
|
|
212
|
-
## Skills
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
|
217
|
-
|
|
218
|
-
|
|
|
219
|
-
|
|
|
220
|
-
|
|
|
221
|
-
|
|
|
222
|
-
|
|
|
223
|
-
|
|
|
224
|
-
|
|
|
225
|
-
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
|
230
|
-
|
|
231
|
-
|
|
|
232
|
-
|
|
|
233
|
-
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
| Skill | 说明 |
|
|
238
|
-
|-------|------|
|
|
239
|
-
| `devbooks-reviewer` | 代码评审(可读性/一致性) |
|
|
240
|
-
| `devbooks-test-reviewer` | 测试质量与覆盖率评审 |
|
|
241
|
-
| `devbooks-docs-consistency` | 文档一致性检查(原 devbooks-docs-sync) |
|
|
242
|
-
|
|
243
|
-
### Archive 阶段
|
|
244
|
-
|
|
245
|
-
| Skill | 说明 |
|
|
246
|
-
|-------|------|
|
|
247
|
-
| `devbooks-archiver` | 规格维护与去重 |
|
|
248
|
-
|
|
249
|
-
### 独立技能
|
|
250
|
-
|
|
251
|
-
| Skill | 说明 |
|
|
252
|
-
|-------|------|
|
|
253
|
-
| `devbooks-entropy-monitor` | 系统熵度量 |
|
|
254
|
-
| `devbooks-brownfield-bootstrap` | 存量项目初始化 |
|
|
255
|
-
| `devbooks-convergence-audit` | 收敛性审计(反迷惑设计) |
|
|
256
|
-
|
|
257
|
-
### 编排层(支持子 Agent 的工具专用)
|
|
258
|
-
|
|
259
|
-
| Skill | 说明 |
|
|
260
|
-
|-------|------|
|
|
261
|
-
| `devbooks-delivery-workflow` | 完整闭环编排器,自动编排 Proposal→Design→Spec→Plan→Test→Code→Review→Archive 全流程 |
|
|
262
|
-
|
|
263
|
-
> **注意**:`devbooks-delivery-workflow` 是编排层 Skill,专为支持子 Agent 的 AI 编程工具(如 Claude Code with Task tool)设计。它会调用子 Agent 执行各阶段 Skill,完成完整的变更闭环。
|
|
171
|
+
## 18 个 Skills
|
|
172
|
+
|
|
173
|
+
| Skill | 阶段 | 作用 |
|
|
174
|
+
|-------|------|------|
|
|
175
|
+
| devbooks-router | 入口 | 工作流引导 |
|
|
176
|
+
| devbooks-proposal-author | Proposal | 撰写提案 |
|
|
177
|
+
| devbooks-proposal-challenger | Proposal | 质疑提案 |
|
|
178
|
+
| devbooks-proposal-judge | Proposal | 裁决提案 |
|
|
179
|
+
| devbooks-design-doc | Design | 编写设计文档 |
|
|
180
|
+
| devbooks-spec-contract | Spec | 定义规格契约 |
|
|
181
|
+
| devbooks-implementation-plan | Plan | 制定实现计划 |
|
|
182
|
+
| devbooks-test-owner | Test | 编写验收测试 |
|
|
183
|
+
| devbooks-test-reviewer | Review | 测试评审 |
|
|
184
|
+
| devbooks-coder | Implement | 实现功能 |
|
|
185
|
+
| devbooks-reviewer | Review | 代码评审 |
|
|
186
|
+
| devbooks-archiver | Archive | 归档变更包 |
|
|
187
|
+
| devbooks-docs-consistency | Quality | 文档一致性检查 |
|
|
188
|
+
| devbooks-impact-analysis | Quality | 影响分析 |
|
|
189
|
+
| devbooks-convergence-audit | Quality | 收敛性审计 |
|
|
190
|
+
| devbooks-entropy-monitor | Quality | 熵度量监控 |
|
|
191
|
+
| devbooks-brownfield-bootstrap | Init | 存量项目初始化 |
|
|
192
|
+
| devbooks-delivery-workflow | Full | 完整闭环编排 |
|
|
193
|
+
|
|
194
|
+
详见 [Skill 详解](docs/Skill详解.md)
|
|
264
195
|
|
|
265
196
|
---
|
|
266
197
|
|
|
267
|
-
## DevBooks
|
|
268
|
-
|
|
269
|
-
### vs. OpenSpec
|
|
270
|
-
|
|
271
|
-
[OpenSpec](https://github.com/Fission-AI/OpenSpec) 是轻量级规格驱动框架,用三个核心命令(proposal/apply/archive)对齐人与 AI。
|
|
272
|
-
|
|
273
|
-
**OpenSpec 的局限**:
|
|
274
|
-
- 缺乏角色隔离,AI 可能自我验证"已完成"
|
|
275
|
-
- 无质量闸门,伪完成难以拦截
|
|
276
|
-
- 只有 3 个命令,复杂变更覆盖不足
|
|
277
|
-
|
|
278
|
-
**DevBooks 解决方案**:
|
|
279
|
-
- **强制角色隔离**:Test Owner 与 Coder 必须独立对话,杜绝自我验证
|
|
280
|
-
- **5+ 质量闸门**:Green 证据检查、任务完成率、角色边界检查
|
|
281
|
-
- **18 个 Skills**:覆盖提案→实现→归档完整闭环
|
|
282
|
-
|
|
283
|
-
### vs. spec-kit
|
|
284
|
-
|
|
285
|
-
[GitHub spec-kit](https://github.com/github/spec-kit) 提供规格驱动开发工具包,有 constitution 文件和结构化规划。
|
|
286
|
-
|
|
287
|
-
**spec-kit 的局限**:
|
|
288
|
-
- 偏向 0→1 绿地项目,存量项目支持有限
|
|
289
|
-
- 无强制角色隔离,测试与实现可能混淆
|
|
290
|
-
- 依赖人工检查,缺乏运行时验证
|
|
291
|
-
|
|
292
|
-
**DevBooks 解决方案**:
|
|
293
|
-
- **存量优先**:`devbooks-brownfield-bootstrap` 自动生成基线规格
|
|
294
|
-
- **强制角色隔离**:测试编写与实现物理分离
|
|
295
|
-
- **运行时闸门**:自动验证,不依赖人工检查
|
|
296
|
-
|
|
297
|
-
### vs. Kiro.dev
|
|
298
|
-
|
|
299
|
-
[Kiro](https://kiro.dev/) 是 AWS 的代理式 IDE,用三阶段工作流(需求、设计、任务)。
|
|
300
|
-
|
|
301
|
-
**Kiro 的局限**:
|
|
302
|
-
- 规格与实现产物分开存储,追溯困难
|
|
303
|
-
- 无强制角色隔离
|
|
304
|
-
- 依赖特定 IDE 环境
|
|
305
|
-
|
|
306
|
-
**DevBooks 解决方案**:
|
|
307
|
-
- **变更包**:proposal/design/spec/plan/verification/evidence 集中存储,完整追溯
|
|
308
|
-
- **强制角色隔离**:Test Owner 与 Coder 硬边界
|
|
309
|
-
- **工具无关**:支持 Claude Code、Codex CLI、Cursor 等多种工具
|
|
310
|
-
|
|
311
|
-
### vs. 无规格
|
|
312
|
-
|
|
313
|
-
没有规格时,AI 从模糊提示生成代码,导致不可预测的输出、范围蔓延和"幻觉式完成"。
|
|
314
|
-
|
|
315
|
-
**DevBooks 带来:**
|
|
316
|
-
- 实现前商定规格,范围清晰可控
|
|
317
|
-
- 质量闸门验证真实完成
|
|
318
|
-
- 角色隔离防止自我验证
|
|
319
|
-
- 每个变更的完整证据链
|
|
320
|
-
|
|
321
|
-
---
|
|
322
|
-
|
|
323
|
-
## 核心原则
|
|
324
|
-
|
|
325
|
-
| 原则 | 说明 |
|
|
326
|
-
|------|------|
|
|
327
|
-
| **协议优先** | 真理/变更/归档写进项目,不只存在聊天记录里 |
|
|
328
|
-
| **锚点优先** | 完成由测试、静态分析、构建和证据定义 |
|
|
329
|
-
| **角色隔离** | Test Owner 与 Coder 必须在独立对话中工作 |
|
|
330
|
-
| **真理源分离** | `<truth-root>` 是只读真理;`<change-root>` 是临时工作区 |
|
|
331
|
-
| **结构闸门** | 优先关注复杂度/耦合/测试质量,而非代理指标 |
|
|
332
|
-
|
|
333
|
-
---
|
|
334
|
-
|
|
335
|
-
## 高级功能
|
|
336
|
-
|
|
337
|
-
<details>
|
|
338
|
-
<summary><strong>质量闸门</strong></summary>
|
|
339
|
-
|
|
340
|
-
DevBooks 提供质量闸门拦截"伪完成":
|
|
341
|
-
|
|
342
|
-
| 闸门 | 触发模式 | 检查内容 |
|
|
343
|
-
|------|----------|----------|
|
|
344
|
-
| Green 证据检查 | archive, strict | `evidence/green-final/` 存在且非空 |
|
|
345
|
-
| 任务完成检查 | strict | tasks.md 中所有任务完成或 SKIP-APPROVED |
|
|
346
|
-
| 测试失败拦截 | archive, strict | Green 证据中无失败模式 |
|
|
347
|
-
| P0 跳过审批 | strict | P0 任务跳过必须有审批记录 |
|
|
348
|
-
| 角色边界检查 | apply --role | Coder 不能改 tests/,Test Owner 不能改 src/ |
|
|
349
|
-
|
|
350
|
-
核心脚本(位于 `~/.claude/skills/devbooks-delivery-workflow/scripts/`):
|
|
351
|
-
- `change-check.sh --mode proposal|apply|archive|strict`
|
|
352
|
-
- `handoff-check.sh` - 角色交接验证
|
|
353
|
-
- `audit-scope.sh` - 全量审计扫描
|
|
354
|
-
- `progress-dashboard.sh` - 进度可视化
|
|
355
|
-
|
|
356
|
-
</details>
|
|
357
|
-
|
|
358
|
-
<details>
|
|
359
|
-
<summary><strong>原型模式</strong></summary>
|
|
360
|
-
|
|
361
|
-
技术方案不确定时:
|
|
362
|
-
|
|
363
|
-
1. 创建原型:`change-scaffold.sh <change-id> --prototype`
|
|
364
|
-
2. Test Owner 用 `--prototype`:表征测试(无需 Red 基线)
|
|
365
|
-
3. Coder 用 `--prototype`:输出到 `prototype/src/`(隔离主 src)
|
|
366
|
-
4. 提升或丢弃:`prototype-promote.sh <change-id>`
|
|
367
|
-
|
|
368
|
-
原型模式防止实验代码污染主源码树。
|
|
369
|
-
|
|
370
|
-
脚本位于 `~/.claude/skills/devbooks-delivery-workflow/scripts/`。
|
|
371
|
-
|
|
372
|
-
</details>
|
|
373
|
-
|
|
374
|
-
<details>
|
|
375
|
-
<summary><strong>熵度量监控</strong></summary>
|
|
376
|
-
|
|
377
|
-
DevBooks 跟踪四维系统熵:
|
|
378
|
-
|
|
379
|
-
| 指标 | 测量内容 |
|
|
380
|
-
|------|----------|
|
|
381
|
-
| 结构熵 | 模块复杂度和耦合 |
|
|
382
|
-
| 变更熵 | 变动和波动模式 |
|
|
383
|
-
| 测试熵 | 测试覆盖率和质量衰减 |
|
|
384
|
-
| 依赖熵 | 外部依赖健康度 |
|
|
385
|
-
|
|
386
|
-
用 `devbooks-entropy-monitor` 生成报告,识别重构机会。
|
|
387
|
-
|
|
388
|
-
脚本(位于 `~/.claude/skills/devbooks-entropy-monitor/scripts/`):`entropy-measure.sh`、`entropy-report.sh`
|
|
389
|
-
|
|
390
|
-
</details>
|
|
391
|
-
|
|
392
|
-
<details>
|
|
393
|
-
<summary><strong>存量项目初始化</strong></summary>
|
|
394
|
-
|
|
395
|
-
当 `<truth-root>` 为空时,使用 `devbooks-brownfield-bootstrap` 生成:
|
|
396
|
-
|
|
397
|
-
- 项目画像和术语表
|
|
398
|
-
- 从现有代码生成基线规格
|
|
399
|
-
- 最小验证锚点
|
|
400
|
-
- 模块依赖图
|
|
401
|
-
- 技术债热点
|
|
402
|
-
|
|
403
|
-
</details>
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
<details>
|
|
407
|
-
<summary><strong>MCP 自动检测</strong></summary>
|
|
408
|
-
|
|
409
|
-
DevBooks Skills 支持 MCP(Model Context Protocol)优雅降级:在没有 MCP/CKB 的环境也能跑完整工作流;一旦检测到 CKB(Code Knowledge Base)可用,就自动启用图基能力,把"范围/引用/调用链"分析做得更准。
|
|
410
|
-
|
|
411
|
-
### 它有什么用?
|
|
412
|
-
|
|
413
|
-
- **影响分析更精确**:从"文件级猜测"升级到"符号级引用 + 调用图",降低漏改风险
|
|
414
|
-
- **审查更有重点**:自动拉取热点文件,优先关注高风险区域(技术债/高变动)
|
|
415
|
-
- **大仓库更省心**:减少手动 Grep 的噪音与反复确认
|
|
416
|
-
|
|
417
|
-
### MCP 状态与行为
|
|
418
|
-
|
|
419
|
-
| MCP 状态 | 行为 |
|
|
420
|
-
|----------|------|
|
|
421
|
-
| CKB 可用 | 增强模式:符号级影响分析/引用查找/调用图/热点 |
|
|
422
|
-
| CKB 不可用 | 基础模式:Grep + Glob 文本搜索(功能完整,精度降低) |
|
|
423
|
-
|
|
424
|
-
### 自动检测
|
|
425
|
-
|
|
426
|
-
- 需要 MCP 的 Skills 会先探测可用性(2s 超时)
|
|
427
|
-
- 超时/失败 → 静默降级到基础模式,不阻塞执行
|
|
428
|
-
- 无需手动选择"基础/增强"模式
|
|
429
|
-
|
|
430
|
-
如需启用增强能力:按 `docs/推荐MCP.md` 配置 CKB,并手动生成 `index.scip`。
|
|
431
|
-
|
|
432
|
-
</details>
|
|
433
|
-
|
|
434
|
-
<details>
|
|
435
|
-
<summary><strong>提案审查流程</strong></summary>
|
|
436
|
-
|
|
437
|
-
严格提案审查使用独立对话的 Challenger 和 Judge:
|
|
198
|
+
## 为什么选择 DevBooks?
|
|
438
199
|
|
|
439
|
-
|
|
440
|
-
1. **Author**:创建并捍卫提案(使用 `devbooks-proposal-author`)
|
|
441
|
-
2. **Challenger**:质疑假设、发现缺口、识别风险(使用 `devbooks-proposal-challenger`)
|
|
442
|
-
3. **Judge**:做最终决定、记录理由(使用 `devbooks-proposal-judge`)
|
|
200
|
+
### 对比传统 AI 编程
|
|
443
201
|
|
|
444
|
-
|
|
202
|
+
| 传统 AI 编程 | DevBooks |
|
|
203
|
+
|-------------|----------|
|
|
204
|
+
| AI 自评"已完成" | 测试通过 + 构建成功 |
|
|
205
|
+
| 同一对话写测试又写代码 | 角色隔离,独立对话 |
|
|
206
|
+
| 无验证闸门 | 多重质量闸门 |
|
|
207
|
+
| 边修边破 | 稳定推进 |
|
|
208
|
+
| 只支持 0→1 项目 | 支持存量项目 |
|
|
445
209
|
|
|
446
|
-
|
|
210
|
+
### 适用场景
|
|
447
211
|
|
|
448
|
-
|
|
212
|
+
- 新功能开发
|
|
213
|
+
- 重大重构
|
|
214
|
+
- Bug 修复
|
|
215
|
+
- 存量项目接入
|
|
216
|
+
- 需要高质量保证的项目
|
|
449
217
|
|
|
450
218
|
---
|
|
451
219
|
|
|
452
|
-
##
|
|
453
|
-
|
|
454
|
-
DevBooks 提供迁移脚本帮助从其他规格驱动开发工具迁移。
|
|
455
|
-
|
|
456
|
-
### 从 OpenSpec 迁移
|
|
457
|
-
|
|
458
|
-
如果你当前使用 [OpenSpec](https://github.com/Fission-AI/OpenSpec),有 `openspec/` 目录:
|
|
459
|
-
|
|
460
|
-
```bash
|
|
461
|
-
# 使用 CLI(推荐)
|
|
462
|
-
dev-playbooks-cn migrate --from openspec
|
|
463
|
-
|
|
464
|
-
# 先预览变更
|
|
465
|
-
dev-playbooks-cn migrate --from openspec --dry-run
|
|
466
|
-
|
|
467
|
-
# 迁移后保留原目录
|
|
468
|
-
dev-playbooks-cn migrate --from openspec --keep-old
|
|
469
|
-
```
|
|
470
|
-
|
|
471
|
-
**迁移内容:**
|
|
472
|
-
- `openspec/specs/` → `dev-playbooks/specs/`
|
|
473
|
-
- `openspec/changes/` → `dev-playbooks/changes/`
|
|
474
|
-
- `openspec/project.md` → `dev-playbooks/project.md`
|
|
475
|
-
- 所有路径引用自动更新
|
|
220
|
+
## 贡献
|
|
476
221
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
如果你使用 [GitHub spec-kit](https://github.com/github/spec-kit),有 `specs/` 和 `memory/` 目录:
|
|
480
|
-
|
|
481
|
-
```bash
|
|
482
|
-
# 使用 CLI(推荐)
|
|
483
|
-
dev-playbooks-cn migrate --from speckit
|
|
484
|
-
|
|
485
|
-
# 先预览变更
|
|
486
|
-
dev-playbooks-cn migrate --from speckit --dry-run
|
|
487
|
-
|
|
488
|
-
# 迁移后保留原目录
|
|
489
|
-
dev-playbooks-cn migrate --from speckit --keep-old
|
|
490
|
-
```
|
|
491
|
-
|
|
492
|
-
**映射规则:**
|
|
493
|
-
|
|
494
|
-
| Spec-Kit | DevBooks |
|
|
495
|
-
|----------|----------|
|
|
496
|
-
| `memory/constitution.md` | `dev-playbooks/specs/_meta/constitution.md` |
|
|
497
|
-
| `specs/[feature]/spec.md` | `changes/[feature]/design.md` |
|
|
498
|
-
| `specs/[feature]/plan.md` | `changes/[feature]/proposal.md` |
|
|
499
|
-
| `specs/[feature]/tasks.md` | `changes/[feature]/tasks.md` |
|
|
500
|
-
| `specs/[feature]/quickstart.md` | `changes/[feature]/verification.md` |
|
|
501
|
-
| `specs/[feature]/contracts/` | `changes/[feature]/specs/` |
|
|
502
|
-
|
|
503
|
-
### 迁移功能
|
|
504
|
-
|
|
505
|
-
两个迁移脚本都支持:
|
|
506
|
-
|
|
507
|
-
- **幂等执行**:可安全多次运行
|
|
508
|
-
- **断点续传**:中断后可从断点恢复
|
|
509
|
-
- **试运行模式**:预览变更再执行
|
|
510
|
-
- **自动备份**:原文件备份到 `.devbooks/backup/`
|
|
511
|
-
- **引用更新**:文档中的路径引用自动更新
|
|
512
|
-
|
|
513
|
-
### 迁移后步骤
|
|
514
|
-
|
|
515
|
-
迁移后:
|
|
516
|
-
|
|
517
|
-
1. 运行 `dev-playbooks-cn init` 设置 DevBooks Skills
|
|
518
|
-
2. 检查 `dev-playbooks/` 中的迁移文件
|
|
519
|
-
3. 更新 `verification.md` 文件的 AC 映射
|
|
520
|
-
4. 如需基线规格,运行 `devbooks-brownfield-bootstrap`
|
|
222
|
+
欢迎贡献!请查看 [贡献指南](CONTRIBUTING.md)。
|
|
521
223
|
|
|
522
224
|
---
|
|
523
225
|
|
|
524
|
-
##
|
|
226
|
+
## 许可证
|
|
525
227
|
|
|
526
|
-
|
|
527
|
-
dev-playbooks/
|
|
528
|
-
├── README.md # 本文档
|
|
529
|
-
├── constitution.md # 项目宪法(GIP 原则)
|
|
530
|
-
├── project.md # 项目上下文(技术栈/约定)
|
|
531
|
-
├── specs/ # 当前规格(只读真理)
|
|
532
|
-
│ ├── _meta/ # 元数据(术语表、项目画像)
|
|
533
|
-
│ └── architecture/ # 架构规格(fitness-rules)
|
|
534
|
-
├── changes/ # 变更包(工作区)
|
|
535
|
-
├── scripts/ # 辅助脚本
|
|
536
|
-
└── docs/ # 文档
|
|
537
|
-
├── workflow-diagram.svg # 工作流程图
|
|
538
|
-
├── 推荐MCP.md # MCP 配置建议
|
|
539
|
-
└── DevBooks配置指南.md # 配置指南
|
|
540
|
-
```
|
|
228
|
+
MIT License - 详见 [LICENSE](LICENSE)
|
|
541
229
|
|
|
542
230
|
---
|
|
543
231
|
|
|
544
|
-
##
|
|
232
|
+
## 联系方式
|
|
545
233
|
|
|
546
|
-
-
|
|
547
|
-
-
|
|
548
|
-
-
|
|
234
|
+
- GitHub: https://github.com/Darkbluelr/dev-playbooks-cn
|
|
235
|
+
- npm: https://www.npmjs.com/package/dev-playbooks-cn
|
|
236
|
+
- Issues: https://github.com/Darkbluelr/dev-playbooks-cn/issues
|
|
549
237
|
|
|
550
238
|
---
|
|
551
239
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
MIT
|
|
240
|
+
**记住**:DevBooks 不是工具,而是一套工作流程。遵循约束,质量自然提升。
|
package/package.json
CHANGED
|
@@ -65,12 +65,14 @@ proposal → design → test-owner(P1) → coder → test-owner(P2) → code-rev
|
|
|
65
65
|
|
|
66
66
|
| 阶段 | 职责 | 说明 |
|
|
67
67
|
|------|------|------|
|
|
68
|
-
| 1 |
|
|
68
|
+
| 1 | 设计回写(Design Backport) | 检测实现过程中的新约束/冲突/缺口,回写到 design.md |
|
|
69
69
|
| 2 | 规格合并 | 将 specs/contracts 合并到 truth-root |
|
|
70
70
|
| 3 | 架构合并 | 将 design.md 的 Architecture Impact 合并到 c4.md |
|
|
71
71
|
| 4 | 文档同步检查 | 检查 design.md 的 Documentation Impact 是否已处理 |
|
|
72
72
|
| 5 | 变更包归档移动 | 将变更包移动到 `<change-root>/archive/` |
|
|
73
73
|
|
|
74
|
+
**注意**:Archiver 现在承担了原 `devbooks-design-backport` skill 的职责,作为归档闭环的一部分自动执行。
|
|
75
|
+
|
|
74
76
|
---
|
|
75
77
|
|
|
76
78
|
## 前置:配置发现(协议无关)
|
|
@@ -321,6 +321,11 @@ check_layering_constraints() {
|
|
|
321
321
|
return 0
|
|
322
322
|
fi
|
|
323
323
|
|
|
324
|
+
if ! command -v rg >/dev/null 2>&1; then
|
|
325
|
+
echo "error: missing dependency: rg (ripgrep) required for layering checks" >&2
|
|
326
|
+
return 2
|
|
327
|
+
fi
|
|
328
|
+
|
|
324
329
|
# Get changed files
|
|
325
330
|
local changed_files=""
|
|
326
331
|
if [[ -d "${project_root}/.git" ]]; then
|
|
@@ -403,6 +408,11 @@ check_circular_dependencies() {
|
|
|
403
408
|
# Fallback: use simple grep to detect common circular patterns
|
|
404
409
|
echo "info: madge not available, using basic circular detection"
|
|
405
410
|
|
|
411
|
+
if ! command -v rg >/dev/null 2>&1; then
|
|
412
|
+
echo "error: missing dependency: rg (ripgrep) required for fallback circular checks" >&2
|
|
413
|
+
return 2
|
|
414
|
+
fi
|
|
415
|
+
|
|
406
416
|
# Check if files both import each other (simple heuristic)
|
|
407
417
|
if [[ -d "${project_root}/.git" ]]; then
|
|
408
418
|
local changed_files
|
|
@@ -499,42 +509,73 @@ check_hotspot_changes() {
|
|
|
499
509
|
|
|
500
510
|
exit_code=0
|
|
501
511
|
|
|
512
|
+
update_exit_code() {
|
|
513
|
+
local rc="$1"
|
|
514
|
+
|
|
515
|
+
if [[ $rc -eq 0 ]]; then
|
|
516
|
+
return 0
|
|
517
|
+
fi
|
|
518
|
+
|
|
519
|
+
# Preserve usage/tooling errors for callers that rely on exit code semantics.
|
|
520
|
+
if [[ $rc -eq 2 ]]; then
|
|
521
|
+
exit_code=2
|
|
522
|
+
return 0
|
|
523
|
+
fi
|
|
524
|
+
|
|
525
|
+
# If we have already hit a tooling error, keep 2 as the final status.
|
|
526
|
+
if [[ $exit_code -ne 2 ]]; then
|
|
527
|
+
exit_code=1
|
|
528
|
+
fi
|
|
529
|
+
|
|
530
|
+
return 0
|
|
531
|
+
}
|
|
532
|
+
|
|
502
533
|
# Role permission check
|
|
503
534
|
if [[ -n "$role" ]]; then
|
|
504
535
|
change_path=$(dirname "$file")
|
|
505
|
-
if
|
|
506
|
-
|
|
536
|
+
if check_role_permissions "$role" "$change_path"; then
|
|
537
|
+
:
|
|
538
|
+
else
|
|
539
|
+
update_exit_code $?
|
|
507
540
|
fi
|
|
508
541
|
fi
|
|
509
542
|
|
|
510
543
|
# Lockfile check
|
|
511
544
|
if [[ "$check_lockfile" == "true" ]]; then
|
|
512
545
|
change_path=$(dirname "$file")
|
|
513
|
-
if
|
|
514
|
-
|
|
546
|
+
if check_lockfile_changes "$change_path"; then
|
|
547
|
+
:
|
|
548
|
+
else
|
|
549
|
+
update_exit_code $?
|
|
515
550
|
fi
|
|
516
551
|
fi
|
|
517
552
|
|
|
518
553
|
# Engineering system change check
|
|
519
554
|
if [[ "$check_engineering" == "true" ]]; then
|
|
520
555
|
change_path=$(dirname "$file")
|
|
521
|
-
if
|
|
522
|
-
|
|
556
|
+
if check_engineering_changes "$change_path"; then
|
|
557
|
+
:
|
|
558
|
+
else
|
|
559
|
+
update_exit_code $?
|
|
523
560
|
fi
|
|
524
561
|
fi
|
|
525
562
|
|
|
526
563
|
# Layering constraint check (Dependency Guard)
|
|
527
564
|
if [[ "$check_layers" == "true" ]]; then
|
|
528
565
|
change_path=$(dirname "$file")
|
|
529
|
-
if
|
|
530
|
-
|
|
566
|
+
if check_layering_constraints "$change_path"; then
|
|
567
|
+
:
|
|
568
|
+
else
|
|
569
|
+
update_exit_code $?
|
|
531
570
|
fi
|
|
532
571
|
fi
|
|
533
572
|
|
|
534
573
|
# Circular dependency check
|
|
535
574
|
if [[ "$check_cycles" == "true" ]]; then
|
|
536
|
-
if
|
|
537
|
-
|
|
575
|
+
if check_circular_dependencies; then
|
|
576
|
+
:
|
|
577
|
+
else
|
|
578
|
+
update_exit_code $?
|
|
538
579
|
fi
|
|
539
580
|
fi
|
|
540
581
|
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: devbooks-design-backport
|
|
3
|
-
description: devbooks-design-backport:把实现过程中发现的新约束/冲突/缺口回写到 design.md(保持设计为黄金真理),并标注决策与影响。用户说"回写设计/补充设计文档/Design Backport/设计与实现不一致/需要澄清约束"等时使用。
|
|
4
|
-
recommended_experts: ["System Architect"]
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Glob
|
|
7
|
-
- Grep
|
|
8
|
-
- Read
|
|
9
|
-
- Write
|
|
10
|
-
- Edit
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# DevBooks:回写设计文档(Design Backport)
|
|
14
|
-
|
|
15
|
-
## 工作流位置感知(Workflow Position Awareness)
|
|
16
|
-
|
|
17
|
-
> **核心原则**:Design Backport 现在**主要由 Archiver 在归档阶段自动调用**,用户通常不需要手动调用。
|
|
18
|
-
|
|
19
|
-
### 我在整体工作流中的位置
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
proposal → design → test-owner → coder → test-owner(验证) → code-review → [Archive/Archiver]
|
|
23
|
-
↓ ↓
|
|
24
|
-
记录偏离到 deviation-log.md 自动调用 design-backport
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### 设计决策:自动回写
|
|
28
|
-
|
|
29
|
-
**旧流程**(需手动判断):
|
|
30
|
-
```
|
|
31
|
-
coder 有偏离 → 用户手动调用 design-backport → 再归档
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
**新流程**(自动处理):
|
|
35
|
-
```
|
|
36
|
-
coder 有偏离 → 归档时 archiver 自动检测并回写 → 归档
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### 何时仍需手动调用
|
|
40
|
-
|
|
41
|
-
| 场景 | 是否需要手动调用 |
|
|
42
|
-
|------|------------------|
|
|
43
|
-
| 正常流程(偏离记录在 deviation-log.md) | ❌ 归档时自动处理 |
|
|
44
|
-
| 需要立即回写(不等归档) | ✅ 手动调用 |
|
|
45
|
-
| 设计与实现严重冲突需要决策 | ✅ 手动调用并讨论 |
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## 前置:配置发现(协议无关)
|
|
50
|
-
|
|
51
|
-
- `<truth-root>`:当前真理目录根
|
|
52
|
-
- `<change-root>`:变更包目录根
|
|
53
|
-
|
|
54
|
-
执行前**必须**按以下顺序查找配置(找到后停止):
|
|
55
|
-
1. `.devbooks/config.yaml`(如存在)→ 解析并使用其中的映射
|
|
56
|
-
2. `dev-playbooks/project.md`(如存在)→ Dev-Playbooks 协议,使用默认映射
|
|
57
|
-
3. `project.md`(如存在)→ template 协议,使用默认映射
|
|
58
|
-
4. 若仍无法确定 → **停止并询问用户**
|
|
59
|
-
|
|
60
|
-
**关键约束**:
|
|
61
|
-
- 如果配置中指定了 `agents_doc`(规则文档),**必须先阅读该文档**再执行任何操作
|
|
62
|
-
- 禁止猜测目录根
|
|
63
|
-
- 禁止跳过规则文档阅读
|
|
64
|
-
|
|
65
|
-
## 执行方式
|
|
66
|
-
|
|
67
|
-
1) 先阅读并遵守:`~/.claude/skills/_shared/references/AI行为规范.md`(可验证性 + 结构质量守门)。
|
|
68
|
-
2) 严格按完整提示词执行:`references/回写设计文档提示词.md`。
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## 上下文感知
|
|
73
|
-
|
|
74
|
-
本 Skill 在执行前自动检测上下文,识别需要回写的内容。
|
|
75
|
-
|
|
76
|
-
检测规则参考:`skills/_shared/上下文检测模板.md`
|
|
77
|
-
|
|
78
|
-
### 检测流程
|
|
79
|
-
|
|
80
|
-
1. 检测 `design.md` 是否存在
|
|
81
|
-
2. 检测实现过程中是否有新发现(冲突/约束/缺口)
|
|
82
|
-
3. 对比设计与实现的差异
|
|
83
|
-
|
|
84
|
-
### 本 Skill 支持的模式
|
|
85
|
-
|
|
86
|
-
| 模式 | 触发条件 | 行为 |
|
|
87
|
-
|------|----------|------|
|
|
88
|
-
| **冲突回写** | 发现设计与实现冲突 | 记录冲突点和解决方案 |
|
|
89
|
-
| **约束回写** | 发现新的实现约束 | 补充约束条件到设计 |
|
|
90
|
-
| **缺口回写** | 发现设计未覆盖的场景 | 补充遗漏的设计决策 |
|
|
91
|
-
|
|
92
|
-
### 检测输出示例
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
检测结果:
|
|
96
|
-
- design.md:存在
|
|
97
|
-
- 发现内容:2 个新约束,1 个设计冲突
|
|
98
|
-
- 运行模式:约束回写 + 冲突回写
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## MCP 说明
|
|
104
|
-
|
|
105
|
-
本 Skill 不依赖 MCP 服务,无需运行时检测。
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
# 回写设计文档提示词
|
|
2
|
-
|
|
3
|
-
> **角色设定**:你是设计演进领域的**最强大脑**——融合了 Michael Nygard(架构决策记录)、Martin Fowler(演进式设计)、Kent Beck(渐进式改进)的智慧。你的设计同步必须达到这些大师级专家的水准。
|
|
4
|
-
|
|
5
|
-
最高指示(优先级最高):
|
|
6
|
-
- 在执行本提示词前,先阅读 `~/.claude/skills/_shared/references/AI行为规范.md` 并遵循其中所有协议。
|
|
7
|
-
|
|
8
|
-
# 提示词:当编码计划超出设计文档范围时,回写设计文档(Design Backport)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
> 使用场景:你发现“编码计划(tasks/plan)”中出现了“设计文档(design/spec)”未包含的新约束/新概念/新验收口径,导致“计划驱动实现”与“设计驱动验收”出现漂移。
|
|
13
|
-
|
|
14
|
-
产物落点(目录约定,协议无关):
|
|
15
|
-
- 设计文档通常位于:`<change-root>/<change-id>/design.md`
|
|
16
|
-
- 编码计划通常位于:`<change-root>/<change-id>/tasks.md`
|
|
17
|
-
- 规格 delta 通常位于:`<change-root>/<change-id>/specs/<capability>/spec.md`
|
|
18
|
-
- 当前真理源位于:`<truth-root>/`(不要试图回写/篡改历史归档来“统一口径”;用新的变更包更新当前真理)
|
|
19
|
-
|
|
20
|
-
> 目标:把“应该成为设计的一部分”的内容回写进设计文档,降低后续测试、实现、验收的分歧。
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
## 可回写到设计文档的内容(What can be backported)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
只有当计划内容满足以下任一条件时,才适合回写到设计文档(属于 **Design-level**):
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
1. **对外语义或用户可感知行为**
|
|
37
|
-
|
|
38
|
-
- 新增/修改关键用户流程(例如显式状态机、异步会话、可取消/可超时)
|
|
39
|
-
|
|
40
|
-
- 对外契约(API 输入输出形状、错误语义、必填字段、兼容窗口)
|
|
41
|
-
|
|
42
|
-
2. **系统级不可变约束(Invariants / Red Lines)**
|
|
43
|
-
|
|
44
|
-
- 成本/资源上限(例如禁止 N² LLM 调用、`max_llm_calls` 硬上限、预算触发降级)
|
|
45
|
-
|
|
46
|
-
- 可靠性/安全红线(例如多租户隔离默认开启、外部不可信边界、注入默认隔离)
|
|
47
|
-
|
|
48
|
-
3. **核心数据契约与演进策略(Contracts & Evolution)**
|
|
49
|
-
|
|
50
|
-
- `schema_version`、事件信封必需字段、幂等键原则、兼容策略(DLQ/迁移/回放)
|
|
51
|
-
|
|
52
|
-
- “什么必须能回放/可审计/可追溯”的最低标准
|
|
53
|
-
|
|
54
|
-
4. **跨阶段治理策略(Cross-cutting Concerns)**
|
|
55
|
-
|
|
56
|
-
- 观测指标、SLO/KPI、告警与运营策略
|
|
57
|
-
|
|
58
|
-
- 生命周期/保留策略(Valid/Quarantine/Garbage 的策略与目的)
|
|
59
|
-
|
|
60
|
-
- 灰度/回滚路径与功能开关(Feature Flags)
|
|
61
|
-
|
|
62
|
-
5. **关键取舍与决策(Decisions)**
|
|
63
|
-
|
|
64
|
-
- 选择 A 而非 B 的原因、替代方案、风险、降级策略
|
|
65
|
-
|
|
66
|
-
- 新增/修改“非目标(Non-goals)”或“开放问题(Open Questions)”
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
## 不应回写到设计文档的内容(What must NOT be backported)
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
以下内容属于 **Implementation-level**,不应直接写入设计文档(除非你要把它升级为正式设计决策):
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
- 具体文件路径、类名/函数名、表名/字段名的实现细节(除非它是稳定的架构边界且必须对齐)
|
|
83
|
-
|
|
84
|
-
- PR 切分建议、任务执行顺序、脚本/命令的临时实现步骤
|
|
85
|
-
|
|
86
|
-
- 过细的算法伪代码(可回写“输入/输出/不变量/复杂度上限/降级策略”,避免把代码写进设计)
|
|
87
|
-
|
|
88
|
-
- 仅为某次实现方便的技巧性约束(没有长期价值或不可被验证)
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
## 冲突处理规则(Plan vs Design)
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
- **设计文档优先(Design is the Golden Truth)**:若编码计划与设计冲突,不要直接用计划覆盖设计。
|
|
101
|
-
|
|
102
|
-
- 允许两种处理方式:
|
|
103
|
-
|
|
104
|
-
1) **提案式回写**:把计划内容作为 “Proposed Design Change(提案)” 写入设计文档,并明确需要决策/确认;
|
|
105
|
-
|
|
106
|
-
2) **降级/延期**:将计划条目标记为 `DEFERRED/UNSCOPED`,直到设计明确后再进入实施。
|
|
107
|
-
|
|
108
|
-
- 回写时必须显式标注:这是“新增设计决策/补充约束”,并说明原因与影响范围。
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
## 输出要求(你要产出的东西)
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
1. **对比清单**:列出“计划超出设计”的候选条目(按 Plan ID 分组),并给出分类:`Design-level / Implementation-level / Out-of-scope`。
|
|
121
|
-
|
|
122
|
-
2. **设计回写补丁**:将所有 `Design-level` 内容以最小改动写回设计文档,放到最合适的章节(例如:非目标/设计原则/风险与降级/契约/里程碑/关键决策汇总)。
|
|
123
|
-
|
|
124
|
-
3. **追溯更新**:对每条回写的设计内容,明确其验收方式(A/B/C)与验收锚点,并要求同步更新:
|
|
125
|
-
- 追溯矩阵(优先更新本次变更的 `<change-root>/<change-id>/verification.md`;如需对外公开再同步到 `docs/`)
|
|
126
|
-
- 非机器验收清单(优先更新 `<change-root>/<change-id>/verification.md` 中的 `MANUAL-*` 条目;如需对外公开再同步到 `docs/`)
|
|
127
|
-
- 如需新增/更新自动化锚点:列出对应的测试/静态检查建议(tests/命令/marker)
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
## 可直接复制使用的提示词(Prompt)
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
```text
|
|
140
|
-
|
|
141
|
-
你是“设计文档编辑器(Design Doc Editor)”。你的目标是把编码计划中超出设计文档范围、但属于设计层的内容,回写到设计文档中,使其成为可追溯、可验收的设计约束。
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
输入:
|
|
146
|
-
|
|
147
|
-
- 设计文档:`<change-root>/<change-id>/design.md`(或你提供的等价路径)
|
|
148
|
-
|
|
149
|
-
- 编码计划:`<change-root>/<change-id>/tasks.md`(或你提供的等价路径)
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
任务:
|
|
154
|
-
|
|
155
|
-
1) 通读编码计划,找出所有“设计文档没有覆盖或表述不足”的条目(按 MP/章节聚类)。
|
|
156
|
-
|
|
157
|
-
2) 对每条候选内容做分类:
|
|
158
|
-
|
|
159
|
-
- Design-level(应回写到设计):影响对外语义/用户流程/系统红线/数据契约/演进策略/运维治理/关键决策
|
|
160
|
-
|
|
161
|
-
- Implementation-level(不回写):实现细节、文件路径、PR 切分、执行顺序、伪代码细节
|
|
162
|
-
|
|
163
|
-
- Out-of-scope(不回写且应延期):不在本次范围或属于未来阶段但未被设计确认
|
|
164
|
-
|
|
165
|
-
3) 仅对 Design-level 内容,回写到设计文档:
|
|
166
|
-
|
|
167
|
-
- 放到最合适的现有章节;必要时新增小节,但不要重构整篇文档
|
|
168
|
-
|
|
169
|
-
- 以“设计约束/决策”的口吻描述,避免实现细节
|
|
170
|
-
|
|
171
|
-
- 如与原设计冲突:不要直接改写原结论;新增“Proposed Design Change/开放问题”并说明原因、影响、需要决策点
|
|
172
|
-
|
|
173
|
-
- 更新设计文档头部的“更新时间”(如存在)
|
|
174
|
-
|
|
175
|
-
4) 输出:
|
|
176
|
-
|
|
177
|
-
- A) 候选清单与分类结果(按 Plan ID)
|
|
178
|
-
|
|
179
|
-
- B) 对设计文档的最小补丁(只包含新增/修改的段落)
|
|
180
|
-
|
|
181
|
-
- C) 追溯与锚点更新清单(按优先级排序):
|
|
182
|
-
- 需要新增/更新哪些 tests/静态检查(A 类锚点)
|
|
183
|
-
- 需要新增/更新哪些人工/混合验收条目(B/C 类锚点,优先落到 `<change-root>/<change-id>/verification.md`)
|
|
184
|
-
- 需要如何更新追溯矩阵(优先落到 `<change-root>/<change-id>/verification.md`)
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
限制:
|
|
189
|
-
|
|
190
|
-
- 不要把文件路径、类名/函数名、DB 表名等实现细节写进设计文档(除非它是稳定架构边界且必须暴露)
|
|
191
|
-
|
|
192
|
-
- 不要把大段伪代码写进设计文档;可以写不变量、复杂度上限、降级策略
|
|
193
|
-
|
|
194
|
-
- 语言保持与设计文档一致(中文为主,必要时英文术语括号解释)
|
|
195
|
-
|
|
196
|
-
```
|