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
package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# TASKS
|
|
2
|
+
|
|
3
|
+
## Plan Meta
|
|
4
|
+
|
|
5
|
+
- Requirement version: `REQ-002.v2`
|
|
6
|
+
- Design version: `design.v2`
|
|
7
|
+
- CC-Plan skill version: `3.5.3`
|
|
8
|
+
- Source roadmap item: `RM-010`
|
|
9
|
+
- Source roadmap version: `roadmap.v2`
|
|
10
|
+
|
|
11
|
+
## Execution Handoff
|
|
12
|
+
|
|
13
|
+
- Canonical design: `design.md`
|
|
14
|
+
- Execution mode: `single-path`
|
|
15
|
+
- Frozen decisions:
|
|
16
|
+
- bulk invite results must classify each row
|
|
17
|
+
- audit behavior must match visible results
|
|
18
|
+
- Read first:
|
|
19
|
+
- `design.md`
|
|
20
|
+
- `src/admin/BulkInvitePanel.tsx`
|
|
21
|
+
- `src/invite/bulk-import.ts`
|
|
22
|
+
- `src/audit/invite-log.ts`
|
|
23
|
+
- Commands to trust:
|
|
24
|
+
- `npm test -- src/invite/bulk-import.test.ts`
|
|
25
|
+
- `npm test -- src/admin/BulkInvitePanel.test.tsx`
|
|
26
|
+
- Do not re-decide:
|
|
27
|
+
- duplicate handling semantics
|
|
28
|
+
- seat-limit fallback behavior
|
|
29
|
+
- audit row-result contract
|
|
30
|
+
- Parallel boundaries: no parallel execution until row-outcome semantics are frozen
|
|
31
|
+
|
|
32
|
+
## Phase 1: Rule Matrix
|
|
33
|
+
|
|
34
|
+
- [x] T001 [TEST] Add failing tests for duplicate and over-limit row outcomes (dependsOn:none) `src/invite/bulk-import.test.ts`
|
|
35
|
+
Goal: 先把最危险的 bulk invite 行为变成红灯。
|
|
36
|
+
Files: `src/invite/bulk-import.test.ts`
|
|
37
|
+
Read first: `design.md`, `src/invite/bulk-import.ts`
|
|
38
|
+
Verification: `npm test -- src/invite/bulk-import.test.ts`
|
|
39
|
+
Evidence: failing output
|
|
40
|
+
Ready when: 当前规则文件已经可定位
|
|
41
|
+
|
|
42
|
+
- [x] T002 [IMPL] Implement the initial bulk invite row classification (dependsOn:T001) `src/invite/bulk-import.ts`
|
|
43
|
+
Goal: 给 duplicate / over-limit 行为一个最小实现。
|
|
44
|
+
Files: `src/invite/bulk-import.ts`
|
|
45
|
+
Read first: `design.md`, `src/invite/bulk-import.test.ts`
|
|
46
|
+
Verification: `npm test -- src/invite/bulk-import.test.ts`
|
|
47
|
+
Evidence: passing output + checkpoint
|
|
48
|
+
Ready when: T001 已见红
|
|
49
|
+
|
|
50
|
+
## Phase 2: Surface Integration
|
|
51
|
+
|
|
52
|
+
- [x] T003 [TEST] Add failing admin panel tests for mixed CSV results (dependsOn:T002) `src/admin/BulkInvitePanel.test.tsx`
|
|
53
|
+
Goal: 在 UI 层看到 mixed row outcomes 的真实表现。
|
|
54
|
+
Files: `src/admin/BulkInvitePanel.test.tsx`
|
|
55
|
+
Read first: `design.md`, `src/admin/BulkInvitePanel.tsx`
|
|
56
|
+
Verification: `npm test -- src/admin/BulkInvitePanel.test.tsx`
|
|
57
|
+
Evidence: failing output
|
|
58
|
+
Ready when: T002 已完成
|
|
59
|
+
|
|
60
|
+
- [x] T004 [IMPL] Render bulk invite results in the admin panel (dependsOn:T003) `src/admin/BulkInvitePanel.tsx`
|
|
61
|
+
Goal: 把 row outcomes 接进管理界面。
|
|
62
|
+
Files: `src/admin/BulkInvitePanel.tsx`
|
|
63
|
+
Read first: `design.md`, `src/admin/BulkInvitePanel.test.tsx`
|
|
64
|
+
Verification: `npm test -- src/admin/BulkInvitePanel.test.tsx`
|
|
65
|
+
Evidence: passing output + review notes
|
|
66
|
+
Ready when: T003 已见红
|
|
67
|
+
|
|
68
|
+
## Phase 3: Verification
|
|
69
|
+
|
|
70
|
+
- [x] T005 Run mixed-surface checks and gather review evidence (dependsOn:T004) `bulk invite quality gates`
|
|
71
|
+
Goal: 为 `cc-check` 准备 bulk invite 的新鲜证据。
|
|
72
|
+
Files: `src/admin/BulkInvitePanel.tsx`, `src/invite/bulk-import.ts`
|
|
73
|
+
Read first: `tasks.md`, `task-manifest.json`
|
|
74
|
+
Verification:
|
|
75
|
+
- `npm test -- src/invite/bulk-import.test.ts`
|
|
76
|
+
- `npm test -- src/admin/BulkInvitePanel.test.tsx`
|
|
77
|
+
Evidence: passing output + review notes
|
|
78
|
+
Ready when: T004 已完成
|
package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"changeId": "REQ-002",
|
|
3
|
+
"verdict": "blocked",
|
|
4
|
+
"overall": "fail",
|
|
5
|
+
"summary": "verdict=blocked quick=2/2 strict=0/0 review=blocked",
|
|
6
|
+
"quickGates": [
|
|
7
|
+
{
|
|
8
|
+
"name": "bulk-rule-tests",
|
|
9
|
+
"status": "pass",
|
|
10
|
+
"command": "npm test -- src/invite/bulk-import.test.ts",
|
|
11
|
+
"summary": "targeted bulk invite rule tests passed"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "admin-panel-tests",
|
|
15
|
+
"status": "pass",
|
|
16
|
+
"command": "npm test -- src/admin/BulkInvitePanel.test.tsx",
|
|
17
|
+
"summary": "admin panel tests passed for the current diff"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"strictGates": [],
|
|
21
|
+
"review": {
|
|
22
|
+
"status": "blocked",
|
|
23
|
+
"summary": "The implementation evidence is real, but the requirement-level design contract is still incomplete",
|
|
24
|
+
"details": "Diff review found that duplicate-email and seat-limit semantics are still not frozen tightly enough to trust the current implementation as the requirement truth.",
|
|
25
|
+
"taskReviews": {
|
|
26
|
+
"status": "pass",
|
|
27
|
+
"required": true,
|
|
28
|
+
"summary": "All completed tasks carry spec/code proof",
|
|
29
|
+
"reviewers": [],
|
|
30
|
+
"findings": []
|
|
31
|
+
},
|
|
32
|
+
"diffReview": {
|
|
33
|
+
"status": "blocked",
|
|
34
|
+
"required": false,
|
|
35
|
+
"summary": "Requirement-level review says the row-outcome matrix must be reopened in planning",
|
|
36
|
+
"reviewers": [],
|
|
37
|
+
"findings": [
|
|
38
|
+
"duplicate-email behavior is still underspecified",
|
|
39
|
+
"seat-limit partial-failure semantics are not frozen in design.md"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"findings": [
|
|
43
|
+
"The current code may be locally green while still violating the intended admin trust model"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"blockingFindings": [
|
|
47
|
+
"design: duplicate-email row handling is not frozen tightly enough",
|
|
48
|
+
"design: seat-limit partial-failure semantics must be reopened in cc-plan"
|
|
49
|
+
],
|
|
50
|
+
"reroute": "cc-plan",
|
|
51
|
+
"timestamp": "2026-04-16T12:15:00.000Z"
|
|
52
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"lastSyncedAt": "2026-04-19",
|
|
4
|
+
"backlogMeta": {
|
|
5
|
+
"roadmapVersion": "roadmap.v2",
|
|
6
|
+
"skillVersion": "4.3.1",
|
|
7
|
+
"currentFocusStage": "Stage 2"
|
|
8
|
+
},
|
|
9
|
+
"dependencyHandoff": {
|
|
10
|
+
"serialSpine": "RM-010",
|
|
11
|
+
"parallelReadyNextWave": "-",
|
|
12
|
+
"notesOnBlockers": "verification is blocked until the import contract covers limits, duplicates, billing, and audit consistency"
|
|
13
|
+
},
|
|
14
|
+
"items": [
|
|
15
|
+
{
|
|
16
|
+
"rmId": "RM-010",
|
|
17
|
+
"item": "Add CSV bulk invite import for admins",
|
|
18
|
+
"stage": "Stage 2",
|
|
19
|
+
"priority": "P1",
|
|
20
|
+
"primaryCapability": "cap-bulk-invite-import",
|
|
21
|
+
"secondaryCapabilities": [
|
|
22
|
+
"cap-workspace-membership"
|
|
23
|
+
],
|
|
24
|
+
"expectedSpecDelta": "define import semantics before widening current truth",
|
|
25
|
+
"dependsOn": [],
|
|
26
|
+
"status": "Verification blocked",
|
|
27
|
+
"req": "REQ-002",
|
|
28
|
+
"progress": "80%",
|
|
29
|
+
"backlog": {
|
|
30
|
+
"capabilityGap": "admins can invite one user at a time but cannot safely import invite batches",
|
|
31
|
+
"evidence": "sales onboarding asks for spreadsheet-scale invites",
|
|
32
|
+
"parallelWith": [],
|
|
33
|
+
"unknowns": "duplicate-email policy, seat enforcement, audit fan-out",
|
|
34
|
+
"nextDecision": "reroute to full design before more execution work",
|
|
35
|
+
"ready": true,
|
|
36
|
+
"whyNow": "demand is real, but the contract is too wide to keep improvising in code",
|
|
37
|
+
"successSignal": "the capability has a trusted import contract before implementation resumes",
|
|
38
|
+
"entryConstraints": "must freeze limits, duplicates, warnings, and audit behavior first",
|
|
39
|
+
"openRisks": "another partial implementation pass would deepen the semantic drift",
|
|
40
|
+
"firstPlanningQuestion": "which subflows share one import contract and which need explicit splits?",
|
|
41
|
+
"requiredContextToLoad": "invite limits, billing rules, duplicate handling, audit logging",
|
|
42
|
+
"whyReadyNow": "the blocker is design truth, not implementation effort",
|
|
43
|
+
"parked": false,
|
|
44
|
+
"parkedReason": "",
|
|
45
|
+
"triggerToReopen": "",
|
|
46
|
+
"missingEvidence": ""
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
@@ -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-020 | Add an audit-log export summary download | Stage 2 | P1 | cap-audit-log-export | - | admins can export raw audit data but not a compact summary for review | codify local export summary truth | support escalations keep asking for a lightweight summary bundle | - | - | csv-only or csv-plus-markdown summary | resume from local handoff once remote access returns | Yes |
|
|
16
|
+
|
|
17
|
+
## Dependency Handoff
|
|
18
|
+
|
|
19
|
+
- Serial spine: RM-020
|
|
20
|
+
- Parallel-ready next wave: -
|
|
21
|
+
- Notes on blockers: export work stays local-only until the next maintainer has remote access
|
|
22
|
+
|
|
23
|
+
## Ready For Req-Plan
|
|
24
|
+
|
|
25
|
+
- RM-020:
|
|
26
|
+
- Primary Capability: `cap-audit-log-export`
|
|
27
|
+
- Secondary Capabilities: `-`
|
|
28
|
+
- Why now: the implementation and proof already exist, only the landing path is deferred
|
|
29
|
+
- Success signal: admins can download a concise audit summary without manual spreadsheet cleanup
|
|
30
|
+
- Entry constraints: stay local-only and avoid remote automation
|
|
31
|
+
- Capability gap: admins can export raw audit data but not a compact summary for review
|
|
32
|
+
- Expected spec delta: codify local export summary truth
|
|
33
|
+
- Open risks: handoff may age if schema changes before the next maintainer resumes
|
|
34
|
+
- First planning question: does the summary format need another review before remote landing?
|
|
35
|
+
- Required context to load: admin export screen, generated summary fixture, local handoff notes
|
|
36
|
+
- Depends On: `-`
|
|
37
|
+
- Parallel With: `-`
|
|
38
|
+
- Why this is ready now: the requirement is already proven and only needs a clean resume point
|
|
39
|
+
|
|
40
|
+
## Parked
|
|
41
|
+
|
|
42
|
+
- RM-XXX:
|
|
43
|
+
- Reason parked:
|
|
44
|
+
- Trigger to reopen:
|
|
45
|
+
- Missing evidence:
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Local-Handoff 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`, `cc-act@1.6.1`
|
|
8
|
+
|
|
9
|
+
This example shows verified work that is **ready to move forward**, but `cc-act` still chooses `local-handoff`.
|
|
10
|
+
|
|
11
|
+
That is not a failure.
|
|
12
|
+
|
|
13
|
+
It simply means:
|
|
14
|
+
|
|
15
|
+
- the requirement passed verification
|
|
16
|
+
- a PR or remote push is intentionally not the next action
|
|
17
|
+
- the workflow still must leave a clean handoff for the next maintainer
|
|
18
|
+
|
|
19
|
+
## Scenario
|
|
20
|
+
|
|
21
|
+
The fictional product now adds a downloadable audit-log export summary inside the admin console.
|
|
22
|
+
|
|
23
|
+
The implementation is done and verified.
|
|
24
|
+
|
|
25
|
+
But the current environment is local-only:
|
|
26
|
+
|
|
27
|
+
- remote access is unavailable
|
|
28
|
+
- the branch should not be pushed yet
|
|
29
|
+
- another maintainer will pick it up later
|
|
30
|
+
|
|
31
|
+
## What To Look For
|
|
32
|
+
|
|
33
|
+
1. Why `cc-check` is `pass`
|
|
34
|
+
2. Why `cc-act` still does not choose `create-pr`
|
|
35
|
+
3. How `resume-index.md` becomes the only final handoff file
|
|
36
|
+
|
|
37
|
+
## Artifact Map
|
|
38
|
+
|
|
39
|
+
- `ROADMAP.md`
|
|
40
|
+
- `roadmap-tracking.json` (shared roadmap/backlog truth)
|
|
41
|
+
- `BACKLOG.md`
|
|
42
|
+
- `changes/REQ-003-audit-log-export/planning/design.md`
|
|
43
|
+
- `changes/REQ-003-audit-log-export/planning/tasks.md`
|
|
44
|
+
- `changes/REQ-003-audit-log-export/planning/task-manifest.json`
|
|
45
|
+
- `changes/REQ-003-audit-log-export/review/report-card.json`
|
|
46
|
+
- `changes/REQ-003-audit-log-export/handoff/resume-index.md`
|
|
47
|
+
|
|
48
|
+
## Why There Is No `pr-brief.md`
|
|
49
|
+
|
|
50
|
+
This sample intentionally chooses `local-handoff`.
|
|
51
|
+
|
|
52
|
+
That mode needs:
|
|
53
|
+
|
|
54
|
+
- `resume-index.md`
|
|
55
|
+
|
|
56
|
+
It does **not** require a PR brief yet.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# ROADMAP
|
|
2
|
+
|
|
3
|
+
## Roadmap Meta
|
|
4
|
+
|
|
5
|
+
- Roadmap version: `roadmap.v3`
|
|
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.v2`
|
|
13
|
+
|
|
14
|
+
## Context Snapshot
|
|
15
|
+
|
|
16
|
+
- Product / repo: `workspace-lite`
|
|
17
|
+
- Project stage: collaboration and admin reporting are now both in use
|
|
18
|
+
- Users: workspace admins reviewing activity and sharing reports internally
|
|
19
|
+
- Pain: admins can inspect audit events, but cannot export a concise summary
|
|
20
|
+
- Existing workaround: manually copy rows into an internal note
|
|
21
|
+
- Strongest demand evidence: admins ask for a downloadable summary during weekly reviews
|
|
22
|
+
- Why now: admin trust now depends on visibility and operational clarity
|
|
23
|
+
- Distribution path: internal admin beta
|
|
24
|
+
- Deadline / forcing function: internal ops review on `2026-04-25`
|
|
25
|
+
- Team / capacity: one engineer
|
|
26
|
+
- Hard constraints: keep export local to the current admin console
|
|
27
|
+
- Adoption / trust bottleneck: admins want proof they can take activity history out of the UI cleanly
|
|
28
|
+
- Known unknowns: whether CSV alone is enough or if JSON export will be needed later
|
|
29
|
+
|
|
30
|
+
## Recommended Route
|
|
31
|
+
|
|
32
|
+
- Recommendation: `wedge-first`
|
|
33
|
+
- Why this route wins now: a simple downloadable summary removes the current reporting pain without broader analytics work
|
|
34
|
+
- Why the rejected routes lose now: platform and rescue variants add scope before the current operator need is solved
|
|
35
|
+
- First signal to watch: admins can finish weekly review without copying rows manually
|
|
36
|
+
- Kill signal / stop condition: if export requires a shared reporting pipeline redesign
|
|
37
|
+
|
|
38
|
+
## Implementation Tracking
|
|
39
|
+
- Tracking source: `roadmap-tracking.json`
|
|
40
|
+
|
|
41
|
+
<!-- roadmap-tracking:start -->
|
|
42
|
+
| RM-ID | Item | Stage | Priority | Primary Capability | Secondary Capabilities | Expected Spec Delta | Depends On | Status | REQ | Progress |
|
|
43
|
+
|------|------|------|------|------|------|------|------|------|------|------|
|
|
44
|
+
| RM-020 | Add an audit-log export summary download | Stage 2 | P1 | cap-audit-log-export | - | codify local export summary truth | - | Local handoff | REQ-003 | 100% |
|
|
45
|
+
<!-- roadmap-tracking:end -->
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Resume Index
|
|
2
|
+
|
|
3
|
+
## Current Reality
|
|
4
|
+
|
|
5
|
+
- Requirement: `REQ-003`
|
|
6
|
+
- Roadmap item: `RM-020`
|
|
7
|
+
- Verification state: `pass`
|
|
8
|
+
- Ship mode: `local-handoff`
|
|
9
|
+
- Current branch: `feature/audit-summary-export`
|
|
10
|
+
- Blocking environment fact: remote push / PR creation is unavailable right now
|
|
11
|
+
|
|
12
|
+
## What Is Already Done
|
|
13
|
+
|
|
14
|
+
- design approved as `tiny-design`
|
|
15
|
+
- implementation tasks `T001-T003` completed
|
|
16
|
+
- targeted test and lint evidence collected
|
|
17
|
+
- `report-card.json` confirms `pass`
|
|
18
|
+
|
|
19
|
+
## Next Entry
|
|
20
|
+
|
|
21
|
+
- when remote access is restored, rerun `detect-ship-target`
|
|
22
|
+
- if the branch still has no PR, switch from `local-handoff` to `create-pr`
|
|
23
|
+
- use `resume-index.md` and `report-card.json` as the truth sources for the next ship step
|
|
24
|
+
|
|
25
|
+
## Read First
|
|
26
|
+
|
|
27
|
+
- `design.md`
|
|
28
|
+
- `tasks.md`
|
|
29
|
+
- `task-manifest.json`
|
|
30
|
+
- `report-card.json`
|
|
31
|
+
|
|
32
|
+
## How To Re-Verify
|
|
33
|
+
|
|
34
|
+
- `npm test -- src/admin/AuditSummaryPanel.test.tsx`
|
|
35
|
+
- `npm run lint -- src/admin/AuditSummaryPanel.tsx`
|
|
36
|
+
|
|
37
|
+
## Open Follow-Up
|
|
38
|
+
|
|
39
|
+
- if operators ask for JSON or scheduled exports, lift that into a new roadmap item instead of reopening `REQ-003`
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Status Report
|
|
2
|
+
|
|
3
|
+
## Requirement
|
|
4
|
+
|
|
5
|
+
- Change ID: `REQ-003`
|
|
6
|
+
- Roadmap item: `RM-020`
|
|
7
|
+
- Current state: verified and ready for `local-handoff`
|
|
8
|
+
|
|
9
|
+
## What Is True Now
|
|
10
|
+
|
|
11
|
+
- The admin audit summary panel can export the currently visible summary rows as CSV
|
|
12
|
+
- The patch stayed inside the approved `tiny-design` boundary
|
|
13
|
+
- Fresh targeted test and lint evidence both passed
|
|
14
|
+
- `cc-check` returned `pass`
|
|
15
|
+
|
|
16
|
+
## Ship Decision
|
|
17
|
+
|
|
18
|
+
- Recommended mode: `local-handoff`
|
|
19
|
+
- Why now: the work is verified, but remote push / PR creation is intentionally unavailable in this environment
|
|
20
|
+
- Why not others:
|
|
21
|
+
- not `create-pr`: remote access is unavailable
|
|
22
|
+
- not `update-pr`: there is no existing PR to refresh
|
|
23
|
+
- not `post-merge-closeout`: the change is not merged yet
|
|
24
|
+
|
|
25
|
+
## Docs And Follow-Up
|
|
26
|
+
|
|
27
|
+
- README / release docs: unchanged; this is not a public release step
|
|
28
|
+
- Backlog writeback: if admins request additional export formats, open a new roadmap item
|
|
29
|
+
- Next entry point: use `resume-index.md` to pick up the branch when remote access becomes available
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# DESIGN
|
|
2
|
+
|
|
3
|
+
## Document Meta
|
|
4
|
+
|
|
5
|
+
- Requirement version: `REQ-003.v1`
|
|
6
|
+
- Design version: `design.v1`
|
|
7
|
+
- CC-Plan skill version: `3.5.3`
|
|
8
|
+
- Requirement ID: `REQ-003`
|
|
9
|
+
- Design mode: `tiny-design`
|
|
10
|
+
- Why this stays `tiny-design`: the patch adds one export action inside the existing admin audit UI without changing data contracts
|
|
11
|
+
- Approval status: `approved`
|
|
12
|
+
- Source roadmap item: `RM-020`
|
|
13
|
+
- Source roadmap version: `roadmap.v3`
|
|
14
|
+
|
|
15
|
+
## Source Handoff
|
|
16
|
+
|
|
17
|
+
- Why now: admins need a lightweight way to take weekly activity summaries out of the UI
|
|
18
|
+
- Inherited success signal: admins can download the summary without manual row copying
|
|
19
|
+
- Inherited kill signal: if export requires a shared reporting pipeline, reopen planning
|
|
20
|
+
- Inherited non-goals: no JSON export mode, no scheduled reporting
|
|
21
|
+
- Upstream evidence: repeated internal admin requests during weekly reviews
|
|
22
|
+
|
|
23
|
+
## Frozen Design Card
|
|
24
|
+
|
|
25
|
+
- Change: add a `Download summary` action that exports the visible audit summary rows as CSV
|
|
26
|
+
- Keep out: no multi-format export and no shared reporting backend
|
|
27
|
+
- Touched files:
|
|
28
|
+
- `src/admin/AuditSummaryPanel.tsx`
|
|
29
|
+
- `src/admin/AuditSummaryPanel.test.tsx`
|
|
30
|
+
- Contract changes: none; reuse the existing summary rows already shown in the panel
|
|
31
|
+
- Key decisions that `cc-do` must not re-decide:
|
|
32
|
+
- export only what is already visible in the panel
|
|
33
|
+
- use CSV as the single output format
|
|
34
|
+
- keep the action inside the current admin panel
|
|
35
|
+
- Upgrade trigger to `full-design`: if export needs background generation or new reporting contracts
|
|
36
|
+
|
|
37
|
+
## Validation
|
|
38
|
+
|
|
39
|
+
- Primary check: targeted panel test proves the export action is available and uses current summary rows
|
|
40
|
+
- Secondary checks:
|
|
41
|
+
- existing audit summary rendering stays green
|
|
42
|
+
- lint passes for the touched panel
|
|
43
|
+
- Evidence to collect:
|
|
44
|
+
- failing test before implementation
|
|
45
|
+
- passing test and lint after implementation
|
|
46
|
+
|
|
47
|
+
## Main Risk
|
|
48
|
+
|
|
49
|
+
- Risk: admins may soon ask for more export formats
|
|
50
|
+
- Mitigation: treat JSON or scheduled exports as later roadmap items
|
|
51
|
+
|
|
52
|
+
## Review Gate
|
|
53
|
+
|
|
54
|
+
- Placeholder scan: pass
|
|
55
|
+
- Consistency scan: pass
|
|
56
|
+
- Scope scan: pass
|
|
57
|
+
- Ambiguity scan: pass
|
|
58
|
+
- Feasibility scan: pass
|
|
59
|
+
- Final recommendation: approved as `tiny-design`
|
|
60
|
+
|
|
61
|
+
## Approval
|
|
62
|
+
|
|
63
|
+
- User approval status: approved
|
|
64
|
+
- Deferred questions:
|
|
65
|
+
- if admins ask for machine-readable export next, open a separate requirement
|
|
66
|
+
|
|
67
|
+
## First-Read Test
|
|
68
|
+
|
|
69
|
+
- 一眼能看出这次为什么够小
|
|
70
|
+
- 一眼能看出什么情况会逼它升级成 `full-design`
|
|
71
|
+
- `cc-do` 看完不会继续追问“导出的字段从哪里来”
|
package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
{
|
|
2
|
+
"changeId": "REQ-003",
|
|
3
|
+
"goal": "Add a local CSV export for the existing audit summary panel without introducing new reporting contracts.",
|
|
4
|
+
"createdAt": "2026-04-16T13:00:00.000Z",
|
|
5
|
+
"updatedAt": "2026-04-16T14:20:00.000Z",
|
|
6
|
+
"requirementId": "REQ-003",
|
|
7
|
+
"requirementVersion": "REQ-003.v1",
|
|
8
|
+
"currentTaskId": null,
|
|
9
|
+
"activePhase": null,
|
|
10
|
+
"tasks": [
|
|
11
|
+
{
|
|
12
|
+
"id": "T001",
|
|
13
|
+
"title": "[TEST] Add a failing test for the missing download action",
|
|
14
|
+
"type": "TEST",
|
|
15
|
+
"phase": 1,
|
|
16
|
+
"parallel": false,
|
|
17
|
+
"dependsOn": [],
|
|
18
|
+
"touches": ["audit-summary", "tests"],
|
|
19
|
+
"files": ["src/admin/AuditSummaryPanel.test.tsx"],
|
|
20
|
+
"run": ["npm test -- src/admin/AuditSummaryPanel.test.tsx"],
|
|
21
|
+
"checks": ["test fails before implementation"],
|
|
22
|
+
"acceptance": ["the missing download action is reproduced as a failing test"],
|
|
23
|
+
"verification": ["npm test -- src/admin/AuditSummaryPanel.test.tsx"],
|
|
24
|
+
"evidence": ["failing test output"],
|
|
25
|
+
"context": {
|
|
26
|
+
"readFiles": ["design.md", "tasks.md", "src/admin/AuditSummaryPanel.tsx"],
|
|
27
|
+
"commands": ["npm test -- src/admin/AuditSummaryPanel.test.tsx"],
|
|
28
|
+
"notes": ["stay inside the current audit summary panel"]
|
|
29
|
+
},
|
|
30
|
+
"reviews": { "spec": "pass", "code": "pass" },
|
|
31
|
+
"status": "passed",
|
|
32
|
+
"attempts": 1,
|
|
33
|
+
"maxRetries": 1
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "T002",
|
|
37
|
+
"title": "[IMPL] Add the download summary action",
|
|
38
|
+
"type": "IMPL",
|
|
39
|
+
"phase": 1,
|
|
40
|
+
"parallel": false,
|
|
41
|
+
"dependsOn": ["T001"],
|
|
42
|
+
"touches": ["audit-summary"],
|
|
43
|
+
"files": ["src/admin/AuditSummaryPanel.tsx"],
|
|
44
|
+
"run": ["npm test -- src/admin/AuditSummaryPanel.test.tsx"],
|
|
45
|
+
"checks": ["panel test passes"],
|
|
46
|
+
"acceptance": ["admins can trigger a CSV download from the existing summary panel"],
|
|
47
|
+
"verification": ["npm test -- src/admin/AuditSummaryPanel.test.tsx"],
|
|
48
|
+
"evidence": ["passing test output", "checkpoint summary"],
|
|
49
|
+
"context": {
|
|
50
|
+
"readFiles": ["design.md", "tasks.md", "src/admin/AuditSummaryPanel.test.tsx"],
|
|
51
|
+
"commands": ["npm test -- src/admin/AuditSummaryPanel.test.tsx"],
|
|
52
|
+
"notes": ["reuse visible summary rows as the export source"]
|
|
53
|
+
},
|
|
54
|
+
"reviews": { "spec": "pass", "code": "pass" },
|
|
55
|
+
"status": "passed",
|
|
56
|
+
"attempts": 1,
|
|
57
|
+
"maxRetries": 1
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "T003",
|
|
61
|
+
"title": "Run targeted checks and collect handoff evidence",
|
|
62
|
+
"type": "OTHER",
|
|
63
|
+
"phase": 2,
|
|
64
|
+
"parallel": false,
|
|
65
|
+
"dependsOn": ["T002"],
|
|
66
|
+
"touches": ["quality-gates"],
|
|
67
|
+
"files": ["src/admin/AuditSummaryPanel.tsx", "src/admin/AuditSummaryPanel.test.tsx"],
|
|
68
|
+
"run": [
|
|
69
|
+
"npm test -- src/admin/AuditSummaryPanel.test.tsx",
|
|
70
|
+
"npm run lint -- src/admin/AuditSummaryPanel.tsx"
|
|
71
|
+
],
|
|
72
|
+
"checks": ["targeted tests pass", "lint passes"],
|
|
73
|
+
"acceptance": ["fresh verification evidence exists for local handoff"],
|
|
74
|
+
"verification": [
|
|
75
|
+
"npm test -- src/admin/AuditSummaryPanel.test.tsx",
|
|
76
|
+
"npm run lint -- src/admin/AuditSummaryPanel.tsx"
|
|
77
|
+
],
|
|
78
|
+
"evidence": ["passing test output", "clean lint output"],
|
|
79
|
+
"context": {
|
|
80
|
+
"readFiles": ["tasks.md", "task-manifest.json"],
|
|
81
|
+
"commands": [
|
|
82
|
+
"npm test -- src/admin/AuditSummaryPanel.test.tsx",
|
|
83
|
+
"npm run lint -- src/admin/AuditSummaryPanel.tsx"
|
|
84
|
+
],
|
|
85
|
+
"notes": ["remote push is intentionally out of scope for this example"]
|
|
86
|
+
},
|
|
87
|
+
"reviews": { "spec": "pass", "code": "pass" },
|
|
88
|
+
"status": "passed",
|
|
89
|
+
"attempts": 1,
|
|
90
|
+
"maxRetries": 1
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
"metadata": {
|
|
94
|
+
"source": "tasks.md",
|
|
95
|
+
"generatedBy": "docs-example",
|
|
96
|
+
"planVersion": 1
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# TASKS
|
|
2
|
+
|
|
3
|
+
## Plan Meta
|
|
4
|
+
|
|
5
|
+
- Requirement version: `REQ-003.v1`
|
|
6
|
+
- Design version: `design.v1`
|
|
7
|
+
- CC-Plan skill version: `3.5.3`
|
|
8
|
+
- Source roadmap item: `RM-020`
|
|
9
|
+
- Source roadmap version: `roadmap.v3`
|
|
10
|
+
|
|
11
|
+
## Execution Handoff
|
|
12
|
+
|
|
13
|
+
- Canonical design: `design.md`
|
|
14
|
+
- Execution mode: `single-path`
|
|
15
|
+
- Frozen decisions:
|
|
16
|
+
- export only the visible audit summary rows
|
|
17
|
+
- CSV is the only format in this requirement
|
|
18
|
+
- Read first:
|
|
19
|
+
- `design.md`
|
|
20
|
+
- `src/admin/AuditSummaryPanel.tsx`
|
|
21
|
+
- `src/admin/AuditSummaryPanel.test.tsx`
|
|
22
|
+
- Commands to trust:
|
|
23
|
+
- `npm test -- src/admin/AuditSummaryPanel.test.tsx`
|
|
24
|
+
- `npm run lint -- src/admin/AuditSummaryPanel.tsx`
|
|
25
|
+
- Do not re-decide:
|
|
26
|
+
- summary row source
|
|
27
|
+
- export format
|
|
28
|
+
- panel placement
|
|
29
|
+
- Parallel boundaries: none
|
|
30
|
+
|
|
31
|
+
## Phase 1: Foundation
|
|
32
|
+
|
|
33
|
+
- [x] T001 [TEST] Add a failing test for the missing download action (dependsOn:none) `src/admin/AuditSummaryPanel.test.tsx`
|
|
34
|
+
Goal: 证明现在还没有可下载的 summary export。
|
|
35
|
+
Files: `src/admin/AuditSummaryPanel.test.tsx`
|
|
36
|
+
Read first: `design.md`, `src/admin/AuditSummaryPanel.tsx`
|
|
37
|
+
Verification: `npm test -- src/admin/AuditSummaryPanel.test.tsx`
|
|
38
|
+
Evidence: failing output
|
|
39
|
+
Ready when: 当前 audit summary test 已可运行
|
|
40
|
+
|
|
41
|
+
- [x] T002 [IMPL] Add the download summary action (dependsOn:T001) `src/admin/AuditSummaryPanel.tsx`
|
|
42
|
+
Goal: 用最小实现让 summary export 真的可用。
|
|
43
|
+
Files: `src/admin/AuditSummaryPanel.tsx`
|
|
44
|
+
Read first: `design.md`, `src/admin/AuditSummaryPanel.test.tsx`
|
|
45
|
+
Verification: `npm test -- src/admin/AuditSummaryPanel.test.tsx`
|
|
46
|
+
Evidence: passing output + checkpoint
|
|
47
|
+
Ready when: T001 已见红
|
|
48
|
+
|
|
49
|
+
## Phase 2: Verify
|
|
50
|
+
|
|
51
|
+
- [x] T003 Run targeted checks and collect handoff evidence (dependsOn:T002) `audit summary quality gates`
|
|
52
|
+
Goal: 为 `cc-check` 和 `cc-act` 留下这次导出改动的真实证据。
|
|
53
|
+
Files: `src/admin/AuditSummaryPanel.tsx`, `src/admin/AuditSummaryPanel.test.tsx`
|
|
54
|
+
Read first: `tasks.md`, `task-manifest.json`
|
|
55
|
+
Verification:
|
|
56
|
+
- `npm test -- src/admin/AuditSummaryPanel.test.tsx`
|
|
57
|
+
- `npm run lint -- src/admin/AuditSummaryPanel.tsx`
|
|
58
|
+
Evidence: passing output + clean lint output
|
|
59
|
+
Ready when: T002 已完成
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"changeId": "REQ-003",
|
|
3
|
+
"verdict": "pass",
|
|
4
|
+
"overall": "pass",
|
|
5
|
+
"summary": "verdict=pass quick=2/2 strict=0/0 review=pass",
|
|
6
|
+
"quickGates": [
|
|
7
|
+
{
|
|
8
|
+
"name": "targeted-tests",
|
|
9
|
+
"status": "pass",
|
|
10
|
+
"command": "npm test -- src/admin/AuditSummaryPanel.test.tsx",
|
|
11
|
+
"summary": "audit summary panel targeted tests passed"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "lint",
|
|
15
|
+
"status": "pass",
|
|
16
|
+
"command": "npm run lint -- src/admin/AuditSummaryPanel.tsx",
|
|
17
|
+
"summary": "lint passed for the touched panel file"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"strictGates": [],
|
|
21
|
+
"review": {
|
|
22
|
+
"status": "pass",
|
|
23
|
+
"summary": "Task review proof and requirement-level diff review both passed",
|
|
24
|
+
"details": "The diff stayed inside the approved tiny-design scope and verification evidence is fresh.",
|
|
25
|
+
"taskReviews": {
|
|
26
|
+
"status": "pass",
|
|
27
|
+
"required": true,
|
|
28
|
+
"summary": "All completed tasks carry spec/code proof",
|
|
29
|
+
"reviewers": [],
|
|
30
|
+
"findings": []
|
|
31
|
+
},
|
|
32
|
+
"diffReview": {
|
|
33
|
+
"status": "pass",
|
|
34
|
+
"required": false,
|
|
35
|
+
"summary": "No blocking requirement-level findings",
|
|
36
|
+
"reviewers": [],
|
|
37
|
+
"findings": []
|
|
38
|
+
},
|
|
39
|
+
"findings": []
|
|
40
|
+
},
|
|
41
|
+
"blockingFindings": [],
|
|
42
|
+
"reroute": "none",
|
|
43
|
+
"timestamp": "2026-04-16T14:30:00.000Z"
|
|
44
|
+
}
|