cc-devflow 4.5.7 → 4.5.8

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.
Files changed (62) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +6 -0
  2. package/.claude/skills/cc-act/PLAYBOOK.md +9 -0
  3. package/.claude/skills/cc-act/SKILL.md +15 -5
  4. package/.claude/skills/cc-act/references/closure-contract.md +4 -0
  5. package/.claude/skills/cc-act/scripts/detect-ship-target.sh +27 -0
  6. package/.claude/skills/cc-act/scripts/ensure-ship-branch.sh +93 -0
  7. package/.claude/skills/cc-act/scripts/generate-status-report.sh +6 -0
  8. package/.claude/skills/cc-act/scripts/render-pr-brief.sh +6 -0
  9. package/.claude/skills/cc-act/scripts/sync-act-docs.sh +14 -0
  10. package/.claude/skills/cc-dev/CHANGELOG.md +5 -0
  11. package/.claude/skills/cc-dev/PLAYBOOK.md +63 -0
  12. package/.claude/skills/cc-dev/SKILL.md +168 -0
  13. package/.claude/skills/cc-do/CHANGELOG.md +6 -0
  14. package/.claude/skills/cc-do/SKILL.md +23 -1
  15. package/.claude/skills/cc-next/CHANGELOG.md +5 -0
  16. package/.claude/skills/cc-next/PLAYBOOK.md +52 -0
  17. package/.claude/skills/cc-next/SKILL.md +161 -0
  18. package/.claude/skills/cc-plan/CHANGELOG.md +6 -0
  19. package/.claude/skills/cc-plan/SKILL.md +45 -3
  20. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +26 -0
  21. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +49 -1
  22. package/.claude/skills/cc-plan/references/planning-contract.md +11 -0
  23. package/.claude/skills/cc-pr-land/CHANGELOG.md +5 -0
  24. package/.claude/skills/cc-pr-land/PLAYBOOK.md +45 -0
  25. package/.claude/skills/cc-pr-land/SKILL.md +157 -0
  26. package/.claude/skills/cc-pr-review/CHANGELOG.md +5 -0
  27. package/.claude/skills/cc-pr-review/PLAYBOOK.md +46 -0
  28. package/.claude/skills/cc-pr-review/SKILL.md +142 -0
  29. package/.claude/skills/cc-review/CHANGELOG.md +21 -0
  30. package/.claude/skills/cc-review/PLAYBOOK.md +64 -10
  31. package/.claude/skills/cc-review/SKILL.md +185 -18
  32. package/.claude/skills/cc-review/references/e2e-and-plugin-verification.md +4 -0
  33. package/.claude/skills/cc-review/references/implementation-review-branch.md +37 -0
  34. package/.claude/skills/cc-review/references/plan-review-branch.md +36 -1
  35. package/.claude/skills/cc-review/references/review-methods.md +98 -3
  36. package/.claude/skills/cc-review/scripts/collect-review-context.sh +80 -0
  37. package/.claude/skills/cc-simplify/CHANGELOG.md +6 -0
  38. package/.claude/skills/cc-simplify/SKILL.md +19 -8
  39. package/CHANGELOG.md +8 -1
  40. package/README.md +52 -3
  41. package/README.zh-CN.md +52 -3
  42. package/config/distributable-skills.json +8 -0
  43. package/docs/assets/cc-devflow-pr-harness-en.svg +153 -0
  44. package/docs/assets/cc-devflow-pr-harness-zh.svg +152 -0
  45. package/docs/assets/wechat-group-qr.jpg +0 -0
  46. package/docs/examples/example-bindings.json +9 -5
  47. package/docs/examples/full-design-blocked/README.md +1 -1
  48. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +1 -1
  49. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +310 -6
  50. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +45 -1
  51. package/docs/examples/local-handoff/README.md +1 -1
  52. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +1 -1
  53. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +197 -4
  54. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +35 -1
  55. package/docs/examples/pdca-loop/README.md +1 -1
  56. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +1 -1
  57. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +198 -5
  58. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +35 -1
  59. package/docs/examples/scripts/check-example-bindings.sh +19 -1
  60. package/docs/guides/getting-started.md +1 -1
  61. package/docs/guides/getting-started.zh-CN.md +1 -1
  62. package/package.json +6 -1
@@ -22,7 +22,7 @@
22
22
  ]
23
23
  },
24
24
  "planningMeta": {
25
- "reqPlanSkillVersion": "3.8.1",
25
+ "reqPlanSkillVersion": "3.8.2",
26
26
  "designVersion": "design.v1",
27
27
  "approvedAt": "2026-04-15T10:05:00.000Z",
28
28
  "approvedBy": "user",
@@ -179,7 +179,60 @@
179
179
  },
180
180
  "status": "passed",
181
181
  "attempts": 1,
182
- "maxRetries": 1
182
+ "maxRetries": 1,
183
+ "tddPhase": "red",
184
+ "verticalSlice": "Slice 1",
185
+ "testSeam": {
186
+ "entry": "share dialog UI behavior",
187
+ "behaviorAsserted": "The missing copy action is reproduced as a failing test",
188
+ "specStyleTestName": "The missing copy action is reproduced as a failing test",
189
+ "oneLogicalBehavior": true,
190
+ "publicVerificationPath": "Run the share dialog test and observe the copy action through the rendered dialog",
191
+ "implementationDetailRisk": "low"
192
+ },
193
+ "feedbackLoop": {
194
+ "type": "automated-test",
195
+ "determinism": "deterministic",
196
+ "expectedFailure": "Fails before the behavior exists"
197
+ },
198
+ "allowedMocks": [
199
+ "clipboard boundary"
200
+ ],
201
+ "testQuality": {
202
+ "usesPublicInterface": true,
203
+ "describesBehavior": true,
204
+ "specStyleName": true,
205
+ "oneLogicalBehavior": true,
206
+ "verifiesThroughPublicPath": true,
207
+ "survivesInternalRefactor": true,
208
+ "mocksOnlySystemBoundaries": true,
209
+ "noBulkRed": true
210
+ },
211
+ "greenMinimality": {
212
+ "guard": "Keep the task scoped to its stated verification evidence",
213
+ "noSpeculativeBranches": true
214
+ },
215
+ "completion": {
216
+ "command": "SCRIPT_ROOT=\".claude/skills/cc-do/scripts\"; if [[ ! -d \"$SCRIPT_ROOT\" && -d \".codex/skills/cc-do/scripts\" ]]; then SCRIPT_ROOT=\".codex/skills/cc-do/scripts\"; fi; bash \"$SCRIPT_ROOT\"/mark-task-complete.sh --manifest docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json --tasks docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md --task T001",
217
+ "requiredBeforeCompletion": [
218
+ "verification evidence captured",
219
+ "checkpoint written",
220
+ "spec review gate recorded",
221
+ "code review gate recorded"
222
+ ],
223
+ "forbiddenShortcuts": [
224
+ "manual checkbox edit",
225
+ "manual manifest status edit",
226
+ "leaving currentTaskId stale"
227
+ ]
228
+ },
229
+ "refactorCandidates": [
230
+ "duplication",
231
+ "long method",
232
+ "primitive obsession",
233
+ "naming",
234
+ "more than three nested branches"
235
+ ]
183
236
  },
184
237
  {
185
238
  "id": "T002",
@@ -231,7 +284,60 @@
231
284
  },
232
285
  "status": "passed",
233
286
  "attempts": 1,
234
- "maxRetries": 1
287
+ "maxRetries": 1,
288
+ "tddPhase": "green",
289
+ "verticalSlice": "Slice 2",
290
+ "testSeam": {
291
+ "entry": "share dialog UI behavior",
292
+ "behaviorAsserted": "The dialog exposes a copy button and confirms the copied state",
293
+ "specStyleTestName": "The dialog exposes a copy button and confirms the copied state",
294
+ "oneLogicalBehavior": true,
295
+ "publicVerificationPath": "Run the share dialog test and observe the copy action through the rendered dialog",
296
+ "implementationDetailRisk": "low"
297
+ },
298
+ "feedbackLoop": {
299
+ "type": "automated-test",
300
+ "determinism": "deterministic",
301
+ "expectedFailure": ""
302
+ },
303
+ "allowedMocks": [
304
+ "clipboard boundary"
305
+ ],
306
+ "testQuality": {
307
+ "usesPublicInterface": true,
308
+ "describesBehavior": true,
309
+ "specStyleName": true,
310
+ "oneLogicalBehavior": true,
311
+ "verifiesThroughPublicPath": true,
312
+ "survivesInternalRefactor": true,
313
+ "mocksOnlySystemBoundaries": true,
314
+ "noBulkRed": true
315
+ },
316
+ "greenMinimality": {
317
+ "guard": "Implement only the code needed to pass the current red behavior",
318
+ "noSpeculativeBranches": true
319
+ },
320
+ "completion": {
321
+ "command": "SCRIPT_ROOT=\".claude/skills/cc-do/scripts\"; if [[ ! -d \"$SCRIPT_ROOT\" && -d \".codex/skills/cc-do/scripts\" ]]; then SCRIPT_ROOT=\".codex/skills/cc-do/scripts\"; fi; bash \"$SCRIPT_ROOT\"/mark-task-complete.sh --manifest docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json --tasks docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md --task T002",
322
+ "requiredBeforeCompletion": [
323
+ "verification evidence captured",
324
+ "checkpoint written",
325
+ "spec review gate recorded",
326
+ "code review gate recorded"
327
+ ],
328
+ "forbiddenShortcuts": [
329
+ "manual checkbox edit",
330
+ "manual manifest status edit",
331
+ "leaving currentTaskId stale"
332
+ ]
333
+ },
334
+ "refactorCandidates": [
335
+ "duplication",
336
+ "long method",
337
+ "primitive obsession",
338
+ "naming",
339
+ "more than three nested branches"
340
+ ]
235
341
  },
236
342
  {
237
343
  "id": "T003",
@@ -287,7 +393,60 @@
287
393
  },
288
394
  "status": "passed",
289
395
  "attempts": 1,
290
- "maxRetries": 1
396
+ "maxRetries": 1,
397
+ "tddPhase": "evidence",
398
+ "verticalSlice": "Slice 3",
399
+ "testSeam": {
400
+ "entry": "share dialog UI behavior",
401
+ "behaviorAsserted": "Fresh verification evidence is ready for cc-check",
402
+ "specStyleTestName": "Fresh verification evidence is ready for cc-check",
403
+ "oneLogicalBehavior": true,
404
+ "publicVerificationPath": "Run the share dialog test and observe the copy action through the rendered dialog",
405
+ "implementationDetailRisk": "low"
406
+ },
407
+ "feedbackLoop": {
408
+ "type": "automated-test",
409
+ "determinism": "deterministic",
410
+ "expectedFailure": ""
411
+ },
412
+ "allowedMocks": [
413
+ "clipboard boundary"
414
+ ],
415
+ "testQuality": {
416
+ "usesPublicInterface": true,
417
+ "describesBehavior": true,
418
+ "specStyleName": true,
419
+ "oneLogicalBehavior": true,
420
+ "verifiesThroughPublicPath": true,
421
+ "survivesInternalRefactor": true,
422
+ "mocksOnlySystemBoundaries": true,
423
+ "noBulkRed": true
424
+ },
425
+ "greenMinimality": {
426
+ "guard": "Keep the task scoped to its stated verification evidence",
427
+ "noSpeculativeBranches": true
428
+ },
429
+ "completion": {
430
+ "command": "SCRIPT_ROOT=\".claude/skills/cc-do/scripts\"; if [[ ! -d \"$SCRIPT_ROOT\" && -d \".codex/skills/cc-do/scripts\" ]]; then SCRIPT_ROOT=\".codex/skills/cc-do/scripts\"; fi; bash \"$SCRIPT_ROOT\"/mark-task-complete.sh --manifest docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json --tasks docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md --task T003",
431
+ "requiredBeforeCompletion": [
432
+ "verification evidence captured",
433
+ "checkpoint written",
434
+ "spec review gate recorded",
435
+ "code review gate recorded"
436
+ ],
437
+ "forbiddenShortcuts": [
438
+ "manual checkbox edit",
439
+ "manual manifest status edit",
440
+ "leaving currentTaskId stale"
441
+ ]
442
+ },
443
+ "refactorCandidates": [
444
+ "duplication",
445
+ "long method",
446
+ "primitive obsession",
447
+ "naming",
448
+ "more than three nested branches"
449
+ ]
291
450
  }
292
451
  ],
293
452
  "metadata": {
@@ -297,5 +456,39 @@
297
456
  },
298
457
  "deferredQuestions": [
299
458
  "If users still miss the copied-state confirmation, open RM-002 for richer feedback."
300
- ]
459
+ ],
460
+ "executionProtocol": {
461
+ "templateCompliance": {
462
+ "required": true,
463
+ "sourceTemplate": "assets/TASKS_TEMPLATE.md",
464
+ "taskBlockMustInclude": [
465
+ "Goal",
466
+ "TDD phase",
467
+ "Files",
468
+ "Read first",
469
+ "Verification",
470
+ "Evidence",
471
+ "Test seam",
472
+ "Public verification path",
473
+ "Allowed mocks",
474
+ "Completion"
475
+ ],
476
+ "titleOnlyTasks": "forbidden"
477
+ },
478
+ "selection": {
479
+ "sourceOfTruth": "planning/task-manifest.json.currentTaskId",
480
+ "commandTemplate": "SCRIPT_ROOT=\".claude/skills/cc-do/scripts\"; if [[ ! -d \"$SCRIPT_ROOT\" && -d \".codex/skills/cc-do/scripts\" ]]; then SCRIPT_ROOT=\".codex/skills/cc-do/scripts\"; fi; bash \"$SCRIPT_ROOT\"/select-ready-tasks.sh --manifest docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json"
481
+ },
482
+ "completion": {
483
+ "manualStatusEdit": "forbidden",
484
+ "commandTemplate": "SCRIPT_ROOT=\".claude/skills/cc-do/scripts\"; if [[ ! -d \"$SCRIPT_ROOT\" && -d \".codex/skills/cc-do/scripts\" ]]; then SCRIPT_ROOT=\".codex/skills/cc-do/scripts\"; fi; bash \"$SCRIPT_ROOT\"/mark-task-complete.sh --manifest docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json --tasks docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md --task <task-id>",
485
+ "failurePolicy": "Do not hand-edit status; fix missing checkpoint, review gate, or dependency evidence and rerun the script.",
486
+ "updates": [
487
+ "planning/task-manifest.json.tasks[].status",
488
+ "planning/task-manifest.json.currentTaskId",
489
+ "planning/task-manifest.json.status",
490
+ "planning/tasks.md checkbox"
491
+ ]
492
+ }
493
+ }
301
494
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  - Requirement version: `REQ-001.v1`
6
6
  - Design version: `design.v1`
7
- - CC-Plan skill version: `3.8.1`
7
+ - CC-Plan skill version: `3.8.2`
8
8
  - Source roadmap item: `RM-001`
9
9
  - Source roadmap version: `roadmap.v1`
10
10
 
@@ -39,34 +39,68 @@
39
39
 
40
40
  > 顶部 handoff 只保留执行者必须知道的现实,不重复讲背景故事。
41
41
 
42
+ ## Execution Protocol
43
+
44
+ ClaudeCode / Codex 执行本计划时,必须把本文件当成任务模板合同,而不是普通 TODO 列表。
45
+
46
+ - Template source: `assets/TASKS_TEMPLATE.md`
47
+ - Task selection: read `planning/task-manifest.json.currentTaskId`; if empty, run the ready-task selector before choosing work.
48
+ - Task block rule: read the full task block before coding; title-only execution is invalid.
49
+ - Completion rule: after verification and review gates pass, run the completion script; do not manually edit checkbox, status, or `currentTaskId`.
50
+ - Completion failure: if the script fails, fix the missing checkpoint / review / dependency evidence and rerun it. Do not bypass it by editing JSON or Markdown.
51
+
52
+ ```bash
53
+ SCRIPT_ROOT=".claude/skills/cc-do/scripts"
54
+ if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then
55
+ SCRIPT_ROOT=".codex/skills/cc-do/scripts"
56
+ fi
57
+ bash "$SCRIPT_ROOT/select-ready-tasks.sh" --manifest docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json
58
+ bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json --tasks docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md --task <task-id>
59
+ ```
60
+
42
61
  ## Phase 1: Foundation
43
62
 
44
63
  - [x] T001 [TEST] Add a failing dialog test for the missing copy action (dependsOn:none) `src/features/share/ShareDialog.test.tsx`
45
64
  Goal: 证明当前 share dialog 还不能一键复制 invite link。
65
+ TDD phase: red
46
66
  Files: `src/features/share/ShareDialog.test.tsx`
47
67
  Read first: `design.md`, `src/features/share/ShareDialog.tsx`
48
68
  Verification: `npm test -- src/features/share/ShareDialog.test.tsx`
49
69
  Evidence: failing output that shows the missing button / action
70
+ Completion: after verification evidence and required checkpoint/review records exist, run `SCRIPT_ROOT=".claude/skills/cc-do/scripts"; if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then SCRIPT_ROOT=".codex/skills/cc-do/scripts"; fi; bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json --tasks docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md --task T001`; do not hand-edit status.
71
+ Test seam: share dialog UI behavior
72
+ Public verification path: Run the share dialog test and observe the copy action through the rendered dialog
73
+ Allowed mocks: clipboard boundary
50
74
  Ready when: 没有上游依赖,且现有 dialog test 已可运行
51
75
 
52
76
  - [x] T002 [IMPL] Add the copy button and copied-state confirmation (dependsOn:T001) `src/features/share/ShareDialog.tsx`
53
77
  Goal: 用最小实现让 T001 转绿,并保持当前 share contract 不变。
78
+ TDD phase: green
54
79
  Files: `src/features/share/ShareDialog.tsx`
55
80
  Read first: `design.md`, `src/features/share/ShareDialog.test.tsx`
56
81
  Verification: `npm test -- src/features/share/ShareDialog.test.tsx`
57
82
  Evidence: passing output + checkpoint + review notes
83
+ Completion: after verification evidence and required checkpoint/review records exist, run `SCRIPT_ROOT=".claude/skills/cc-do/scripts"; if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then SCRIPT_ROOT=".codex/skills/cc-do/scripts"; fi; bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json --tasks docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md --task T002`; do not hand-edit status.
84
+ Test seam: share dialog UI behavior
85
+ Public verification path: Run the share dialog test and observe the copy action through the rendered dialog
86
+ Allowed mocks: clipboard boundary
58
87
  Ready when: T001 已经见红,且当前 touched files 没有外部依赖阻塞
59
88
 
60
89
  ## Phase 2: Verify
61
90
 
62
91
  - [x] T003 Run targeted checks and collect fresh evidence (dependsOn:T002) `share dialog quality gates`
63
92
  Goal: 为 `cc-check` 准备本次实现的真实验证证据。
93
+ TDD phase: evidence
64
94
  Files: `src/features/share/ShareDialog.tsx`, `src/features/share/ShareDialog.test.tsx`
65
95
  Read first: `tasks.md`, `task-manifest.json`
66
96
  Verification:
67
97
  - `npm test -- src/features/share/ShareDialog.test.tsx`
68
98
  - `npm run lint -- src/features/share/ShareDialog.tsx`
69
99
  Evidence: passing test output + clean lint output
100
+ Completion: after verification evidence and required checkpoint/review records exist, run `SCRIPT_ROOT=".claude/skills/cc-do/scripts"; if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then SCRIPT_ROOT=".codex/skills/cc-do/scripts"; fi; bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json --tasks docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md --task T003`; do not hand-edit status.
101
+ Test seam: share dialog UI behavior
102
+ Public verification path: Run the share dialog test and observe the copy action through the rendered dialog
103
+ Allowed mocks: clipboard boundary
70
104
  Ready when: T002 已完成,且 review gate 已可补齐
71
105
 
72
106
  > `[P]` 只表示“依赖满足后有资格并行”,不表示可以无脑同时开发。
@@ -35,19 +35,27 @@ assert_contains() {
35
35
  }
36
36
 
37
37
  ROADMAP_VERSION="$(skill_version cc-roadmap)"
38
+ NEXT_VERSION="$(skill_version cc-next)"
39
+ DEV_VERSION="$(skill_version cc-dev)"
38
40
  REQ_PLAN_VERSION="$(skill_version cc-plan)"
39
41
  INVESTIGATE_VERSION="$(skill_version cc-investigate)"
40
42
  REQ_DO_VERSION="$(skill_version cc-do)"
41
43
  REQ_REVIEW_VERSION="$(skill_version cc-review)"
44
+ PR_REVIEW_VERSION="$(skill_version cc-pr-review)"
45
+ PR_LAND_VERSION="$(skill_version cc-pr-land)"
42
46
  REQ_CHECK_VERSION="$(skill_version cc-check)"
43
47
  REQ_ACT_VERSION="$(skill_version cc-act)"
44
48
 
45
49
  for pair in \
46
50
  "cc-roadmap:$ROADMAP_VERSION" \
51
+ "cc-next:$NEXT_VERSION" \
52
+ "cc-dev:$DEV_VERSION" \
47
53
  "cc-plan:$REQ_PLAN_VERSION" \
48
54
  "cc-investigate:$INVESTIGATE_VERSION" \
49
55
  "cc-do:$REQ_DO_VERSION" \
50
56
  "cc-review:$REQ_REVIEW_VERSION" \
57
+ "cc-pr-review:$PR_REVIEW_VERSION" \
58
+ "cc-pr-land:$PR_LAND_VERSION" \
51
59
  "cc-check:$REQ_CHECK_VERSION" \
52
60
  "cc-act:$REQ_ACT_VERSION"
53
61
  do
@@ -93,9 +101,19 @@ while IFS= read -r encoded; do
93
101
 
94
102
  jq -er --arg roadmap "$ROADMAP_VERSION" --arg reqplan "$REQ_PLAN_VERSION" '
95
103
  (.sourceRoadmap.roadmapSkillVersion // $roadmap) == $roadmap and
96
- (.planningMeta.reqPlanSkillVersion // $reqplan) == $reqplan
104
+ (.planningMeta.reqPlanSkillVersion // $reqplan) == $reqplan and
105
+ .executionProtocol.templateCompliance.required == true and
106
+ .executionProtocol.completion.manualStatusEdit == "forbidden" and
107
+ (.executionProtocol.completion.commandTemplate | contains("mark-task-complete.sh")) and
108
+ all(.tasks[]; (.completion.command | contains("mark-task-complete.sh")) and (.tddPhase | type == "string") and (.testSeam.publicVerificationPath | type == "string"))
97
109
  ' "$planning_dir/task-manifest.json" >/dev/null
98
110
 
111
+ assert_contains "$planning_dir/tasks.md" "## Execution Protocol"
112
+ assert_contains "$planning_dir/tasks.md" "mark-task-complete.sh"
113
+ assert_contains "$planning_dir/tasks.md" "TDD phase:"
114
+ assert_contains "$planning_dir/tasks.md" "Completion:"
115
+ assert_contains "$planning_dir/tasks.md" "Public verification path:"
116
+
99
117
  assert_contains "$readme" "## Example Meta"
100
118
  assert_contains "$readme" "\`cc-roadmap@$ROADMAP_VERSION\`"
101
119
  assert_contains "$readme" "\`cc-plan@$REQ_PLAN_VERSION\`"
@@ -89,7 +89,7 @@ Typical outputs:
89
89
  - `cc-spec-init` writes `devflow/specs/INDEX.md`, capability specs, and `change-meta.json`
90
90
  - `cc-plan` writes `planning/design.md`, `planning/tasks.md`, `task-manifest.json`, and `change-meta.json`
91
91
  - `cc-investigate` writes `planning/analysis.md`, `planning/tasks.md`, `task-manifest.json`, and `change-meta.json`
92
- - `cc-review` writes `cc-review-report.md` and optional structured findings for deep plan or implementation review
92
+ - `cc-review` writes `cc-review-plan.md`, `cc-review-ledger.jsonl`, `cc-review-report.md`, optional `cc-review-agent-results.jsonl`, and optional structured findings for deep plan or implementation review
93
93
  - `cc-check` writes `report-card.json`
94
94
  - `cc-act` writes exactly one final handoff file: `handoff/pr-brief.md`, `handoff/resume-index.md`, or `handoff/release-note.md`
95
95
 
@@ -89,7 +89,7 @@ find .codex/skills -mindepth 2 -maxdepth 2 -name SKILL.md | sort
89
89
  - `cc-spec-init` 产出 `devflow/specs/INDEX.md`、capability spec 和 `change-meta.json`
90
90
  - `cc-plan` 产出 `planning/design.md`、`planning/tasks.md`、`task-manifest.json` 和 `change-meta.json`
91
91
  - `cc-investigate` 产出 `planning/analysis.md`、`planning/tasks.md`、`task-manifest.json` 和 `change-meta.json`
92
- - `cc-review` 产出 `cc-review-report.md`,以及可选的结构化深度 Review findings
92
+ - `cc-review` 产出 `cc-review-plan.md`、`cc-review-ledger.jsonl`、`cc-review-report.md`、可选 `cc-review-agent-results.jsonl`,以及可选的结构化深度 Review findings
93
93
  - `cc-check` 产出 `report-card.json`
94
94
  - `cc-act` 只产出一个最终 handoff 文件:`handoff/pr-brief.md`、`handoff/resume-index.md` 或 `handoff/release-note.md`
95
95
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-devflow",
3
- "version": "4.5.7",
3
+ "version": "4.5.8",
4
4
  "description": "Multi-platform CLI and skill pack for agent coding",
5
5
  "main": "bin/cc-devflow.js",
6
6
  "bin": {
@@ -10,11 +10,16 @@
10
10
  "bin/",
11
11
  "lib/",
12
12
  "config/",
13
+ "docs/assets/",
13
14
  ".claude/skills/cc-roadmap/",
15
+ ".claude/skills/cc-next/",
16
+ ".claude/skills/cc-dev/",
14
17
  ".claude/skills/cc-plan/",
15
18
  ".claude/skills/cc-investigate/",
16
19
  ".claude/skills/cc-do/",
17
20
  ".claude/skills/cc-review/",
21
+ ".claude/skills/cc-pr-review/",
22
+ ".claude/skills/cc-pr-land/",
18
23
  ".claude/skills/cc-check/",
19
24
  ".claude/skills/cc-act/",
20
25
  ".claude/skills/cc-spec-init/",