cc-devflow 4.5.9 → 4.5.10

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 (121) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +6 -0
  2. package/.claude/skills/cc-act/SKILL.md +12 -10
  3. package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +1 -1
  4. package/.claude/skills/cc-act/references/closure-contract.md +1 -1
  5. package/.claude/skills/cc-act/references/git-commit-guidelines.md +1 -1
  6. package/.claude/skills/cc-check/CHANGELOG.md +17 -0
  7. package/.claude/skills/cc-check/PLAYBOOK.md +1 -0
  8. package/.claude/skills/cc-check/SKILL.md +9 -5
  9. package/.claude/skills/cc-check/references/review-contract.md +7 -0
  10. package/.claude/skills/cc-check/scripts/render-report-card.js +6 -1
  11. package/.claude/skills/cc-dev/CHANGELOG.md +5 -0
  12. package/.claude/skills/cc-dev/SKILL.md +26 -1
  13. package/.claude/skills/cc-do/CHANGELOG.md +12 -0
  14. package/.claude/skills/cc-do/PLAYBOOK.md +7 -7
  15. package/.claude/skills/cc-do/SKILL.md +35 -37
  16. package/.claude/skills/cc-do/references/execution-recovery.md +18 -13
  17. package/.claude/skills/cc-do/scripts/build-task-context.sh +4 -17
  18. package/.claude/skills/cc-do/scripts/record-review-decision.sh +4 -5
  19. package/.claude/skills/cc-do/scripts/recover-workflow.sh +9 -11
  20. package/.claude/skills/cc-do/scripts/verify-task-gates.sh +12 -10
  21. package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +7 -29
  22. package/.claude/skills/cc-investigate/CHANGELOG.md +17 -0
  23. package/.claude/skills/cc-investigate/PLAYBOOK.md +6 -5
  24. package/.claude/skills/cc-investigate/SKILL.md +56 -44
  25. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +48 -5
  26. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +4 -3
  27. package/.claude/skills/cc-investigate/assets/{ANALYSIS_TEMPLATE.md → legacy/ANALYSIS_TEMPLATE.md} +1 -0
  28. package/.claude/skills/cc-investigate/references/investigation-contract.md +2 -2
  29. package/.claude/skills/cc-investigate/scripts/bootstrap-analysis.sh +1 -1
  30. package/.claude/skills/cc-plan/CHANGELOG.md +19 -0
  31. package/.claude/skills/cc-plan/PLAYBOOK.md +55 -53
  32. package/.claude/skills/cc-plan/SKILL.md +101 -85
  33. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +47 -14
  34. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +4 -2
  35. package/.claude/skills/cc-plan/assets/{DESIGN_TEMPLATE.md → legacy/DESIGN_TEMPLATE.md} +1 -0
  36. package/.claude/skills/cc-plan/assets/{TINY_DESIGN_TEMPLATE.md → legacy/TINY_DESIGN_TEMPLATE.md} +1 -1
  37. package/.claude/skills/cc-plan/references/planning-contract.md +11 -10
  38. package/.claude/skills/cc-review/CHANGELOG.md +6 -0
  39. package/.claude/skills/cc-review/PLAYBOOK.md +9 -11
  40. package/.claude/skills/cc-review/SKILL.md +37 -61
  41. package/.claude/skills/cc-review/references/e2e-and-plugin-verification.md +1 -1
  42. package/.claude/skills/cc-review/references/implementation-review-branch.md +5 -5
  43. package/.claude/skills/cc-review/references/plan-review-branch.md +1 -1
  44. package/.claude/skills/cc-review/references/review-methods.md +4 -4
  45. package/.claude/skills/cc-review/scripts/collect-review-context.sh +14 -7
  46. package/CHANGELOG.md +16 -0
  47. package/CONTRIBUTING.md +40 -4
  48. package/CONTRIBUTING.zh-CN.md +40 -4
  49. package/README.md +20 -8
  50. package/README.zh-CN.md +20 -8
  51. package/bin/cc-devflow-cli.js +293 -36
  52. package/docs/examples/START-HERE.md +5 -4
  53. package/docs/examples/example-bindings.json +8 -8
  54. package/docs/examples/full-design-blocked/README.md +2 -2
  55. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +2 -1
  56. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +3 -2
  57. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +11 -8
  58. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +4 -4
  59. package/docs/examples/local-handoff/README.md +2 -2
  60. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +2 -1
  61. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +3 -2
  62. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +9 -6
  63. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +1 -1
  64. package/docs/examples/pdca-loop/README.md +2 -2
  65. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +2 -2
  66. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +2 -1
  67. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +2 -1
  68. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +9 -6
  69. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +1 -1
  70. package/docs/examples/scripts/check-example-bindings.sh +2 -0
  71. package/docs/get-shit-done-strategy-audit.md +22 -22
  72. package/docs/guides/artifact-contract.md +1 -1
  73. package/docs/guides/getting-started.md +10 -8
  74. package/docs/guides/getting-started.zh-CN.md +10 -8
  75. package/docs/guides/minimize-artifacts.md +123 -0
  76. package/lib/compiler/__tests__/skills-registry.test.js +2 -2
  77. package/lib/skill-runtime/CLAUDE.md +1 -1
  78. package/lib/skill-runtime/__tests__/autopilot.test.js +42 -6
  79. package/lib/skill-runtime/__tests__/benchmark-artifacts.test.js +165 -0
  80. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +2 -2
  81. package/lib/skill-runtime/__tests__/dispatch.test.js +8 -38
  82. package/lib/skill-runtime/__tests__/intent.test.js +4 -20
  83. package/lib/skill-runtime/__tests__/lifecycle.test.js +1 -1
  84. package/lib/skill-runtime/__tests__/paths.test.js +7 -1
  85. package/lib/skill-runtime/__tests__/planner.tdd.test.js +61 -0
  86. package/lib/skill-runtime/__tests__/prepare-pr.test.js +3 -16
  87. package/lib/skill-runtime/__tests__/query.test.js +388 -7
  88. package/lib/skill-runtime/__tests__/review-check-integration.test.js +148 -0
  89. package/lib/skill-runtime/__tests__/review-records.test.js +619 -0
  90. package/lib/skill-runtime/__tests__/runtime.integration.test.js +64 -23
  91. package/lib/skill-runtime/__tests__/schemas.test.js +43 -0
  92. package/lib/skill-runtime/__tests__/task-contract-migrate.test.js +137 -0
  93. package/lib/skill-runtime/__tests__/task-contract.test.js +783 -0
  94. package/lib/skill-runtime/__tests__/verify-artifacts.test.js +203 -0
  95. package/lib/skill-runtime/__tests__/worker-run.test.js +4 -11
  96. package/lib/skill-runtime/__tests__/workflow-context-legacy-fallback.test.js +31 -0
  97. package/lib/skill-runtime/__tests__/workflow-context.test.js +98 -0
  98. package/lib/skill-runtime/artifacts.js +0 -5
  99. package/lib/skill-runtime/context-index.js +545 -0
  100. package/lib/skill-runtime/intent.js +9 -33
  101. package/lib/skill-runtime/lifecycle.js +1 -1
  102. package/lib/skill-runtime/operations/CLAUDE.md +2 -2
  103. package/lib/skill-runtime/operations/dispatch.js +4 -42
  104. package/lib/skill-runtime/operations/init.js +2 -6
  105. package/lib/skill-runtime/operations/janitor.js +2 -18
  106. package/lib/skill-runtime/operations/resume.js +21 -38
  107. package/lib/skill-runtime/operations/review-records.js +265 -0
  108. package/lib/skill-runtime/operations/snapshot.js +1 -1
  109. package/lib/skill-runtime/operations/task-contract.js +524 -0
  110. package/lib/skill-runtime/operations/worker-run.js +2 -30
  111. package/lib/skill-runtime/paths.js +4 -4
  112. package/lib/skill-runtime/planner.js +24 -11
  113. package/lib/skill-runtime/query-registry.js +2 -2
  114. package/lib/skill-runtime/query.js +15 -2
  115. package/lib/skill-runtime/review-records.js +123 -0
  116. package/lib/skill-runtime/review.js +246 -11
  117. package/lib/skill-runtime/schemas.js +174 -12
  118. package/lib/skill-runtime/store.js +0 -10
  119. package/lib/skill-runtime/task-contract.js +187 -0
  120. package/lib/skill-runtime/workflow-context.js +748 -0
  121. package/package.json +7 -4
@@ -6,8 +6,9 @@
6
6
  "requirementId": "REQ-003",
7
7
  "requirementVersion": "REQ-003.v1",
8
8
  "planningMeta": {
9
- "reqPlanSkillVersion": "3.8.5",
9
+ "reqPlanSkillVersion": "3.9.0",
10
10
  "designVersion": "design.v1",
11
+ "workBranch": "REQ/003-audit-log-export",
11
12
  "approvedAt": "2026-04-16T13:10:00.000Z",
12
13
  "basedOnOption": "Tiny design card",
13
14
  "aiLeverageDecisionLens": {
@@ -173,7 +174,7 @@
173
174
  ],
174
175
  "evidence": [
175
176
  "passing test output",
176
- "checkpoint summary"
177
+ "CLI log summary"
177
178
  ],
178
179
  "context": {
179
180
  "readFiles": [
@@ -4,7 +4,8 @@
4
4
 
5
5
  - Requirement version: `REQ-003.v1`
6
6
  - Design version: `design.v1`
7
- - CC-Plan skill version: `3.8.5`
7
+ - CC-Plan skill version: `3.9.0`
8
+ - Work branch: `REQ/003-audit-log-export`
8
9
  - Source roadmap item: `RM-020`
9
10
  - Source roadmap version: `roadmap.v3`
10
11
 
@@ -41,12 +42,14 @@
41
42
  ClaudeCode / Codex 执行本计划时,必须把本文件当成任务模板合同,而不是普通 TODO 列表。
42
43
 
43
44
  - Template source: `assets/TASKS_TEMPLATE.md`
45
+ - Context index first: run `cc-devflow query workflow-context --change <changeId> --change-key <changeKey> --cwd <repo-root> --data-only --no-trace --compact` before opening deep sections; use `packetOnly` plus `mustNotForget` first, verify `sourceHashes`, open `defaultOpen` refs only when needed, and reserve `deepOpen` for matching `openWhen.conditions`.
44
46
  - Task selection: read `planning/task-manifest.json.currentTaskId`; if empty, run the ready-task selector before choosing work.
45
47
  - Task block rule: read the full task block before coding; title-only execution is invalid.
46
48
  - Completion rule: after verification and review gates pass, run the completion script; do not manually edit checkbox, status, or `currentTaskId`.
47
- - 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.
49
+ - Completion failure: if the script fails, fix the missing review / dependency evidence and rerun it. Do not bypass it by editing JSON or Markdown.
48
50
 
49
51
  ```bash
52
+ cc-devflow query workflow-context --change <changeId> --change-key <changeKey> --cwd <repo-root> --data-only --no-trace --compact
50
53
  SCRIPT_ROOT=".claude/skills/cc-do/scripts"
51
54
  if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then
52
55
  SCRIPT_ROOT=".codex/skills/cc-do/scripts"
@@ -64,7 +67,7 @@ bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/local-handoff
64
67
  Read first: `design.md`, `src/admin/AuditSummaryPanel.tsx`
65
68
  Verification: `npm test -- src/admin/AuditSummaryPanel.test.tsx`
66
69
  Evidence: failing output
67
- 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/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json --tasks docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md --task T001`; do not hand-edit status.
70
+ Completion: after verification evidence and required 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/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json --tasks docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md --task T001`; do not hand-edit status.
68
71
  Test seam: admin audit panel UI behavior
69
72
  Public verification path: Run the audit summary panel test and observe CSV export through visible rows
70
73
  Allowed mocks: download / blob boundary
@@ -76,8 +79,8 @@ bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/local-handoff
76
79
  Files: `src/admin/AuditSummaryPanel.tsx`
77
80
  Read first: `design.md`, `src/admin/AuditSummaryPanel.test.tsx`
78
81
  Verification: `npm test -- src/admin/AuditSummaryPanel.test.tsx`
79
- Evidence: passing output + checkpoint
80
- 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/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json --tasks docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md --task T002`; do not hand-edit status.
82
+ Evidence: passing output + Git diff
83
+ Completion: after verification evidence and required 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/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json --tasks docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md --task T002`; do not hand-edit status.
81
84
  Test seam: admin audit panel UI behavior
82
85
  Public verification path: Run the audit summary panel test and observe CSV export through visible rows
83
86
  Allowed mocks: download / blob boundary
@@ -94,7 +97,7 @@ bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/local-handoff
94
97
  - `npm test -- src/admin/AuditSummaryPanel.test.tsx`
95
98
  - `npm run lint -- src/admin/AuditSummaryPanel.tsx`
96
99
  Evidence: passing output + clean lint output
97
- 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/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json --tasks docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md --task T003`; do not hand-edit status.
100
+ Completion: after verification evidence and required 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/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json --tasks docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md --task T003`; do not hand-edit status.
98
101
  Test seam: admin audit panel UI behavior
99
102
  Public verification path: Run the audit summary panel test and observe CSV export through visible rows
100
103
  Allowed mocks: download / blob boundary
@@ -120,7 +120,7 @@
120
120
  "reviewPacket": {
121
121
  "baseSha": "example-base",
122
122
  "headSha": "example-head",
123
- "requirements": "planning/design.md",
123
+ "requirements": "planning/tasks.md#Contract Summary",
124
124
  "implemented": "audit log export summary view",
125
125
  "reviewerContext": "requirement diff, plan completion, scope drift, docs staleness"
126
126
  },
@@ -4,7 +4,7 @@
4
4
 
5
5
  - Example version: `1.0.0`
6
6
  - Last reviewed: `2026-04-17`
7
- - Bound skills: `cc-roadmap@5.3.0`, `cc-plan@3.8.5`, `cc-do@1.6.5`, `cc-check@1.10.1`, `cc-act@1.8.7`
7
+ - Bound skills: `cc-roadmap@5.3.0`, `cc-plan@3.9.0`, `cc-do@1.6.7`, `cc-check@1.11.1`, `cc-act@1.8.8`
8
8
 
9
9
  This folder shows one minimal but complete `cc-roadmap -> cc-plan -> cc-do -> cc-check -> cc-act` loop.
10
10
 
@@ -30,8 +30,8 @@ The sample requirement is:
30
30
  - `roadmap.json`: editable roadmap truth that renders the generated views
31
31
  - `ROADMAP.md`: generated view of what `cc-roadmap` decided and why this item is first
32
32
  - `BACKLOG.md`: deprecated capability-aware projection that makes `RM-001` ready for `cc-plan`
33
- - `changes/REQ-001-copy-invite-link/planning/design.md`: approved tiny design
34
33
  - `changes/REQ-001-copy-invite-link/planning/tasks.md`: executable task handoff
34
+ - `changes/REQ-001-copy-invite-link/planning/design.md`: legacy fallback sample for the approved tiny design
35
35
  - `changes/REQ-001-copy-invite-link/planning/task-manifest.json`: machine-readable execution truth
36
36
  - `changes/REQ-001-copy-invite-link/review/report-card.json`: `cc-check` proof and verdict
37
37
  - `changes/REQ-001-copy-invite-link/handoff/pr-brief.md`: ship-ready PR handoff
@@ -28,7 +28,7 @@
28
28
 
29
29
  - Reviewed base SHA: `example-base`
30
30
  - Reviewed head SHA: `example-head`
31
- - Review packet: `planning/tasks.md#T001-T003`; `planning/design.md`
31
+ - Review packet: `planning/tasks.md#Contract Summary`; `planning/tasks.md#T001-T003`
32
32
  - Finding triage: no findings
33
33
  - QA / claim evidence: `qa=pass`, `tests-pass=pass`, `requirements-met=pass`
34
34
 
@@ -82,7 +82,7 @@
82
82
 
83
83
  - Reviewed base SHA: `example-base`
84
84
  - Reviewed head SHA: `example-head`
85
- - Review packet: `planning/tasks.md#T001-T003`; `planning/design.md`
85
+ - Review packet: `planning/tasks.md#Contract Summary`; `planning/tasks.md#T001-T003`
86
86
  - Finding triage: no findings
87
87
  - QA / claim evidence: `qa=pass`, `tests-pass=pass`, `requirements-met=pass`
88
88
  - Readiness: review freshness=`fresh`; QA coverage has no gaps; browser QA intentionally skipped for this fixture.
@@ -4,7 +4,8 @@
4
4
 
5
5
  - Requirement version: `REQ-001.v1`
6
6
  - Design version: `design.v1`
7
- - CC-Plan skill version: `3.8.5`
7
+ - CC-Plan skill version: `3.9.0`
8
+ - Work branch: `REQ/001-copy-invite-link`
8
9
  - Requirement ID: `REQ-001`
9
10
  - Design mode: `tiny-design`
10
11
  - Why this stays `tiny-design`: the patch is limited to an existing dialog and test file, with no API or data model changes
@@ -6,8 +6,9 @@
6
6
  "requirementId": "REQ-001",
7
7
  "requirementVersion": "REQ-001.v1",
8
8
  "planningMeta": {
9
- "reqPlanSkillVersion": "3.8.5",
9
+ "reqPlanSkillVersion": "3.9.0",
10
10
  "designVersion": "design.v1",
11
+ "workBranch": "REQ/001-copy-invite-link",
11
12
  "approvedAt": "2026-04-15T10:05:00.000Z",
12
13
  "basedOnOption": "Tiny design card",
13
14
  "aiLeverageDecisionLens": {
@@ -4,7 +4,8 @@
4
4
 
5
5
  - Requirement version: `REQ-001.v1`
6
6
  - Design version: `design.v1`
7
- - CC-Plan skill version: `3.8.5`
7
+ - CC-Plan skill version: `3.9.0`
8
+ - Work branch: `REQ/001-copy-invite-link`
8
9
  - Source roadmap item: `RM-001`
9
10
  - Source roadmap version: `roadmap.v1`
10
11
 
@@ -44,12 +45,14 @@
44
45
  ClaudeCode / Codex 执行本计划时,必须把本文件当成任务模板合同,而不是普通 TODO 列表。
45
46
 
46
47
  - Template source: `assets/TASKS_TEMPLATE.md`
48
+ - Context index first: run `cc-devflow query workflow-context --change <changeId> --change-key <changeKey> --cwd <repo-root> --data-only --no-trace --compact` before opening deep sections; use `packetOnly` plus `mustNotForget` first, verify `sourceHashes`, open `defaultOpen` refs only when needed, and reserve `deepOpen` for matching `openWhen.conditions`.
47
49
  - Task selection: read `planning/task-manifest.json.currentTaskId`; if empty, run the ready-task selector before choosing work.
48
50
  - Task block rule: read the full task block before coding; title-only execution is invalid.
49
51
  - 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.
52
+ - Completion failure: if the script fails, fix the missing review / dependency evidence and rerun it. Do not bypass it by editing JSON or Markdown.
51
53
 
52
54
  ```bash
55
+ cc-devflow query workflow-context --change <changeId> --change-key <changeKey> --cwd <repo-root> --data-only --no-trace --compact
53
56
  SCRIPT_ROOT=".claude/skills/cc-do/scripts"
54
57
  if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then
55
58
  SCRIPT_ROOT=".codex/skills/cc-do/scripts"
@@ -67,7 +70,7 @@ bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/pdca-loop/cha
67
70
  Read first: `design.md`, `src/features/share/ShareDialog.tsx`
68
71
  Verification: `npm test -- src/features/share/ShareDialog.test.tsx`
69
72
  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.
73
+ Completion: after verification evidence and required 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
74
  Test seam: share dialog UI behavior
72
75
  Public verification path: Run the share dialog test and observe the copy action through the rendered dialog
73
76
  Allowed mocks: clipboard boundary
@@ -79,8 +82,8 @@ bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/pdca-loop/cha
79
82
  Files: `src/features/share/ShareDialog.tsx`
80
83
  Read first: `design.md`, `src/features/share/ShareDialog.test.tsx`
81
84
  Verification: `npm test -- src/features/share/ShareDialog.test.tsx`
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.
85
+ Evidence: passing output + review notes
86
+ Completion: after verification evidence and required 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
87
  Test seam: share dialog UI behavior
85
88
  Public verification path: Run the share dialog test and observe the copy action through the rendered dialog
86
89
  Allowed mocks: clipboard boundary
@@ -97,7 +100,7 @@ bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/pdca-loop/cha
97
100
  - `npm test -- src/features/share/ShareDialog.test.tsx`
98
101
  - `npm run lint -- src/features/share/ShareDialog.tsx`
99
102
  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.
103
+ Completion: after verification evidence and required 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
104
  Test seam: share dialog UI behavior
102
105
  Public verification path: Run the share dialog test and observe the copy action through the rendered dialog
103
106
  Allowed mocks: clipboard boundary
@@ -120,7 +120,7 @@
120
120
  "reviewPacket": {
121
121
  "baseSha": "example-base",
122
122
  "headSha": "example-head",
123
- "requirements": "planning/design.md",
123
+ "requirements": "planning/tasks.md#Contract Summary",
124
124
  "implemented": "copy invite link workflow",
125
125
  "reviewerContext": "requirement diff, plan completion, scope drift, docs staleness"
126
126
  },
@@ -113,6 +113,8 @@ while IFS= read -r encoded; do
113
113
  ' "$planning_dir/task-manifest.json" >/dev/null
114
114
 
115
115
  assert_contains "$planning_dir/tasks.md" "## Execution Protocol"
116
+ assert_contains "$planning_dir/tasks.md" "cc-devflow query workflow-context"
117
+ assert_contains "$planning_dir/tasks.md" "--data-only --no-trace --compact"
116
118
  assert_contains "$planning_dir/tasks.md" "mark-task-complete.sh"
117
119
  assert_contains "$planning_dir/tasks.md" "TDD phase:"
118
120
  assert_contains "$planning_dir/tasks.md" "Completion:"
@@ -68,7 +68,7 @@ lib/skill-runtime
68
68
  |
69
69
  v
70
70
  durable artifacts
71
- task-manifest.json / report-card.json / change-state.json / analysis.md
71
+ planning/tasks.md / task-manifest.json / report-card.json / change-meta.json
72
72
  ```
73
73
 
74
74
  SKILL/PLAYBOOK 拥有 workflow 语义。`lib/skill-runtime` 只拥有 typed reads、
@@ -125,11 +125,11 @@ Codebase Map 七件套只作为按需缓存:
125
125
 
126
126
  | Contract | Artifact owner | Gate | Tests |
127
127
  | --- | --- | --- | --- |
128
- | WHAT/WHY ambiguity score | `task-manifest.json.planningMeta` + `planning/design.md` | score above threshold blocks task manifest approval | unit fixture: ambiguous input blocks; clear input passes |
129
- | Assumptions preview | `planning/design.md` decision log | user-visible assumptions before approval | fixture: hidden assumption fails review |
130
- | Bounded review loop | `planning/design.md` | max attempts and stall detection reroute to `cc-roadmap` or user question | hostile fixture: repeated issue count blocks |
131
- | External doc conflict buckets | `planning/design.md` | imported docs classified as auto-resolved, competing, unresolved | fixture: conflicting ADR/PRD creates blocker |
132
- | Trust boundary | `planning/design.md` | external text is evidence/source only, never instruction | hostile fixture: prompt injection remains evidence-only |
128
+ | WHAT/WHY ambiguity score | `task-manifest.json.planningMeta` + `planning/tasks.md#Contract Summary` | score above threshold blocks task manifest approval | unit fixture: ambiguous input blocks; clear input passes |
129
+ | Assumptions preview | `planning/tasks.md#Contract Summary` decision log | user-visible assumptions before approval | fixture: hidden assumption fails review |
130
+ | Bounded review loop | `planning/tasks.md#Contract Summary` | max attempts and stall detection reroute to `cc-roadmap` or user question | hostile fixture: repeated issue count blocks |
131
+ | External doc conflict buckets | `planning/tasks.md#Contract Summary` | imported docs classified as auto-resolved, competing, unresolved | fixture: conflicting ADR/PRD creates blocker |
132
+ | Trust boundary | `planning/tasks.md#Contract Summary` | external text is evidence/source only, never instruction | hostile fixture: prompt injection remains evidence-only |
133
133
 
134
134
  `cc-plan` must keep design decisions readable in Markdown and machine truth in JSON.
135
135
  No separate GSD-style `.planning/` tree.
@@ -140,20 +140,20 @@ No separate GSD-style `.planning/` tree.
140
140
  | --- | --- | --- | --- |
141
141
  | Wave scheduling | `task-manifest.json.tasks[].phase/parallel/dependsOn/touches` | parallel only when dependencies and touches do not conflict | schema fixture: shared touches rejected |
142
142
  | Submodule-aware worktree gate | `task-manifest.json.tasks[].touches` + runtime submodule scan | only tasks touching submodule paths lose isolation | hostile fixture: repo with `.gitmodules` but unrelated touches still parallel |
143
- | Quick lane mini manifest | `task-manifest.json.metadata.lane=quick` | small work still has checkpoint, verification, handoff | fixture: quick lane without verification blocks |
144
- | Thread/pause/resume | `change-state.json` + one final handoff file | resume query returns stable next action | integration: stale checkpoint restores to pending |
143
+ | Quick lane mini manifest | `task-manifest.json.metadata.lane=quick` | small work still has task-state truth, verification, handoff | fixture: quick lane without verification blocks |
144
+ | Thread/pause/resume | `change-meta.json`, manifest task state, optional CLI logs, and one final handoff file | resume query returns stable next action | integration: stale manifest state restores to pending |
145
145
 
146
- `cc-do` should not invent new task state outside `task-manifest.json` and checkpoints.
146
+ `cc-do` should not invent new task state outside `task-manifest.json`.
147
147
 
148
148
  ### `cc-investigate`
149
149
 
150
150
  | Contract | Artifact owner | Gate | Tests |
151
151
  | --- | --- | --- | --- |
152
- | Persistent debug session | `planning/analysis.md` session block, optional machine summary in `task-manifest.json` | hypotheses, probes, symptom match, cleanup recorded | fixture: missing cleanup blocks freeze |
153
- | Diagnose-only report | `planning/analysis.md` | no code edits required; root cause and next action explicit | fixture: diagnose-only does not mark implementation complete |
154
- | Workflow forensics | `planning/analysis.md` + trace refs | git/artifact/state failures classified before fixes | hostile fixture: corrupt manifest produces named failure |
152
+ | Persistent debug session | `planning/tasks.md#Root Cause Contract`, optional machine summary in `task-manifest.json` | hypotheses, probes, symptom match, cleanup recorded | fixture: missing cleanup blocks freeze |
153
+ | Diagnose-only report | `planning/tasks.md#Root Cause Contract` | no code edits required; root cause and next action explicit | fixture: diagnose-only does not mark implementation complete |
154
+ | Workflow forensics | `planning/tasks.md#Root Cause Contract` + trace refs | git/artifact/state failures classified before fixes | hostile fixture: corrupt manifest produces named failure |
155
155
 
156
- Prefer extending `planning/analysis.md` over adding `planning/debug-session.md`.
156
+ Prefer extending `planning/tasks.md#Root Cause Contract` over adding `planning/debug-session.md`.
157
157
  Only add a new file if the debug transcript becomes too large and has a single owner.
158
158
 
159
159
  ### `cc-check`
@@ -208,11 +208,11 @@ default planning path.
208
208
 
209
209
  | Data | Owner | Human view | Machine truth |
210
210
  | --- | --- | --- | --- |
211
- | Ambiguity and assumptions | `cc-plan` | `planning/design.md` | `task-manifest.json.planningMeta` |
212
- | Imported doc trust classification | `cc-plan` | `planning/design.md` | `planning/design.md` |
211
+ | Ambiguity and assumptions | `cc-plan` | `planning/tasks.md#Contract Summary` | `task-manifest.json.planningMeta` |
212
+ | Imported doc trust classification | `cc-plan` | `planning/tasks.md#Contract Summary` | `planning/tasks.md` |
213
213
  | Task graph and waves | `cc-plan` / `cc-do` | `planning/tasks.md` | `task-manifest.json.tasks[]` |
214
- | Quick lane state | `cc-do` | checkpoint summary | `task-manifest.json.metadata`, `checkpoint.json` |
215
- | Debug hypotheses and probes | `cc-investigate` | `planning/analysis.md` | optional `task-manifest.json.investigation` |
214
+ | Quick lane state | `cc-do` | task-state summary | `task-manifest.json.metadata`, `planning/tasks.md` |
215
+ | Debug hypotheses and probes | `cc-investigate` | `planning/tasks.md#Root Cause Contract` | optional `task-manifest.json.investigation` |
216
216
  | Verification/UAT/facets | `cc-check` | review summary | `report-card.json` |
217
217
  | Runtime failures | `cc-check` | review summary | `report-card.json.runtime.failureOwnership[]` |
218
218
  | Ship target and rollback | `cc-act` | `handoff/pr-brief.md` / `release-note.md` | structured preflight output |
@@ -243,7 +243,7 @@ owner skill, and next action.
243
243
  | --- | --- | --- | --- | --- | --- | --- |
244
244
  | external docs -> `cc-plan` | block with missing source | skip with reason | `TrustBoundaryError` | conflict bucket | mark stale source | partial import warning |
245
245
  | `tasks.md` -> `task-manifest.json` | block | block | schema error | dependency conflict | plan version mismatch | no manifest approval |
246
- | manifest -> wave scheduling | block | no runnable task | `InvalidTaskGraphError` | serialize or block | stale checkpoint rejected | reroute resume |
246
+ | manifest -> wave scheduling | block | no runnable task | `InvalidTaskGraphError` | serialize or block | stale manifest state rejected | reroute resume |
247
247
  | debug session -> analysis | block freeze | require note | schema/narrative mismatch | competing hypotheses | stale symptom | diagnose-only |
248
248
  | query registry -> next action | `MissingArtifactError` | no next action with reason | named parse/schema error | blocked graph | stale state warning | degraded output |
249
249
  | inventory -> publish gate | missing inventory blocks | empty inventory blocks | schema error | drift blocks | stale hash blocks | publish blocked |
@@ -320,7 +320,7 @@ Large-file guardrails:
320
320
 
321
321
  ### Phase 3: `cc-investigate` debug session and forensics
322
322
 
323
- - Extend `planning/analysis.md` and optional machine summary.
323
+ - Extend `planning/tasks.md#Root Cause Contract` and optional machine summary.
324
324
  - Required proof: diagnose-only and missing cleanup fixtures.
325
325
 
326
326
  ### Phase 4: `cc-check` and `cc-act` consumers
@@ -354,7 +354,7 @@ These rules protect cc-devflow's identity:
354
354
  | Existing cc-devflow asset | Reuse |
355
355
  | --- | --- |
356
356
  | `lib/skill-runtime/query.js` | current progress/next/full-state facade |
357
- | `lib/skill-runtime/schemas.js` | manifest/report/checkpoint schema boundary |
357
+ | `lib/skill-runtime/schemas.js` | manifest/report/runtime schema boundary |
358
358
  | `lib/skill-runtime/config.js` | layered config and doctor pattern |
359
359
  | `lib/compiler/manifest.js` | hash and drift detection foundation |
360
360
  | `scripts/validate-publish.js` | publish validation orchestrator |
@@ -404,7 +404,7 @@ not the cc-devflow implementation order.
404
404
  | `ship` | structured ship preflight |
405
405
  | `next` | runtime query `route.next-action` |
406
406
  | `fast` | TDD exception / quick lane rule |
407
- | `quick` | mini manifest + checkpoint |
407
+ | `quick` | mini manifest + task-state truth |
408
408
  | `ui-review` | conditional frontend `cc-check` facet |
409
409
  | `code-review` | finding schema |
410
410
  | `code-review-fix` | fix loop and return to `cc-check` |
@@ -433,7 +433,7 @@ not the cc-devflow implementation order.
433
433
  | `cleanup` | low priority cleanup |
434
434
  | `manager` | skip UI |
435
435
  | `workstreams` | active pointer only |
436
- | `autonomous` | smart-discuss/checkpoint guard only |
436
+ | `autonomous` | smart-discuss/task-state guard only |
437
437
  | `undo` | rollback guard |
438
438
 
439
439
  ### Session And Navigation
@@ -20,7 +20,7 @@ If a field has no clear opener and no downstream consumer, remove it.
20
20
  | Capability/spec sync state | `devflow/changes/<change-key>/change-meta.json` | `planning/tasks.md`, `review/report-card.json`, handoff summaries |
21
21
  | Execution task status | `planning/task-manifest.json.tasks[].status` | `planning/tasks.md` checkboxes, recovery summaries |
22
22
  | Ready task / phase | derived from `tasks[].status`, `tasks[].phase`, and `tasks[].dependsOn` | `currentTaskId` cache, ready-task selector output |
23
- | Runtime checkpoint state | `execution/tasks/<task-id>/checkpoint.json` | `events.jsonl`, recovery summaries |
23
+ | Runtime event log | `execution/tasks/<task-id>/events.jsonl` only for debug/failed runs | recovery summaries |
24
24
  | Review verdict | `review/report-card.json.verdict` | PR brief, release note, act gate |
25
25
  | PR / remote queue truth | live GitHub API / `gh` output | local review notes and handoff summaries |
26
26
  | Project postmortem facts and principles | `devflow/postmortems/` | planning recall, investigation hypotheses, task guardrails |
@@ -11,10 +11,10 @@ CC-DevFlow has two entry paths:
11
11
  - `cc-devflow init`: install the whole `.claude` pack into your project
12
12
  - `cc-devflow adapt`: generate platform outputs such as Codex rules
13
13
 
14
- The core workflow is driven by six visible skills, with `cc-review` available as an optional deep review pass:
14
+ The core workflow can run manually through PDCA/IDCA skills or automatically through the PR harness skills:
15
15
 
16
16
  ```text
17
- cc-roadmap
17
+ cc-roadmap -> cc-next -> cc-dev
18
18
 
19
19
  PDCA: cc-plan -> [cc-review] -> cc-do -> [cc-review] -> cc-check -> cc-act
20
20
  IDCA: cc-investigate -> [cc-review] -> cc-do -> [cc-review] -> cc-check -> cc-act
@@ -36,7 +36,7 @@ The public skills are the visible harness. Each distributed `SKILL.md` now carri
36
36
  npx cc-devflow init --dir /path/to/your/project
37
37
  ```
38
38
 
39
- The whole-pack install includes the six core workflow skills, optional `cc-review`, plus `cc-spec-init` and `cc-simplify` as maintenance helpers.
39
+ The whole-pack install includes roadmap, next-work selection, autonomous dev, manual PDCA/IDCA, optional `cc-review`, PR review/landing, plus `cc-spec-init` and `cc-simplify` as maintenance helpers.
40
40
 
41
41
  ### Single Skill Install
42
42
 
@@ -87,9 +87,9 @@ Typical outputs:
87
87
 
88
88
  - `cc-roadmap` writes `devflow/roadmap.json` as the editable roadmap truth, then generates `devflow/ROADMAP.md` and deprecated `devflow/BACKLOG.md`
89
89
  - `cc-spec-init` writes `devflow/specs/INDEX.md`, capability specs, and `change-meta.json`
90
- - `cc-plan` writes `planning/design.md`, `planning/tasks.md`, `task-manifest.json`, and `change-meta.json`
91
- - `cc-investigate` writes `planning/analysis.md`, `planning/tasks.md`, `task-manifest.json`, and `change-meta.json`
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
90
+ - `cc-plan` writes `planning/tasks.md#Contract Summary`, CLI-generated `task-manifest.json`, and `change-meta.json`
91
+ - `cc-investigate` writes `planning/tasks.md#Root Cause Contract`, CLI-generated `task-manifest.json`, and `change-meta.json`
92
+ - `cc-review` writes `review-ledger.jsonl`, optional `review-findings.json`, and Markdown reports only when rendered on demand
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
 
@@ -98,7 +98,8 @@ Change truth lives in `devflow/changes/<change>/`.
98
98
 
99
99
  - Keep `INDEX.md` plus capability markdown under `devflow/specs/`.
100
100
  - Name new change directories as `REQ-<number>-<description>` for requirements or `FIX-<number>-<description>` for bug fixes. `REQ` and `FIX` advance as separate local sequences, so cross-prefix duplicates are valid. Parallel worktrees may still repeat numbers; the full change key, especially the description, distinguishes the work. Old lowercase directories are compatibility reads only.
101
- - Keep `change-state.json`, `change-meta.json`, planning docs, `task-manifest.json`, optional `team-state.json`, task `checkpoint.json`, `report-card.json`, and one final handoff file under each `devflow/changes/<change>/`.
101
+ - Keep `change-meta.json`, `planning/tasks.md`, CLI-generated `task-manifest.json`, review ledger/findings records, optional CLI logs for debug/failure, `report-card.json`, and one final handoff file under each `devflow/changes/<change>/`. Do not generate task `context.md`, `checkpoint.json`, or AI-written process files.
102
+ - Legacy `planning/design.md`, `planning/analysis.md`, and `cc-review-*.md` are readable fallback inputs for older changes, not new default writes.
102
103
  - Worker prompts, journals, assignments, and session logs belong under `devflow/workspaces/<change>/` as ephemeral scratch.
103
104
 
104
105
  Planning handoffs should be evidence-rich before implementation starts:
@@ -154,7 +155,7 @@ npx cc-devflow adapt --cwd /path/to/your/project --platform codex
154
155
 
155
156
  If your project has no optional `.claude/commands/` input, this is expected: the compiler will still generate the skills registry and mirror the distributed skill set for Codex.
156
157
 
157
- Codex mirrors the distributed skills from `.claude/skills/<skill>/` into `.codex/skills/<skill>/`. That set includes the six core workflow skills, optional `cc-review`, `cc-spec-init`, and `cc-simplify`, and the mirror is additive-only: existing project-owned Codex skills are preserved instead of being deleted.
158
+ Codex mirrors the distributed skills from `.claude/skills/<skill>/` into `.codex/skills/<skill>/`. That set includes the public workflow skills plus maintenance skills `cc-spec-init` and `cc-simplify`, and the mirror is additive-only: existing project-owned Codex skills are preserved instead of being deleted.
158
159
 
159
160
  ### Keep skills and examples in sync
160
161
 
@@ -173,6 +174,7 @@ npm run verify:publish
173
174
  - [CLI And Skills](../commands/README.md)
174
175
  - [Workflow Guide](./workflow-guide.md)
175
176
  - [Best Practices](./best-practices.md)
177
+ - [Minimized Artifact Contract](./minimize-artifacts.md)
176
178
  - [Example Entry Page](../examples/START-HERE.md)
177
179
  - [Compact Example List](../examples/README.md)
178
180
  - [Project README](../../README.md)
@@ -11,10 +11,10 @@ CC-DevFlow 现在有两条入口:
11
11
  - `cc-devflow init`:把整包 `.claude` 安装到你的项目里
12
12
  - `cc-devflow adapt`:生成 Codex、Cursor、Qwen、Antigravity 等平台产物
13
13
 
14
- 核心工作流由 6 个可见 Skill 组成,复杂工作可选 `cc-review` 做深度 Review:
14
+ 核心工作流可以手动走 PDCA/IDCA Skill,也可以通过 PR harness Skill 自动推进:
15
15
 
16
16
  ```text
17
- cc-roadmap
17
+ cc-roadmap -> cc-next -> cc-dev
18
18
 
19
19
  PDCA: cc-plan -> [cc-review] -> cc-do -> [cc-review] -> cc-check -> cc-act
20
20
  IDCA: cc-investigate -> [cc-review] -> cc-do -> [cc-review] -> cc-check -> cc-act
@@ -36,7 +36,7 @@ IDCA: cc-investigate -> [cc-review] -> cc-do -> [cc-review] -> cc-check -> cc-ac
36
36
  npx cc-devflow init --dir /path/to/your/project
37
37
  ```
38
38
 
39
- 整包安装会带上 6 个核心 workflow skill、可选 `cc-review`,以及维护用的 `cc-spec-init` 和 `cc-simplify`。
39
+ 整包安装会带上 roadmap、next-work selection、autonomous dev、手动 PDCA/IDCA、可选 `cc-review`、PR review/landing,以及维护用的 `cc-spec-init` 和 `cc-simplify`。
40
40
 
41
41
  ### 单个 Skill 安装
42
42
 
@@ -87,9 +87,9 @@ find .codex/skills -mindepth 2 -maxdepth 2 -name SKILL.md | sort
87
87
 
88
88
  - `cc-roadmap` 产出可编辑真相 `devflow/roadmap.json`,再生成 `devflow/ROADMAP.md` 和 deprecated `devflow/BACKLOG.md`
89
89
  - `cc-spec-init` 产出 `devflow/specs/INDEX.md`、capability spec 和 `change-meta.json`
90
- - `cc-plan` 产出 `planning/design.md`、`planning/tasks.md`、`task-manifest.json` 和 `change-meta.json`
91
- - `cc-investigate` 产出 `planning/analysis.md`、`planning/tasks.md`、`task-manifest.json` 和 `change-meta.json`
92
- - `cc-review` 产出 `cc-review-plan.md`、`cc-review-ledger.jsonl`、`cc-review-report.md`、可选 `cc-review-agent-results.jsonl`,以及可选的结构化深度 Review findings
90
+ - `cc-plan` 产出 `planning/tasks.md#Contract Summary`、CLI 生成的 `task-manifest.json` 和 `change-meta.json`
91
+ - `cc-investigate` 产出 `planning/tasks.md#Root Cause Contract`、CLI 生成的 `task-manifest.json` 和 `change-meta.json`
92
+ - `cc-review` 产出 `review-ledger.jsonl`、可选 `review-findings.json`,Markdown 报告只在需要时按需渲染
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
 
@@ -97,7 +97,8 @@ durable truth 分两层:
97
97
 
98
98
  - `devflow/specs/`:capability 真相,保留 `INDEX.md` 与 `capabilities/*.md`
99
99
  - 新 change 目录必须命名为 `REQ-<number>-<description>`(需求)或 `FIX-<number>-<description>`(修复);`REQ` 和 `FIX` 分别维护自己的递增编号,跨前缀同号不是冲突;并行工作树造成重复编号时,完整 change key 的描述负责区分业务内容,旧小写目录只作为历史兼容读取。
100
- - `devflow/changes/<change>/`:变更真相,保留 `change-state.json`、`change-meta.json`、planning 文档、`task-manifest.json`、可选 `team-state.json`、任务级 `checkpoint.json`、`report-card.json` 和唯一的最终 handoff 文件。
100
+ - `devflow/changes/<change>/`:变更真相,保留 `change-meta.json`、`planning/tasks.md`、CLI 生成的 `task-manifest.json`、review ledger / findings 记录、debug / failed 的可选 CLI 日志、`report-card.json` 和唯一的最终 handoff 文件。不要生成任务级 `context.md`、`checkpoint.json` AI 手写过程文件。
101
+ - 历史 `planning/design.md`、`planning/analysis.md` 和 `cc-review-*.md` 是旧 change 的可读 fallback,不再是新默认写入。
101
102
  - worker prompt、journal、assignment、session log 统一放到 `devflow/workspaces/<change>/`,作为 ephemeral scratch。
102
103
 
103
104
  进入实现前,planning handoff 应该先把证据写实:
@@ -153,7 +154,7 @@ npx cc-devflow adapt --cwd /path/to/your/project --platform codex
153
154
 
154
155
  如果你的项目没有可选的 `.claude/commands/` 输入目录,这也是正常的;编译器仍然会生成 skills registry,并为 Codex 镜像正式分发 skill 集合。
155
156
 
156
- Codex 现在会把正式分发的 skill 从 `.claude/skills/<skill>/` 镜像到 `.codex/skills/<skill>/`。这套集合包含 6 个核心 workflow skill、可选 `cc-review` 和维护类 skill `cc-spec-init`、`cc-simplify`,并且镜像是纯增量的:项目里已有的自定义 Codex skill 不会被删除。
157
+ Codex 现在会把正式分发的 skill 从 `.claude/skills/<skill>/` 镜像到 `.codex/skills/<skill>/`。这套集合包含公开 workflow skill 和维护类 skill `cc-spec-init`、`cc-simplify`,并且镜像是纯增量的:项目里已有的自定义 Codex skill 不会被删除。
157
158
 
158
159
  ### 保持 skill 和样例同步
159
160
 
@@ -172,6 +173,7 @@ npm run verify:publish
172
173
  - [CLI 与 Skill](../commands/README.zh-CN.md)
173
174
  - [工作流详解](./workflow-guide.md)
174
175
  - [最佳实践](./best-practices.md)
176
+ - [最小 Artifact 合同](./minimize-artifacts.md)
175
177
  - [样例入口页](../examples/START-HERE.md)
176
178
  - [简版样例列表](../examples/README.md)
177
179
  - [项目 README](../../README.zh-CN.md)
@@ -0,0 +1,123 @@
1
+ # Minimized Workflow Artifacts
2
+
3
+ This guide describes the default artifact contract for new cc-devflow changes.
4
+ The goal is simple: keep durable workflow truth readable, small, and measurable.
5
+
6
+ ## Default Shape
7
+
8
+ Each new change keeps durable truth under `devflow/changes/<change-key>/`.
9
+
10
+ Default human-authored Markdown:
11
+
12
+ - `planning/tasks.md`
13
+
14
+ Default machine-owned records:
15
+
16
+ - `change-meta.json`
17
+ - `planning/task-manifest.json`
18
+ - `review/review-ledger.jsonl`
19
+ - `review/review-findings.json` when findings exist
20
+ - `execution/tasks/<task-id>/checkpoint.json`
21
+ - `review/report-card.json`
22
+ - one final handoff file under `handoff/`
23
+
24
+ Runtime scratch, worker prompts, journals, assignments, and session logs belong
25
+ under `devflow/workspaces/<change-key>/`, not beside durable change truth.
26
+
27
+ ## Feature Plans
28
+
29
+ Feature and scope changes use:
30
+
31
+ - `planning/tasks.md#Contract Summary`
32
+ - `planning/task-manifest.json`
33
+ - `change-meta.json`
34
+
35
+ `Contract Summary` owns the frozen human-readable plan: user story, non-negotiable
36
+ constraints, decisions that must not be reopened, task slices, and verification
37
+ expectations. The task manifest is generated or validated by CLI tooling and owns
38
+ machine-readable task status.
39
+
40
+ ## Bug Investigations
41
+
42
+ Bug, regression, and unexpected-behavior work uses:
43
+
44
+ - `planning/tasks.md#Root Cause Contract`
45
+ - `planning/task-manifest.json`
46
+ - `change-meta.json`
47
+
48
+ `Root Cause Contract` owns the symptom, reproduction evidence, confirmed cause,
49
+ rejected near-causes, repair boundary, and task handoff. `cc-do` should implement
50
+ from that frozen contract instead of reopening investigation during execution.
51
+
52
+ ## Review Records
53
+
54
+ `cc-review` writes structured lifecycle events first:
55
+
56
+ - `review/review-ledger.jsonl`
57
+ - optional `review/review-findings.json`
58
+ - optional rendered Markdown from `cc-devflow review render`
59
+
60
+ Markdown review reports are for human reading when needed. They are not the
61
+ default durable review source.
62
+
63
+ Useful commands:
64
+
65
+ ```bash
66
+ npx cc-devflow review start --change REQ-001 --change-key REQ-001-copy-invite-link --base-sha abc123 --head-sha def456
67
+ npx cc-devflow review record-node --change REQ-001 --change-key REQ-001-copy-invite-link --review-id <review-id> --node-id R001 --target planning/tasks.md --status checked --coverage contract --evidence-ref "cmd:npm run verify"
68
+ npx cc-devflow review add-finding --change REQ-001 --change-key REQ-001-copy-invite-link --review-id <review-id> --finding-id F001 --severity important --confidence 8 --display-tier blocking --fingerprint sha256:<hash> --scope "current change" --path planning/tasks.md --evidence "finding evidence" --recommendation "repair action" --route cc-do
69
+ npx cc-devflow review close --change REQ-001 --change-key REQ-001-copy-invite-link --review-id <review-id> --status clean --blocking-count 0 --warning-count 0 --next cc-check
70
+ npx cc-devflow review render --change REQ-001 --change-key REQ-001-copy-invite-link --review-id <review-id> --output review/review-report.md
71
+ ```
72
+
73
+ ## Legacy Fallback
74
+
75
+ Older changes may still contain:
76
+
77
+ - `planning/design.md`
78
+ - `planning/analysis.md`
79
+ - `review/cc-review-plan.md`
80
+ - `review/cc-review-report.md`
81
+ - `review/cc-review-agent-results.jsonl`
82
+
83
+ Those files remain readable compatibility inputs. New changes should not write
84
+ them by default. When migrating old work, fold feature-plan truth into
85
+ `planning/tasks.md#Contract Summary` and bug-investigation truth into
86
+ `planning/tasks.md#Root Cause Contract`.
87
+
88
+ ## Validation Gates
89
+
90
+ Validate one change:
91
+
92
+ ```bash
93
+ npx cc-devflow task-contract validate --change REQ-001 --change-key REQ-001-copy-invite-link
94
+ ```
95
+
96
+ Validate the repository artifact contract:
97
+
98
+ ```bash
99
+ npm run verify:artifacts
100
+ ```
101
+
102
+ Measure the contract:
103
+
104
+ ```bash
105
+ npm run benchmark:artifacts
106
+ ```
107
+
108
+ The package-level verification command also includes artifact validation:
109
+
110
+ ```bash
111
+ npm run verify
112
+ ```
113
+
114
+ ## Authoring Rule
115
+
116
+ Before adding a durable file under `devflow/changes/<change-key>/`, answer:
117
+
118
+ 1. Which downstream skill reads it by default?
119
+ 2. Which state does it own that no existing artifact owns?
120
+ 3. Which command fails if it drifts?
121
+
122
+ If those answers are unclear, keep the information in `planning/tasks.md`, a
123
+ machine record, or ephemeral workspace scratch instead.
@@ -159,9 +159,9 @@ describe('Skills Registry Generator', () => {
159
159
  expect(execute.writes).toEqual(
160
160
  expect.arrayContaining([
161
161
  expect.objectContaining({
162
- path: 'devflow/changes/<change-key>/execution/tasks/<task-id>/checkpoint.json',
162
+ path: 'devflow/changes/<change-key>/execution/tasks/<task-id>/events.jsonl',
163
163
  durability: 'durable',
164
- required: true
164
+ required: false
165
165
  })
166
166
  ])
167
167
  );