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
|
@@ -6,63 +6,31 @@
|
|
|
6
6
|
"requirementId": "REQ-002",
|
|
7
7
|
"requirementVersion": "REQ-002.v2",
|
|
8
8
|
"planningMeta": {
|
|
9
|
-
"reqPlanSkillVersion": "3.
|
|
9
|
+
"reqPlanSkillVersion": "3.9.0",
|
|
10
10
|
"designVersion": "design.v2",
|
|
11
|
+
"workBranch": "REQ/002-bulk-invite-import",
|
|
11
12
|
"approvedAt": null,
|
|
12
|
-
"approvedBy": null,
|
|
13
13
|
"basedOnOption": "Option B",
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"want": "see duplicate, invalid, and over-limit row states",
|
|
35
|
-
"benefit": "understand what happened without support help",
|
|
36
|
-
"acceptance": [
|
|
37
|
-
"Every skipped or rejected row has a reason"
|
|
38
|
-
]
|
|
39
|
-
}
|
|
40
|
-
],
|
|
41
|
-
"edgeOrRecoveryStories": [
|
|
42
|
-
{
|
|
43
|
-
"id": "US-EDGE-001",
|
|
44
|
-
"actor": "workspace admin",
|
|
45
|
-
"boundary": "CSV contains duplicates, invalid emails, or over-limit rows",
|
|
46
|
-
"desiredOutcome": "safe rows can proceed while bad rows are explained",
|
|
47
|
-
"acceptance": [
|
|
48
|
-
"Rule matrix covers duplicate, invalid, and seat-limit cases"
|
|
49
|
-
]
|
|
50
|
-
}
|
|
51
|
-
],
|
|
52
|
-
"implementationDecisions": [
|
|
53
|
-
"Freeze one row-outcome matrix before execution resumes"
|
|
54
|
-
],
|
|
55
|
-
"testingDecisions": [
|
|
56
|
-
"Test row semantics through bulk-import rules and the admin upload flow"
|
|
57
|
-
],
|
|
58
|
-
"outOfScope": [
|
|
59
|
-
"enterprise SCIM provisioning",
|
|
60
|
-
"background job redesign",
|
|
61
|
-
"rollback wizard for partial success"
|
|
62
|
-
],
|
|
63
|
-
"furtherNotes": [
|
|
64
|
-
"Design remains blocked until duplicate and seat-limit semantics are approved"
|
|
65
|
-
]
|
|
14
|
+
"aiLeverageDecisionLens": {
|
|
15
|
+
"realUserOrOperator": "workspace admin onboarding larger teams",
|
|
16
|
+
"statusQuoWorkaround": "paste invite emails one by one or track them in spreadsheets",
|
|
17
|
+
"humanTeamEffortForFullScope": "multiple weeks across product, engineering, billing, and support review",
|
|
18
|
+
"ccAgentEffortForFullScope": "several hours once row semantics are approved, but unbounded before that",
|
|
19
|
+
"aiCompressionRatio": "high after semantics freeze, low while the product contract is ambiguous",
|
|
20
|
+
"completeLakeBoundary": "row classification, admin upload flow, billing-seat checks, and audit mapping after rule approval",
|
|
21
|
+
"oceanBoundary": "SCIM, background retries, rollback wizard, and unspecified billing semantics",
|
|
22
|
+
"scopeRecommendation": "sharp-wedge",
|
|
23
|
+
"costModel": {
|
|
24
|
+
"agentTime": "medium after rule approval",
|
|
25
|
+
"humanReviewTime": "high until semantics are approved",
|
|
26
|
+
"verificationCost": "bulk rules, admin flow, billing, and audit tests",
|
|
27
|
+
"maintenanceCost": "medium after semantics freeze",
|
|
28
|
+
"failureCost": "high if billing or audit outcomes drift",
|
|
29
|
+
"reversibility": "limited once execution semantics ship"
|
|
30
|
+
},
|
|
31
|
+
"verdict": "sharp-wedge",
|
|
32
|
+
"missingEvidenceOrPivotReason": "none at plan approval; cc-check later reopened duplicate, invalid-row, partial-success, and seat-limit semantics before retry or cc-act",
|
|
33
|
+
"impactOnApprovedDirection": "allow bounded import-path execution, then block final proof if review finds row semantics drift"
|
|
66
34
|
},
|
|
67
35
|
"externalBestPractice": {
|
|
68
36
|
"needed": true,
|
|
@@ -172,31 +140,9 @@
|
|
|
172
140
|
"impact": "cc-do retry and cc-act must stay blocked until this is answered",
|
|
173
141
|
"status": "asked"
|
|
174
142
|
}
|
|
175
|
-
]
|
|
176
|
-
"aiLeverageDecisionLens": {
|
|
177
|
-
"realUserOrOperator": "workspace admin onboarding larger teams",
|
|
178
|
-
"statusQuoWorkaround": "paste invite emails one by one or track them in spreadsheets",
|
|
179
|
-
"humanTeamEffortForFullScope": "multiple weeks across product, engineering, billing, and support review",
|
|
180
|
-
"ccAgentEffortForFullScope": "several hours once row semantics are approved, but unbounded before that",
|
|
181
|
-
"aiCompressionRatio": "high after semantics freeze, low while the product contract is ambiguous",
|
|
182
|
-
"completeLakeBoundary": "row classification, admin upload flow, billing-seat checks, and audit mapping after rule approval",
|
|
183
|
-
"oceanBoundary": "SCIM, background retries, rollback wizard, and unspecified billing semantics",
|
|
184
|
-
"scopeRecommendation": "sharp-wedge",
|
|
185
|
-
"costModel": {
|
|
186
|
-
"agentTime": "medium after rule approval",
|
|
187
|
-
"humanReviewTime": "high until semantics are approved",
|
|
188
|
-
"verificationCost": "bulk rules, admin flow, billing, and audit tests",
|
|
189
|
-
"maintenanceCost": "medium after semantics freeze",
|
|
190
|
-
"failureCost": "high if billing or audit outcomes drift",
|
|
191
|
-
"reversibility": "limited once execution semantics ship"
|
|
192
|
-
},
|
|
193
|
-
"verdict": "sharp-wedge",
|
|
194
|
-
"missingEvidenceOrPivotReason": "none at plan approval; cc-check later reopened duplicate, invalid-row, partial-success, and seat-limit semantics before retry or cc-act",
|
|
195
|
-
"impactOnApprovedDirection": "allow bounded import-path execution, then block final proof if review finds row semantics drift"
|
|
196
|
-
}
|
|
143
|
+
]
|
|
197
144
|
},
|
|
198
145
|
"currentTaskId": null,
|
|
199
|
-
"activePhase": null,
|
|
200
146
|
"tasks": [
|
|
201
147
|
{
|
|
202
148
|
"id": "T001",
|
|
@@ -260,46 +206,7 @@
|
|
|
260
206
|
"type": "automated-test",
|
|
261
207
|
"determinism": "deterministic",
|
|
262
208
|
"expectedFailure": "Fails before the behavior exists"
|
|
263
|
-
}
|
|
264
|
-
"allowedMocks": [
|
|
265
|
-
"file upload boundary",
|
|
266
|
-
"billing / seat limit boundary"
|
|
267
|
-
],
|
|
268
|
-
"testQuality": {
|
|
269
|
-
"usesPublicInterface": true,
|
|
270
|
-
"describesBehavior": true,
|
|
271
|
-
"specStyleName": true,
|
|
272
|
-
"oneLogicalBehavior": true,
|
|
273
|
-
"verifiesThroughPublicPath": true,
|
|
274
|
-
"survivesInternalRefactor": true,
|
|
275
|
-
"mocksOnlySystemBoundaries": true,
|
|
276
|
-
"noBulkRed": true
|
|
277
|
-
},
|
|
278
|
-
"greenMinimality": {
|
|
279
|
-
"guard": "Keep the task scoped to its stated verification evidence",
|
|
280
|
-
"noSpeculativeBranches": true
|
|
281
|
-
},
|
|
282
|
-
"completion": {
|
|
283
|
-
"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/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T001",
|
|
284
|
-
"requiredBeforeCompletion": [
|
|
285
|
-
"verification evidence captured",
|
|
286
|
-
"checkpoint written",
|
|
287
|
-
"spec review gate recorded",
|
|
288
|
-
"code review gate recorded"
|
|
289
|
-
],
|
|
290
|
-
"forbiddenShortcuts": [
|
|
291
|
-
"manual checkbox edit",
|
|
292
|
-
"manual manifest status edit",
|
|
293
|
-
"leaving currentTaskId stale"
|
|
294
|
-
]
|
|
295
|
-
},
|
|
296
|
-
"refactorCandidates": [
|
|
297
|
-
"duplication",
|
|
298
|
-
"long method",
|
|
299
|
-
"primitive obsession",
|
|
300
|
-
"naming",
|
|
301
|
-
"more than three nested branches"
|
|
302
|
-
]
|
|
209
|
+
}
|
|
303
210
|
},
|
|
304
211
|
{
|
|
305
212
|
"id": "T002",
|
|
@@ -330,7 +237,7 @@
|
|
|
330
237
|
],
|
|
331
238
|
"evidence": [
|
|
332
239
|
"passing test output",
|
|
333
|
-
"
|
|
240
|
+
"CLI log summary"
|
|
334
241
|
],
|
|
335
242
|
"context": {
|
|
336
243
|
"readFiles": [
|
|
@@ -366,46 +273,7 @@
|
|
|
366
273
|
"type": "automated-test",
|
|
367
274
|
"determinism": "deterministic",
|
|
368
275
|
"expectedFailure": ""
|
|
369
|
-
}
|
|
370
|
-
"allowedMocks": [
|
|
371
|
-
"file upload boundary",
|
|
372
|
-
"billing / seat limit boundary"
|
|
373
|
-
],
|
|
374
|
-
"testQuality": {
|
|
375
|
-
"usesPublicInterface": true,
|
|
376
|
-
"describesBehavior": true,
|
|
377
|
-
"specStyleName": true,
|
|
378
|
-
"oneLogicalBehavior": true,
|
|
379
|
-
"verifiesThroughPublicPath": true,
|
|
380
|
-
"survivesInternalRefactor": true,
|
|
381
|
-
"mocksOnlySystemBoundaries": true,
|
|
382
|
-
"noBulkRed": true
|
|
383
|
-
},
|
|
384
|
-
"greenMinimality": {
|
|
385
|
-
"guard": "Implement only the code needed to pass the current red behavior",
|
|
386
|
-
"noSpeculativeBranches": true
|
|
387
|
-
},
|
|
388
|
-
"completion": {
|
|
389
|
-
"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/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T002",
|
|
390
|
-
"requiredBeforeCompletion": [
|
|
391
|
-
"verification evidence captured",
|
|
392
|
-
"checkpoint written",
|
|
393
|
-
"spec review gate recorded",
|
|
394
|
-
"code review gate recorded"
|
|
395
|
-
],
|
|
396
|
-
"forbiddenShortcuts": [
|
|
397
|
-
"manual checkbox edit",
|
|
398
|
-
"manual manifest status edit",
|
|
399
|
-
"leaving currentTaskId stale"
|
|
400
|
-
]
|
|
401
|
-
},
|
|
402
|
-
"refactorCandidates": [
|
|
403
|
-
"duplication",
|
|
404
|
-
"long method",
|
|
405
|
-
"primitive obsession",
|
|
406
|
-
"naming",
|
|
407
|
-
"more than three nested branches"
|
|
408
|
-
]
|
|
276
|
+
}
|
|
409
277
|
},
|
|
410
278
|
{
|
|
411
279
|
"id": "T003",
|
|
@@ -471,46 +339,7 @@
|
|
|
471
339
|
"type": "automated-test",
|
|
472
340
|
"determinism": "deterministic",
|
|
473
341
|
"expectedFailure": "Fails before the behavior exists"
|
|
474
|
-
}
|
|
475
|
-
"allowedMocks": [
|
|
476
|
-
"file upload boundary",
|
|
477
|
-
"billing / seat limit boundary"
|
|
478
|
-
],
|
|
479
|
-
"testQuality": {
|
|
480
|
-
"usesPublicInterface": true,
|
|
481
|
-
"describesBehavior": true,
|
|
482
|
-
"specStyleName": true,
|
|
483
|
-
"oneLogicalBehavior": true,
|
|
484
|
-
"verifiesThroughPublicPath": true,
|
|
485
|
-
"survivesInternalRefactor": true,
|
|
486
|
-
"mocksOnlySystemBoundaries": true,
|
|
487
|
-
"noBulkRed": true
|
|
488
|
-
},
|
|
489
|
-
"greenMinimality": {
|
|
490
|
-
"guard": "Keep the task scoped to its stated verification evidence",
|
|
491
|
-
"noSpeculativeBranches": true
|
|
492
|
-
},
|
|
493
|
-
"completion": {
|
|
494
|
-
"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/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T003",
|
|
495
|
-
"requiredBeforeCompletion": [
|
|
496
|
-
"verification evidence captured",
|
|
497
|
-
"checkpoint written",
|
|
498
|
-
"spec review gate recorded",
|
|
499
|
-
"code review gate recorded"
|
|
500
|
-
],
|
|
501
|
-
"forbiddenShortcuts": [
|
|
502
|
-
"manual checkbox edit",
|
|
503
|
-
"manual manifest status edit",
|
|
504
|
-
"leaving currentTaskId stale"
|
|
505
|
-
]
|
|
506
|
-
},
|
|
507
|
-
"refactorCandidates": [
|
|
508
|
-
"duplication",
|
|
509
|
-
"long method",
|
|
510
|
-
"primitive obsession",
|
|
511
|
-
"naming",
|
|
512
|
-
"more than three nested branches"
|
|
513
|
-
]
|
|
342
|
+
}
|
|
514
343
|
},
|
|
515
344
|
{
|
|
516
345
|
"id": "T004",
|
|
@@ -577,46 +406,7 @@
|
|
|
577
406
|
"type": "automated-test",
|
|
578
407
|
"determinism": "deterministic",
|
|
579
408
|
"expectedFailure": ""
|
|
580
|
-
}
|
|
581
|
-
"allowedMocks": [
|
|
582
|
-
"file upload boundary",
|
|
583
|
-
"billing / seat limit boundary"
|
|
584
|
-
],
|
|
585
|
-
"testQuality": {
|
|
586
|
-
"usesPublicInterface": true,
|
|
587
|
-
"describesBehavior": true,
|
|
588
|
-
"specStyleName": true,
|
|
589
|
-
"oneLogicalBehavior": true,
|
|
590
|
-
"verifiesThroughPublicPath": true,
|
|
591
|
-
"survivesInternalRefactor": true,
|
|
592
|
-
"mocksOnlySystemBoundaries": true,
|
|
593
|
-
"noBulkRed": true
|
|
594
|
-
},
|
|
595
|
-
"greenMinimality": {
|
|
596
|
-
"guard": "Implement only the code needed to pass the current red behavior",
|
|
597
|
-
"noSpeculativeBranches": true
|
|
598
|
-
},
|
|
599
|
-
"completion": {
|
|
600
|
-
"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/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T004",
|
|
601
|
-
"requiredBeforeCompletion": [
|
|
602
|
-
"verification evidence captured",
|
|
603
|
-
"checkpoint written",
|
|
604
|
-
"spec review gate recorded",
|
|
605
|
-
"code review gate recorded"
|
|
606
|
-
],
|
|
607
|
-
"forbiddenShortcuts": [
|
|
608
|
-
"manual checkbox edit",
|
|
609
|
-
"manual manifest status edit",
|
|
610
|
-
"leaving currentTaskId stale"
|
|
611
|
-
]
|
|
612
|
-
},
|
|
613
|
-
"refactorCandidates": [
|
|
614
|
-
"duplication",
|
|
615
|
-
"long method",
|
|
616
|
-
"primitive obsession",
|
|
617
|
-
"naming",
|
|
618
|
-
"more than three nested branches"
|
|
619
|
-
]
|
|
409
|
+
}
|
|
620
410
|
},
|
|
621
411
|
{
|
|
622
412
|
"id": "T005",
|
|
@@ -687,85 +477,12 @@
|
|
|
687
477
|
"type": "automated-test",
|
|
688
478
|
"determinism": "deterministic",
|
|
689
479
|
"expectedFailure": ""
|
|
690
|
-
}
|
|
691
|
-
"allowedMocks": [
|
|
692
|
-
"file upload boundary",
|
|
693
|
-
"billing / seat limit boundary"
|
|
694
|
-
],
|
|
695
|
-
"testQuality": {
|
|
696
|
-
"usesPublicInterface": true,
|
|
697
|
-
"describesBehavior": true,
|
|
698
|
-
"specStyleName": true,
|
|
699
|
-
"oneLogicalBehavior": true,
|
|
700
|
-
"verifiesThroughPublicPath": true,
|
|
701
|
-
"survivesInternalRefactor": true,
|
|
702
|
-
"mocksOnlySystemBoundaries": true,
|
|
703
|
-
"noBulkRed": true
|
|
704
|
-
},
|
|
705
|
-
"greenMinimality": {
|
|
706
|
-
"guard": "Keep the task scoped to its stated verification evidence",
|
|
707
|
-
"noSpeculativeBranches": true
|
|
708
|
-
},
|
|
709
|
-
"completion": {
|
|
710
|
-
"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/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T005",
|
|
711
|
-
"requiredBeforeCompletion": [
|
|
712
|
-
"verification evidence captured",
|
|
713
|
-
"checkpoint written",
|
|
714
|
-
"spec review gate recorded",
|
|
715
|
-
"code review gate recorded"
|
|
716
|
-
],
|
|
717
|
-
"forbiddenShortcuts": [
|
|
718
|
-
"manual checkbox edit",
|
|
719
|
-
"manual manifest status edit",
|
|
720
|
-
"leaving currentTaskId stale"
|
|
721
|
-
]
|
|
722
|
-
},
|
|
723
|
-
"refactorCandidates": [
|
|
724
|
-
"duplication",
|
|
725
|
-
"long method",
|
|
726
|
-
"primitive obsession",
|
|
727
|
-
"naming",
|
|
728
|
-
"more than three nested branches"
|
|
729
|
-
]
|
|
480
|
+
}
|
|
730
481
|
}
|
|
731
482
|
],
|
|
732
483
|
"metadata": {
|
|
733
484
|
"source": "tasks.md",
|
|
734
485
|
"generatedBy": "docs-example",
|
|
735
486
|
"planVersion": 1
|
|
736
|
-
},
|
|
737
|
-
"executionProtocol": {
|
|
738
|
-
"templateCompliance": {
|
|
739
|
-
"required": true,
|
|
740
|
-
"sourceTemplate": "assets/TASKS_TEMPLATE.md",
|
|
741
|
-
"taskBlockMustInclude": [
|
|
742
|
-
"Goal",
|
|
743
|
-
"TDD phase",
|
|
744
|
-
"Files",
|
|
745
|
-
"Read first",
|
|
746
|
-
"Verification",
|
|
747
|
-
"Evidence",
|
|
748
|
-
"Test seam",
|
|
749
|
-
"Public verification path",
|
|
750
|
-
"Allowed mocks",
|
|
751
|
-
"Completion"
|
|
752
|
-
],
|
|
753
|
-
"titleOnlyTasks": "forbidden"
|
|
754
|
-
},
|
|
755
|
-
"selection": {
|
|
756
|
-
"sourceOfTruth": "planning/task-manifest.json.currentTaskId",
|
|
757
|
-
"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/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json"
|
|
758
|
-
},
|
|
759
|
-
"completion": {
|
|
760
|
-
"manualStatusEdit": "forbidden",
|
|
761
|
-
"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/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task <task-id>",
|
|
762
|
-
"failurePolicy": "Do not hand-edit status; fix missing checkpoint, review gate, or dependency evidence and rerun the script.",
|
|
763
|
-
"updates": [
|
|
764
|
-
"planning/task-manifest.json.tasks[].status",
|
|
765
|
-
"planning/task-manifest.json.currentTaskId",
|
|
766
|
-
"planning/task-manifest.json.status",
|
|
767
|
-
"planning/tasks.md checkbox"
|
|
768
|
-
]
|
|
769
|
-
}
|
|
770
487
|
}
|
|
771
488
|
}
|
package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
- Requirement version: `REQ-002.v2`
|
|
6
6
|
- Design version: `design.v2`
|
|
7
|
-
- CC-Plan skill version: `3.
|
|
7
|
+
- CC-Plan skill version: `3.9.0`
|
|
8
|
+
- Work branch: `REQ/002-bulk-invite-import`
|
|
8
9
|
- Source roadmap item: `RM-010`
|
|
9
10
|
- Source roadmap version: `roadmap.v2`
|
|
10
11
|
|
|
@@ -42,12 +43,14 @@
|
|
|
42
43
|
ClaudeCode / Codex 执行本计划时,必须把本文件当成任务模板合同,而不是普通 TODO 列表。
|
|
43
44
|
|
|
44
45
|
- Template source: `assets/TASKS_TEMPLATE.md`
|
|
46
|
+
- 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`.
|
|
45
47
|
- Task selection: read `planning/task-manifest.json.currentTaskId`; if empty, run the ready-task selector before choosing work.
|
|
46
48
|
- Task block rule: read the full task block before coding; title-only execution is invalid.
|
|
47
49
|
- Completion rule: after verification and review gates pass, run the completion script; do not manually edit checkbox, status, or `currentTaskId`.
|
|
48
|
-
- Completion failure: if the script fails, fix the missing
|
|
50
|
+
- Completion failure: if the script fails, fix the missing review / dependency evidence and rerun it. Do not bypass it by editing JSON or Markdown.
|
|
49
51
|
|
|
50
52
|
```bash
|
|
53
|
+
cc-devflow query workflow-context --change <changeId> --change-key <changeKey> --cwd <repo-root> --data-only --no-trace --compact
|
|
51
54
|
SCRIPT_ROOT=".claude/skills/cc-do/scripts"
|
|
52
55
|
if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then
|
|
53
56
|
SCRIPT_ROOT=".codex/skills/cc-do/scripts"
|
|
@@ -65,7 +68,7 @@ bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/full-design-b
|
|
|
65
68
|
Read first: `design.md`, `src/invite/bulk-import.ts`
|
|
66
69
|
Verification: `npm test -- src/invite/bulk-import.test.ts`
|
|
67
70
|
Evidence: failing output
|
|
68
|
-
Completion: after verification evidence and required
|
|
71
|
+
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/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T001`; do not hand-edit status.
|
|
69
72
|
Test seam: bulk invite rules and admin upload UI behavior
|
|
70
73
|
Public verification path: Run the bulk invite rule and admin panel tests through their public flows
|
|
71
74
|
Allowed mocks: file upload boundary / billing / seat limit boundary
|
|
@@ -77,8 +80,8 @@ bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/full-design-b
|
|
|
77
80
|
Files: `src/invite/bulk-import.ts`
|
|
78
81
|
Read first: `design.md`, `src/invite/bulk-import.test.ts`
|
|
79
82
|
Verification: `npm test -- src/invite/bulk-import.test.ts`
|
|
80
|
-
Evidence: passing output +
|
|
81
|
-
Completion: after verification evidence and required
|
|
83
|
+
Evidence: passing output + Git diff
|
|
84
|
+
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/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T002`; do not hand-edit status.
|
|
82
85
|
Test seam: bulk invite rules and admin upload UI behavior
|
|
83
86
|
Public verification path: Run the bulk invite rule and admin panel tests through their public flows
|
|
84
87
|
Allowed mocks: file upload boundary / billing / seat limit boundary
|
|
@@ -93,7 +96,7 @@ bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/full-design-b
|
|
|
93
96
|
Read first: `design.md`, `src/admin/BulkInvitePanel.tsx`
|
|
94
97
|
Verification: `npm test -- src/admin/BulkInvitePanel.test.tsx`
|
|
95
98
|
Evidence: failing output
|
|
96
|
-
Completion: after verification evidence and required
|
|
99
|
+
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/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T003`; do not hand-edit status.
|
|
97
100
|
Test seam: bulk invite rules and admin upload UI behavior
|
|
98
101
|
Public verification path: Run the bulk invite rule and admin panel tests through their public flows
|
|
99
102
|
Allowed mocks: file upload boundary / billing / seat limit boundary
|
|
@@ -106,7 +109,7 @@ bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/full-design-b
|
|
|
106
109
|
Read first: `design.md`, `src/admin/BulkInvitePanel.test.tsx`
|
|
107
110
|
Verification: `npm test -- src/admin/BulkInvitePanel.test.tsx`
|
|
108
111
|
Evidence: passing output + review notes
|
|
109
|
-
Completion: after verification evidence and required
|
|
112
|
+
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/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T004`; do not hand-edit status.
|
|
110
113
|
Test seam: bulk invite rules and admin upload UI behavior
|
|
111
114
|
Public verification path: Run the bulk invite rule and admin panel tests through their public flows
|
|
112
115
|
Allowed mocks: file upload boundary / billing / seat limit boundary
|
|
@@ -123,7 +126,7 @@ bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/full-design-b
|
|
|
123
126
|
- `npm test -- src/invite/bulk-import.test.ts`
|
|
124
127
|
- `npm test -- src/admin/BulkInvitePanel.test.tsx`
|
|
125
128
|
Evidence: passing output + review notes
|
|
126
|
-
Completion: after verification evidence and required
|
|
129
|
+
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/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T005`; do not hand-edit status.
|
|
127
130
|
Test seam: bulk invite rules and admin upload UI behavior
|
|
128
131
|
Public verification path: Run the bulk invite rule and admin panel tests through their public flows
|
|
129
132
|
Allowed mocks: file upload boundary / billing / seat limit boundary
|
package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
{
|
|
32
32
|
"claim": "requirements-met",
|
|
33
33
|
"requiredProof": "line-by-line planning/tasks.md and task-manifest.json checklist",
|
|
34
|
-
"commandOrArtifact": "planning/
|
|
34
|
+
"commandOrArtifact": "planning/tasks.md#Contract Summary + planning/task-manifest.json",
|
|
35
35
|
"exitStatus": null,
|
|
36
36
|
"keyObservation": "duplicate-email and seat-limit semantics are still underspecified",
|
|
37
37
|
"status": "blocked"
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
"reviewPacket": {
|
|
130
130
|
"baseSha": "example-base",
|
|
131
131
|
"headSha": "example-head",
|
|
132
|
-
"requirements": "planning/
|
|
132
|
+
"requirements": "planning/tasks.md#Contract Summary",
|
|
133
133
|
"implemented": "bulk invite import implementation",
|
|
134
134
|
"reviewerContext": "requirement diff, plan completion, scope drift, docs staleness"
|
|
135
135
|
},
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
"confidence": "high",
|
|
141
141
|
"source": "diff-review",
|
|
142
142
|
"summary": "duplicate-email behavior is still underspecified",
|
|
143
|
-
"evidence": "planning/
|
|
143
|
+
"evidence": "planning/tasks.md#Contract Summary does not freeze row-level duplicate semantics",
|
|
144
144
|
"action": "reroute-cc-plan",
|
|
145
145
|
"triageStatus": "clarification-needed",
|
|
146
146
|
"confidenceScore": 9,
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"confidence": "high",
|
|
154
154
|
"source": "diff-review",
|
|
155
155
|
"summary": "seat-limit partial-failure semantics are not frozen in design.md",
|
|
156
|
-
"evidence": "planning/
|
|
156
|
+
"evidence": "planning/tasks.md#Contract Summary lacks accepted row-outcome matrix",
|
|
157
157
|
"action": "reroute-cc-plan",
|
|
158
158
|
"triageStatus": "clarification-needed",
|
|
159
159
|
"confidenceScore": 9,
|
|
@@ -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 example shows verified work that is **ready to move forward**, but `cc-act` still chooses `local-handoff`.
|
|
10
10
|
|
|
@@ -39,8 +39,8 @@ But the current environment is local-only:
|
|
|
39
39
|
- `roadmap.json` (editable roadmap truth)
|
|
40
40
|
- `ROADMAP.md` (generated view)
|
|
41
41
|
- `BACKLOG.md` (deprecated projection)
|
|
42
|
-
- `changes/REQ-003-audit-log-export/planning/design.md`
|
|
43
42
|
- `changes/REQ-003-audit-log-export/planning/tasks.md`
|
|
43
|
+
- `changes/REQ-003-audit-log-export/planning/design.md` (legacy fallback sample)
|
|
44
44
|
- `changes/REQ-003-audit-log-export/planning/task-manifest.json`
|
|
45
45
|
- `changes/REQ-003-audit-log-export/review/report-card.json`
|
|
46
46
|
- `changes/REQ-003-audit-log-export/handoff/resume-index.md`
|
|
@@ -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
|
- Requirement ID: `REQ-003`
|
|
9
10
|
- Design mode: `tiny-design`
|
|
10
11
|
- Why this stays `tiny-design`: the patch adds one export action inside the existing admin audit UI without changing data contracts
|