cc-devflow 4.5.8 → 4.5.9
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 +27 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +9 -4
- package/.claude/skills/cc-act/SKILL.md +62 -3
- 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 +60 -4
- package/.claude/skills/cc-act/references/closure-contract.md +3 -0
- 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-do/CHANGELOG.md +11 -0
- package/.claude/skills/cc-do/SKILL.md +19 -13
- package/.claude/skills/cc-do/scripts/build-task-context.sh +9 -5
- package/.claude/skills/cc-do/scripts/mark-task-complete.sh +0 -6
- package/.claude/skills/cc-investigate/CHANGELOG.md +17 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +15 -0
- package/.claude/skills/cc-investigate/SKILL.md +46 -1
- package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +47 -0
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +21 -2
- package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +28 -58
- package/.claude/skills/cc-investigate/references/investigation-contract.md +14 -0
- 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 +19 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +25 -20
- package/.claude/skills/cc-plan/SKILL.md +83 -22
- package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +67 -0
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +59 -0
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +55 -228
- package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +46 -0
- package/.claude/skills/cc-plan/references/planning-contract.md +41 -27
- 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 +12 -0
- package/README.md +37 -35
- package/README.zh-CN.md +37 -35
- package/docs/examples/example-bindings.json +7 -7
- package/docs/examples/full-design-blocked/BACKLOG.md +1 -1
- package/docs/examples/full-design-blocked/README.md +1 -1
- 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 +1 -1
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +27 -311
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +1 -1
- 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 +1 -1
- package/docs/examples/local-handoff/ROADMAP.md +1 -1
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +1 -1
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +25 -209
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +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 +1 -1
- package/docs/examples/pdca-loop/ROADMAP.md +1 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +64 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +1 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +25 -228
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +1 -1
- package/docs/examples/pdca-loop/roadmap.json +1 -1
- package/docs/examples/scripts/check-example-bindings.sh +9 -5
- package/docs/get-shit-done-strategy-audit.md +4 -4
- package/docs/guides/artifact-contract.md +44 -0
- package/docs/guides/project-postmortem.md +78 -0
- package/lib/skill-runtime/__tests__/planner.tdd.test.js +2 -2
- package/lib/skill-runtime/__tests__/schemas.test.js +33 -2
- package/lib/skill-runtime/planner.js +1 -2
- package/lib/skill-runtime/query.js +1 -1
- package/lib/skill-runtime/schemas.js +5 -3
- package/package.json +1 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"updatedAt": "2026-05-
|
|
2
|
+
"updatedAt": "2026-05-11",
|
|
3
3
|
"skills": {
|
|
4
|
-
"cc-roadmap": "5.
|
|
5
|
-
"cc-next": "1.0.
|
|
4
|
+
"cc-roadmap": "5.3.0",
|
|
5
|
+
"cc-next": "1.0.1",
|
|
6
6
|
"cc-dev": "1.0.0",
|
|
7
|
-
"cc-plan": "3.8.
|
|
8
|
-
"cc-investigate": "1.
|
|
9
|
-
"cc-do": "1.6.
|
|
7
|
+
"cc-plan": "3.8.5",
|
|
8
|
+
"cc-investigate": "1.4.1",
|
|
9
|
+
"cc-do": "1.6.5",
|
|
10
10
|
"cc-review": "1.3.0",
|
|
11
11
|
"cc-pr-review": "1.0.0",
|
|
12
12
|
"cc-pr-land": "1.0.0",
|
|
13
13
|
"cc-check": "1.10.1",
|
|
14
|
-
"cc-act": "1.8.
|
|
14
|
+
"cc-act": "1.8.7",
|
|
15
15
|
"cc-spec-init": "1.1.0"
|
|
16
16
|
},
|
|
17
17
|
"examples": [
|
|
@@ -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.8.5`, `cc-do@1.6.5`, `cc-check@1.10.1`
|
|
8
8
|
|
|
9
9
|
This example shows a requirement that **looked executable**, but `cc-check` correctly stopped it and sent it back to `cc-plan`.
|
|
10
10
|
|
package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
- Requirement version: `REQ-002.v2`
|
|
6
6
|
- Design version: `design.v2`
|
|
7
|
-
- CC-Plan skill version: `3.8.
|
|
7
|
+
- CC-Plan skill version: `3.8.5`
|
|
8
8
|
- Requirement ID: `REQ-002`
|
|
9
9
|
- Design mode: `full-design`
|
|
10
10
|
- Why not `tiny-design`: the feature crosses import parsing, invite rules, billing limits, duplicate handling, and audit logging
|
|
@@ -6,63 +6,30 @@
|
|
|
6
6
|
"requirementId": "REQ-002",
|
|
7
7
|
"requirementVersion": "REQ-002.v2",
|
|
8
8
|
"planningMeta": {
|
|
9
|
-
"reqPlanSkillVersion": "3.8.
|
|
9
|
+
"reqPlanSkillVersion": "3.8.5",
|
|
10
10
|
"designVersion": "design.v2",
|
|
11
11
|
"approvedAt": null,
|
|
12
|
-
"approvedBy": null,
|
|
13
12
|
"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
|
-
]
|
|
13
|
+
"aiLeverageDecisionLens": {
|
|
14
|
+
"realUserOrOperator": "workspace admin onboarding larger teams",
|
|
15
|
+
"statusQuoWorkaround": "paste invite emails one by one or track them in spreadsheets",
|
|
16
|
+
"humanTeamEffortForFullScope": "multiple weeks across product, engineering, billing, and support review",
|
|
17
|
+
"ccAgentEffortForFullScope": "several hours once row semantics are approved, but unbounded before that",
|
|
18
|
+
"aiCompressionRatio": "high after semantics freeze, low while the product contract is ambiguous",
|
|
19
|
+
"completeLakeBoundary": "row classification, admin upload flow, billing-seat checks, and audit mapping after rule approval",
|
|
20
|
+
"oceanBoundary": "SCIM, background retries, rollback wizard, and unspecified billing semantics",
|
|
21
|
+
"scopeRecommendation": "sharp-wedge",
|
|
22
|
+
"costModel": {
|
|
23
|
+
"agentTime": "medium after rule approval",
|
|
24
|
+
"humanReviewTime": "high until semantics are approved",
|
|
25
|
+
"verificationCost": "bulk rules, admin flow, billing, and audit tests",
|
|
26
|
+
"maintenanceCost": "medium after semantics freeze",
|
|
27
|
+
"failureCost": "high if billing or audit outcomes drift",
|
|
28
|
+
"reversibility": "limited once execution semantics ship"
|
|
29
|
+
},
|
|
30
|
+
"verdict": "sharp-wedge",
|
|
31
|
+
"missingEvidenceOrPivotReason": "none at plan approval; cc-check later reopened duplicate, invalid-row, partial-success, and seat-limit semantics before retry or cc-act",
|
|
32
|
+
"impactOnApprovedDirection": "allow bounded import-path execution, then block final proof if review finds row semantics drift"
|
|
66
33
|
},
|
|
67
34
|
"externalBestPractice": {
|
|
68
35
|
"needed": true,
|
|
@@ -172,31 +139,9 @@
|
|
|
172
139
|
"impact": "cc-do retry and cc-act must stay blocked until this is answered",
|
|
173
140
|
"status": "asked"
|
|
174
141
|
}
|
|
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
|
-
}
|
|
142
|
+
]
|
|
197
143
|
},
|
|
198
144
|
"currentTaskId": null,
|
|
199
|
-
"activePhase": null,
|
|
200
145
|
"tasks": [
|
|
201
146
|
{
|
|
202
147
|
"id": "T001",
|
|
@@ -260,46 +205,7 @@
|
|
|
260
205
|
"type": "automated-test",
|
|
261
206
|
"determinism": "deterministic",
|
|
262
207
|
"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
|
-
]
|
|
208
|
+
}
|
|
303
209
|
},
|
|
304
210
|
{
|
|
305
211
|
"id": "T002",
|
|
@@ -366,46 +272,7 @@
|
|
|
366
272
|
"type": "automated-test",
|
|
367
273
|
"determinism": "deterministic",
|
|
368
274
|
"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
|
-
]
|
|
275
|
+
}
|
|
409
276
|
},
|
|
410
277
|
{
|
|
411
278
|
"id": "T003",
|
|
@@ -471,46 +338,7 @@
|
|
|
471
338
|
"type": "automated-test",
|
|
472
339
|
"determinism": "deterministic",
|
|
473
340
|
"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
|
-
]
|
|
341
|
+
}
|
|
514
342
|
},
|
|
515
343
|
{
|
|
516
344
|
"id": "T004",
|
|
@@ -577,46 +405,7 @@
|
|
|
577
405
|
"type": "automated-test",
|
|
578
406
|
"determinism": "deterministic",
|
|
579
407
|
"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
|
-
]
|
|
408
|
+
}
|
|
620
409
|
},
|
|
621
410
|
{
|
|
622
411
|
"id": "T005",
|
|
@@ -687,85 +476,12 @@
|
|
|
687
476
|
"type": "automated-test",
|
|
688
477
|
"determinism": "deterministic",
|
|
689
478
|
"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
|
-
]
|
|
479
|
+
}
|
|
730
480
|
}
|
|
731
481
|
],
|
|
732
482
|
"metadata": {
|
|
733
483
|
"source": "tasks.md",
|
|
734
484
|
"generatedBy": "docs-example",
|
|
735
485
|
"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
486
|
}
|
|
771
487
|
}
|
|
@@ -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.8.5`, `cc-do@1.6.5`, `cc-check@1.10.1`, `cc-act@1.8.7`
|
|
8
8
|
|
|
9
9
|
This example shows verified work that is **ready to move forward**, but `cc-act` still chooses `local-handoff`.
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
- Requirement version: `REQ-003.v1`
|
|
6
6
|
- Design version: `design.v1`
|
|
7
|
-
- CC-Plan skill version: `3.8.
|
|
7
|
+
- CC-Plan skill version: `3.8.5`
|
|
8
8
|
- Requirement ID: `REQ-003`
|
|
9
9
|
- Design mode: `tiny-design`
|
|
10
10
|
- Why this stays `tiny-design`: the patch adds one export action inside the existing admin audit UI without changing data contracts
|