dev-playbooks-cn 2.3.2 → 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 CHANGED
@@ -1,8 +1,6 @@
1
1
  # DevBooks
2
2
 
3
- **面向 Claude Code / Codex CLI 的代理式 AI 开发工作流**
4
-
5
- > 把大型变更变成可控、可追溯、可验证的闭环:Skills + 质量闸门 + 角色隔离。
3
+ **AI 编程的质量闸门:让 AI 助手从"不可预测"变成"可验证"**
6
4
 
7
5
  [![npm](https://img.shields.io/npm/v/dev-playbooks-cn)](https://www.npmjs.com/package/dev-playbooks-cn)
8
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
@@ -11,104 +9,74 @@
11
9
 
12
10
  ---
13
11
 
14
- ## 为什么选择 DevBooks?
12
+ ## 30 秒电梯演讲
15
13
 
16
- AI 编码助手很强大,但往往**不可预测**:
14
+ AI 编程助手很强大,但有个致命问题:**你无法确定它是真的完成了,还是只是看起来完成了。**
17
15
 
18
- | 痛点 | 后果 |
19
- |------|------|
20
- | **AI 自评"已完成"** | 实际测试不过、边界条件遗漏 |
21
- | **同一对话写测试又写代码** | 测试沦为"通过性测试",而非验证规格 |
22
- | **无验证闸门** | 伪完成悄悄进入生产环境 |
23
- | **只支持 0→1 项目** | 存量代码库无从下手 |
24
- | **命令太少** | 复杂变更不只是"spec/apply/archive" |
16
+ DevBooks 通过三个核心机制解决这个问题:
25
17
 
26
- **DevBooks 的解决方案**:
27
- - **基于证据的完成**:完成由测试/构建/证据定义,而非 AI 自我评估
28
- - **强制角色隔离**:Test Owner 与 Coder 必须在独立对话中工作
29
- - **多重质量闸门**:Green 证据检查、任务完成率、角色边界检查
30
- - **18 个 Skills**:覆盖提案、设计、评审、熵度量等完整工作流
18
+ 1. **角色隔离** - Test Owner 与 Coder 必须在独立对话中工作,测试不会沦为"通过性测试"
19
+ 2. **证据驱动** - 完成由测试通过 + 构建成功定义,而非 AI 自评
20
+ 3. **质量闸门** - 多重检查确保每个变更都是真正可交付的
31
21
 
32
- ---
22
+ **结果**:从"边修边破"变成"稳定推进"。
33
23
 
34
- ## ✨ v2.0.0 新特性:人类友好的文档模板
35
-
36
- **核心理念**:AI 时代,人类需要简洁的信息来做决策,而不是阅读 AI 生成的上千行文档。
24
+ ---
37
25
 
38
- ### 结论先行(30秒快速理解)
26
+ ## 最佳实践:一键跑完整闭环
39
27
 
40
- 每个文档(proposal、design、tasks、verification)顶部都有简短摘要:
41
- - ✅ **会导致什么**:用大白话列出变化
42
- - ❌ **不会导致什么**:明确说明不变的事情
43
- - 📝 **一句话总结**:让非技术人员也能理解
28
+ 不知道怎么用?直接运行:
44
29
 
45
- ### 需求对齐(挖掘隐藏需求)
30
+ ```bash
31
+ /devbooks-delivery-workflow
32
+ ```
46
33
 
47
- proposal 阶段,通过问题引导用户思考:
48
- - 👤 **你是谁?**:快速上手者 / 平台构建者 / 快速验证者
49
- - 🎯 **你要什么?**:显性需求 + 隐藏需求
50
- - 💡 **多视角推荐**:基于不同角色给出不同方案
34
+ 这个 skill 会自动编排完整的开发闭环:Proposal → Design → Spec → Plan → Test → Implement → Review → Archive
51
35
 
52
- ### 默认批准机制(减少决策疲劳)
36
+ **适用场景**:新功能开发、重大重构、不熟悉 DevBooks 工作流
53
37
 
54
- - ⏰ **用户不说话 = 同意**:超时后自动批准
55
- - 🎛️ **可配置超时**:proposal 48h / design 24h / tasks 24h / verification 12h
56
- - 🔒 **保留控制权**:用户可以随时拒绝或自定义
38
+ ---
57
39
 
58
- ### 项目级文档(知识沉淀)
40
+ ## 我们解决的核心问题
59
41
 
60
- - 📋 **用户画像**(project-profile.md):记录角色、需求、约束、偏好
61
- - 📝 **决策日志**(decision-log.md):记录所有重要决策,方便回溯
42
+ ### 问题 1:逻辑幻觉与事实捏造
62
43
 
63
- **详见**:`docs/v2.0.0-修改总结.md`
44
+ **痛点**:AI 在缺乏知识时倾向于自信地编造代码或库,而非承认无知。
64
45
 
65
- ---
46
+ **DevBooks 方案**:
47
+ - 规格驱动开发:所有代码必须追溯到 AC-xxx(验收标准)
48
+ - Contract Tests:验证对外契约,防止 API 幻觉
66
49
 
67
- ## 工作原理
50
+ ### 问题 2:非收敛性调试
68
51
 
69
- **核心约束**:Test Owner Coder **必须在独立对话**中工作。这是硬性约束,不是建议。Coder 不能修改 `tests/**`,完成由测试/构建验证,而非 AI 自评。
52
+ **痛点**:修复一个 Bug 引入两个新 Bug,陷入"打地鼠"循环。
70
53
 
71
- ---
54
+ **DevBooks 方案**:
55
+ - 角色隔离:Test Owner 先跑出 Red 基线,Coder 不能修改测试
56
+ - 收敛性审计:`devbooks-convergence-audit` 评估变更包是否有效推进
72
57
 
73
- ## 快速开始
58
+ ### 问题 3:局部最优与全局短视
74
59
 
75
- **不知道怎么用?** 查看 [使用指南](docs/使用指南.md) 或直接运行:
60
+ **痛点**:AI 倾向于生成"能跑通"的独立代码块,缺乏对整体架构的考量。
76
61
 
77
- ```bash
78
- /devbooks-delivery-workflow
79
- ```
62
+ **DevBooks 方案**:
63
+ - 设计先行:Design Doc 定义 What/Constraints,不写 How
64
+ - 架构约束:Fitness Rules 验证架构规则
65
+ - 影响分析:变更前评估跨模块影响
80
66
 
81
- 这个 skill 会自动编排完整的开发闭环,从提案到归档。
67
+ ### 问题 4:验证疲劳
82
68
 
83
- ### 文档
69
+ **痛点**:AI 生成速度极快,人类审查代码的警觉性随时间呈指数下降。
84
70
 
85
- - [使用指南](docs/使用指南.md) - 最佳实践和推荐工作流程
86
- - [Skill 详解](docs/Skill详解.md) - 19 个 Skills 的特色和功能
87
- - [配置指南](dev-playbooks/docs/DevBooks配置指南.md) - 配置说明
88
- - [推荐 MCP](dev-playbooks/docs/推荐MCP.md) - MCP 服务器推荐
71
+ **DevBooks 方案**:
72
+ - 自动化质量闸门:Green 证据检查、任务完成率、角色边界检查
73
+ - 强制评审:Reviewer 只审查可维护性,业务正确性由测试保证
89
74
 
90
75
  ---
91
76
 
92
- ### 支持的 AI 工具
93
-
94
- | 工具 | 支持级别 | 配置文件 |
95
- |------|----------|----------|
96
- | **Claude Code** | 完整 Skills | `CLAUDE.md` |
97
- | **Codex CLI** | 完整 Skills | `AGENTS.md` |
98
- | **Qoder** | 完整 Skills | `AGENTS.md` |
99
- | **OpenCode** | 完整 Skills | `AGENTS.md` |
100
- | **Every Code** | 完整 Skills | `AGENTS.md` |
101
- | **Cursor** | Rules 系统 | `.cursor/rules/` |
102
- | **Windsurf** | Rules 系统 | `.windsurf/rules/` |
103
- | **Gemini CLI** | Rules 系统 | `GEMINI.md` |
104
- | **Continue** | Rules 系统 | `.continue/rules/` |
105
- | **GitHub Copilot** | 自定义指令 | `.github/copilot-instructions.md` |
106
-
107
- > **提示**:使用自然语言调用 Skills,例如:"运行 devbooks-proposal-author skill..."
108
-
109
- ### 安装与初始化
77
+ ## 快速开始
110
78
 
111
- **npm 安装(推荐):**
79
+ ### 安装
112
80
 
113
81
  ```bash
114
82
  # 全局安装
@@ -118,454 +86,155 @@ npm install -g dev-playbooks-cn
118
86
  dev-playbooks-cn init
119
87
  ```
120
88
 
121
- **一次性使用:**
122
-
123
- ```bash
124
- npx dev-playbooks-cn@latest init
125
- ```
126
-
127
- **从源码安装(贡献者):**
128
-
129
- ```bash
130
- ./scripts/install-skills.sh
131
- ```
132
-
133
- ### 安装落点
134
-
135
- 初始化时可选择 Skills 安装位置:
136
-
137
- | 安装范围 | 说明 | 路径示例 |
138
- |----------|------|----------|
139
- | **项目级**(默认) | 仅当前项目可用 | `.claude/skills/devbooks-*` |
140
- | **全局** | 所有项目共享 | `~/.claude/skills/devbooks-*` |
141
-
142
- ```bash
143
- # 交互式选择
144
- dev-playbooks-cn init
145
-
146
- # 非交互式指定
147
- dev-playbooks-cn init --tools claude --scope project # 项目级
148
- dev-playbooks-cn init --tools claude --scope global # 全局
149
- ```
150
-
151
89
  ### 更新
152
90
 
153
- 使用 `update` 命令同时更新 CLI 和项目中的 Skills:
154
-
155
91
  ```bash
156
92
  dev-playbooks-cn update
157
93
  ```
158
94
 
159
- 更新命令会:
160
- 1. **检查 CLI 新版本**:自动检测 npm 上是否有新版本,交互式询问是否更新
161
- 2. **更新项目文件**:更新 Skills、规则文件、指令文件等
162
-
163
- > **提示**:不再需要手动运行 `npm install -g dev-playbooks-cn`,`update` 命令会自动处理。
95
+ ### 支持的 AI 工具
164
96
 
165
- ### 快速集成
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 系统 |
166
107
 
167
- DevBooks 使用两个目录根:
108
+ ---
168
109
 
169
- | 目录 | 用途 | 默认值 |
170
- |------|------|--------|
171
- | `<truth-root>` | 当前规格(只读真理) | `dev-playbooks/specs/` |
172
- | `<change-root>` | 变更包(工作区) | `dev-playbooks/changes/` |
110
+ ## 文档
173
111
 
174
- 详见 `docs/DevBooks配置指南.md`。
112
+ - [使用指南](docs/使用指南.md) - 完整工作流程和最佳实践
113
+ - [Skill 详解](docs/Skill详解.md) - 18 个 Skills 的特色和功能
114
+ - [配置指南](dev-playbooks/docs/DevBooks配置指南.md) - 配置说明
115
+ - [推荐 MCP](dev-playbooks/docs/推荐MCP.md) - MCP 服务器推荐
175
116
 
176
117
  ---
177
118
 
178
- ## 日常变更工作流
179
-
180
- ### 使用 Router(推荐)
119
+ ## 核心理念
181
120
 
182
- 告诉 AI 你的需求,让 Router 分析并输出执行计划:
121
+ ### 1. 角色隔离(Role Isolation)
183
122
 
184
- ```
185
- 请运行 devbooks-router skill,分析需求:<你的需求>
186
- ```
123
+ Test Owner 与 Coder **必须在独立对话**中工作。这不是建议,是硬性约束。
187
124
 
188
- ### Skills 直达
125
+ **为什么?**
126
+ - 同一对话中写测试又写代码 → 测试沦为"通过性测试"
127
+ - 独立对话 → 测试真正验证规格
189
128
 
190
- 熟悉流程后,直接调用 Skill:
129
+ ### 2. 规格驱动(Spec-Driven)
191
130
 
192
- **1. Proposal 阶段(禁止编码)**
131
+ 所有代码必须追溯到 AC-xxx(验收标准)。
193
132
 
194
133
  ```
195
- 请运行 devbooks-proposal-author skill,创建提案:添加 OAuth2 用户认证
134
+ 需求 → Proposal → Design (AC-001, AC-002) Spec → Tasks → Tests → Code
196
135
  ```
197
136
 
198
- 产物:`proposal.md`(必需)、`design.md`、`tasks.md`
137
+ ### 3. 证据优先(Evidence-First)
199
138
 
200
- **2. Apply 阶段(强制角色隔离)**
139
+ 完成由证据定义,而非 AI 声明。
201
140
 
202
- 必须开 **2 个独立对话**:
141
+ 必需的证据:
142
+ - 测试通过(Green 证据)
143
+ - 构建成功
144
+ - 静态检查通过
145
+ - 任务完成率 100%
203
146
 
204
- ```
205
- # 对话 A - Test Owner
206
- 请运行 devbooks-test-owner skill,变更 ID:add-oauth2
207
-
208
- # 对话 B - Coder
209
- 请运行 devbooks-coder skill,变更 ID:add-oauth2
210
- ```
211
-
212
- - Test Owner:写 `verification.md` + 测试,先跑 **Red**
213
- - Coder:按 `tasks.md` 实现,让闸门 **Green**(禁止改测试)
214
-
215
- **3. Review 阶段**
216
-
217
- ```
218
- 请运行 devbooks-reviewer skill,变更 ID:add-oauth2
219
- ```
147
+ ---
220
148
 
221
- **4. Archive 阶段**
149
+ ## 工作流程
222
150
 
223
151
  ```
224
- 请运行 devbooks-archiver skill,变更 ID:add-oauth2
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(归档)- 归档变更包
225
167
  ```
226
168
 
227
169
  ---
228
170
 
229
- ## Skills 参考
230
-
231
- ### Proposal 阶段
232
-
233
- | Skill | 说明 |
234
- |-------|------|
235
- | `devbooks-router` | 智能路由到合适的 Skill |
236
- | `devbooks-proposal-author` | 创建变更提案 |
237
- | `devbooks-impact-analysis` | 跨模块影响分析 |
238
- | `devbooks-proposal-challenger` | 质疑和挑战提案 |
239
- | `devbooks-proposal-judge` | 裁决提案 |
240
- | `devbooks-design-doc` | 创建设计文档 |
241
- | `devbooks-spec-contract` | 定义规格与契约 |
242
- | `devbooks-implementation-plan` | 创建实现计划 |
243
-
244
- ### Apply 阶段
245
-
246
- | Skill | 说明 |
247
- |-------|------|
248
- | `devbooks-test-owner` | Test Owner 角色(必须独立对话) |
249
- | `devbooks-coder` | Coder 角色(必须独立对话) |
250
- | `devbooks-design-backport` | 回写发现到设计文档 |
251
-
252
- ### Review 阶段
253
-
254
- | Skill | 说明 |
255
- |-------|------|
256
- | `devbooks-reviewer` | 代码评审(可读性/一致性) |
257
- | `devbooks-test-reviewer` | 测试质量与覆盖率评审 |
258
- | `devbooks-docs-consistency` | 文档一致性检查(原 devbooks-docs-sync) |
259
-
260
- ### Archive 阶段
261
-
262
- | Skill | 说明 |
263
- |-------|------|
264
- | `devbooks-archiver` | 规格维护与去重 |
265
-
266
- ### 独立技能
267
-
268
- | Skill | 说明 |
269
- |-------|------|
270
- | `devbooks-entropy-monitor` | 系统熵度量 |
271
- | `devbooks-brownfield-bootstrap` | 存量项目初始化 |
272
- | `devbooks-convergence-audit` | 收敛性审计(反迷惑设计) |
273
-
274
- ### 编排层(支持子 Agent 的工具专用)
275
-
276
- | Skill | 说明 |
277
- |-------|------|
278
- | `devbooks-delivery-workflow` | 完整闭环编排器,自动编排 Proposal→Design→Spec→Plan→Test→Code→Review→Archive 全流程 |
279
-
280
- > **注意**:`devbooks-delivery-workflow` 是编排层 Skill,专为支持子 Agent 的 AI 编程工具(如 Claude Code with Task tool)设计。它会调用子 Agent 执行各阶段 Skill,完成完整的变更闭环。
281
-
282
- ---
283
-
284
- ## DevBooks 对比
285
-
286
- ### vs. OpenSpec
287
-
288
- [OpenSpec](https://github.com/Fission-AI/OpenSpec) 是轻量级规格驱动框架,用三个核心命令(proposal/apply/archive)对齐人与 AI。
289
-
290
- **OpenSpec 的局限**:
291
- - 缺乏角色隔离,AI 可能自我验证"已完成"
292
- - 无质量闸门,伪完成难以拦截
293
- - 只有 3 个命令,复杂变更覆盖不足
294
-
295
- **DevBooks 解决方案**:
296
- - **强制角色隔离**:Test Owner 与 Coder 必须独立对话,杜绝自我验证
297
- - **5+ 质量闸门**:Green 证据检查、任务完成率、角色边界检查
298
- - **18 个 Skills**:覆盖提案→实现→归档完整闭环
299
-
300
- ### vs. spec-kit
301
-
302
- [GitHub spec-kit](https://github.com/github/spec-kit) 提供规格驱动开发工具包,有 constitution 文件和结构化规划。
303
-
304
- **spec-kit 的局限**:
305
- - 偏向 0→1 绿地项目,存量项目支持有限
306
- - 无强制角色隔离,测试与实现可能混淆
307
- - 依赖人工检查,缺乏运行时验证
308
-
309
- **DevBooks 解决方案**:
310
- - **存量优先**:`devbooks-brownfield-bootstrap` 自动生成基线规格
311
- - **强制角色隔离**:测试编写与实现物理分离
312
- - **运行时闸门**:自动验证,不依赖人工检查
313
-
314
- ### vs. Kiro.dev
315
-
316
- [Kiro](https://kiro.dev/) 是 AWS 的代理式 IDE,用三阶段工作流(需求、设计、任务)。
317
-
318
- **Kiro 的局限**:
319
- - 规格与实现产物分开存储,追溯困难
320
- - 无强制角色隔离
321
- - 依赖特定 IDE 环境
322
-
323
- **DevBooks 解决方案**:
324
- - **变更包**:proposal/design/spec/plan/verification/evidence 集中存储,完整追溯
325
- - **强制角色隔离**:Test Owner 与 Coder 硬边界
326
- - **工具无关**:支持 Claude Code、Codex CLI、Cursor 等多种工具
327
-
328
- ### vs. 无规格
329
-
330
- 没有规格时,AI 从模糊提示生成代码,导致不可预测的输出、范围蔓延和"幻觉式完成"。
331
-
332
- **DevBooks 带来:**
333
- - 实现前商定规格,范围清晰可控
334
- - 质量闸门验证真实完成
335
- - 角色隔离防止自我验证
336
- - 每个变更的完整证据链
337
-
338
- ---
339
-
340
- ## 核心原则
341
-
342
- | 原则 | 说明 |
343
- |------|------|
344
- | **协议优先** | 真理/变更/归档写进项目,不只存在聊天记录里 |
345
- | **锚点优先** | 完成由测试、静态分析、构建和证据定义 |
346
- | **角色隔离** | Test Owner 与 Coder 必须在独立对话中工作 |
347
- | **真理源分离** | `<truth-root>` 是只读真理;`<change-root>` 是临时工作区 |
348
- | **结构闸门** | 优先关注复杂度/耦合/测试质量,而非代理指标 |
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)
349
195
 
350
196
  ---
351
197
 
352
- ## 高级功能
353
-
354
- <details>
355
- <summary><strong>质量闸门</strong></summary>
356
-
357
- DevBooks 提供质量闸门拦截"伪完成":
358
-
359
- | 闸门 | 触发模式 | 检查内容 |
360
- |------|----------|----------|
361
- | Green 证据检查 | archive, strict | `evidence/green-final/` 存在且非空 |
362
- | 任务完成检查 | strict | tasks.md 中所有任务完成或 SKIP-APPROVED |
363
- | 测试失败拦截 | archive, strict | Green 证据中无失败模式 |
364
- | P0 跳过审批 | strict | P0 任务跳过必须有审批记录 |
365
- | 角色边界检查 | apply --role | Coder 不能改 tests/,Test Owner 不能改 src/ |
366
-
367
- 核心脚本(位于 `~/.claude/skills/devbooks-delivery-workflow/scripts/`):
368
- - `change-check.sh --mode proposal|apply|archive|strict`
369
- - `handoff-check.sh` - 角色交接验证
370
- - `audit-scope.sh` - 全量审计扫描
371
- - `progress-dashboard.sh` - 进度可视化
372
-
373
- </details>
374
-
375
- <details>
376
- <summary><strong>原型模式</strong></summary>
377
-
378
- 技术方案不确定时:
379
-
380
- 1. 创建原型:`change-scaffold.sh <change-id> --prototype`
381
- 2. Test Owner 用 `--prototype`:表征测试(无需 Red 基线)
382
- 3. Coder 用 `--prototype`:输出到 `prototype/src/`(隔离主 src)
383
- 4. 提升或丢弃:`prototype-promote.sh <change-id>`
384
-
385
- 原型模式防止实验代码污染主源码树。
386
-
387
- 脚本位于 `~/.claude/skills/devbooks-delivery-workflow/scripts/`。
388
-
389
- </details>
390
-
391
- <details>
392
- <summary><strong>熵度量监控</strong></summary>
393
-
394
- DevBooks 跟踪四维系统熵:
395
-
396
- | 指标 | 测量内容 |
397
- |------|----------|
398
- | 结构熵 | 模块复杂度和耦合 |
399
- | 变更熵 | 变动和波动模式 |
400
- | 测试熵 | 测试覆盖率和质量衰减 |
401
- | 依赖熵 | 外部依赖健康度 |
402
-
403
- 用 `devbooks-entropy-monitor` 生成报告,识别重构机会。
404
-
405
- 脚本(位于 `~/.claude/skills/devbooks-entropy-monitor/scripts/`):`entropy-measure.sh`、`entropy-report.sh`
406
-
407
- </details>
408
-
409
- <details>
410
- <summary><strong>存量项目初始化</strong></summary>
411
-
412
- 当 `<truth-root>` 为空时,使用 `devbooks-brownfield-bootstrap` 生成:
413
-
414
- - 项目画像和术语表
415
- - 从现有代码生成基线规格
416
- - 最小验证锚点
417
- - 模块依赖图
418
- - 技术债热点
419
-
420
- </details>
421
-
422
-
423
- <details>
424
- <summary><strong>MCP 自动检测</strong></summary>
425
-
426
- DevBooks Skills 支持 MCP(Model Context Protocol)优雅降级:在没有 MCP/CKB 的环境也能跑完整工作流;一旦检测到 CKB(Code Knowledge Base)可用,就自动启用图基能力,把"范围/引用/调用链"分析做得更准。
427
-
428
- ### 它有什么用?
429
-
430
- - **影响分析更精确**:从"文件级猜测"升级到"符号级引用 + 调用图",降低漏改风险
431
- - **审查更有重点**:自动拉取热点文件,优先关注高风险区域(技术债/高变动)
432
- - **大仓库更省心**:减少手动 Grep 的噪音与反复确认
433
-
434
- ### MCP 状态与行为
435
-
436
- | MCP 状态 | 行为 |
437
- |----------|------|
438
- | CKB 可用 | 增强模式:符号级影响分析/引用查找/调用图/热点 |
439
- | CKB 不可用 | 基础模式:Grep + Glob 文本搜索(功能完整,精度降低) |
440
-
441
- ### 自动检测
442
-
443
- - 需要 MCP 的 Skills 会先探测可用性(2s 超时)
444
- - 超时/失败 → 静默降级到基础模式,不阻塞执行
445
- - 无需手动选择"基础/增强"模式
446
-
447
- 如需启用增强能力:按 `docs/推荐MCP.md` 配置 CKB,并手动生成 `index.scip`。
448
-
449
- </details>
450
-
451
- <details>
452
- <summary><strong>提案审查流程</strong></summary>
453
-
454
- 严格提案审查使用独立对话的 Challenger 和 Judge:
198
+ ## 为什么选择 DevBooks?
455
199
 
456
- 三个角色(必须独立对话):
457
- 1. **Author**:创建并捍卫提案(使用 `devbooks-proposal-author`)
458
- 2. **Challenger**:质疑假设、发现缺口、识别风险(使用 `devbooks-proposal-challenger`)
459
- 3. **Judge**:做最终决定、记录理由(使用 `devbooks-proposal-judge`)
200
+ ### 对比传统 AI 编程
460
201
 
461
- **重要**:三个角色必须在**独立对话**中工作,以避免角色混淆和自我验证。
202
+ | 传统 AI 编程 | DevBooks |
203
+ |-------------|----------|
204
+ | AI 自评"已完成" | 测试通过 + 构建成功 |
205
+ | 同一对话写测试又写代码 | 角色隔离,独立对话 |
206
+ | 无验证闸门 | 多重质量闸门 |
207
+ | 边修边破 | 稳定推进 |
208
+ | 只支持 0→1 项目 | 支持存量项目 |
462
209
 
463
- 决定结果:`Approved`、`Revise`、`Rejected`
210
+ ### 适用场景
464
211
 
465
- </details>
212
+ - 新功能开发
213
+ - 重大重构
214
+ - Bug 修复
215
+ - 存量项目接入
216
+ - 需要高质量保证的项目
466
217
 
467
218
  ---
468
219
 
469
- ## 从其他框架迁移
470
-
471
- DevBooks 提供迁移脚本帮助从其他规格驱动开发工具迁移。
472
-
473
- ### 从 OpenSpec 迁移
474
-
475
- 如果你当前使用 [OpenSpec](https://github.com/Fission-AI/OpenSpec),有 `openspec/` 目录:
476
-
477
- ```bash
478
- # 使用 CLI(推荐)
479
- dev-playbooks-cn migrate --from openspec
480
-
481
- # 先预览变更
482
- dev-playbooks-cn migrate --from openspec --dry-run
483
-
484
- # 迁移后保留原目录
485
- dev-playbooks-cn migrate --from openspec --keep-old
486
- ```
220
+ ## 贡献
487
221
 
488
- **迁移内容:**
489
- - `openspec/specs/` → `dev-playbooks/specs/`
490
- - `openspec/changes/` → `dev-playbooks/changes/`
491
- - `openspec/project.md` → `dev-playbooks/project.md`
492
- - 所有路径引用自动更新
493
-
494
- ### 从 GitHub spec-kit 迁移
495
-
496
- 如果你使用 [GitHub spec-kit](https://github.com/github/spec-kit),有 `specs/` 和 `memory/` 目录:
497
-
498
- ```bash
499
- # 使用 CLI(推荐)
500
- dev-playbooks-cn migrate --from speckit
501
-
502
- # 先预览变更
503
- dev-playbooks-cn migrate --from speckit --dry-run
504
-
505
- # 迁移后保留原目录
506
- dev-playbooks-cn migrate --from speckit --keep-old
507
- ```
508
-
509
- **映射规则:**
510
-
511
- | Spec-Kit | DevBooks |
512
- |----------|----------|
513
- | `memory/constitution.md` | `dev-playbooks/specs/_meta/constitution.md` |
514
- | `specs/[feature]/spec.md` | `changes/[feature]/design.md` |
515
- | `specs/[feature]/plan.md` | `changes/[feature]/proposal.md` |
516
- | `specs/[feature]/tasks.md` | `changes/[feature]/tasks.md` |
517
- | `specs/[feature]/quickstart.md` | `changes/[feature]/verification.md` |
518
- | `specs/[feature]/contracts/` | `changes/[feature]/specs/` |
519
-
520
- ### 迁移功能
521
-
522
- 两个迁移脚本都支持:
523
-
524
- - **幂等执行**:可安全多次运行
525
- - **断点续传**:中断后可从断点恢复
526
- - **试运行模式**:预览变更再执行
527
- - **自动备份**:原文件备份到 `.devbooks/backup/`
528
- - **引用更新**:文档中的路径引用自动更新
529
-
530
- ### 迁移后步骤
531
-
532
- 迁移后:
533
-
534
- 1. 运行 `dev-playbooks-cn init` 设置 DevBooks Skills
535
- 2. 检查 `dev-playbooks/` 中的迁移文件
536
- 3. 更新 `verification.md` 文件的 AC 映射
537
- 4. 如需基线规格,运行 `devbooks-brownfield-bootstrap`
222
+ 欢迎贡献!请查看 [贡献指南](CONTRIBUTING.md)。
538
223
 
539
224
  ---
540
225
 
541
- ## 目录结构
226
+ ## 许可证
542
227
 
543
- ```
544
- dev-playbooks/
545
- ├── README.md # 本文档
546
- ├── constitution.md # 项目宪法(GIP 原则)
547
- ├── project.md # 项目上下文(技术栈/约定)
548
- ├── specs/ # 当前规格(只读真理)
549
- │ ├── _meta/ # 元数据(术语表、项目画像)
550
- │ └── architecture/ # 架构规格(fitness-rules)
551
- ├── changes/ # 变更包(工作区)
552
- ├── scripts/ # 辅助脚本
553
- └── docs/ # 文档
554
- ├── workflow-diagram.svg # 工作流程图
555
- ├── 推荐MCP.md # MCP 配置建议
556
- └── DevBooks配置指南.md # 配置指南
557
- ```
228
+ MIT License - 详见 [LICENSE](LICENSE)
558
229
 
559
230
  ---
560
231
 
561
- ## 文档
232
+ ## 联系方式
562
233
 
563
- - [工作流程图](docs/workflow-diagram.svg)
564
- - [MCP 配置建议](docs/推荐MCP.md)
565
- - [配置指南](docs/DevBooks配置指南.md)
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
566
237
 
567
238
  ---
568
239
 
569
- ## License
570
-
571
- MIT
240
+ **记住**:DevBooks 不是工具,而是一套工作流程。遵循约束,质量自然提升。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-playbooks-cn",
3
- "version": "2.3.2",
3
+ "version": "2.4.0",
4
4
  "description": "AI-driven spec-based development workflow",
5
5
  "keywords": [
6
6
  "devbooks",
@@ -65,12 +65,14 @@ proposal → design → test-owner(P1) → coder → test-owner(P2) → code-rev
65
65
 
66
66
  | 阶段 | 职责 | 说明 |
67
67
  |------|------|------|
68
- | 1 | 自动回写检测与处理 | 检测 deviation-log.md,自动回写设计文档 |
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
  ## 前置:配置发现(协议无关)
@@ -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
- ```