cc-devflow 4.5.8 → 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.
- package/.claude/skills/cc-act/CHANGELOG.md +33 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +9 -4
- package/.claude/skills/cc-act/SKILL.md +73 -12
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_INDEX_TEMPLATE.md +30 -0
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_PRINCIPLES_TEMPLATE.md +29 -0
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_TEMPLATE.md +103 -0
- package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +61 -5
- package/.claude/skills/cc-act/references/closure-contract.md +4 -1
- package/.claude/skills/cc-act/references/git-commit-guidelines.md +342 -37
- package/.claude/skills/cc-act/scripts/cc-act-common.sh +29 -1
- package/.claude/skills/cc-act/scripts/render-pr-brief.sh +164 -0
- package/.claude/skills/cc-act/scripts/sync-act-docs.sh +1 -1
- package/.claude/skills/cc-check/CHANGELOG.md +17 -0
- package/.claude/skills/cc-check/PLAYBOOK.md +1 -0
- package/.claude/skills/cc-check/SKILL.md +9 -5
- package/.claude/skills/cc-check/references/review-contract.md +7 -0
- package/.claude/skills/cc-check/scripts/render-report-card.js +6 -1
- package/.claude/skills/cc-dev/CHANGELOG.md +5 -0
- package/.claude/skills/cc-dev/SKILL.md +26 -1
- package/.claude/skills/cc-do/CHANGELOG.md +23 -0
- package/.claude/skills/cc-do/PLAYBOOK.md +7 -7
- package/.claude/skills/cc-do/SKILL.md +49 -45
- package/.claude/skills/cc-do/references/execution-recovery.md +18 -13
- package/.claude/skills/cc-do/scripts/build-task-context.sh +13 -22
- package/.claude/skills/cc-do/scripts/mark-task-complete.sh +0 -6
- package/.claude/skills/cc-do/scripts/record-review-decision.sh +4 -5
- package/.claude/skills/cc-do/scripts/recover-workflow.sh +9 -11
- package/.claude/skills/cc-do/scripts/verify-task-gates.sh +12 -10
- package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +7 -29
- package/.claude/skills/cc-investigate/CHANGELOG.md +34 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +21 -5
- package/.claude/skills/cc-investigate/SKILL.md +97 -40
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +66 -4
- package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +30 -59
- package/.claude/skills/cc-investigate/assets/{ANALYSIS_TEMPLATE.md → legacy/ANALYSIS_TEMPLATE.md} +48 -0
- package/.claude/skills/cc-investigate/references/investigation-contract.md +16 -2
- package/.claude/skills/cc-investigate/scripts/bootstrap-analysis.sh +1 -1
- package/.claude/skills/cc-next/CHANGELOG.md +6 -0
- package/.claude/skills/cc-next/PLAYBOOK.md +26 -4
- package/.claude/skills/cc-next/SKILL.md +39 -4
- package/.claude/skills/cc-plan/CHANGELOG.md +38 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +60 -53
- package/.claude/skills/cc-plan/SKILL.md +164 -87
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +101 -9
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +58 -229
- package/.claude/skills/cc-plan/assets/{DESIGN_TEMPLATE.md → legacy/DESIGN_TEMPLATE.md} +68 -0
- package/.claude/skills/cc-plan/assets/{TINY_DESIGN_TEMPLATE.md → legacy/TINY_DESIGN_TEMPLATE.md} +47 -1
- package/.claude/skills/cc-plan/references/planning-contract.md +48 -33
- package/.claude/skills/cc-review/CHANGELOG.md +6 -0
- package/.claude/skills/cc-review/PLAYBOOK.md +9 -11
- package/.claude/skills/cc-review/SKILL.md +37 -61
- package/.claude/skills/cc-review/references/e2e-and-plugin-verification.md +1 -1
- package/.claude/skills/cc-review/references/implementation-review-branch.md +5 -5
- package/.claude/skills/cc-review/references/plan-review-branch.md +1 -1
- package/.claude/skills/cc-review/references/review-methods.md +4 -4
- package/.claude/skills/cc-review/scripts/collect-review-context.sh +14 -7
- package/.claude/skills/cc-roadmap/CHANGELOG.md +6 -0
- package/.claude/skills/cc-roadmap/PLAYBOOK.md +30 -0
- package/.claude/skills/cc-roadmap/SKILL.md +45 -8
- package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +8 -0
- package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +22 -0
- package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +32 -1
- package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +14 -14
- package/CHANGELOG.md +28 -0
- package/CONTRIBUTING.md +40 -4
- package/CONTRIBUTING.zh-CN.md +40 -4
- package/README.md +57 -43
- package/README.zh-CN.md +57 -43
- package/bin/cc-devflow-cli.js +293 -36
- package/docs/examples/START-HERE.md +5 -4
- package/docs/examples/example-bindings.json +10 -10
- package/docs/examples/full-design-blocked/BACKLOG.md +1 -1
- package/docs/examples/full-design-blocked/README.md +2 -2
- package/docs/examples/full-design-blocked/ROADMAP.md +1 -1
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +2 -1
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +29 -312
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +11 -8
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +4 -4
- package/docs/examples/full-design-blocked/roadmap.json +1 -1
- package/docs/examples/local-handoff/BACKLOG.md +1 -1
- package/docs/examples/local-handoff/README.md +2 -2
- package/docs/examples/local-handoff/ROADMAP.md +1 -1
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +2 -1
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +27 -210
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +9 -6
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +1 -1
- package/docs/examples/local-handoff/roadmap.json +1 -1
- package/docs/examples/pdca-loop/BACKLOG.md +1 -1
- package/docs/examples/pdca-loop/README.md +2 -2
- package/docs/examples/pdca-loop/ROADMAP.md +1 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +65 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +2 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +26 -228
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +9 -6
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +1 -1
- package/docs/examples/pdca-loop/roadmap.json +1 -1
- package/docs/examples/scripts/check-example-bindings.sh +11 -5
- package/docs/get-shit-done-strategy-audit.md +22 -22
- package/docs/guides/artifact-contract.md +44 -0
- package/docs/guides/getting-started.md +10 -8
- package/docs/guides/getting-started.zh-CN.md +10 -8
- package/docs/guides/minimize-artifacts.md +123 -0
- package/docs/guides/project-postmortem.md +78 -0
- package/lib/compiler/__tests__/skills-registry.test.js +2 -2
- package/lib/skill-runtime/CLAUDE.md +1 -1
- package/lib/skill-runtime/__tests__/autopilot.test.js +42 -6
- package/lib/skill-runtime/__tests__/benchmark-artifacts.test.js +165 -0
- package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +2 -2
- package/lib/skill-runtime/__tests__/dispatch.test.js +8 -38
- package/lib/skill-runtime/__tests__/intent.test.js +4 -20
- package/lib/skill-runtime/__tests__/lifecycle.test.js +1 -1
- package/lib/skill-runtime/__tests__/paths.test.js +7 -1
- package/lib/skill-runtime/__tests__/planner.tdd.test.js +63 -2
- package/lib/skill-runtime/__tests__/prepare-pr.test.js +3 -16
- package/lib/skill-runtime/__tests__/query.test.js +388 -7
- package/lib/skill-runtime/__tests__/review-check-integration.test.js +148 -0
- package/lib/skill-runtime/__tests__/review-records.test.js +619 -0
- package/lib/skill-runtime/__tests__/runtime.integration.test.js +64 -23
- package/lib/skill-runtime/__tests__/schemas.test.js +76 -2
- package/lib/skill-runtime/__tests__/task-contract-migrate.test.js +137 -0
- package/lib/skill-runtime/__tests__/task-contract.test.js +783 -0
- package/lib/skill-runtime/__tests__/verify-artifacts.test.js +203 -0
- package/lib/skill-runtime/__tests__/worker-run.test.js +4 -11
- package/lib/skill-runtime/__tests__/workflow-context-legacy-fallback.test.js +31 -0
- package/lib/skill-runtime/__tests__/workflow-context.test.js +98 -0
- package/lib/skill-runtime/artifacts.js +0 -5
- package/lib/skill-runtime/context-index.js +545 -0
- package/lib/skill-runtime/intent.js +9 -33
- package/lib/skill-runtime/lifecycle.js +1 -1
- package/lib/skill-runtime/operations/CLAUDE.md +2 -2
- package/lib/skill-runtime/operations/dispatch.js +4 -42
- package/lib/skill-runtime/operations/init.js +2 -6
- package/lib/skill-runtime/operations/janitor.js +2 -18
- package/lib/skill-runtime/operations/resume.js +21 -38
- package/lib/skill-runtime/operations/review-records.js +265 -0
- package/lib/skill-runtime/operations/snapshot.js +1 -1
- package/lib/skill-runtime/operations/task-contract.js +524 -0
- package/lib/skill-runtime/operations/worker-run.js +2 -30
- package/lib/skill-runtime/paths.js +4 -4
- package/lib/skill-runtime/planner.js +25 -13
- package/lib/skill-runtime/query-registry.js +2 -2
- package/lib/skill-runtime/query.js +16 -3
- package/lib/skill-runtime/review-records.js +123 -0
- package/lib/skill-runtime/review.js +246 -11
- package/lib/skill-runtime/schemas.js +179 -15
- package/lib/skill-runtime/store.js +0 -10
- package/lib/skill-runtime/task-contract.js +187 -0
- package/lib/skill-runtime/workflow-context.js +748 -0
- package/package.json +7 -4
package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json
CHANGED
|
@@ -6,44 +6,31 @@
|
|
|
6
6
|
"requirementId": "REQ-003",
|
|
7
7
|
"requirementVersion": "REQ-003.v1",
|
|
8
8
|
"planningMeta": {
|
|
9
|
-
"reqPlanSkillVersion": "3.
|
|
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
|
-
"approvedBy": "user",
|
|
13
13
|
"basedOnOption": "Tiny design card",
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
"Keep CSV as the only output format"
|
|
35
|
-
],
|
|
36
|
-
"testingDecisions": [
|
|
37
|
-
"Test through the admin panel action and visible row data"
|
|
38
|
-
],
|
|
39
|
-
"outOfScope": [
|
|
40
|
-
"JSON export",
|
|
41
|
-
"scheduled reporting",
|
|
42
|
-
"shared reporting backend"
|
|
43
|
-
],
|
|
44
|
-
"furtherNotes": [
|
|
45
|
-
"Richer machine-readable exports should become a separate requirement"
|
|
46
|
-
]
|
|
14
|
+
"aiLeverageDecisionLens": {
|
|
15
|
+
"realUserOrOperator": "workspace admin preparing weekly review notes",
|
|
16
|
+
"statusQuoWorkaround": "manual copy of visible audit rows",
|
|
17
|
+
"humanTeamEffortForFullScope": "about one day for an engineer to implement, test, and document the local export",
|
|
18
|
+
"ccAgentEffortForFullScope": "about 30 minutes for visible-row CSV export plus targeted test and lint",
|
|
19
|
+
"aiCompressionRatio": "roughly 10x for the bounded local export path",
|
|
20
|
+
"completeLakeBoundary": "visible-row CSV export, panel action, current data source, targeted panel test, and lint",
|
|
21
|
+
"oceanBoundary": "JSON export, scheduled reporting, shared reporting backend, and cross-panel reporting platform",
|
|
22
|
+
"scopeRecommendation": "boil-lake",
|
|
23
|
+
"costModel": {
|
|
24
|
+
"agentTime": "low",
|
|
25
|
+
"humanReviewTime": "low",
|
|
26
|
+
"verificationCost": "targeted panel test plus lint",
|
|
27
|
+
"maintenanceCost": "low while scoped to visible rows",
|
|
28
|
+
"failureCost": "admins keep copying rows manually",
|
|
29
|
+
"reversibility": "reversible UI action"
|
|
30
|
+
},
|
|
31
|
+
"verdict": "boil-lake",
|
|
32
|
+
"missingEvidenceOrPivotReason": "",
|
|
33
|
+
"impactOnApprovedDirection": "complete the local visible-row export lake while deferring reporting platform work"
|
|
47
34
|
},
|
|
48
35
|
"externalBestPractice": {
|
|
49
36
|
"needed": false,
|
|
@@ -89,31 +76,9 @@
|
|
|
89
76
|
"impact": "cc-do exports only visible rows from the current panel and avoids new reporting contracts",
|
|
90
77
|
"status": "answered"
|
|
91
78
|
}
|
|
92
|
-
]
|
|
93
|
-
"aiLeverageDecisionLens": {
|
|
94
|
-
"realUserOrOperator": "workspace admin preparing weekly review notes",
|
|
95
|
-
"statusQuoWorkaround": "manual copy of visible audit rows",
|
|
96
|
-
"humanTeamEffortForFullScope": "about one day for an engineer to implement, test, and document the local export",
|
|
97
|
-
"ccAgentEffortForFullScope": "about 30 minutes for visible-row CSV export plus targeted test and lint",
|
|
98
|
-
"aiCompressionRatio": "roughly 10x for the bounded local export path",
|
|
99
|
-
"completeLakeBoundary": "visible-row CSV export, panel action, current data source, targeted panel test, and lint",
|
|
100
|
-
"oceanBoundary": "JSON export, scheduled reporting, shared reporting backend, and cross-panel reporting platform",
|
|
101
|
-
"scopeRecommendation": "boil-lake",
|
|
102
|
-
"costModel": {
|
|
103
|
-
"agentTime": "low",
|
|
104
|
-
"humanReviewTime": "low",
|
|
105
|
-
"verificationCost": "targeted panel test plus lint",
|
|
106
|
-
"maintenanceCost": "low while scoped to visible rows",
|
|
107
|
-
"failureCost": "admins keep copying rows manually",
|
|
108
|
-
"reversibility": "reversible UI action"
|
|
109
|
-
},
|
|
110
|
-
"verdict": "boil-lake",
|
|
111
|
-
"missingEvidenceOrPivotReason": "",
|
|
112
|
-
"impactOnApprovedDirection": "complete the local visible-row export lake while deferring reporting platform work"
|
|
113
|
-
}
|
|
79
|
+
]
|
|
114
80
|
},
|
|
115
81
|
"currentTaskId": null,
|
|
116
|
-
"activePhase": null,
|
|
117
82
|
"tasks": [
|
|
118
83
|
{
|
|
119
84
|
"id": "T001",
|
|
@@ -178,45 +143,7 @@
|
|
|
178
143
|
"type": "automated-test",
|
|
179
144
|
"determinism": "deterministic",
|
|
180
145
|
"expectedFailure": "Fails before the behavior exists"
|
|
181
|
-
}
|
|
182
|
-
"allowedMocks": [
|
|
183
|
-
"download / blob boundary"
|
|
184
|
-
],
|
|
185
|
-
"testQuality": {
|
|
186
|
-
"usesPublicInterface": true,
|
|
187
|
-
"describesBehavior": true,
|
|
188
|
-
"specStyleName": true,
|
|
189
|
-
"oneLogicalBehavior": true,
|
|
190
|
-
"verifiesThroughPublicPath": true,
|
|
191
|
-
"survivesInternalRefactor": true,
|
|
192
|
-
"mocksOnlySystemBoundaries": true,
|
|
193
|
-
"noBulkRed": true
|
|
194
|
-
},
|
|
195
|
-
"greenMinimality": {
|
|
196
|
-
"guard": "Keep the task scoped to its stated verification evidence",
|
|
197
|
-
"noSpeculativeBranches": true
|
|
198
|
-
},
|
|
199
|
-
"completion": {
|
|
200
|
-
"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/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",
|
|
201
|
-
"requiredBeforeCompletion": [
|
|
202
|
-
"verification evidence captured",
|
|
203
|
-
"checkpoint written",
|
|
204
|
-
"spec review gate recorded",
|
|
205
|
-
"code review gate recorded"
|
|
206
|
-
],
|
|
207
|
-
"forbiddenShortcuts": [
|
|
208
|
-
"manual checkbox edit",
|
|
209
|
-
"manual manifest status edit",
|
|
210
|
-
"leaving currentTaskId stale"
|
|
211
|
-
]
|
|
212
|
-
},
|
|
213
|
-
"refactorCandidates": [
|
|
214
|
-
"duplication",
|
|
215
|
-
"long method",
|
|
216
|
-
"primitive obsession",
|
|
217
|
-
"naming",
|
|
218
|
-
"more than three nested branches"
|
|
219
|
-
]
|
|
146
|
+
}
|
|
220
147
|
},
|
|
221
148
|
{
|
|
222
149
|
"id": "T002",
|
|
@@ -247,7 +174,7 @@
|
|
|
247
174
|
],
|
|
248
175
|
"evidence": [
|
|
249
176
|
"passing test output",
|
|
250
|
-
"
|
|
177
|
+
"CLI log summary"
|
|
251
178
|
],
|
|
252
179
|
"context": {
|
|
253
180
|
"readFiles": [
|
|
@@ -283,45 +210,7 @@
|
|
|
283
210
|
"type": "automated-test",
|
|
284
211
|
"determinism": "deterministic",
|
|
285
212
|
"expectedFailure": ""
|
|
286
|
-
}
|
|
287
|
-
"allowedMocks": [
|
|
288
|
-
"download / blob boundary"
|
|
289
|
-
],
|
|
290
|
-
"testQuality": {
|
|
291
|
-
"usesPublicInterface": true,
|
|
292
|
-
"describesBehavior": true,
|
|
293
|
-
"specStyleName": true,
|
|
294
|
-
"oneLogicalBehavior": true,
|
|
295
|
-
"verifiesThroughPublicPath": true,
|
|
296
|
-
"survivesInternalRefactor": true,
|
|
297
|
-
"mocksOnlySystemBoundaries": true,
|
|
298
|
-
"noBulkRed": true
|
|
299
|
-
},
|
|
300
|
-
"greenMinimality": {
|
|
301
|
-
"guard": "Implement only the code needed to pass the current red behavior",
|
|
302
|
-
"noSpeculativeBranches": true
|
|
303
|
-
},
|
|
304
|
-
"completion": {
|
|
305
|
-
"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/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",
|
|
306
|
-
"requiredBeforeCompletion": [
|
|
307
|
-
"verification evidence captured",
|
|
308
|
-
"checkpoint written",
|
|
309
|
-
"spec review gate recorded",
|
|
310
|
-
"code review gate recorded"
|
|
311
|
-
],
|
|
312
|
-
"forbiddenShortcuts": [
|
|
313
|
-
"manual checkbox edit",
|
|
314
|
-
"manual manifest status edit",
|
|
315
|
-
"leaving currentTaskId stale"
|
|
316
|
-
]
|
|
317
|
-
},
|
|
318
|
-
"refactorCandidates": [
|
|
319
|
-
"duplication",
|
|
320
|
-
"long method",
|
|
321
|
-
"primitive obsession",
|
|
322
|
-
"naming",
|
|
323
|
-
"more than three nested branches"
|
|
324
|
-
]
|
|
213
|
+
}
|
|
325
214
|
},
|
|
326
215
|
{
|
|
327
216
|
"id": "T003",
|
|
@@ -392,84 +281,12 @@
|
|
|
392
281
|
"type": "automated-test",
|
|
393
282
|
"determinism": "deterministic",
|
|
394
283
|
"expectedFailure": ""
|
|
395
|
-
}
|
|
396
|
-
"allowedMocks": [
|
|
397
|
-
"download / blob boundary"
|
|
398
|
-
],
|
|
399
|
-
"testQuality": {
|
|
400
|
-
"usesPublicInterface": true,
|
|
401
|
-
"describesBehavior": true,
|
|
402
|
-
"specStyleName": true,
|
|
403
|
-
"oneLogicalBehavior": true,
|
|
404
|
-
"verifiesThroughPublicPath": true,
|
|
405
|
-
"survivesInternalRefactor": true,
|
|
406
|
-
"mocksOnlySystemBoundaries": true,
|
|
407
|
-
"noBulkRed": true
|
|
408
|
-
},
|
|
409
|
-
"greenMinimality": {
|
|
410
|
-
"guard": "Keep the task scoped to its stated verification evidence",
|
|
411
|
-
"noSpeculativeBranches": true
|
|
412
|
-
},
|
|
413
|
-
"completion": {
|
|
414
|
-
"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/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",
|
|
415
|
-
"requiredBeforeCompletion": [
|
|
416
|
-
"verification evidence captured",
|
|
417
|
-
"checkpoint written",
|
|
418
|
-
"spec review gate recorded",
|
|
419
|
-
"code review gate recorded"
|
|
420
|
-
],
|
|
421
|
-
"forbiddenShortcuts": [
|
|
422
|
-
"manual checkbox edit",
|
|
423
|
-
"manual manifest status edit",
|
|
424
|
-
"leaving currentTaskId stale"
|
|
425
|
-
]
|
|
426
|
-
},
|
|
427
|
-
"refactorCandidates": [
|
|
428
|
-
"duplication",
|
|
429
|
-
"long method",
|
|
430
|
-
"primitive obsession",
|
|
431
|
-
"naming",
|
|
432
|
-
"more than three nested branches"
|
|
433
|
-
]
|
|
284
|
+
}
|
|
434
285
|
}
|
|
435
286
|
],
|
|
436
287
|
"metadata": {
|
|
437
288
|
"source": "tasks.md",
|
|
438
289
|
"generatedBy": "docs-example",
|
|
439
290
|
"planVersion": 1
|
|
440
|
-
},
|
|
441
|
-
"executionProtocol": {
|
|
442
|
-
"templateCompliance": {
|
|
443
|
-
"required": true,
|
|
444
|
-
"sourceTemplate": "assets/TASKS_TEMPLATE.md",
|
|
445
|
-
"taskBlockMustInclude": [
|
|
446
|
-
"Goal",
|
|
447
|
-
"TDD phase",
|
|
448
|
-
"Files",
|
|
449
|
-
"Read first",
|
|
450
|
-
"Verification",
|
|
451
|
-
"Evidence",
|
|
452
|
-
"Test seam",
|
|
453
|
-
"Public verification path",
|
|
454
|
-
"Allowed mocks",
|
|
455
|
-
"Completion"
|
|
456
|
-
],
|
|
457
|
-
"titleOnlyTasks": "forbidden"
|
|
458
|
-
},
|
|
459
|
-
"selection": {
|
|
460
|
-
"sourceOfTruth": "planning/task-manifest.json.currentTaskId",
|
|
461
|
-
"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/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json"
|
|
462
|
-
},
|
|
463
|
-
"completion": {
|
|
464
|
-
"manualStatusEdit": "forbidden",
|
|
465
|
-
"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/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 <task-id>",
|
|
466
|
-
"failurePolicy": "Do not hand-edit status; fix missing checkpoint, review gate, or dependency evidence and rerun the script.",
|
|
467
|
-
"updates": [
|
|
468
|
-
"planning/task-manifest.json.tasks[].status",
|
|
469
|
-
"planning/task-manifest.json.currentTaskId",
|
|
470
|
-
"planning/task-manifest.json.status",
|
|
471
|
-
"planning/tasks.md checkbox"
|
|
472
|
-
]
|
|
473
|
-
}
|
|
474
291
|
}
|
|
475
292
|
}
|
|
@@ -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.
|
|
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
|
|
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
|
|
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 +
|
|
80
|
-
Completion: after verification evidence and required
|
|
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
|
|
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
|
package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json
CHANGED
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
"reviewPacket": {
|
|
121
121
|
"baseSha": "example-base",
|
|
122
122
|
"headSha": "example-head",
|
|
123
|
-
"requirements": "planning/
|
|
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.
|
|
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
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# PR Brief
|
|
2
2
|
|
|
3
|
+
## Document Meta
|
|
4
|
+
|
|
5
|
+
- Output language: en
|
|
6
|
+
|
|
3
7
|
## Decision
|
|
4
8
|
|
|
5
9
|
- Recommended mode: `create-pr`
|
|
@@ -24,7 +28,7 @@
|
|
|
24
28
|
|
|
25
29
|
- Reviewed base SHA: `example-base`
|
|
26
30
|
- Reviewed head SHA: `example-head`
|
|
27
|
-
- Review packet: `planning/tasks.md#
|
|
31
|
+
- Review packet: `planning/tasks.md#Contract Summary`; `planning/tasks.md#T001-T003`
|
|
28
32
|
- Finding triage: no findings
|
|
29
33
|
- QA / claim evidence: `qa=pass`, `tests-pass=pass`, `requirements-met=pass`
|
|
30
34
|
|
|
@@ -39,6 +43,66 @@
|
|
|
39
43
|
- Documentation release: README and CLAUDE unchanged for this scoped example
|
|
40
44
|
- PR body accuracy: regenerate the PR body from this brief, current report-card, and current diff
|
|
41
45
|
|
|
46
|
+
## Pull Request Body Contract
|
|
47
|
+
|
|
48
|
+
- Language source: `Output language: en`
|
|
49
|
+
- PR body language: English
|
|
50
|
+
- Title rule: use English after the Conventional Commits `type(scope)` prefix; keep identifiers, paths, commands, and issue keys unchanged.
|
|
51
|
+
- Body source: current `pr-brief.md`, current diff, current `review/report-card.json`, doc sync output, and roadmap/backlog writeback.
|
|
52
|
+
- Required sections: summary, problem, changes, validation, review/gate evidence, risk/rollback, docs/writeback, and follow-ups.
|
|
53
|
+
- Completeness gate: no empty headings, no stale inherited PR body, no generic "tests passed" without commands or evidence, and no `<placeholder>` text before `gh pr create`.
|
|
54
|
+
|
|
55
|
+
## Pull Request Body Draft
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
## Summary
|
|
59
|
+
|
|
60
|
+
- removes a small but visible sharing friction in the beta flow
|
|
61
|
+
- keeps the patch inside the approved `tiny-design` boundary
|
|
62
|
+
- ships with fresh test, lint, and review proof
|
|
63
|
+
|
|
64
|
+
## Problem
|
|
65
|
+
|
|
66
|
+
- Requirement: `RM-001` / `REQ-001`
|
|
67
|
+
- User-visible gap: users can see the invite URL but cannot copy it with one click from the share dialog.
|
|
68
|
+
|
|
69
|
+
## Changes
|
|
70
|
+
|
|
71
|
+
- adds a `Copy invite link` action beside the existing invite URL
|
|
72
|
+
- reuses the current invite link source of truth
|
|
73
|
+
- adds copied-state confirmation without redesigning the dialog
|
|
74
|
+
|
|
75
|
+
## Validation
|
|
76
|
+
|
|
77
|
+
- `report-card.json` verdict: `pass`
|
|
78
|
+
- `npm test -- src/features/share/ShareDialog.test.tsx`
|
|
79
|
+
- `npm run lint -- src/features/share/ShareDialog.tsx`
|
|
80
|
+
|
|
81
|
+
## Review / Gate Evidence
|
|
82
|
+
|
|
83
|
+
- Reviewed base SHA: `example-base`
|
|
84
|
+
- Reviewed head SHA: `example-head`
|
|
85
|
+
- Review packet: `planning/tasks.md#Contract Summary`; `planning/tasks.md#T001-T003`
|
|
86
|
+
- Finding triage: no findings
|
|
87
|
+
- QA / claim evidence: `qa=pass`, `tests-pass=pass`, `requirements-met=pass`
|
|
88
|
+
- Readiness: review freshness=`fresh`; QA coverage has no gaps; browser QA intentionally skipped for this fixture.
|
|
89
|
+
|
|
90
|
+
## Risk And Rollback
|
|
91
|
+
|
|
92
|
+
- Main risk: copied-state feedback may still be too subtle for some users.
|
|
93
|
+
- Rollback boundary: revert the share-dialog change and targeted test in one commit; no data migration or external side effect is involved.
|
|
94
|
+
|
|
95
|
+
## Docs And Writeback
|
|
96
|
+
|
|
97
|
+
- `CLAUDE.md`: unchanged
|
|
98
|
+
- `README.md`: unchanged
|
|
99
|
+
- Roadmap progress: `RM-001` is ready for PR review after this create-pr handoff.
|
|
100
|
+
|
|
101
|
+
## Follow-ups
|
|
102
|
+
|
|
103
|
+
- If users still miss the feedback, lift `RM-002` into the next requirement.
|
|
104
|
+
```
|
|
105
|
+
|
|
42
106
|
## Summary
|
|
43
107
|
|
|
44
108
|
- removes a small but visible sharing friction in the beta flow
|
|
@@ -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.
|
|
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
|