cc-devflow 4.3.0 → 4.4.1
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 +64 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +212 -0
- package/.claude/skills/cc-act/SKILL.md +322 -0
- package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +64 -0
- package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +25 -0
- package/.claude/skills/cc-act/references/closure-contract.md +49 -0
- package/.claude/skills/cc-act/references/git-commit-guidelines.md +83 -0
- package/.claude/skills/cc-act/scripts/archive-requirement.sh +49 -0
- package/.claude/skills/cc-act/scripts/cc-act-common.sh +240 -0
- package/.claude/skills/cc-act/scripts/detect-ship-target.sh +82 -0
- package/.claude/skills/cc-act/scripts/generate-status-report.sh +83 -0
- package/.claude/skills/cc-act/scripts/render-pr-brief.sh +195 -0
- package/.claude/skills/cc-act/scripts/sync-act-docs.sh +315 -0
- package/.claude/skills/cc-act/scripts/verify-act-gate.sh +63 -0
- package/.claude/skills/cc-check/CHANGELOG.md +73 -0
- package/.claude/skills/cc-check/PLAYBOOK.md +153 -0
- package/.claude/skills/cc-check/SKILL.md +345 -0
- package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +50 -0
- package/.claude/skills/cc-check/references/gate-contract.md +29 -0
- package/.claude/skills/cc-check/references/review-contract.md +45 -0
- package/.claude/skills/cc-check/scripts/render-report-card.js +229 -0
- package/.claude/skills/cc-check/scripts/run-quality-gates.sh +86 -0
- package/.claude/skills/cc-check/scripts/verify-gate.sh +57 -0
- package/.claude/skills/cc-do/CHANGELOG.md +49 -0
- package/.claude/skills/cc-do/PLAYBOOK.md +119 -0
- package/.claude/skills/cc-do/SKILL.md +216 -0
- package/.claude/skills/cc-do/references/execution-recovery.md +86 -0
- package/.claude/skills/cc-do/references/parallel-dispatch.md +80 -0
- package/.claude/skills/cc-do/scripts/build-task-context.sh +184 -0
- package/.claude/skills/cc-do/scripts/cc-do-common.sh +79 -0
- package/.claude/skills/cc-do/scripts/check-task-status.sh +92 -0
- package/.claude/skills/cc-do/scripts/detect-file-conflicts.sh +87 -0
- package/.claude/skills/cc-do/scripts/mark-task-complete.sh +119 -0
- package/.claude/skills/cc-do/scripts/record-review-decision.sh +89 -0
- package/.claude/skills/cc-do/scripts/recover-workflow.sh +84 -0
- package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +70 -0
- package/.claude/skills/cc-do/scripts/select-ready-tasks.sh +135 -0
- package/.claude/skills/cc-do/scripts/verify-task-gates.sh +94 -0
- package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +102 -0
- package/.claude/skills/cc-investigate/CHANGELOG.md +26 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +49 -0
- package/.claude/skills/cc-investigate/SKILL.md +221 -0
- package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +55 -0
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +52 -0
- package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +103 -0
- package/.claude/skills/cc-investigate/references/investigation-contract.md +28 -0
- package/.claude/skills/cc-investigate/scripts/bootstrap-analysis.sh +38 -0
- package/.claude/skills/cc-plan/CHANGELOG.md +99 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +106 -0
- package/.claude/skills/cc-plan/SKILL.md +325 -0
- package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +155 -0
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +98 -0
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +108 -0
- package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +79 -0
- package/.claude/skills/cc-plan/references/planning-contract.md +82 -0
- package/.claude/skills/cc-plan/scripts/bump-skill-version.sh +103 -0
- package/.claude/skills/cc-plan/scripts/parse-task-dependencies.js +75 -0
- package/.claude/skills/cc-plan/scripts/validate-scope.sh +78 -0
- package/.claude/skills/cc-roadmap/CHANGELOG.md +114 -0
- package/.claude/skills/cc-roadmap/PLAYBOOK.md +136 -0
- package/.claude/skills/cc-roadmap/SKILL.md +259 -0
- package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +45 -0
- package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +153 -0
- package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +48 -0
- package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +37 -0
- package/.claude/skills/cc-roadmap/scripts/bump-skill-version.sh +103 -0
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/markdown.js +604 -0
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/query.js +63 -0
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/schema.js +245 -0
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/store.js +139 -0
- package/.claude/skills/cc-roadmap/scripts/locate-roadmap-item.sh +109 -0
- package/.claude/skills/cc-roadmap/scripts/roadmap-tracking.js +153 -0
- package/.claude/skills/cc-roadmap/scripts/sync-roadmap-progress.sh +100 -0
- package/.claude/skills/cc-simplify/CHANGELOG.md +10 -0
- package/.claude/skills/cc-simplify/SKILL.md +55 -0
- package/.claude/skills/cc-spec-init/CHANGELOG.md +7 -0
- package/.claude/skills/cc-spec-init/PLAYBOOK.md +55 -0
- package/.claude/skills/cc-spec-init/SKILL.md +127 -0
- package/.claude/skills/cc-spec-init/assets/CAPABILITY_TEMPLATE.md +63 -0
- package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +25 -0
- package/.claude/skills/cc-spec-init/assets/INDEX_TEMPLATE.md +34 -0
- package/.claude/skills/cc-spec-init/references/spec-contract.md +22 -0
- package/.claude/skills/cc-spec-init/scripts/bootstrap-specs.sh +31 -0
- package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +45 -0
- package/CHANGELOG.md +61 -4
- package/README.md +120 -756
- package/README.zh-CN.md +119 -756
- package/bin/adapt.js +2 -6
- package/bin/cc-devflow-cli.js +72 -177
- package/config/distributable-skills.json +24 -0
- package/docs/CLAUDE.md +10 -6
- package/docs/commands/README.md +19 -46
- package/docs/commands/README.zh-CN.md +25 -48
- package/docs/examples/BY-ARTIFACT.md +7 -0
- package/docs/examples/README.md +38 -0
- package/docs/examples/START-HERE.md +149 -0
- package/docs/examples/example-bindings.json +38 -0
- package/docs/examples/full-design-blocked/BACKLOG.md +45 -0
- package/docs/examples/full-design-blocked/README.md +55 -0
- package/docs/examples/full-design-blocked/ROADMAP.md +53 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +154 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +146 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +78 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +52 -0
- package/docs/examples/full-design-blocked/roadmap-tracking.json +50 -0
- package/docs/examples/local-handoff/BACKLOG.md +45 -0
- package/docs/examples/local-handoff/README.md +56 -0
- package/docs/examples/local-handoff/ROADMAP.md +45 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +39 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +29 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +71 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +98 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +59 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +44 -0
- package/docs/examples/local-handoff/roadmap-tracking.json +48 -0
- package/docs/examples/pdca-loop/BACKLOG.md +46 -0
- package/docs/examples/pdca-loop/README.md +58 -0
- package/docs/examples/pdca-loop/ROADMAP.md +133 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +72 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +29 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +72 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +201 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +73 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +44 -0
- package/docs/examples/pdca-loop/roadmap-tracking.json +114 -0
- package/docs/examples/scripts/check-example-bindings.sh +116 -0
- package/docs/guides/getting-started.md +94 -129
- package/docs/guides/getting-started.zh-CN.md +103 -84
- package/docs/skill-runtime-migration.md +46 -0
- package/docs/v4.3.0-migration-guide.md +60 -225
- package/lib/compiler/CLAUDE.md +55 -84
- package/lib/compiler/__tests__/drift.test.js +1 -1
- package/lib/compiler/__tests__/errors.test.js +0 -1
- package/lib/compiler/__tests__/integration.test.js +49 -3
- package/lib/compiler/__tests__/manifest.test.js +0 -156
- package/lib/compiler/__tests__/parser.test.js +33 -104
- package/lib/compiler/__tests__/schemas.test.js +30 -34
- package/lib/compiler/__tests__/skills-registry.test.js +114 -0
- package/lib/compiler/__tests__/transformer.test.js +5 -9
- package/lib/compiler/emitters/antigravity-emitter.js +5 -213
- package/lib/compiler/emitters/base-emitter.js +3 -298
- package/lib/compiler/emitters/codex-emitter.js +4 -202
- package/lib/compiler/emitters/cursor-emitter.js +3 -287
- package/lib/compiler/emitters/qwen-emitter.js +4 -176
- package/lib/compiler/index.js +65 -345
- package/lib/compiler/manifest.js +6 -68
- package/lib/compiler/parser.js +31 -63
- package/lib/compiler/platforms.js +32 -277
- package/lib/compiler/resource-copier.js +176 -6
- package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +3 -3
- package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +14 -4
- package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +16 -7
- package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +10 -15
- package/lib/compiler/rules-emitters/base-rules-emitter.js +5 -5
- package/lib/compiler/rules-emitters/cursor-rules-emitter.js +7 -12
- package/lib/compiler/rules-emitters/index.js +6 -3
- package/lib/compiler/rules-emitters/qwen-rules-emitter.js +7 -7
- package/lib/compiler/schemas.js +8 -4
- package/lib/compiler/skills-registry.js +213 -15
- package/lib/compiler/transformer.js +1 -1
- package/lib/skill-runtime/CLAUDE.md +19 -0
- package/lib/skill-runtime/__tests__/autopilot.test.js +210 -0
- package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +181 -0
- package/lib/skill-runtime/__tests__/delegation.test.js +97 -0
- package/lib/skill-runtime/__tests__/dispatch.test.js +267 -0
- package/lib/skill-runtime/__tests__/intent.test.js +219 -0
- package/lib/skill-runtime/__tests__/lifecycle.test.js +169 -0
- package/lib/skill-runtime/__tests__/paths.test.js +42 -0
- package/lib/skill-runtime/__tests__/planner.tdd.test.js +250 -0
- package/lib/skill-runtime/__tests__/prepare-pr.test.js +139 -0
- package/lib/skill-runtime/__tests__/query.test.js +284 -0
- package/lib/skill-runtime/__tests__/runtime.integration.test.js +279 -0
- package/lib/skill-runtime/__tests__/schemas.test.js +207 -0
- package/lib/skill-runtime/__tests__/team-state.test.js +51 -0
- package/lib/skill-runtime/__tests__/worker-run.test.js +253 -0
- package/lib/skill-runtime/__tests__/worker.test.js +56 -0
- package/lib/skill-runtime/artifacts.js +93 -0
- package/lib/skill-runtime/delegation.js +533 -0
- package/lib/skill-runtime/index.js +34 -0
- package/lib/skill-runtime/intent.js +333 -0
- package/lib/skill-runtime/lifecycle.js +294 -0
- package/lib/skill-runtime/operations/CLAUDE.md +19 -0
- package/lib/skill-runtime/operations/approve.js +66 -0
- package/lib/skill-runtime/operations/autopilot-core.js +337 -0
- package/lib/skill-runtime/operations/autopilot-execution.js +307 -0
- package/lib/skill-runtime/operations/autopilot-shared.js +48 -0
- package/lib/skill-runtime/operations/autopilot.js +163 -0
- package/lib/skill-runtime/operations/dispatch.js +454 -0
- package/lib/skill-runtime/operations/init.js +64 -0
- package/lib/{harness → skill-runtime}/operations/janitor.js +9 -6
- package/lib/skill-runtime/operations/plan.js +59 -0
- package/lib/skill-runtime/operations/prepare-pr.js +25 -0
- package/lib/skill-runtime/operations/release.js +96 -0
- package/lib/skill-runtime/operations/resume.js +143 -0
- package/lib/skill-runtime/operations/snapshot.js +45 -0
- package/lib/skill-runtime/operations/verify.js +170 -0
- package/lib/skill-runtime/operations/worker-run.js +529 -0
- package/lib/skill-runtime/operations/worker.js +33 -0
- package/lib/skill-runtime/paths.js +213 -0
- package/lib/skill-runtime/planner.js +519 -0
- package/lib/skill-runtime/query.js +157 -0
- package/lib/skill-runtime/review.js +557 -0
- package/lib/skill-runtime/schemas.js +400 -0
- package/lib/{harness → skill-runtime}/store.js +45 -30
- package/lib/skill-runtime/team-state.js +122 -0
- package/package.json +13 -11
- package/.claude/CLAUDE.md +0 -125
- package/.claude/agents/architecture-designer.md +0 -443
- package/.claude/agents/bug-analyzer.md +0 -381
- package/.claude/agents/checklist-agent.md +0 -175
- package/.claude/agents/clarify-analyst.md +0 -50
- package/.claude/agents/code-quality-reviewer.md +0 -205
- package/.claude/agents/code-reviewer.md +0 -71
- package/.claude/agents/codex-analyzer.md +0 -39
- package/.claude/agents/compatibility-checker.md +0 -579
- package/.claude/agents/consistency-checker.md +0 -532
- package/.claude/agents/dev-implementer.md +0 -195
- package/.claude/agents/flow-researcher.md +0 -132
- package/.claude/agents/impact-analyzer.md +0 -440
- package/.claude/agents/planner.md +0 -230
- package/.claude/agents/prd-writer.md +0 -320
- package/.claude/agents/project-guidelines-generator.md +0 -1329
- package/.claude/agents/qa-tester.md +0 -313
- package/.claude/agents/release-manager.md +0 -295
- package/.claude/agents/security-reviewer.md +0 -314
- package/.claude/agents/spec-reviewer.md +0 -221
- package/.claude/agents/style-guide-generator.md +0 -458
- package/.claude/agents/tech-architect.md +0 -516
- package/.claude/agents/ui-designer.md +0 -485
- package/.claude/commands/core/architecture.md +0 -459
- package/.claude/commands/core/guidelines.md +0 -511
- package/.claude/commands/core/roadmap.md +0 -468
- package/.claude/commands/core/style.md +0 -83
- package/.claude/commands/flow/CLAUDE.md +0 -24
- package/.claude/commands/flow/archive.md +0 -280
- package/.claude/commands/flow/constitution.md +0 -82
- package/.claude/commands/flow/context.md +0 -150
- package/.claude/commands/flow/delta.md +0 -245
- package/.claude/commands/flow/dev.md +0 -40
- package/.claude/commands/flow/fix.md +0 -217
- package/.claude/commands/flow/ideate.md +0 -214
- package/.claude/commands/flow/init.md +0 -38
- package/.claude/commands/flow/release.md +0 -36
- package/.claude/commands/flow/restart.md +0 -97
- package/.claude/commands/flow/spec.md +0 -36
- package/.claude/commands/flow/status.md +0 -64
- package/.claude/commands/flow/update.md +0 -111
- package/.claude/commands/flow/upgrade.md +0 -115
- package/.claude/commands/flow/verify.md +0 -37
- package/.claude/commands/flow/workspace.md +0 -155
- package/.claude/commands/util/cancel-ralph.md +0 -60
- package/.claude/commands/util/code-review.md +0 -58
- package/.claude/commands/util/git-commit.md +0 -422
- package/.claude/commands/util/problem-analyzer.md +0 -60
- package/.claude/config/quality-gates.yml +0 -305
- package/.claude/config/quality-rules.yml +0 -161
- package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +0 -426
- package/.claude/docs/design/consistency-conflict-detection-algorithms.md +0 -658
- package/.claude/docs/design/intent-driven-input-design.md +0 -380
- package/.claude/docs/design/prd-version-management-design.md +0 -437
- package/.claude/docs/examples/design-inspiration-pool.md +0 -59
- package/.claude/docs/examples/ui-prototype-constitution-checklist.md +0 -75
- package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +0 -117
- package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +0 -99
- package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +0 -188
- package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +0 -338
- package/.claude/docs/guides/TEAM_MODE_GUIDE.md +0 -312
- package/.claude/docs/implementation-summary-v7.md +0 -449
- package/.claude/docs/spec-format-guide.md +0 -349
- package/.claude/docs/state-consolidation-design.md +0 -323
- package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +0 -332
- package/.claude/docs/templates/ATTEMPT_TEMPLATE.md +0 -156
- package/.claude/docs/templates/BACKLOG_TEMPLATE.md +0 -261
- package/.claude/docs/templates/BRAINSTORM_TEMPLATE.md +0 -148
- package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +0 -52
- package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +0 -206
- package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +0 -71
- package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +0 -91
- package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +0 -151
- package/.claude/docs/templates/DESIGN_TEMPLATE.md +0 -157
- package/.claude/docs/templates/ERROR_LOG_TEMPLATE.md +0 -80
- package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +0 -198
- package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +0 -57
- package/.claude/docs/templates/JOURNAL_TEMPLATE.md +0 -75
- package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +0 -76
- package/.claude/docs/templates/PROPOSAL_TEMPLATE.md +0 -91
- package/.claude/docs/templates/RESEARCH_TEMPLATE.md +0 -276
- package/.claude/docs/templates/REVIEW-HIGH.md +0 -57
- package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +0 -198
- package/.claude/docs/templates/ROADMAP_TEMPLATE.md +0 -310
- package/.claude/docs/templates/SPEC_TEMPLATE_DELTA.md +0 -139
- package/.claude/docs/templates/SPEC_TEMPLATE_PROJECT.md +0 -93
- package/.claude/docs/templates/STYLE_TEMPLATE.md +0 -479
- package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +0 -373
- package/.claude/docs/templates/_shared/CLAUDE.md +0 -36
- package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +0 -125
- package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +0 -187
- package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +0 -164
- package/.claude/docs/templates/context/dev.jsonl.template +0 -6
- package/.claude/docs/templates/context/epic.jsonl.template +0 -5
- package/.claude/docs/templates/context/prd.jsonl.template +0 -4
- package/.claude/docs/templates/context/research.jsonl.template +0 -4
- package/.claude/docs/templates/context/review.jsonl.template +0 -5
- package/.claude/docs/templates/context/tech.jsonl.template +0 -5
- package/.claude/guides/agent-guides/agent-coordination-guide.md +0 -459
- package/.claude/guides/project-guidelines-system.md +0 -463
- package/.claude/guides/technical-guides/datetime-handling-guide.md +0 -563
- package/.claude/guides/technical-guides/git-github-guide.md +0 -642
- package/.claude/guides/technical-guides/test-execution-guide.md +0 -618
- package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +0 -217
- package/.claude/guides/workflow-guides/flow-orchestrator.md +0 -48
- package/.claude/hooks/CLAUDE.md +0 -342
- package/.claude/hooks/checklist-gate.js +0 -397
- package/.claude/hooks/error-handling-reminder.sh +0 -12
- package/.claude/hooks/error-handling-reminder.ts +0 -459
- package/.claude/hooks/hooks.json +0 -15
- package/.claude/hooks/inject-agent-context.ts +0 -480
- package/.claude/hooks/inject-skill-context.ts +0 -359
- package/.claude/hooks/post-tool-use-tracker.sh +0 -280
- package/.claude/hooks/pre-tool-use-guardrail.sh +0 -36
- package/.claude/hooks/pre-tool-use-guardrail.ts +0 -342
- package/.claude/hooks/ralph-loop.ts +0 -931
- package/.claude/hooks/ralph-stop-hook.sh +0 -190
- package/.claude/hooks/skill-activation-prompt.sh +0 -36
- package/.claude/hooks/skill-activation-prompt.ts +0 -214
- package/.claude/hooks/state/skills-used-test-guard.json +0 -3
- package/.claude/hooks/task-completed-hook.ts +0 -593
- package/.claude/hooks/teammate-idle-hook.ts +0 -690
- package/.claude/hooks/types/team-types.d.ts +0 -238
- package/.claude/rules/devflow-conventions.md +0 -286
- package/.claude/rules/project-constitution.md +0 -1002
- package/.claude/rules/rationalization-library.md +0 -282
- package/.claude/schemas/constitution.schema.json +0 -43
- package/.claude/scripts/.claude/commands/flow/export-openspec.md +0 -221
- package/.claude/scripts/.claude/commands/flow/import-openspec.md +0 -171
- package/.claude/scripts/CLAUDE.md +0 -76
- package/.claude/scripts/__tests__/openspec.test.js +0 -212
- package/.claude/scripts/analyze-upgrade-impact.sh +0 -200
- package/.claude/scripts/archive-requirement.sh +0 -394
- package/.claude/scripts/calculate-checklist-completion.sh +0 -243
- package/.claude/scripts/calculate-quarter.sh +0 -206
- package/.claude/scripts/check-dependencies.sh +0 -409
- package/.claude/scripts/check-prerequisites.sh +0 -232
- package/.claude/scripts/check-task-status.sh +0 -288
- package/.claude/scripts/checklist-errors.sh +0 -131
- package/.claude/scripts/common.sh +0 -1102
- package/.claude/scripts/consolidate-research.sh +0 -182
- package/.claude/scripts/create-requirement.sh +0 -451
- package/.claude/scripts/delta-parser.ts +0 -637
- package/.claude/scripts/detect-file-conflicts.sh +0 -151
- package/.claude/scripts/export-contracts.sh +0 -117
- package/.claude/scripts/export-openspec.js +0 -222
- package/.claude/scripts/extract-data-model.sh +0 -78
- package/.claude/scripts/flow-context-add.sh +0 -134
- package/.claude/scripts/flow-context-init.sh +0 -133
- package/.claude/scripts/flow-context-validate.sh +0 -144
- package/.claude/scripts/flow-delta-apply.sh +0 -297
- package/.claude/scripts/flow-delta-archive.sh +0 -71
- package/.claude/scripts/flow-delta-create.sh +0 -202
- package/.claude/scripts/flow-delta-list.sh +0 -142
- package/.claude/scripts/flow-delta-status.sh +0 -235
- package/.claude/scripts/flow-quality-full.sh +0 -215
- package/.claude/scripts/flow-quality-quick.sh +0 -119
- package/.claude/scripts/flow-workspace-init.sh +0 -117
- package/.claude/scripts/flow-workspace-record.sh +0 -164
- package/.claude/scripts/generate-clarification-questions.sh +0 -377
- package/.claude/scripts/generate-clarification-report.sh +0 -463
- package/.claude/scripts/generate-quickstart.sh +0 -146
- package/.claude/scripts/generate-research-tasks.sh +0 -157
- package/.claude/scripts/generate-status-report.sh +0 -523
- package/.claude/scripts/generate-tech-analysis.sh +0 -46
- package/.claude/scripts/get-workflow-status.sh +0 -415
- package/.claude/scripts/import-openspec.js +0 -272
- package/.claude/scripts/locate-requirement-in-roadmap.sh +0 -233
- package/.claude/scripts/manage-constitution.sh +0 -602
- package/.claude/scripts/mark-task-complete.sh +0 -198
- package/.claude/scripts/parse-task-dependencies.js +0 -334
- package/.claude/scripts/populate-research-tasks.sh +0 -284
- package/.claude/scripts/record-quality-error.sh +0 -165
- package/.claude/scripts/recover-workflow.sh +0 -463
- package/.claude/scripts/run-clarify-scan.sh +0 -601
- package/.claude/scripts/run-high-review.sh +0 -62
- package/.claude/scripts/run-problem-analysis.sh +0 -68
- package/.claude/scripts/run-quality-gates.sh +0 -242
- package/.claude/scripts/setup-epic.sh +0 -173
- package/.claude/scripts/setup-ralph-loop.sh +0 -155
- package/.claude/scripts/sync-roadmap-progress.sh +0 -300
- package/.claude/scripts/sync-task-marks.sh +0 -199
- package/.claude/scripts/team-dev-init.sh +0 -319
- package/.claude/scripts/team-state-recovery.sh +0 -229
- package/.claude/scripts/test-clarify-scan.sh +0 -515
- package/.claude/scripts/update-agent-context.sh +0 -806
- package/.claude/scripts/validate-constitution.sh +0 -567
- package/.claude/scripts/validate-hooks.sh +0 -487
- package/.claude/scripts/validate-research.sh +0 -332
- package/.claude/scripts/validate-scope-boundary.sh +0 -493
- package/.claude/scripts/validate-scope.sh +0 -200
- package/.claude/scripts/verify-gate.sh +0 -269
- package/.claude/scripts/verify-setup.sh +0 -37
- package/.claude/scripts/workflow-status.ts +0 -433
- package/.claude/settings.json +0 -95
- package/.claude/skills/_reference-implementations/README.md +0 -96
- package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +0 -302
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +0 -451
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +0 -307
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +0 -638
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +0 -275
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +0 -224
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +0 -213
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +0 -756
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +0 -336
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +0 -789
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +0 -235
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +0 -754
- package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +0 -399
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +0 -331
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +0 -872
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +0 -502
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +0 -767
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +0 -502
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +0 -501
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +0 -406
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +0 -364
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +0 -428
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +0 -418
- package/.claude/skills/attention-refresh/SKILL.md +0 -170
- package/.claude/skills/brainstorming/SKILL.md +0 -161
- package/.claude/skills/cc-devflow-orchestrator/SKILL.md +0 -169
- package/.claude/skills/constitution-guardian/SKILL.md +0 -306
- package/.claude/skills/constitution-quick-ref/SKILL.md +0 -374
- package/.claude/skills/debugging/SKILL.md +0 -221
- package/.claude/skills/file-standards/SKILL.md +0 -353
- package/.claude/skills/finishing-branch/SKILL.md +0 -189
- package/.claude/skills/flow-dev/CLAUDE.md +0 -16
- package/.claude/skills/flow-dev/SKILL.md +0 -94
- package/.claude/skills/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -71
- package/.claude/skills/flow-dev/context.jsonl +0 -4
- package/.claude/skills/flow-dev/dev-implementer.jsonl +0 -8
- package/.claude/skills/flow-dev/scripts/entry-gate.sh +0 -116
- package/.claude/skills/flow-dev/scripts/exit-gate.sh +0 -101
- package/.claude/skills/flow-dev/scripts/task-orchestrator.sh +0 -106
- package/.claude/skills/flow-fix/SKILL.md +0 -105
- package/.claude/skills/flow-fix/context.jsonl +0 -6
- package/.claude/skills/flow-fix/references/bug-analyzer.md +0 -381
- package/.claude/skills/flow-init/SKILL.md +0 -105
- package/.claude/skills/flow-init/assets/BRAINSTORM_TEMPLATE.md +0 -148
- package/.claude/skills/flow-init/assets/INIT_FLOW_TEMPLATE.md +0 -198
- package/.claude/skills/flow-init/assets/RESEARCH_TEMPLATE.md +0 -276
- package/.claude/skills/flow-init/context.jsonl +0 -5
- package/.claude/skills/flow-init/references/flow-researcher.md +0 -132
- package/.claude/skills/flow-init/scripts/check-prerequisites.sh +0 -240
- package/.claude/skills/flow-init/scripts/consolidate-research.sh +0 -182
- package/.claude/skills/flow-init/scripts/create-requirement.sh +0 -404
- package/.claude/skills/flow-init/scripts/generate-research-tasks.sh +0 -157
- package/.claude/skills/flow-init/scripts/populate-research-tasks.sh +0 -284
- package/.claude/skills/flow-init/scripts/validate-research.sh +0 -340
- package/.claude/skills/flow-quality/SKILL.md +0 -98
- package/.claude/skills/flow-quality/context.jsonl +0 -6
- package/.claude/skills/flow-quality/references/code-quality-reviewer.md +0 -205
- package/.claude/skills/flow-quality/references/qa-tester.md +0 -313
- package/.claude/skills/flow-quality/references/security-reviewer.md +0 -314
- package/.claude/skills/flow-quality/references/spec-reviewer.md +0 -221
- package/.claude/skills/flow-release/SKILL.md +0 -60
- package/.claude/skills/flow-release/context.jsonl +0 -5
- package/.claude/skills/flow-release/references/release-manager.md +0 -295
- package/.claude/skills/flow-spec/CLAUDE.md +0 -17
- package/.claude/skills/flow-spec/SKILL.md +0 -102
- package/.claude/skills/flow-spec/context.jsonl +0 -5
- package/.claude/skills/flow-spec/scripts/entry-gate.sh +0 -194
- package/.claude/skills/flow-spec/scripts/exit-gate.sh +0 -244
- package/.claude/skills/flow-spec/scripts/parallel-orchestrator.sh +0 -205
- package/.claude/skills/flow-spec/scripts/team-communication.sh +0 -353
- package/.claude/skills/flow-spec/scripts/team-init.sh +0 -195
- package/.claude/skills/flow-spec/scripts/test-team-mode.sh +0 -496
- package/.claude/skills/flow-spec/team-config.json +0 -165
- package/.claude/skills/flow-verify/CLAUDE.md +0 -10
- package/.claude/skills/flow-verify/SKILL.md +0 -53
- package/.claude/skills/flow-verify/context.jsonl +0 -5
- package/.claude/skills/fractal-docs/SKILL.md +0 -45
- package/.claude/skills/journey-checker/SKILL.md +0 -199
- package/.claude/skills/journey-checker/pressure-scenarios.md +0 -164
- package/.claude/skills/receiving-review/SKILL.md +0 -153
- package/.claude/skills/skill-creator/LICENSE.txt +0 -202
- package/.claude/skills/skill-creator/SKILL.md +0 -356
- package/.claude/skills/skill-creator/references/output-patterns.md +0 -82
- package/.claude/skills/skill-creator/references/workflows.md +0 -28
- package/.claude/skills/skill-creator/scripts/init_skill.py +0 -303
- package/.claude/skills/skill-creator/scripts/package_skill.py +0 -110
- package/.claude/skills/skill-creator/scripts/quick_validate.py +0 -95
- package/.claude/skills/skill-rules.json +0 -359
- package/.claude/skills/tdd/SKILL.md +0 -218
- package/.claude/skills/tdd-enforcer/SKILL.md +0 -192
- package/.claude/skills/utility/npm-release/CLAUDE.md +0 -55
- package/.claude/skills/utility/npm-release/SKILL.md +0 -379
- package/.claude/skills/utility/npm-release/references/version-decision-guide.md +0 -134
- package/.claude/skills/utility/npm-release/scripts/atomic-version-bump.sh +0 -95
- package/.claude/skills/utility/npm-release/scripts/validate-version-sync.sh +0 -82
- package/.claude/skills/utility/npm-release/scripts/version-decision-tree.sh +0 -44
- package/.claude/skills/verification/SKILL.md +0 -158
- package/.claude/skills/workflow.yaml +0 -219
- package/.claude/tests/README.md +0 -300
- package/.claude/tests/TODO.md +0 -69
- package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/constitution/run_all_constitution_tests.sh +0 -111
- package/.claude/tests/constitution/test_agent_assignment.sh +0 -207
- package/.claude/tests/constitution/test_article_coverage.sh +0 -201
- package/.claude/tests/constitution/test_template_completeness.sh +0 -150
- package/.claude/tests/constitution/test_version_consistency.sh +0 -120
- package/.claude/tests/fixtures/spec_delta_full.md +0 -16
- package/.claude/tests/fixtures/tasks_progress_sample.md +0 -5
- package/.claude/tests/run-all-tests.sh +0 -229
- package/.claude/tests/scripts/run.sh +0 -30
- package/.claude/tests/scripts/test-framework.sh +0 -128
- package/.claude/tests/scripts/test_check_prerequisites.sh +0 -511
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak +0 -504
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +0 -505
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +0 -506
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +0 -507
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +0 -508
- package/.claude/tests/scripts/test_check_task_status.sh +0 -499
- package/.claude/tests/scripts/test_common.sh +0 -244
- package/.claude/tests/scripts/test_generate_status_report.sh +0 -71
- package/.claude/tests/scripts/test_mark_task_complete.sh +0 -441
- package/.claude/tests/scripts/test_mark_task_complete.sh.backup +0 -410
- package/.claude/tests/scripts/test_recover_workflow.sh +0 -304
- package/.claude/tests/scripts/test_setup_epic.sh +0 -437
- package/.claude/tests/scripts/test_sync_task_marks.sh +0 -196
- package/.claude/tests/scripts/test_validate_constitution.sh +0 -74
- package/.claude/tests/scripts/test_validate_research.sh +0 -462
- package/.claude/tests/slugify.bats +0 -82
- package/.claude/tests/test-framework.sh +0 -732
- package/.claude/tests/test_analyze_upgrade_impact.py +0 -34
- package/.claude/tests/test_consolidate_research.py +0 -48
- package/.claude/tests/test_export_contracts.py +0 -43
- package/.claude/tests/test_extract_data_model.py +0 -33
- package/.claude/tests/test_generate_quickstart.py +0 -50
- package/.claude/tests/test_generate_research_tasks.py +0 -52
- package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/affected-repos.txt +0 -1
- package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/edited-files.log +0 -2
- package/bin/harness.js +0 -22
- package/docs/commands/core-roadmap.md +0 -106
- package/docs/commands/core-roadmap.zh-CN.md +0 -102
- package/docs/commands/core-style.md +0 -53
- package/docs/commands/core-style.zh-CN.md +0 -53
- package/docs/commands/flow-init.md +0 -140
- package/docs/commands/flow-init.zh-CN.md +0 -169
- package/docs/commands/flow-new.md +0 -39
- package/docs/commands/flow-new.zh-CN.md +0 -39
- package/lib/compiler/__tests__/compile-regression.test.js +0 -103
- package/lib/compiler/__tests__/multi-module-emitters.test.js +0 -534
- package/lib/compiler/__tests__/resource-copier.test.js +0 -26
- package/lib/compiler/__tests__/skill-discovery.test.js +0 -72
- package/lib/compiler/context-expander.js +0 -179
- package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +0 -109
- package/lib/compiler/rules-emitters/codex-rules-emitter.js +0 -116
- package/lib/compiler/skill-discovery.js +0 -68
- package/lib/harness/CLAUDE.md +0 -22
- package/lib/harness/__tests__/planner.tdd.test.js +0 -125
- package/lib/harness/cli.js +0 -208
- package/lib/harness/index.js +0 -18
- package/lib/harness/operations/dispatch.js +0 -298
- package/lib/harness/operations/init.js +0 -48
- package/lib/harness/operations/pack.js +0 -100
- package/lib/harness/operations/plan.js +0 -83
- package/lib/harness/operations/release.js +0 -170
- package/lib/harness/operations/resume.js +0 -44
- package/lib/harness/operations/verify.js +0 -177
- package/lib/harness/planner.js +0 -272
- package/lib/harness/query.js +0 -126
- package/lib/harness/schemas.js +0 -129
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Start Here
|
|
2
|
+
|
|
3
|
+
This is the **single entry page** for the example set.
|
|
4
|
+
|
|
5
|
+
Use it in any of these situations:
|
|
6
|
+
|
|
7
|
+
- you want the fastest path to the right example
|
|
8
|
+
- you only know your current symptom
|
|
9
|
+
- you only know which artifact file you have
|
|
10
|
+
- you want one-page context before diving into the examples
|
|
11
|
+
|
|
12
|
+
## Version Trust
|
|
13
|
+
|
|
14
|
+
Examples are pinned to current skill versions through:
|
|
15
|
+
|
|
16
|
+
- [example-bindings.json](./example-bindings.json): canonical bindings for example-to-skill versions
|
|
17
|
+
- [scripts/check-example-bindings.sh](./scripts/check-example-bindings.sh): verifies the bindings against current `SKILL.md` versions and example artifacts
|
|
18
|
+
|
|
19
|
+
For day-to-day work, the shortest habit is:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm run verify
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
For publish-grade validation, use:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm run verify:publish
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Fast Route
|
|
32
|
+
|
|
33
|
+
### 1. Do you already have a `report-card.json` verdict?
|
|
34
|
+
|
|
35
|
+
- If **no**, start with [the happy path example](./pdca-loop/README.md) to understand the full loop once.
|
|
36
|
+
- If **yes**, continue below.
|
|
37
|
+
|
|
38
|
+
### 2. Is the verdict `pass`?
|
|
39
|
+
|
|
40
|
+
- If **no**, go to [the full-design blocked example](./full-design-blocked/README.md).
|
|
41
|
+
It shows the most important non-happy-path truth:
|
|
42
|
+
green tests do not override a broken planning contract.
|
|
43
|
+
- If **yes**, continue below.
|
|
44
|
+
|
|
45
|
+
### 3. Can you honestly create or update a PR right now?
|
|
46
|
+
|
|
47
|
+
- If **yes**, go to [the happy path example](./pdca-loop/README.md).
|
|
48
|
+
That sample ends in `create-pr`.
|
|
49
|
+
- If **no**, go to [the local-handoff example](./local-handoff/README.md).
|
|
50
|
+
That sample shows how verified work still leaves a clean next entry without pretending to ship.
|
|
51
|
+
|
|
52
|
+
## Symptom Picker
|
|
53
|
+
|
|
54
|
+
| If your situation feels like this | Read this example first | Why |
|
|
55
|
+
| --- | --- | --- |
|
|
56
|
+
| "I just want to understand the normal loop once." | [pdca-loop](./pdca-loop/README.md) | shows the straight-through path |
|
|
57
|
+
| "The code is locally green, but I don't trust the requirement anymore." | [full-design-blocked](./full-design-blocked/README.md) | shows `blocked` + reroute to `cc-plan` |
|
|
58
|
+
| "The work is verified, but I can't or shouldn't push yet." | [local-handoff](./local-handoff/README.md) | shows `pass` + `local-handoff` |
|
|
59
|
+
| "I don't know whether this should stay `tiny-design`." | [pdca-loop](./pdca-loop/README.md), then [full-design-blocked](./full-design-blocked/README.md) | compare a truly small patch against a requirement that outgrew it |
|
|
60
|
+
|
|
61
|
+
## By Artifact
|
|
62
|
+
|
|
63
|
+
Use this when the only thing you know is the file in front of you.
|
|
64
|
+
|
|
65
|
+
| If the main file you have is... | You are probably here | Read this first |
|
|
66
|
+
| --- | --- | --- |
|
|
67
|
+
| `ROADMAP.md` | `cc-roadmap` | [pdca-loop/ROADMAP.md](./pdca-loop/ROADMAP.md) |
|
|
68
|
+
| `roadmap-tracking.json` | `cc-roadmap` machine truth source for roadmap + backlog | [pdca-loop/roadmap-tracking.json](./pdca-loop/roadmap-tracking.json) |
|
|
69
|
+
| `BACKLOG.md` | `cc-roadmap` -> `cc-plan` handoff | [pdca-loop/BACKLOG.md](./pdca-loop/BACKLOG.md) |
|
|
70
|
+
| `design.md` | `cc-plan` | [pdca-loop/design.md](./pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md) or [full-design-blocked/design.md](./full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md) |
|
|
71
|
+
| `tasks.md` | `cc-plan` or `cc-do` | [pdca-loop/tasks.md](./pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md) |
|
|
72
|
+
| `task-manifest.json` | `cc-do` | [pdca-loop/task-manifest.json](./pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json) |
|
|
73
|
+
| `report-card.json` | `cc-check` | [pdca-loop/report-card.json](./pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json), [full-design-blocked/report-card.json](./full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json), or [local-handoff/report-card.json](./local-handoff/changes/REQ-003-audit-log-export/review/report-card.json) |
|
|
74
|
+
| `pr-brief.md` | `cc-act` | [pdca-loop/pr-brief.md](./pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md) |
|
|
75
|
+
| `resume-index.md` | `cc-act` with `local-handoff` | [local-handoff/resume-index.md](./local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md) |
|
|
76
|
+
|
|
77
|
+
### Read `report-card.json` Like This
|
|
78
|
+
|
|
79
|
+
| Verdict | Reroute | Meaning |
|
|
80
|
+
| --- | --- | --- |
|
|
81
|
+
| `pass` | `none` | move toward `cc-act` |
|
|
82
|
+
| `fail` | `cc-do` | implementation must continue |
|
|
83
|
+
| `blocked` | `cc-do` | proof or execution prerequisites are missing |
|
|
84
|
+
| `blocked` | `cc-plan` | design or scope truth is broken; do not keep coding blindly |
|
|
85
|
+
|
|
86
|
+
### Read `resume-index.md` Like This
|
|
87
|
+
|
|
88
|
+
Ask only:
|
|
89
|
+
|
|
90
|
+
1. is verification already `pass`?
|
|
91
|
+
2. is the blocker environmental instead of design-related?
|
|
92
|
+
|
|
93
|
+
If both are true, you are usually in `cc-act` local handoff territory, not back in planning.
|
|
94
|
+
|
|
95
|
+
## Example Map
|
|
96
|
+
|
|
97
|
+
### 1. Happy Path: `tiny-design` + `pass` + `create-pr`
|
|
98
|
+
|
|
99
|
+
- Read: [pdca-loop/README.md](./pdca-loop/README.md)
|
|
100
|
+
- Best when:
|
|
101
|
+
- you want to understand the straight-through loop once
|
|
102
|
+
- you need a clean example of `cc-roadmap -> cc-plan -> cc-do -> cc-check -> cc-act`
|
|
103
|
+
|
|
104
|
+
### 2. Counterexample: `full-design` + `blocked` + reroute to `cc-plan`
|
|
105
|
+
|
|
106
|
+
- Read: [full-design-blocked/README.md](./full-design-blocked/README.md)
|
|
107
|
+
- Best when:
|
|
108
|
+
- tests are green but the requirement still feels untrustworthy
|
|
109
|
+
- you need to see why `cc-check` can honestly block even after execution work happened
|
|
110
|
+
|
|
111
|
+
### 3. Counterexample: `pass` + `local-handoff`
|
|
112
|
+
|
|
113
|
+
- Read: [local-handoff/README.md](./local-handoff/README.md)
|
|
114
|
+
- Best when:
|
|
115
|
+
- the work is verified
|
|
116
|
+
- but PR or remote actions are intentionally unavailable
|
|
117
|
+
- and you need a clean next-entry handoff instead of fake shipping
|
|
118
|
+
|
|
119
|
+
## Wrong Turns To Avoid
|
|
120
|
+
|
|
121
|
+
- Do not jump from `tasks.md` straight to `cc-act`
|
|
122
|
+
- Do not treat green tests as stronger than a `report-card.json` reroute
|
|
123
|
+
- Do not treat `resume-index.md` as proof that planning failed; it may simply mean local handoff
|
|
124
|
+
|
|
125
|
+
## One-Minute Rule
|
|
126
|
+
|
|
127
|
+
If you only have one minute, open these files in order:
|
|
128
|
+
|
|
129
|
+
1. example `README.md`
|
|
130
|
+
2. change `planning/design.md`
|
|
131
|
+
3. `report-card.json` or the single final handoff file
|
|
132
|
+
|
|
133
|
+
That should already tell you:
|
|
134
|
+
|
|
135
|
+
- what planning density was chosen
|
|
136
|
+
- whether verification passed, failed, or blocked
|
|
137
|
+
- why `cc-act` selected the final ship mode
|
|
138
|
+
|
|
139
|
+
## Minimal Output Rule
|
|
140
|
+
|
|
141
|
+
`devflow/changes/<change>/` should stay lean.
|
|
142
|
+
|
|
143
|
+
- Durable truth only: `change-state.json`, planning docs, `task-manifest.json`, optional `team-state.json`, task `checkpoint.json`, `report-card.json`, and one final handoff file.
|
|
144
|
+
- Runtime scratch belongs in `devflow/workspaces/<change>/`, not beside the durable record.
|
|
145
|
+
|
|
146
|
+
## If You Still Want The Split Views
|
|
147
|
+
|
|
148
|
+
- [README.md](./README.md): compact example list
|
|
149
|
+
- [BY-ARTIFACT.md](./BY-ARTIFACT.md): compatibility page for artifact-only lookup
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"updatedAt": "2026-04-25",
|
|
3
|
+
"skills": {
|
|
4
|
+
"cc-roadmap": "4.3.1",
|
|
5
|
+
"cc-plan": "3.5.3",
|
|
6
|
+
"cc-investigate": "1.1.1",
|
|
7
|
+
"cc-do": "1.5.1",
|
|
8
|
+
"cc-check": "1.8.1",
|
|
9
|
+
"cc-act": "1.6.1",
|
|
10
|
+
"cc-spec-init": "1.0.0"
|
|
11
|
+
},
|
|
12
|
+
"examples": [
|
|
13
|
+
{
|
|
14
|
+
"id": "pdca-loop",
|
|
15
|
+
"readme": "docs/examples/pdca-loop/README.md",
|
|
16
|
+
"root": "docs/examples/pdca-loop",
|
|
17
|
+
"changeDir": "docs/examples/pdca-loop/changes/REQ-001-copy-invite-link",
|
|
18
|
+
"covers": ["cc-roadmap", "cc-plan", "cc-do", "cc-check", "cc-act"],
|
|
19
|
+
"expectedShipMode": "create-pr"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "full-design-blocked",
|
|
23
|
+
"readme": "docs/examples/full-design-blocked/README.md",
|
|
24
|
+
"root": "docs/examples/full-design-blocked",
|
|
25
|
+
"changeDir": "docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import",
|
|
26
|
+
"covers": ["cc-roadmap", "cc-plan", "cc-do", "cc-check"],
|
|
27
|
+
"expectedShipMode": "none"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "local-handoff",
|
|
31
|
+
"readme": "docs/examples/local-handoff/README.md",
|
|
32
|
+
"root": "docs/examples/local-handoff",
|
|
33
|
+
"changeDir": "docs/examples/local-handoff/changes/REQ-003-audit-log-export",
|
|
34
|
+
"covers": ["cc-roadmap", "cc-plan", "cc-do", "cc-check", "cc-act"],
|
|
35
|
+
"expectedShipMode": "local-handoff"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# BACKLOG
|
|
2
|
+
|
|
3
|
+
## Backlog Meta
|
|
4
|
+
|
|
5
|
+
- Roadmap version: `roadmap.v2`
|
|
6
|
+
- Skill version: `4.3.1`
|
|
7
|
+
- Last synced: `2026-04-19`
|
|
8
|
+
- Current focus stage: `Stage 2`
|
|
9
|
+
- Tracking source: `roadmap-tracking.json`
|
|
10
|
+
|
|
11
|
+
## Queue
|
|
12
|
+
|
|
13
|
+
| RM-ID | Title | Source Stage | Priority | Primary Capability | Secondary Capabilities | Capability Gap | Expected Spec Delta | Evidence | Depends On | Parallel With | Unknowns | Next Decision | Ready |
|
|
14
|
+
|------|------|------|------|------|------|------|------|------|------|------|------|------|------|
|
|
15
|
+
| RM-010 | Add CSV bulk invite import for admins | Stage 2 | P1 | cap-bulk-invite-import | cap-workspace-membership | admins can invite one user at a time but cannot safely import invite batches | define import semantics before widening current truth | sales onboarding asks for spreadsheet-scale invites | - | - | duplicate-email policy, seat enforcement, audit fan-out | reroute to full design before more execution work | Yes |
|
|
16
|
+
|
|
17
|
+
## Dependency Handoff
|
|
18
|
+
|
|
19
|
+
- Serial spine: RM-010
|
|
20
|
+
- Parallel-ready next wave: -
|
|
21
|
+
- Notes on blockers: verification is blocked until the import contract covers limits, duplicates, billing, and audit consistency
|
|
22
|
+
|
|
23
|
+
## Ready For Req-Plan
|
|
24
|
+
|
|
25
|
+
- RM-010:
|
|
26
|
+
- Primary Capability: `cap-bulk-invite-import`
|
|
27
|
+
- Secondary Capabilities: `cap-workspace-membership`
|
|
28
|
+
- Why now: demand is real, but the contract is too wide to keep improvising in code
|
|
29
|
+
- Success signal: the capability has a trusted import contract before implementation resumes
|
|
30
|
+
- Entry constraints: must freeze limits, duplicates, warnings, and audit behavior first
|
|
31
|
+
- Capability gap: admins can invite one user at a time but cannot safely import invite batches
|
|
32
|
+
- Expected spec delta: define import semantics before widening current truth
|
|
33
|
+
- Open risks: another partial implementation pass would deepen the semantic drift
|
|
34
|
+
- First planning question: which subflows share one import contract and which need explicit splits?
|
|
35
|
+
- Required context to load: invite limits, billing rules, duplicate handling, audit logging
|
|
36
|
+
- Depends On: `-`
|
|
37
|
+
- Parallel With: `-`
|
|
38
|
+
- Why this is ready now: the blocker is design truth, not implementation effort
|
|
39
|
+
|
|
40
|
+
## Parked
|
|
41
|
+
|
|
42
|
+
- RM-XXX:
|
|
43
|
+
- Reason parked:
|
|
44
|
+
- Trigger to reopen:
|
|
45
|
+
- Missing evidence:
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Full-Design Blocked Example
|
|
2
|
+
|
|
3
|
+
## Example Meta
|
|
4
|
+
|
|
5
|
+
- Example version: `1.0.0`
|
|
6
|
+
- Last reviewed: `2026-04-17`
|
|
7
|
+
- Bound skills: `cc-roadmap@4.3.1`, `cc-plan@3.5.3`, `cc-do@1.5.1`, `cc-check@1.8.1`
|
|
8
|
+
|
|
9
|
+
This example shows a requirement that **looked executable**, but `cc-check` correctly stopped it and sent it back to `cc-plan`.
|
|
10
|
+
|
|
11
|
+
The shape is intentional:
|
|
12
|
+
|
|
13
|
+
- roadmap item is real enough to matter
|
|
14
|
+
- design requires `full-design`
|
|
15
|
+
- tasks were executed far enough to produce evidence
|
|
16
|
+
- `report-card.json` is still `blocked`
|
|
17
|
+
- reroute is `cc-plan`, not `cc-do`
|
|
18
|
+
|
|
19
|
+
## Scenario
|
|
20
|
+
|
|
21
|
+
The fictional product now wants CSV-based bulk invites for workspace admins.
|
|
22
|
+
|
|
23
|
+
At first glance, it looks like an import feature inside the admin console.
|
|
24
|
+
|
|
25
|
+
But the real surface is wider:
|
|
26
|
+
|
|
27
|
+
- invite limit enforcement
|
|
28
|
+
- duplicate email handling
|
|
29
|
+
- billing-seat warnings
|
|
30
|
+
- audit log consistency
|
|
31
|
+
|
|
32
|
+
The sample shows what happens when implementation moved before the integration design was fully trustworthy.
|
|
33
|
+
|
|
34
|
+
## What To Look For
|
|
35
|
+
|
|
36
|
+
1. Why this requirement cannot stay `tiny-design`
|
|
37
|
+
2. Which signals forced `full-design`
|
|
38
|
+
3. Why tests passing is still not enough
|
|
39
|
+
4. Why reroute goes to `cc-plan` instead of `cc-do`
|
|
40
|
+
|
|
41
|
+
## Artifact Map
|
|
42
|
+
|
|
43
|
+
- `ROADMAP.md`
|
|
44
|
+
- `roadmap-tracking.json` (shared roadmap/backlog truth)
|
|
45
|
+
- `BACKLOG.md`
|
|
46
|
+
- `changes/REQ-002-bulk-invite-import/planning/design.md`
|
|
47
|
+
- `changes/REQ-002-bulk-invite-import/planning/tasks.md`
|
|
48
|
+
- `changes/REQ-002-bulk-invite-import/planning/task-manifest.json`
|
|
49
|
+
- `changes/REQ-002-bulk-invite-import/review/report-card.json`
|
|
50
|
+
|
|
51
|
+
## Why There Is No `cc-act` Output
|
|
52
|
+
|
|
53
|
+
There is no final handoff file here because `cc-check` did **not** return `pass`.
|
|
54
|
+
|
|
55
|
+
The loop must stop honestly before `cc-act`.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# ROADMAP
|
|
2
|
+
|
|
3
|
+
## Roadmap Meta
|
|
4
|
+
|
|
5
|
+
- Roadmap version: `roadmap.v2`
|
|
6
|
+
- Skill version: `4.3.1`
|
|
7
|
+
- Status: `active`
|
|
8
|
+
- Last updated: `2026-04-16`
|
|
9
|
+
- Owner / decider: `product-owner`
|
|
10
|
+
- Current focus stage: `Stage 2`
|
|
11
|
+
- Confidence: `medium`
|
|
12
|
+
- Supersedes roadmap version: `roadmap.v1`
|
|
13
|
+
|
|
14
|
+
## Context Snapshot
|
|
15
|
+
|
|
16
|
+
- Product / repo: `workspace-lite`
|
|
17
|
+
- Project stage: teams actively collaborate after the first-share fixes
|
|
18
|
+
- Users: workspace admins managing larger invite waves
|
|
19
|
+
- Pain: inviting many users one by one is slow and error-prone
|
|
20
|
+
- Existing workaround: admins repeatedly paste emails or use external spreadsheets
|
|
21
|
+
- Strongest demand evidence: support calls now ask for admin-scale invite workflows
|
|
22
|
+
- Why now: the product graduated past the first-share bottleneck
|
|
23
|
+
- Distribution path: direct beta expansion to larger teams
|
|
24
|
+
- Deadline / forcing function: larger-team beta starts on `2026-04-30`
|
|
25
|
+
- Team / capacity: one engineer plus part-time design help
|
|
26
|
+
- Hard constraints: billing and audit behavior must remain trustworthy
|
|
27
|
+
- Adoption / trust bottleneck: admins will not trust bulk invite if seat usage and audit logs drift
|
|
28
|
+
- Known unknowns: how duplicate users, seat limits, and partial imports should behave
|
|
29
|
+
|
|
30
|
+
## Route Options
|
|
31
|
+
|
|
32
|
+
| Shape | Why this could work | Why this may fail | Decision |
|
|
33
|
+
|-------|---------------------|-------------------|----------|
|
|
34
|
+
| wedge-first | deliver a minimal CSV import | may hide dangerous admin edge cases | Rejected |
|
|
35
|
+
| platform-first | design import rules, billing boundaries, and audit consistency first | slower upfront | Recommended |
|
|
36
|
+
| rescue-first | keep manual import and patch docs | does not solve admin pain | Rejected |
|
|
37
|
+
|
|
38
|
+
## Recommended Route
|
|
39
|
+
|
|
40
|
+
- Recommendation: `platform-first`
|
|
41
|
+
- Why this route wins now: the biggest risk is trust and consistency, not button placement
|
|
42
|
+
- Why the rejected routes lose now: a superficially small import flow can corrupt admin expectations if rules are underspecified
|
|
43
|
+
- First signal to watch: admins can predict what happens for duplicates, seat limits, and partial success
|
|
44
|
+
- Kill signal / stop condition: if the team cannot specify bulk invite semantics before implementation starts
|
|
45
|
+
|
|
46
|
+
## Implementation Tracking
|
|
47
|
+
- Tracking source: `roadmap-tracking.json`
|
|
48
|
+
|
|
49
|
+
<!-- roadmap-tracking:start -->
|
|
50
|
+
| RM-ID | Item | Stage | Priority | Primary Capability | Secondary Capabilities | Expected Spec Delta | Depends On | Status | REQ | Progress |
|
|
51
|
+
|------|------|------|------|------|------|------|------|------|------|------|
|
|
52
|
+
| RM-010 | Add CSV bulk invite import for admins | Stage 2 | P1 | cap-bulk-invite-import | cap-workspace-membership | define import semantics before widening current truth | - | Verification blocked | REQ-002 | 80% |
|
|
53
|
+
<!-- roadmap-tracking:end -->
|
package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# DESIGN
|
|
2
|
+
|
|
3
|
+
## Document Meta
|
|
4
|
+
|
|
5
|
+
- Requirement version: `REQ-002.v2`
|
|
6
|
+
- Design version: `design.v2`
|
|
7
|
+
- CC-Plan skill version: `3.5.3`
|
|
8
|
+
- Requirement ID: `REQ-002`
|
|
9
|
+
- Design mode: `full-design`
|
|
10
|
+
- Why not `tiny-design`: the feature crosses import parsing, invite rules, billing limits, duplicate handling, and audit logging
|
|
11
|
+
- Design status: `in-review`
|
|
12
|
+
- Source roadmap item: `RM-010`
|
|
13
|
+
- Source roadmap version: `roadmap.v2`
|
|
14
|
+
- Source roadmap skill version: `4.1.0`
|
|
15
|
+
- Date: `2026-04-16`
|
|
16
|
+
- Owner: `product-owner`
|
|
17
|
+
|
|
18
|
+
## Source Handoff
|
|
19
|
+
|
|
20
|
+
- Source stage: `Stage 2`
|
|
21
|
+
- Why now from roadmap: admin demand is real, but trust risks dominate the design
|
|
22
|
+
- Inherited success signal: admins can predict every bulk invite outcome
|
|
23
|
+
- Inherited kill signal: if semantics remain underspecified, stop execution and reopen planning
|
|
24
|
+
- Inherited dependencies:
|
|
25
|
+
- existing seat limit enforcement
|
|
26
|
+
- current audit log contract
|
|
27
|
+
- Inherited non-goals:
|
|
28
|
+
- no background job redesign
|
|
29
|
+
- no enterprise provisioning layer
|
|
30
|
+
- Upstream evidence: support notes from larger teams
|
|
31
|
+
- Assumptions to re-validate:
|
|
32
|
+
- duplicate emails can be skipped safely
|
|
33
|
+
- seat-limit failures can be partially accepted
|
|
34
|
+
|
|
35
|
+
## Requirement Snapshot
|
|
36
|
+
|
|
37
|
+
- Raw ask: admins want to upload a CSV of emails instead of inviting people one by one
|
|
38
|
+
- User: workspace admins onboarding 20-200 collaborators
|
|
39
|
+
- Pain: manual invites are too slow and error-prone
|
|
40
|
+
- Smallest viable wedge: a CSV upload that clearly predicts accepted, skipped, and rejected rows
|
|
41
|
+
- Out of scope:
|
|
42
|
+
- enterprise SCIM provisioning
|
|
43
|
+
- background retry orchestration
|
|
44
|
+
|
|
45
|
+
## Success Criteria
|
|
46
|
+
|
|
47
|
+
- Observable success signals:
|
|
48
|
+
- admin sees deterministic results for each CSV row
|
|
49
|
+
- duplicate, over-limit, and invalid rows are explained consistently
|
|
50
|
+
- Business / operator success signals:
|
|
51
|
+
- support no longer manually explains bulk invite outcomes
|
|
52
|
+
- Abort signals:
|
|
53
|
+
- billing-seat or audit outcomes differ from the documented plan
|
|
54
|
+
|
|
55
|
+
## Options Considered
|
|
56
|
+
|
|
57
|
+
### Option A
|
|
58
|
+
|
|
59
|
+
- Shape: front-end-only CSV parsing with best-effort invite submission
|
|
60
|
+
- Reuses: existing single-invite API
|
|
61
|
+
- Pros: fast to prototype
|
|
62
|
+
- Cons: semantics depend on hidden backend edge cases
|
|
63
|
+
- Risks: partial success becomes impossible to explain
|
|
64
|
+
|
|
65
|
+
### Option B
|
|
66
|
+
|
|
67
|
+
- Shape: freeze a rule matrix first, then implement import around it
|
|
68
|
+
- Reuses: existing invite engine, but with explicit row-state mapping
|
|
69
|
+
- Pros: makes billing, duplicate, and audit behavior reviewable
|
|
70
|
+
- Cons: more upfront planning
|
|
71
|
+
- Risks: may expose a need for additional shared contracts
|
|
72
|
+
|
|
73
|
+
## Approved Direction
|
|
74
|
+
|
|
75
|
+
- Approved option: `Option B`
|
|
76
|
+
- Why this is the best trade-off now: the import UX is not trustworthy until row outcomes and seat limits are explicitly modeled
|
|
77
|
+
- Why not the other options now: best-effort submission would let implementation invent semantics during execution
|
|
78
|
+
- What we explicitly rejected: a UI-only CSV uploader that guesses row behavior
|
|
79
|
+
- Frozen decisions:
|
|
80
|
+
- bulk import must classify each row into accepted, skipped, or rejected
|
|
81
|
+
- seat-limit failures cannot silently pass
|
|
82
|
+
- audit log entries must match the visible row outcome
|
|
83
|
+
- Deferred questions:
|
|
84
|
+
- whether partial success needs an explicit rollback option
|
|
85
|
+
|
|
86
|
+
## Design
|
|
87
|
+
|
|
88
|
+
- Modules touched:
|
|
89
|
+
- admin invite UI
|
|
90
|
+
- invite validation rules
|
|
91
|
+
- billing / seat limit decision points
|
|
92
|
+
- audit log mapping
|
|
93
|
+
- Data flow:
|
|
94
|
+
- CSV parse -> row validation -> invite decision -> row result summary -> audit log write
|
|
95
|
+
- Contracts:
|
|
96
|
+
- one rule matrix for duplicate, invalid, over-limit, and existing-member rows
|
|
97
|
+
- Error handling:
|
|
98
|
+
- every rejected row must expose a user-readable reason
|
|
99
|
+
- Rollout / migration:
|
|
100
|
+
- release only after rule matrix and verification plan are both approved
|
|
101
|
+
|
|
102
|
+
## File Plan
|
|
103
|
+
|
|
104
|
+
| File | Change | Reason |
|
|
105
|
+
|------|--------|--------|
|
|
106
|
+
| `src/admin/BulkInvitePanel.tsx` | update | upload and result display |
|
|
107
|
+
| `src/admin/BulkInvitePanel.test.tsx` | update | row-state behavior tests |
|
|
108
|
+
| `src/invite/bulk-import.ts` | add | import rule orchestration |
|
|
109
|
+
| `src/invite/bulk-import.test.ts` | add | duplicate / seat / invalid cases |
|
|
110
|
+
| `src/audit/invite-log.ts` | update | audit consistency |
|
|
111
|
+
|
|
112
|
+
## Validation Strategy
|
|
113
|
+
|
|
114
|
+
- Unit: rule matrix tests for each row outcome
|
|
115
|
+
- Integration: admin upload flow covering duplicates and seat-limit failures
|
|
116
|
+
- Manual: CSV import with mixed valid and invalid rows
|
|
117
|
+
- Observability / evidence: row summary and audit log must agree
|
|
118
|
+
|
|
119
|
+
## Risks
|
|
120
|
+
|
|
121
|
+
| Risk | Impact | Mitigation |
|
|
122
|
+
|------|--------|------------|
|
|
123
|
+
| duplicate handling is underspecified | high | freeze explicit rule matrix before continuing |
|
|
124
|
+
| audit and visible row summary diverge | high | verify audit mapping in integration review |
|
|
125
|
+
|
|
126
|
+
## Review Gate
|
|
127
|
+
|
|
128
|
+
- Placeholder scan: pass
|
|
129
|
+
- Consistency scan: fail; current implementation evidence still assumes some row outcomes not frozen here
|
|
130
|
+
- Scope scan: pass
|
|
131
|
+
- Ambiguity scan: blocked; duplicate + seat-limit semantics still need sharper wording
|
|
132
|
+
- Feasibility scan: pass
|
|
133
|
+
- Source alignment: pass; roadmap still prioritizes trust over speed
|
|
134
|
+
- UI / interaction review summary: result states are acceptable if semantics are frozen first
|
|
135
|
+
- DX review summary: execution still needs a single row-outcome matrix
|
|
136
|
+
- Auto-decided items:
|
|
137
|
+
- CSV upload stays inside admin settings
|
|
138
|
+
- Taste decisions:
|
|
139
|
+
- show result rows directly after parse instead of a second confirmation wizard
|
|
140
|
+
- User challenges:
|
|
141
|
+
- can admins predict partial failure without reading documentation?
|
|
142
|
+
- Recommendation: do not declare this design complete until the row-outcome matrix is explicit
|
|
143
|
+
|
|
144
|
+
## Approval
|
|
145
|
+
|
|
146
|
+
- User approval status: `in-review`
|
|
147
|
+
- Follow-up changes after review:
|
|
148
|
+
- add a rule matrix section before execution resumes
|
|
149
|
+
|
|
150
|
+
## First-Read Test
|
|
151
|
+
|
|
152
|
+
- 10 秒内能看出这次为什么不是 `tiny-design`
|
|
153
|
+
- 10 秒内能看出批准方案和被拒方案的边界
|
|
154
|
+
- `cc-do` 是否还能被迫二次设计;这里答案仍然是“会”,所以设计还不能诚实闭环
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
{
|
|
2
|
+
"changeId": "REQ-002",
|
|
3
|
+
"goal": "Add a trustworthy CSV bulk invite flow for admins without inventing row-outcome semantics during execution.",
|
|
4
|
+
"createdAt": "2026-04-16T09:00:00.000Z",
|
|
5
|
+
"updatedAt": "2026-04-16T12:00:00.000Z",
|
|
6
|
+
"requirementId": "REQ-002",
|
|
7
|
+
"requirementVersion": "REQ-002.v2",
|
|
8
|
+
"currentTaskId": null,
|
|
9
|
+
"activePhase": null,
|
|
10
|
+
"tasks": [
|
|
11
|
+
{
|
|
12
|
+
"id": "T001",
|
|
13
|
+
"title": "[TEST] Add failing tests for duplicate and over-limit row outcomes",
|
|
14
|
+
"type": "TEST",
|
|
15
|
+
"phase": 1,
|
|
16
|
+
"parallel": false,
|
|
17
|
+
"dependsOn": [],
|
|
18
|
+
"touches": ["bulk-invite-rules"],
|
|
19
|
+
"files": ["src/invite/bulk-import.test.ts"],
|
|
20
|
+
"run": ["npm test -- src/invite/bulk-import.test.ts"],
|
|
21
|
+
"checks": ["tests fail before implementation"],
|
|
22
|
+
"acceptance": ["dangerous row outcomes are reproduced as explicit failing tests"],
|
|
23
|
+
"verification": ["npm test -- src/invite/bulk-import.test.ts"],
|
|
24
|
+
"evidence": ["failing test output"],
|
|
25
|
+
"context": {
|
|
26
|
+
"readFiles": ["design.md", "tasks.md", "src/invite/bulk-import.ts"],
|
|
27
|
+
"commands": ["npm test -- src/invite/bulk-import.test.ts"],
|
|
28
|
+
"notes": ["freeze row semantics before broader execution"]
|
|
29
|
+
},
|
|
30
|
+
"reviews": { "spec": "pass", "code": "pass" },
|
|
31
|
+
"status": "passed",
|
|
32
|
+
"attempts": 1,
|
|
33
|
+
"maxRetries": 1
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "T002",
|
|
37
|
+
"title": "[IMPL] Implement the initial bulk invite row classification",
|
|
38
|
+
"type": "IMPL",
|
|
39
|
+
"phase": 1,
|
|
40
|
+
"parallel": false,
|
|
41
|
+
"dependsOn": ["T001"],
|
|
42
|
+
"touches": ["bulk-invite-rules"],
|
|
43
|
+
"files": ["src/invite/bulk-import.ts"],
|
|
44
|
+
"run": ["npm test -- src/invite/bulk-import.test.ts"],
|
|
45
|
+
"checks": ["rule tests pass"],
|
|
46
|
+
"acceptance": ["bulk invite rows receive deterministic initial states"],
|
|
47
|
+
"verification": ["npm test -- src/invite/bulk-import.test.ts"],
|
|
48
|
+
"evidence": ["passing test output", "checkpoint summary"],
|
|
49
|
+
"context": {
|
|
50
|
+
"readFiles": ["design.md", "tasks.md", "src/invite/bulk-import.test.ts"],
|
|
51
|
+
"commands": ["npm test -- src/invite/bulk-import.test.ts"],
|
|
52
|
+
"notes": ["do not invent partial-failure semantics outside the approved design"]
|
|
53
|
+
},
|
|
54
|
+
"reviews": { "spec": "pass", "code": "pass" },
|
|
55
|
+
"status": "passed",
|
|
56
|
+
"attempts": 1,
|
|
57
|
+
"maxRetries": 1
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "T003",
|
|
61
|
+
"title": "[TEST] Add failing admin panel tests for mixed CSV results",
|
|
62
|
+
"type": "TEST",
|
|
63
|
+
"phase": 2,
|
|
64
|
+
"parallel": false,
|
|
65
|
+
"dependsOn": ["T002"],
|
|
66
|
+
"touches": ["admin-bulk-invite-ui"],
|
|
67
|
+
"files": ["src/admin/BulkInvitePanel.test.tsx"],
|
|
68
|
+
"run": ["npm test -- src/admin/BulkInvitePanel.test.tsx"],
|
|
69
|
+
"checks": ["admin panel tests fail before UI integration"],
|
|
70
|
+
"acceptance": ["mixed row outcomes are visible as UI failures before implementation"],
|
|
71
|
+
"verification": ["npm test -- src/admin/BulkInvitePanel.test.tsx"],
|
|
72
|
+
"evidence": ["failing test output"],
|
|
73
|
+
"context": {
|
|
74
|
+
"readFiles": ["design.md", "tasks.md", "src/admin/BulkInvitePanel.tsx"],
|
|
75
|
+
"commands": ["npm test -- src/admin/BulkInvitePanel.test.tsx"],
|
|
76
|
+
"notes": ["UI must not hide ambiguous row states"]
|
|
77
|
+
},
|
|
78
|
+
"reviews": { "spec": "pass", "code": "pass" },
|
|
79
|
+
"status": "passed",
|
|
80
|
+
"attempts": 1,
|
|
81
|
+
"maxRetries": 1
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "T004",
|
|
85
|
+
"title": "[IMPL] Render bulk invite results in the admin panel",
|
|
86
|
+
"type": "IMPL",
|
|
87
|
+
"phase": 2,
|
|
88
|
+
"parallel": false,
|
|
89
|
+
"dependsOn": ["T003"],
|
|
90
|
+
"touches": ["admin-bulk-invite-ui"],
|
|
91
|
+
"files": ["src/admin/BulkInvitePanel.tsx"],
|
|
92
|
+
"run": ["npm test -- src/admin/BulkInvitePanel.test.tsx"],
|
|
93
|
+
"checks": ["admin panel tests pass"],
|
|
94
|
+
"acceptance": ["admins can see accepted, skipped, and rejected rows in the panel"],
|
|
95
|
+
"verification": ["npm test -- src/admin/BulkInvitePanel.test.tsx"],
|
|
96
|
+
"evidence": ["passing test output", "review notes"],
|
|
97
|
+
"context": {
|
|
98
|
+
"readFiles": ["design.md", "tasks.md", "src/admin/BulkInvitePanel.test.tsx"],
|
|
99
|
+
"commands": ["npm test -- src/admin/BulkInvitePanel.test.tsx"],
|
|
100
|
+
"notes": ["surface row states without redefining backend truth"]
|
|
101
|
+
},
|
|
102
|
+
"reviews": { "spec": "pass", "code": "pass" },
|
|
103
|
+
"status": "passed",
|
|
104
|
+
"attempts": 1,
|
|
105
|
+
"maxRetries": 1
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "T005",
|
|
109
|
+
"title": "Run mixed-surface checks and gather review evidence",
|
|
110
|
+
"type": "OTHER",
|
|
111
|
+
"phase": 3,
|
|
112
|
+
"parallel": false,
|
|
113
|
+
"dependsOn": ["T004"],
|
|
114
|
+
"touches": ["quality-gates"],
|
|
115
|
+
"files": ["src/admin/BulkInvitePanel.tsx", "src/invite/bulk-import.ts"],
|
|
116
|
+
"run": [
|
|
117
|
+
"npm test -- src/invite/bulk-import.test.ts",
|
|
118
|
+
"npm test -- src/admin/BulkInvitePanel.test.tsx"
|
|
119
|
+
],
|
|
120
|
+
"checks": ["targeted tests pass", "review evidence collected"],
|
|
121
|
+
"acceptance": ["fresh verification evidence exists for cc-check"],
|
|
122
|
+
"verification": [
|
|
123
|
+
"npm test -- src/invite/bulk-import.test.ts",
|
|
124
|
+
"npm test -- src/admin/BulkInvitePanel.test.tsx"
|
|
125
|
+
],
|
|
126
|
+
"evidence": ["passing targeted test output", "review notes"],
|
|
127
|
+
"context": {
|
|
128
|
+
"readFiles": ["tasks.md", "task-manifest.json"],
|
|
129
|
+
"commands": [
|
|
130
|
+
"npm test -- src/invite/bulk-import.test.ts",
|
|
131
|
+
"npm test -- src/admin/BulkInvitePanel.test.tsx"
|
|
132
|
+
],
|
|
133
|
+
"notes": ["fresh evidence can still block if the design contract is incomplete"]
|
|
134
|
+
},
|
|
135
|
+
"reviews": { "spec": "pass", "code": "pass" },
|
|
136
|
+
"status": "passed",
|
|
137
|
+
"attempts": 1,
|
|
138
|
+
"maxRetries": 1
|
|
139
|
+
}
|
|
140
|
+
],
|
|
141
|
+
"metadata": {
|
|
142
|
+
"source": "tasks.md",
|
|
143
|
+
"generatedBy": "docs-example",
|
|
144
|
+
"planVersion": 1
|
|
145
|
+
}
|
|
146
|
+
}
|