dev-playbooks-cn 1.2.5 → 1.2.6

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-playbooks-cn",
3
- "version": "1.2.5",
3
+ "version": "1.2.6",
4
4
  "description": "AI-driven spec-based development workflow",
5
5
  "keywords": [
6
6
  "devbooks",
@@ -10,6 +10,34 @@ allowed-tools:
10
10
 
11
11
  # DevBooks:代码评审(Reviewer)
12
12
 
13
+ ## 工作流位置感知(Workflow Position Awareness)
14
+
15
+ > **核心原则**:Code Review 在 Test Owner 阶段 2 验证之后执行,是归档前的最后一个评审步骤。
16
+
17
+ ### 我在整体工作流中的位置
18
+
19
+ ```
20
+ proposal → design → test-owner(阶段1) → coder → test-owner(阶段2) → [Code Review] → archive
21
+
22
+ 可读性/一致性/依赖审查
23
+ ```
24
+
25
+ ### Code Review 的职责边界
26
+
27
+ | 允许 | 禁止 |
28
+ |------|------|
29
+ | 审查代码可读性/一致性 | ❌ 修改代码文件 |
30
+ | 设置 verification.md Status = Done | ❌ 讨论业务正确性(那是 Test Owner 的事) |
31
+ | 提出改进建议 | ❌ 勾选 AC 覆盖矩阵(那是 Test Owner 的事) |
32
+
33
+ ### 前置条件
34
+
35
+ - [ ] Test Owner 阶段 2 已完成(AC 矩阵已打勾)
36
+ - [ ] 测试全绿
37
+ - [ ] evidence/green-final/ 存在
38
+
39
+ ---
40
+
13
41
  ## 前置:配置发现(协议无关)
14
42
 
15
43
  - `<truth-root>`:当前真理目录根
@@ -12,6 +12,40 @@ allowed-tools:
12
12
 
13
13
  # DevBooks:实现负责人(Coder)
14
14
 
15
+ ## 工作流位置感知(Workflow Position Awareness)
16
+
17
+ > **核心原则**:Coder 在 Test Owner 阶段 1 之后执行,完成后交给 Test Owner 阶段 2 验证。
18
+
19
+ ### 我在整体工作流中的位置
20
+
21
+ ```
22
+ proposal → design → test-owner(阶段1) → [Coder] → test-owner(阶段2) → code-review → archive
23
+
24
+ 实现代码、让测试变绿
25
+ ```
26
+
27
+ ### Coder 的职责边界
28
+
29
+ | 允许 | 禁止 |
30
+ |------|------|
31
+ | 修改 `src/**` 代码 | ❌ 修改 `tests/**` |
32
+ | 勾选 `tasks.md` 任务项 | ❌ 修改 `verification.md` |
33
+ | 记录偏离到 `deviation-log.md` | ❌ 勾选 AC 覆盖矩阵 |
34
+ | 运行测试验证 | ❌ 设置 verification.md Status |
35
+
36
+ ### Coder 完成后的流程
37
+
38
+ 1. **任务完成**:tasks.md 全部 `[x]`
39
+ 2. **测试全绿**:运行 `npm test` 确认通过
40
+ 3. **交付 Test Owner**:通知 Test Owner 进入阶段 2 验证
41
+ 4. **等待验证结果**:
42
+ - Test Owner 确认全绿 → 进入 Code Review
43
+ - Test Owner 发现问题 → Coder 修复
44
+
45
+ **关键提醒**:Coder 完成后,**不是直接进入 Code Review**,而是先让 Test Owner 验证并打勾。
46
+
47
+ ---
48
+
15
49
  ## 前置:配置发现(协议无关)
16
50
 
17
51
  - `<truth-root>`:当前真理目录根
@@ -334,8 +368,8 @@ fi
334
368
 
335
369
  | 我的状态 | 下一步 | 原因 |
336
370
  |----------|--------|------|
337
- | COMPLETED | `devbooks-code-review` | 评审可读性/一致性 |
338
- | COMPLETED_WITH_DEVIATION | `devbooks-design-backport` | 先回写设计,再评审 |
371
+ | COMPLETED | `devbooks-test-owner`(阶段 2 验证) | 任务完成,需要 Test Owner 验证并打勾 |
372
+ | COMPLETED_WITH_DEVIATION | `devbooks-design-backport` | 先回写设计,再让 Test Owner 验证 |
339
373
  | HANDOFF (测试问题) | `devbooks-test-owner` | Coder 不能修改测试 |
340
374
  | BLOCKED | 等待用户 | 记录断点区 |
341
375
  | FAILED | 修复后重试 | 分析失败原因 |
@@ -344,6 +378,7 @@ fi
344
378
  - Coder **永远不能修改** `tests/**`
345
379
  - 如发现测试问题,必须 HANDOFF 给 Test Owner(单独会话)
346
380
  - 如有偏离,必须先 design-backport 再继续
381
+ - **Coder 完成后必须先经过 Test Owner 阶段 2 验证,再进入 Code Review**
347
382
 
348
383
  ---
349
384
 
@@ -11,6 +11,40 @@ allowed-tools:
11
11
 
12
12
  # DevBooks:回写设计文档(Design Backport)
13
13
 
14
+ ## 工作流位置感知(Workflow Position Awareness)
15
+
16
+ > **核心原则**:Design Backport 现在**主要由 Spec Gardener 在归档阶段自动调用**,用户通常不需要手动调用。
17
+
18
+ ### 我在整体工作流中的位置
19
+
20
+ ```
21
+ proposal → design → test-owner → coder → test-owner(验证) → code-review → [Archive/Spec Gardener]
22
+ ↓ ↓
23
+ 记录偏离到 deviation-log.md 自动调用 design-backport
24
+ ```
25
+
26
+ ### 设计决策:自动回写
27
+
28
+ **旧流程**(需手动判断):
29
+ ```
30
+ coder 有偏离 → 用户手动调用 design-backport → 再归档
31
+ ```
32
+
33
+ **新流程**(自动处理):
34
+ ```
35
+ coder 有偏离 → 归档时 spec-gardener 自动检测并回写 → 归档
36
+ ```
37
+
38
+ ### 何时仍需手动调用
39
+
40
+ | 场景 | 是否需要手动调用 |
41
+ |------|------------------|
42
+ | 正常流程(偏离记录在 deviation-log.md) | ❌ 归档时自动处理 |
43
+ | 需要立即回写(不等归档) | ✅ 手动调用 |
44
+ | 设计与实现严重冲突需要决策 | ✅ 手动调用并讨论 |
45
+
46
+ ---
47
+
14
48
  ## 前置:配置发现(协议无关)
15
49
 
16
50
  - `<truth-root>`:当前真理目录根
@@ -11,6 +11,28 @@ allowed-tools:
11
11
 
12
12
  # DevBooks:设计文档(Design Doc)
13
13
 
14
+ ## 工作流位置感知(Workflow Position Awareness)
15
+
16
+ > **核心原则**:Design Doc 在 Proposal 批准后执行,是实现阶段的起点。
17
+
18
+ ### 我在整体工作流中的位置
19
+
20
+ ```
21
+ proposal → [Design Doc] → spec-contract → implementation-plan → test-owner → coder → ...
22
+
23
+ 定义 What/Constraints/AC
24
+ ```
25
+
26
+ ### Design Doc 的产出
27
+
28
+ - **What**:做什么(不是怎么做)
29
+ - **Constraints**:约束条件
30
+ - **AC-xxx**:验收标准(可测试的)
31
+
32
+ **关键**:Design Doc 不写实现步骤,那是 implementation-plan 的职责。
33
+
34
+ ---
35
+
14
36
  ## 前置:配置发现(协议无关)
15
37
 
16
38
  - `<truth-root>`:当前真理目录根
@@ -11,6 +11,42 @@ allowed-tools:
11
11
 
12
12
  # DevBooks:编码计划(Implementation Plan)
13
13
 
14
+ ## 工作流位置感知(Workflow Position Awareness)
15
+
16
+ > **核心原则**:Implementation Plan 在 Design Doc 之后执行,为 Test Owner 和 Coder 提供任务清单。
17
+
18
+ ### 我在整体工作流中的位置
19
+
20
+ ```
21
+ proposal → design → [Implementation Plan] → test-owner(阶段1) → coder → ...
22
+
23
+ tasks.md(任务清单)
24
+ ```
25
+
26
+ ### Implementation Plan 的职责
27
+
28
+ | 允许 | 禁止 |
29
+ |------|------|
30
+ | 从 design.md 推导任务 | ❌ 参考 tests/(避免实现偏见) |
31
+ | 绑定验收锚点 (AC-xxx) | ❌ 写实现代码 |
32
+ | 拆分并行任务 | ❌ 执行任务 |
33
+
34
+ ### 产出:tasks.md 结构
35
+
36
+ ```markdown
37
+ ## 主线计划区
38
+ - [ ] MP1.1 任务描述 (AC-001)
39
+ - [ ] MP1.2 任务描述 (AC-002)
40
+
41
+ ## 临时计划区
42
+ (紧急任务)
43
+
44
+ ## 断点区
45
+ (中断续做信息)
46
+ ```
47
+
48
+ ---
49
+
14
50
  ## 前置:配置发现(协议无关)
15
51
 
16
52
  - `<truth-root>`:当前真理目录根
@@ -11,6 +11,36 @@ allowed-tools:
11
11
 
12
12
  # DevBooks:规格园丁(Spec Gardener)
13
13
 
14
+ ## 工作流位置感知(Workflow Position Awareness)
15
+
16
+ > **核心原则**:Spec Gardener 是归档阶段的终点,负责将变更包产物合并到真理,**并自动处理任何未完成的回写**。
17
+
18
+ ### 我在整体工作流中的位置
19
+
20
+ ```
21
+ proposal → design → test-owner → coder → test-owner(验证) → code-review → [Spec Gardener/Archive]
22
+
23
+ 自动回写 + 合并到真理 + 归档
24
+ ```
25
+
26
+ ### Spec Gardener 的职责
27
+
28
+ 1. **自动回写检测**:检查 deviation-log.md 是否有未回写记录
29
+ 2. **自动执行回写**:如有未回写记录,自动执行设计回写
30
+ 3. **合并到真理**:将 specs/contracts/architecture 合并到 truth-root
31
+ 4. **归档变更包**:设置 verification.md Status = Archived
32
+
33
+ ### 为什么在归档阶段自动回写?
34
+
35
+ **设计决策**:用户只需线性调用 skills,不需要判断是否需要回写。
36
+
37
+ | 场景 | 旧设计(需手动判断) | 新设计(自动处理) |
38
+ |------|---------------------|-------------------|
39
+ | Coder 有偏离 | 用户需调用 design-backport → 再归档 | Spec Gardener 自动检测并回写 |
40
+ | Coder 无偏离 | 直接归档 | 直接归档 |
41
+
42
+ ---
43
+
14
44
  ## 前置:配置发现(协议无关)
15
45
 
16
46
  - `<truth-root>`:当前真理目录根
@@ -31,6 +61,51 @@ allowed-tools:
31
61
 
32
62
  ## 核心职责
33
63
 
64
+ ### 0. 自动回写检测与处理(归档前必做)
65
+
66
+ > **设计决策**:归档阶段自动处理所有未回写的偏离,用户无需手动调用 design-backport。
67
+
68
+ **检测流程**:
69
+
70
+ ```
71
+ 1. 读取 <change-root>/<change-id>/deviation-log.md
72
+ 2. 检查是否有 "| ❌" 未回写记录
73
+ → 有:执行自动回写(步骤 3-5)
74
+ → 无:跳过,直接进入合并阶段
75
+
76
+ 3. 对每条未回写记录,判断是否为 Design-level 内容:
77
+ - DESIGN_GAP, CONSTRAINT_CHANGE, API_CHANGE → 需要回写
78
+ - 纯实现细节(文件名/类名/临时步骤) → 不回写,标记为 IMPL_ONLY
79
+
80
+ 4. 执行设计回写:
81
+ - 读取 design.md
82
+ - 按 design-backport 协议的"可回写内容范围"更新
83
+ - 在 design.md 末尾添加变更记录
84
+
85
+ 5. 更新 deviation-log.md:
86
+ - 将已回写的记录标记为 ✅
87
+ - 记录回写时间和归档批次
88
+ ```
89
+
90
+ **自动回写的内容范围**(继承自 design-backport):
91
+
92
+ | 可回写 | 不可回写 |
93
+ |--------|----------|
94
+ | 对外语义/用户可感知行为 | 具体文件路径、类名/函数名 |
95
+ | 系统级不可变约束(Invariants) | PR 切分、任务执行顺序 |
96
+ | 核心数据契约与演进策略 | 过细的算法伪代码 |
97
+ | 跨阶段治理策略 | 脚本命令 |
98
+ | 关键取舍与决策 | 表名/字段名 |
99
+
100
+ **deviation-log.md 更新格式**:
101
+
102
+ ```markdown
103
+ | 时间 | 类型 | 描述 | 涉及文件 | 已回写 | 回写批次 |
104
+ |------|------|------|----------|:------:|----------|
105
+ | 2024-01-15 10:30 | DESIGN_GAP | 并发场景 | tests/... | ✅ | archive-2024-01-16 |
106
+ | 2024-01-15 11:00 | IMPL_ONLY | 重命名变量 | src/... | ⏭️ | (跳过) |
107
+ ```
108
+
34
109
  ### 1. 规格合并与维护
35
110
 
36
111
  在归档阶段,将变更包中的规格产物合并到 `<truth-root>`:
@@ -106,10 +181,34 @@ allowed-tools:
106
181
 
107
182
  | 模式 | 触发条件 | 行为 |
108
183
  |------|----------|------|
109
- | **归档模式** | 提供 change-id 且闸门通过 | 将变更包产物合并到 truth-root |
184
+ | **归档模式** | 提供 change-id 且闸门通过 | **自动回写** → 合并到 truth-root → 设置 Status=Archived |
110
185
  | **维护模式** | 无 change-id | 执行去重、清理、整理操作 |
111
186
  | **检查模式** | 带 --dry-run 参数 | 只输出建议,不实际修改 |
112
187
 
188
+ ### 归档模式完整流程
189
+
190
+ ```
191
+ 1. 前置检查:
192
+ - [ ] 变更包存在
193
+ - [ ] verification.md Status = Ready 或 Done
194
+ - [ ] evidence/green-final/ 存在
195
+ - [ ] tasks.md 全部 [x]
196
+
197
+ 2. 自动回写(如有需要):
198
+ - [ ] 检测 deviation-log.md
199
+ - [ ] 回写 design.md
200
+ - [ ] 更新 deviation-log.md 标记
201
+
202
+ 3. 合并到真理:
203
+ - [ ] 合并 specs/**
204
+ - [ ] 合并 contracts/**
205
+ - [ ] 合并 Architecture Impact 到 c4.md
206
+
207
+ 4. 归档:
208
+ - [ ] 设置 verification.md Status = Archived
209
+ - [ ] 输出归档报告
210
+ ```
211
+
113
212
  ### 检测输出示例
114
213
 
115
214
  ```
@@ -12,6 +12,46 @@ allowed-tools:
12
12
 
13
13
  # DevBooks:测试负责人(Test Owner)
14
14
 
15
+ ## 工作流位置感知(Workflow Position Awareness)
16
+
17
+ > **核心原则**:Test Owner 在整体工作流中承担**双阶段职责**,确保与 Coder 的角色隔离。
18
+
19
+ ### 我在整体工作流中的位置
20
+
21
+ ```
22
+ proposal → design → [Test Owner 阶段1] → coder → [Test Owner 阶段2] → code-review → archive
23
+ ↓ ↓
24
+ Red 基线产出 Green 验证 + 打勾
25
+ ```
26
+
27
+ ### Test Owner 的双阶段职责
28
+
29
+ | 阶段 | 触发时机 | 核心职责 | 产出 |
30
+ |------|----------|----------|------|
31
+ | **阶段 1:Red 基线** | design.md 完成后 | 编写测试、产出失败证据 | verification.md (Status=Ready)、Red 基线 |
32
+ | **阶段 2:Green 验证** | Coder 完成后 | 验证测试通过、勾选 AC 覆盖矩阵 | AC 矩阵打勾、Status 保持 Ready(等 Reviewer 设 Done) |
33
+
34
+ ### 阶段 2 详细职责(关键!)
35
+
36
+ 当用户说"Coder 完成了,请验证"或类似请求时,Test Owner 进入**阶段 2**:
37
+
38
+ 1. **运行全部测试**:执行 `npm test` 或项目测试命令
39
+ 2. **验证 Green 状态**:确认所有测试通过
40
+ 3. **勾选 AC 覆盖矩阵**:在 verification.md 的 AC 覆盖矩阵中将 `[ ]` 改为 `[x]`
41
+ 4. **收集 Green 证据**:保存到 `evidence/green-final/`
42
+ 5. **输出验证报告**:总结测试结果和覆盖情况
43
+
44
+ ### AC 覆盖矩阵复选框权限(重要!)
45
+
46
+ | 复选框位置 | 谁可以勾选 | 勾选时机 |
47
+ |------------|-----------|----------|
48
+ | AC 覆盖矩阵中的 `[ ]` | **Test Owner** | 阶段 2 验证 Green 状态后 |
49
+ | Status 字段 `Done` | Reviewer | Code Review 通过后 |
50
+
51
+ **禁止**:Coder 不能勾选 AC 覆盖矩阵,不能修改 verification.md。
52
+
53
+ ---
54
+
15
55
  ## 前置:配置发现(协议无关)
16
56
 
17
57
  - `<truth-root>`:当前真理目录根
@@ -339,28 +379,53 @@ devbooks change-evidence <change-id> --label red-baseline -- npm test
339
379
 
340
380
  ## 完成状态与下一步路由
341
381
 
342
- ### 完成状态分类(MECE)
382
+ ### 阶段感知(关键!)
383
+
384
+ Test Owner 有两个阶段,完成状态因阶段而异:
385
+
386
+ | 当前阶段 | 如何判断 | 完成后下一步 |
387
+ |----------|----------|--------------|
388
+ | **阶段 1** | verification.md 不存在或 Red 基线未产出 | → Coder |
389
+ | **阶段 2** | 用户说"验证/打勾"且 Coder 已完成 | → Code Review |
390
+
391
+ ### 阶段 1 完成状态分类(MECE)
343
392
 
344
393
  | 状态码 | 状态 | 判定条件 | 下一步 |
345
394
  |:------:|------|----------|--------|
346
- | ✅ | COMPLETED | Red 基线产出,无偏离 | `devbooks-coder`(单独会话) |
347
- | ⚠️ | COMPLETED_WITH_DEVIATION | Red 基线产出,deviation-log 有未回写记录 | `devbooks-design-backport` |
395
+ | ✅ | PHASE1_COMPLETED | Red 基线产出,无偏离 | `devbooks-coder`(单独会话) |
396
+ | ⚠️ | PHASE1_COMPLETED_WITH_DEVIATION | Red 基线产出,deviation-log 有未回写记录 | `devbooks-design-backport` |
348
397
  | ❌ | BLOCKED | 需要外部输入/决策 | 记录断点,等待用户 |
349
398
  | 💥 | FAILED | 测试框架问题等 | 修复后重试 |
350
399
 
351
- ### 状态判定流程
400
+ ### 阶段 2 完成状态分类(MECE)
352
401
 
353
- ```
354
- 1. 检查 deviation-log.md 是否有 "| ❌" 记录
355
- 有:COMPLETED_WITH_DEVIATION
402
+ | 状态码 | 状态 | 判定条件 | 下一步 |
403
+ |:------:|------|----------|--------|
404
+ | ✅ | PHASE2_VERIFIED | 测试全绿,AC 矩阵已打勾 | `devbooks-code-review` |
405
+ | ❌ | PHASE2_FAILED | 测试未通过 | 通知 Coder 修复,或 HANDOFF |
406
+ | 🔄 | PHASE2_HANDOFF | 发现测试本身有问题 | 修复测试后重新验证 |
356
407
 
357
- 2. 检查 Red 基线是否产出
358
- - verification.md 存在且有追溯矩阵
359
- - evidence/red-baseline/ 存在
360
- → 否:BLOCKED 或 FAILED
408
+ ### 阶段判定流程
361
409
 
362
- 3. 以上都通过
363
- COMPLETED
410
+ ```
411
+ 1. 检查当前处于哪个阶段:
412
+ - verification.md 不存在 → 阶段 1
413
+ - verification.md 存在但 AC 矩阵全是 [ ] → 阶段 1 或 阶段 2(看用户请求)
414
+ - 用户明确说"验证/打勾/Coder 完成了" → 阶段 2
415
+
416
+ 2. 阶段 1 状态判定:
417
+ a. 检查 deviation-log.md 是否有 "| ❌" 记录
418
+ → 有:PHASE1_COMPLETED_WITH_DEVIATION
419
+ b. 检查 Red 基线是否产出
420
+ → 否:BLOCKED 或 FAILED
421
+ c. 以上都通过 → PHASE1_COMPLETED
422
+
423
+ 3. 阶段 2 状态判定:
424
+ a. 运行测试,检查是否全绿
425
+ → 否:PHASE2_FAILED
426
+ b. 检查测试本身是否有问题
427
+ → 是:PHASE2_HANDOFF
428
+ c. 全绿且无问题 → PHASE2_VERIFIED
364
429
  ```
365
430
 
366
431
  ### 路由输出模板(必须使用)
@@ -370,15 +435,21 @@ devbooks change-evidence <change-id> --label red-baseline -- npm test
370
435
  ```markdown
371
436
  ## 完成状态
372
437
 
373
- **状态**:✅ COMPLETED / ⚠️ COMPLETED_WITH_DEVIATION / ❌ BLOCKED / 💥 FAILED
438
+ **阶段**:阶段 1(Red 基线)/ 阶段 2(Green 验证)
439
+
440
+ **状态**:✅ PHASE1_COMPLETED / ✅ PHASE2_VERIFIED / ⚠️ ... / ❌ ... / 💥 ...
441
+
442
+ **Red 基线**:已产出 / 未完成(仅阶段 1)
443
+
444
+ **Green 验证**:全绿 / 有失败(仅阶段 2)
374
445
 
375
- **Red 基线**:已产出 / 未完成
446
+ **AC 矩阵**:已打勾 N/M / 未打勾(仅阶段 2)
376
447
 
377
448
  **偏离记录**:有 N 条待回写 / 无
378
449
 
379
450
  ## 下一步
380
451
 
381
- **推荐**:`devbooks-xxx skill`(单独会话)
452
+ **推荐**:`devbooks-xxx skill`
382
453
 
383
454
  **原因**:[具体原因]
384
455
 
@@ -390,8 +461,11 @@ devbooks change-evidence <change-id> --label red-baseline -- npm test
390
461
 
391
462
  | 我的状态 | 下一步 | 原因 |
392
463
  |----------|--------|------|
393
- | COMPLETED | `devbooks-coder`(单独会话) | Red 基线已产出,Coder 实现以变绿 |
394
- | COMPLETED_WITH_DEVIATION | `devbooks-design-backport` | 先回写设计,再交给 Coder |
464
+ | PHASE1_COMPLETED | `devbooks-coder`(单独会话) | Red 基线已产出,Coder 实现以变绿 |
465
+ | PHASE1_COMPLETED_WITH_DEVIATION | `devbooks-design-backport` | 先回写设计,再交给 Coder |
466
+ | PHASE2_VERIFIED | `devbooks-code-review` | 测试全绿,可以进入代码评审 |
467
+ | PHASE2_FAILED | 通知 Coder | 测试未通过,需要 Coder 修复 |
468
+ | PHASE2_HANDOFF | 修复测试 | 测试本身有问题,Test Owner 修复 |
395
469
  | BLOCKED | 等待用户 | 记录断点区 |
396
470
  | FAILED | 修复后重试 | 分析失败原因 |
397
471
 
@@ -399,6 +473,7 @@ devbooks change-evidence <change-id> --label red-baseline -- npm test
399
473
  - **角色隔离**:Coder 必须在**单独的会话/实例**中工作
400
474
  - Test Owner 和 Coder 不能共享同一会话上下文
401
475
  - 如有偏离,必须先 design-backport 再交给 Coder
476
+ - **阶段 2 的 AC 矩阵打勾只能由 Test Owner 执行**
402
477
 
403
478
  ---
404
479