dev-playbooks-cn 1.2.4 → 1.2.5

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.4",
3
+ "version": "1.2.5",
4
4
  "description": "AI-driven spec-based development workflow",
5
5
  "keywords": [
6
6
  "devbooks",
@@ -148,6 +148,15 @@ override dispose() {
148
148
  | 无 spec deltas | 归档完成 | 无需其他 skill |
149
149
  | 发现重大问题 | 交回 `devbooks-coder` | 归档前修复问题 |
150
150
 
151
+ ### Reviewer 专属权限:设置 verification.md Status
152
+
153
+ **只有 Reviewer 可以将 `verification.md` 的 Status 设为 `Done`**。
154
+
155
+ Review 通过后,Reviewer 必须执行:
156
+ 1. 打开 `<change-root>/<change-id>/verification.md`
157
+ 2. 将 `- Status: Ready` 改为 `- Status: Done`
158
+ 3. 这是归档的前置条件(`change-check.sh --mode archive` 会检查)
159
+
151
160
  ### 输出模板
152
161
 
153
162
  完成 code-review 后,输出:
@@ -141,6 +141,7 @@ devbooks change-evidence <change-id> --label green-final -- npm test
141
141
  ### 角色边界约束
142
142
  - **禁止修改 `tests/**`**(需要改测试必须交还 Test Owner)
143
143
  - **禁止修改 `verification.md`**(由 Test Owner 维护)
144
+ - **禁止修改 `verification.md` 的 Status 字段**(只有 Reviewer 可以设为 Done)
144
145
  - **禁止修改 `.devbooks/`、`build/`、工程配置文件**(除非 proposal.md 明确声明)
145
146
 
146
147
  ### 代码质量约束
@@ -410,6 +410,25 @@ check_verification() {
410
410
  return 0
411
411
  fi
412
412
 
413
+ # ==========================================================================
414
+ # AC-010: Verification Status Check
415
+ # Status field controls change package lifecycle: Draft → Ready → Done → Archived
416
+ # Only Reviewer can set Status to "Done" (Coder/Test Owner prohibited)
417
+ # ==========================================================================
418
+ if [[ "$mode" == "archive" || "$mode" == "strict" ]]; then
419
+ local status_line
420
+ status_line=$(rg -n "^- Status[::] *(Draft|Ready|Done|Archived)\b" "$verification_file" -m 1 || true)
421
+ if [[ -z "$status_line" ]]; then
422
+ err "verification missing Status line (e.g., '- Status: Done'): ${verification_file}"
423
+ else
424
+ local status_value
425
+ status_value="$(echo "$status_line" | sed -E 's/^[0-9]+:- Status[::] *//')"
426
+ if [[ "$status_value" != "Done" && "$status_value" != "Archived" ]]; then
427
+ err "verification Status must be 'Done' or 'Archived' for ${mode} (current: '${status_value}'). Only Reviewer can set Status to Done: ${verification_file}"
428
+ fi
429
+ fi
430
+ fi
431
+
413
432
  for h in "A\) (Test Plan Directive Table|测试计划指令表)" "B\) (Traceability Matrix|追溯矩阵)" "C\) (Execution Anchors|执行锚点)" "D\) (MANUAL-\* Checklist|MANUAL-\* 清单)"; do
414
433
  if ! rg -n "${h}" "$verification_file" >/dev/null; then
415
434
  err "verification missing section '${h}': ${verification_file}"
@@ -263,7 +263,13 @@ cat <<'EOF' | render_template | write_file "${change_dir}/verification.md"
263
263
  ## Metadata
264
264
 
265
265
  - Change ID: `__CHANGE_ID__`
266
- - Status: Draft | Ready | Done | Archived
266
+ - Status: Draft
267
+ > Status lifecycle: Draft → Ready → Done → Archived
268
+ > - Draft: Initial state
269
+ > - Ready: Test plan ready (set by Test Owner)
270
+ > - Done: All tests passed + Review approved (set by **Reviewer only**)
271
+ > - Archived: Archived (set by Spec Gardener)
272
+ > **Constraint: Coder is prohibited from modifying Status field**
267
273
  - References:
268
274
  - Proposal: `__CHANGE_ROOT__/__CHANGE_ID__/proposal.md`
269
275
  - Design: `__CHANGE_ROOT__/__CHANGE_ID__/design.md`
@@ -40,6 +40,17 @@ allowed-tools:
40
40
 
41
41
  Test Owner 必须产出结构化的 `verification.md`,同时作为测试计划和追溯文档。
42
42
 
43
+ ### Status 字段权限
44
+
45
+ | 状态 | 含义 | 谁可以设置 |
46
+ |------|------|-----------|
47
+ | `Draft` | 初始状态 | 自动生成 |
48
+ | `Ready` | 测试计划就绪 | **Test Owner** |
49
+ | `Done` | Review 通过 | Reviewer(禁止 Test Owner/Coder) |
50
+ | `Archived` | 已归档 | Spec Gardener |
51
+
52
+ **约束**:Test Owner 完成测试计划后,应将 Status 设为 `Ready`。
53
+
43
54
  ```markdown
44
55
  # 验证计划:<change-id>
45
56