cc-devflow 4.2.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 +101 -4
- package/README.md +120 -755
- package/README.zh-CN.md +119 -755
- 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 +111 -0
- 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/{harness → skill-runtime}/operations/release.js +18 -5
- 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 -28
- package/.claude/commands/flow/archive.md +0 -280
- package/.claude/commands/flow/checklist.md +0 -18
- package/.claude/commands/flow/clarify.md +0 -18
- 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/new.md +0 -23
- package/.claude/commands/flow/quality.md +0 -21
- 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/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/templates/ARCHITECTURE_TEMPLATE.md +0 -633
- 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/EPIC_TEMPLATE.md +0 -805
- 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/PRD_TEMPLATE.md +0 -562
- 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/STYLE_TEMPLATE.md +0 -1266
- package/.claude/docs/templates/TASKS_TEMPLATE.md +0 -523
- package/.claude/docs/templates/TECH_DESIGN_TEMPLATE.md +0 -1019
- package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +0 -1435
- 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.md +0 -76
- 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 -527
- package/.claude/scripts/detect-file-conflicts.sh +0 -151
- package/.claude/scripts/export-contracts.sh +0 -117
- 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/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/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/cc-devflow-orchestrator/SKILL.md +0 -169
- package/.claude/skills/domain/attention-refresh/SKILL.md +0 -170
- package/.claude/skills/domain/brainstorming/SKILL.md +0 -161
- package/.claude/skills/domain/debugging/SKILL.md +0 -221
- package/.claude/skills/domain/finishing-branch/SKILL.md +0 -189
- package/.claude/skills/domain/receiving-review/SKILL.md +0 -153
- package/.claude/skills/domain/tdd/SKILL.md +0 -218
- package/.claude/skills/domain/verification/SKILL.md +0 -158
- package/.claude/skills/guardrail/constitution-guardian/SKILL.md +0 -306
- package/.claude/skills/guardrail/tdd-enforcer/SKILL.md +0 -192
- package/.claude/skills/skill-rules.json +0 -359
- package/.claude/skills/utility/constitution-quick-ref/SKILL.md +0 -374
- package/.claude/skills/utility/file-standards/SKILL.md +0 -353
- package/.claude/skills/utility/fractal-docs/SKILL.md +0 -45
- package/.claude/skills/utility/journey-checker/SKILL.md +0 -199
- package/.claude/skills/utility/journey-checker/pressure-scenarios.md +0 -164
- package/.claude/skills/utility/npm-release/SKILL.md +0 -314
- package/.claude/skills/utility/skill-creator/LICENSE.txt +0 -202
- package/.claude/skills/utility/skill-creator/SKILL.md +0 -356
- package/.claude/skills/utility/skill-creator/references/output-patterns.md +0 -82
- package/.claude/skills/utility/skill-creator/references/workflows.md +0 -28
- package/.claude/skills/utility/skill-creator/scripts/init_skill.py +0 -303
- package/.claude/skills/utility/skill-creator/scripts/package_skill.py +0 -110
- package/.claude/skills/utility/skill-creator/scripts/quick_validate.py +0 -95
- package/.claude/skills/workflow/CLAUDE.md +0 -24
- package/.claude/skills/workflow/flow-dev/CLAUDE.md +0 -16
- package/.claude/skills/workflow/flow-dev/SKILL.md +0 -94
- package/.claude/skills/workflow/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -71
- package/.claude/skills/workflow/flow-dev/context.jsonl +0 -4
- package/.claude/skills/workflow/flow-dev/dev-implementer.jsonl +0 -8
- package/.claude/skills/workflow/flow-dev/scripts/entry-gate.sh +0 -116
- package/.claude/skills/workflow/flow-dev/scripts/exit-gate.sh +0 -101
- package/.claude/skills/workflow/flow-dev/scripts/task-orchestrator.sh +0 -106
- package/.claude/skills/workflow/flow-fix/SKILL.md +0 -105
- package/.claude/skills/workflow/flow-fix/context.jsonl +0 -6
- package/.claude/skills/workflow/flow-fix/references/bug-analyzer.md +0 -381
- package/.claude/skills/workflow/flow-init/SKILL.md +0 -84
- package/.claude/skills/workflow/flow-init/assets/BRAINSTORM_TEMPLATE.md +0 -148
- package/.claude/skills/workflow/flow-init/assets/INIT_FLOW_TEMPLATE.md +0 -198
- package/.claude/skills/workflow/flow-init/assets/RESEARCH_TEMPLATE.md +0 -276
- package/.claude/skills/workflow/flow-init/context.jsonl +0 -5
- package/.claude/skills/workflow/flow-init/references/flow-researcher.md +0 -132
- package/.claude/skills/workflow/flow-init/scripts/check-prerequisites.sh +0 -240
- package/.claude/skills/workflow/flow-init/scripts/consolidate-research.sh +0 -182
- package/.claude/skills/workflow/flow-init/scripts/create-requirement.sh +0 -404
- package/.claude/skills/workflow/flow-init/scripts/generate-research-tasks.sh +0 -157
- package/.claude/skills/workflow/flow-init/scripts/populate-research-tasks.sh +0 -284
- package/.claude/skills/workflow/flow-init/scripts/validate-research.sh +0 -340
- package/.claude/skills/workflow/flow-quality/SKILL.md +0 -98
- package/.claude/skills/workflow/flow-quality/context.jsonl +0 -6
- package/.claude/skills/workflow/flow-quality/references/code-quality-reviewer.md +0 -205
- package/.claude/skills/workflow/flow-quality/references/qa-tester.md +0 -313
- package/.claude/skills/workflow/flow-quality/references/security-reviewer.md +0 -314
- package/.claude/skills/workflow/flow-quality/references/spec-reviewer.md +0 -221
- package/.claude/skills/workflow/flow-release/SKILL.md +0 -49
- package/.claude/skills/workflow/flow-release/context.jsonl +0 -5
- package/.claude/skills/workflow/flow-release/references/release-manager.md +0 -295
- package/.claude/skills/workflow/flow-spec/CLAUDE.md +0 -17
- package/.claude/skills/workflow/flow-spec/SKILL.md +0 -74
- package/.claude/skills/workflow/flow-spec/context.jsonl +0 -5
- package/.claude/skills/workflow/flow-spec/scripts/entry-gate.sh +0 -194
- package/.claude/skills/workflow/flow-spec/scripts/exit-gate.sh +0 -244
- package/.claude/skills/workflow/flow-spec/scripts/parallel-orchestrator.sh +0 -205
- package/.claude/skills/workflow/flow-spec/scripts/team-communication.sh +0 -353
- package/.claude/skills/workflow/flow-spec/scripts/team-init.sh +0 -195
- package/.claude/skills/workflow/flow-spec/scripts/test-team-mode.sh +0 -496
- package/.claude/skills/workflow/flow-spec/team-config.json +0 -165
- package/.claude/skills/workflow/flow-verify/CLAUDE.md +0 -10
- package/.claude/skills/workflow/flow-verify/SKILL.md +0 -53
- package/.claude/skills/workflow/flow-verify/context.jsonl +0 -5
- 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/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 -21
- package/lib/harness/cli.js +0 -208
- package/lib/harness/index.js +0 -16
- package/lib/harness/operations/dispatch.js +0 -285
- package/lib/harness/operations/init.js +0 -48
- package/lib/harness/operations/pack.js +0 -100
- package/lib/harness/operations/plan.js +0 -29
- package/lib/harness/operations/resume.js +0 -44
- package/lib/harness/operations/verify.js +0 -163
- package/lib/harness/planner.js +0 -141
- package/lib/harness/schemas.js +0 -108
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: constitution-guardian
|
|
3
|
-
description: Real-time Constitution compliance checker for devflow documents. Blocks partial implementations and hardcoded secrets during file editing.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Constitution Guardian
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
Enforce CC-DevFlow Constitution compliance by detecting violations in real-time during document editing, preventing non-compliant content from being saved.
|
|
10
|
-
|
|
11
|
-
**Trigger**: PreToolUse hook when editing devflow documents (PRD.md, EPIC.md, TASKS.md, TECH_DESIGN.md)
|
|
12
|
-
|
|
13
|
-
## Enforcement Scope
|
|
14
|
-
|
|
15
|
-
**Focus Articles** (Real-time prevention):
|
|
16
|
-
- **Article I.1**: Quality First - No Partial Implementation
|
|
17
|
-
- **Article III.1**: Security First - No Hardcoded Secrets
|
|
18
|
-
|
|
19
|
-
**Note**: Full Constitution has 10 Articles. This guardrail focuses on the most critical real-time violations. Batch validation by `validate-constitution.sh` covers all Articles.
|
|
20
|
-
|
|
21
|
-
## Violation Patterns
|
|
22
|
-
|
|
23
|
-
### Article I.1: No Partial Implementation
|
|
24
|
-
|
|
25
|
-
#### Pattern 1: TODO placeholders
|
|
26
|
-
```markdown
|
|
27
|
-
# ❌ BLOCKED
|
|
28
|
-
## User Stories
|
|
29
|
-
### US1: User Registration
|
|
30
|
-
TODO later: Add email verification flow
|
|
31
|
-
FIXME: Implement password strength validation
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
**Regex Patterns**:
|
|
35
|
-
- `TODO.*later`
|
|
36
|
-
- `FIXME`
|
|
37
|
-
- `\[placeholder\]`
|
|
38
|
-
- `// TODO:.*later`
|
|
39
|
-
- `# FIXME:.*`
|
|
40
|
-
|
|
41
|
-
#### Pattern 2: Simplified/Partial notes
|
|
42
|
-
```markdown
|
|
43
|
-
# ❌ BLOCKED
|
|
44
|
-
## Implementation Notes
|
|
45
|
-
This is simplified for now, complete implementation would require...
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
**Regex Pattern**: `simplified for now`
|
|
49
|
-
|
|
50
|
-
#### Pattern 3: Version deferral
|
|
51
|
-
```markdown
|
|
52
|
-
# ❌ BLOCKED
|
|
53
|
-
## Acceptance Criteria
|
|
54
|
-
- [ ] Basic login (v1)
|
|
55
|
-
- [ ] Remember me (defer to v2)
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
**Regex Pattern**: `defer to v\d|will complete in v\d`
|
|
59
|
-
|
|
60
|
-
### Article III.1: No Hardcoded Secrets
|
|
61
|
-
|
|
62
|
-
#### Pattern 1: Environment variables with secrets
|
|
63
|
-
```markdown
|
|
64
|
-
# ❌ BLOCKED
|
|
65
|
-
## Configuration
|
|
66
|
-
API_KEY=sk-abc123def456
|
|
67
|
-
JWT_SECRET=mysecretkey123
|
|
68
|
-
PASSWORD=admin123
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
**Regex Patterns**:
|
|
72
|
-
- `API_KEY\s*=\s*['"]?[a-zA-Z0-9_-]{10,}`
|
|
73
|
-
- `SECRET\s*=\s*['"]?[a-zA-Z0-9_-]+`
|
|
74
|
-
- `PASSWORD\s*=\s*['"]?[^\s]+`
|
|
75
|
-
- `TOKEN\s*=\s*['"]?[a-zA-Z0-9_-]{10,}`
|
|
76
|
-
|
|
77
|
-
#### Pattern 2: Code snippets with hardcoded secrets
|
|
78
|
-
```typescript
|
|
79
|
-
// ❌ BLOCKED
|
|
80
|
-
const config = {
|
|
81
|
-
apiKey: "sk-abc123def456",
|
|
82
|
-
dbPassword: "postgres123"
|
|
83
|
-
};
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
**Regex Patterns**:
|
|
87
|
-
- `apiKey:\s*['"][^'"]+['"]`
|
|
88
|
-
- `password:\s*['"][^'"]+['"]`
|
|
89
|
-
- `secret:\s*['"][^'"]+['"]`
|
|
90
|
-
|
|
91
|
-
## Blocking Message
|
|
92
|
-
|
|
93
|
-
When violation detected, PreToolUse hook returns **exit code 2** (blocks file save):
|
|
94
|
-
|
|
95
|
-
```
|
|
96
|
-
⚠️ BLOCKED - Constitution Violation
|
|
97
|
-
|
|
98
|
-
Detected:
|
|
99
|
-
- [Line 42] TODO placeholder (Article I.1 - No Partial Implementation)
|
|
100
|
-
- [Line 58] Hardcoded API key (Article III.1 - No Hardcoded Secrets)
|
|
101
|
-
|
|
102
|
-
📋 ACTION:
|
|
103
|
-
1. Complete all TODOs/FIXMEs before saving
|
|
104
|
-
2. Move secrets to environment variables (.env, not committed)
|
|
105
|
-
3. Review `.claude/rules/project-constitution.md` v2.0.0
|
|
106
|
-
4. Run /flow-verify for comprehensive check
|
|
107
|
-
|
|
108
|
-
Source: Constitution Articles I.1, III.1
|
|
109
|
-
File: {file_path}
|
|
110
|
-
|
|
111
|
-
Constitutional Basis:
|
|
112
|
-
Article I.1: "NO PARTIAL IMPLEMENTATION: Complete implementation or no implementation"
|
|
113
|
-
Article III.1: "NO HARDCODED SECRETS: Use environment variables or secret management"
|
|
114
|
-
|
|
115
|
-
💡 SKIP: Add `@constitution-verified` comment or set SKIP_CONSTITUTION_CHECK=1
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
## Constitutional Basis
|
|
119
|
-
|
|
120
|
-
### Article I: Quality First
|
|
121
|
-
|
|
122
|
-
```yaml
|
|
123
|
-
I.1 Complete Implementation Mandate:
|
|
124
|
-
Prohibition: Any form of partial implementation or placeholder code
|
|
125
|
-
Requirement: Complete implementation or no implementation
|
|
126
|
-
Examples:
|
|
127
|
-
❌ Forbidden: "// TODO: Implement this later"
|
|
128
|
-
❌ Forbidden: "// Simplified for now, will complete in v2"
|
|
129
|
-
✅ Required: Fully functional, production-ready code
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
**Enforcement**:
|
|
133
|
-
- **Generation time**: prd-writer, tech-architect, planner agents check output
|
|
134
|
-
- **Edit time**: constitution-guardian guardrail blocks save (this skill)
|
|
135
|
-
- **Phase completion**: validate-constitution.sh batch validation
|
|
136
|
-
|
|
137
|
-
### Article III: Security First
|
|
138
|
-
|
|
139
|
-
```yaml
|
|
140
|
-
III.1 No Hardcoded Secrets:
|
|
141
|
-
Prohibited:
|
|
142
|
-
❌ API_KEY = "sk-abc123..." in source code
|
|
143
|
-
❌ PASSWORD = "admin123" in config files
|
|
144
|
-
❌ JWT_SECRET embedded in code
|
|
145
|
-
|
|
146
|
-
Required:
|
|
147
|
-
✅ Environment variables (.env files, not committed)
|
|
148
|
-
✅ Secret management services (AWS Secrets Manager, etc.)
|
|
149
|
-
✅ Configuration injection at runtime
|
|
150
|
-
|
|
151
|
-
Detection: Pre-push guard scans for secret patterns
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
**Enforcement**:
|
|
155
|
-
- **Generation time**: All agents avoid secrets in generated docs
|
|
156
|
-
- **Edit time**: constitution-guardian guardrail blocks save (this skill)
|
|
157
|
-
- **Pre-push**: Git pre-push hook scans for secrets
|
|
158
|
-
|
|
159
|
-
## Skip Conditions
|
|
160
|
-
|
|
161
|
-
Users can bypass Constitution guardian in specific scenarios:
|
|
162
|
-
|
|
163
|
-
### 1. Session Skip (One-time per session)
|
|
164
|
-
- **Mechanism**: `sessionSkillUsed: true` in skill-rules.json
|
|
165
|
-
- **Behavior**: Guardrail only triggers once per Claude session
|
|
166
|
-
- **Use case**: User acknowledged violation, working on fix
|
|
167
|
-
|
|
168
|
-
### 2. File Marker (Permanent skip for specific file)
|
|
169
|
-
- **Marker**: Add `@constitution-verified` comment in document
|
|
170
|
-
- **Example**:
|
|
171
|
-
```markdown
|
|
172
|
-
<!-- @constitution-verified: Legacy doc migration, compliance review completed -->
|
|
173
|
-
```
|
|
174
|
-
- **Use case**: Legacy documentation, special cases
|
|
175
|
-
|
|
176
|
-
### 3. Environment Variable (Temporary global skip)
|
|
177
|
-
- **Variable**: `SKIP_CONSTITUTION_CHECK=1`
|
|
178
|
-
- **Scope**: Current terminal session
|
|
179
|
-
- **Use case**: Bulk imports, automated migrations
|
|
180
|
-
|
|
181
|
-
## Relationship with Other Components
|
|
182
|
-
|
|
183
|
-
### validate-constitution.sh (Script)
|
|
184
|
-
- **Purpose**: Batch validation of all 10 Constitutional Articles
|
|
185
|
-
- **Scope**: Complete document/codebase scan
|
|
186
|
-
- **Timing**: Phase completion (e.g., /flow-prd Exit Gate)
|
|
187
|
-
- **Articles**: I, II, III, IV, V, VI, VII, VIII, IX, X
|
|
188
|
-
|
|
189
|
-
### constitution-guardian (Guardrail)
|
|
190
|
-
- **Purpose**: Real-time prevention of critical violations
|
|
191
|
-
- **Scope**: Single document being edited
|
|
192
|
-
- **Timing**: During file editing (PreToolUse hook)
|
|
193
|
-
- **Articles**: Focus on I.1, III.1 (most critical for documents)
|
|
194
|
-
|
|
195
|
-
**Relationship**: **Complementary (互补)**
|
|
196
|
-
- Guardrail: Real-time prevention (write-time, partial Articles)
|
|
197
|
-
- Script: Batch validation (phase-time, all Articles)
|
|
198
|
-
- Double insurance: Guardrail catches most issues, Script catches remaining
|
|
199
|
-
|
|
200
|
-
### Constitution Document
|
|
201
|
-
- **Source of Truth**: `.claude/rules/project-constitution.md` v2.0.0
|
|
202
|
-
- **Contains**: All 10 Articles with detailed rules
|
|
203
|
-
- **This guardrail**: Extracts Articles I.1, III.1 prohibition rules only
|
|
204
|
-
|
|
205
|
-
## Configuration
|
|
206
|
-
|
|
207
|
-
In `.claude/skills/skill-rules.json`:
|
|
208
|
-
|
|
209
|
-
```json
|
|
210
|
-
{
|
|
211
|
-
"constitution-guardian": {
|
|
212
|
-
"type": "guardrail",
|
|
213
|
-
"enforcement": "block",
|
|
214
|
-
"priority": "critical",
|
|
215
|
-
"description": "Real-time Constitution compliance, extracted from Constitution v2.0.0",
|
|
216
|
-
"fileTriggers": {
|
|
217
|
-
"pathPatterns": [
|
|
218
|
-
"devflow/requirements/**/PRD.md",
|
|
219
|
-
"devflow/requirements/**/EPIC.md",
|
|
220
|
-
"devflow/requirements/**/TASKS.md",
|
|
221
|
-
"devflow/requirements/**/TECH_DESIGN.md",
|
|
222
|
-
"devflow/requirements/**/contracts/**/*.yaml",
|
|
223
|
-
"devflow/requirements/**/data-model.md"
|
|
224
|
-
],
|
|
225
|
-
"contentPatterns": [
|
|
226
|
-
"TODO.*later",
|
|
227
|
-
"FIXME",
|
|
228
|
-
"\\[placeholder\\]",
|
|
229
|
-
"simplified for now",
|
|
230
|
-
"defer to v\\d",
|
|
231
|
-
"API_KEY\\s*=\\s*['\"]?[a-zA-Z0-9_-]{10,}",
|
|
232
|
-
"SECRET\\s*=\\s*['\"]?[a-zA-Z0-9_-]+",
|
|
233
|
-
"PASSWORD\\s*=\\s*['\"]?[^\\s]+",
|
|
234
|
-
"TOKEN\\s*=\\s*['\"]?[a-zA-Z0-9_-]{10,}",
|
|
235
|
-
"apiKey:\\s*['\"][^'\"]+['\"]",
|
|
236
|
-
"password:\\s*['\"][^'\"]+['\"]"
|
|
237
|
-
]
|
|
238
|
-
},
|
|
239
|
-
"blockMessage": "⚠️ BLOCKED - Constitution Violation\n\nDetected:\n- Partial implementation (Article I.1)\n- Hardcoded secrets (Article III.1)\n\n📋 ACTION:\n1. Complete all TODOs/FIXMEs\n2. Move secrets to config system\n3. Run /flow-verify\n\nSource: .claude/rules/project-constitution.md v2.0.0",
|
|
240
|
-
"skipConditions": {
|
|
241
|
-
"sessionSkillUsed": true,
|
|
242
|
-
"fileMarkers": ["@constitution-verified"],
|
|
243
|
-
"envOverride": "SKIP_CONSTITUTION_CHECK"
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
## Line Number Reporting (Enhancement)
|
|
250
|
-
|
|
251
|
-
**Goal**: Precise violation location reporting
|
|
252
|
-
|
|
253
|
-
**Implementation** (in PreToolUse hook):
|
|
254
|
-
```typescript
|
|
255
|
-
function detectViolations(content: string, patterns: string[]) {
|
|
256
|
-
const lines = content.split('\n');
|
|
257
|
-
const violations: Array<{line: number, pattern: string, text: string}> = [];
|
|
258
|
-
|
|
259
|
-
lines.forEach((line, index) => {
|
|
260
|
-
patterns.forEach(pattern => {
|
|
261
|
-
if (new RegExp(pattern, 'i').test(line)) {
|
|
262
|
-
violations.push({
|
|
263
|
-
line: index + 1,
|
|
264
|
-
pattern: pattern,
|
|
265
|
-
text: line.trim()
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
});
|
|
269
|
-
});
|
|
270
|
-
|
|
271
|
-
return violations;
|
|
272
|
-
}
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
**Enhanced Blocking Message**:
|
|
276
|
-
```
|
|
277
|
-
⚠️ BLOCKED - Constitution Violation
|
|
278
|
-
|
|
279
|
-
Detected 3 violations:
|
|
280
|
-
[Line 42] TODO placeholder (Article I.1)
|
|
281
|
-
→ "TODO later: Add email verification"
|
|
282
|
-
|
|
283
|
-
[Line 58] Hardcoded API key (Article III.1)
|
|
284
|
-
→ "API_KEY=sk-abc123def456"
|
|
285
|
-
|
|
286
|
-
[Line 73] FIXME comment (Article I.1)
|
|
287
|
-
→ "FIXME: Complete error handling"
|
|
288
|
-
|
|
289
|
-
📋 ACTION: ...
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
## Design Principle
|
|
293
|
-
|
|
294
|
-
**This guardrail does NOT contain**:
|
|
295
|
-
- ❌ Complete Constitution (all 10 Articles are in project-constitution.md)
|
|
296
|
-
- ❌ All violation patterns (only Articles I.1, III.1)
|
|
297
|
-
- ❌ Batch validation logic (that's in validate-constitution.sh)
|
|
298
|
-
|
|
299
|
-
**This guardrail ONLY contains**:
|
|
300
|
-
- ✅ Articles I.1, III.1 prohibition rule extraction
|
|
301
|
-
- ✅ Real-time violation detection (content pattern matching)
|
|
302
|
-
- ✅ Blocking mechanism (PreToolUse hook, exit code 2)
|
|
303
|
-
- ✅ Precise line number reporting
|
|
304
|
-
- ✅ Links to full Constitution document
|
|
305
|
-
|
|
306
|
-
**Rationale**: Avoid duplication ("不重不漏" principle). Constitution document owns full text, guardrail owns real-time enforcement of critical rules.
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: devflow-tdd-enforcer
|
|
3
|
-
description: Enforces TDD order in TASKS.md - Tests MUST be marked complete before Implementation tasks. Blocks violations in real-time.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# DevFlow TDD Enforcer
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
Enforce Test-First Development (TDD) order by preventing users from marking implementation tasks complete before their corresponding test tasks.
|
|
10
|
-
|
|
11
|
-
**Trigger**: PreToolUse hook when editing `devflow/requirements/**/TASKS.md`
|
|
12
|
-
|
|
13
|
-
## Enforcement Rule
|
|
14
|
-
|
|
15
|
-
**Source**: Extracted from planner agent's TDD mandate + Constitution Article VI
|
|
16
|
-
|
|
17
|
-
### ❌ BLOCKED Pattern (Violation)
|
|
18
|
-
```markdown
|
|
19
|
-
- [x] **T010** [US1] Implement user registration endpoint
|
|
20
|
-
- [ ] **T011** [US1] Test user registration with valid data
|
|
21
|
-
```
|
|
22
|
-
**Problem**: Implementation marked done BEFORE test
|
|
23
|
-
|
|
24
|
-
**Regex Pattern**: `\[x\].*Implementation.*\n.*\[ \].*Test`
|
|
25
|
-
|
|
26
|
-
### ✅ CORRECT Pattern (TDD Sequence)
|
|
27
|
-
```markdown
|
|
28
|
-
- [ ] **T010** [US1] Test user registration with valid data (write FAILING test)
|
|
29
|
-
- [ ] **T011** [US1] Implement user registration endpoint (make test PASS)
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
**Or after completion**:
|
|
33
|
-
```markdown
|
|
34
|
-
- [x] **T010** [US1] Test user registration with valid data
|
|
35
|
-
- [x] **T011** [US1] Implement user registration endpoint
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Blocking Message
|
|
39
|
-
|
|
40
|
-
When violation detected, PreToolUse hook returns **exit code 2** (blocks file save):
|
|
41
|
-
|
|
42
|
-
```
|
|
43
|
-
⚠️ BLOCKED - TDD Violation Detected
|
|
44
|
-
|
|
45
|
-
📋 REQUIRED ACTION:
|
|
46
|
-
1. Re-order TASKS.md to follow TDD sequence
|
|
47
|
-
2. Mark test tasks [x] BEFORE implementation tasks
|
|
48
|
-
3. Review Constitution Article VI - Test-First Development
|
|
49
|
-
|
|
50
|
-
Reason: CC-DevFlow enforces TDD (Tests First → Implementation)
|
|
51
|
-
Source: planner agent mandate + Constitution Article VI
|
|
52
|
-
File: {file_path}
|
|
53
|
-
|
|
54
|
-
Current Issue:
|
|
55
|
-
Line {N}: Implementation task marked complete
|
|
56
|
-
Line {N+1}: Test task NOT marked complete
|
|
57
|
-
|
|
58
|
-
💡 SKIP: Add `@skip-tdd-check` comment or set SKIP_TDD_ENFORCER=1
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## Constitutional Basis
|
|
62
|
-
|
|
63
|
-
### Article VI: Test-First Development
|
|
64
|
-
```yaml
|
|
65
|
-
TDD MANDATE:
|
|
66
|
-
- Write test FIRST (must fail)
|
|
67
|
-
- Implement code SECOND (make test pass)
|
|
68
|
-
- No implementation without corresponding test
|
|
69
|
-
- Test coverage ≥80%
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### planner agent enforces
|
|
73
|
-
- Generates TASKS.md with correct TDD order
|
|
74
|
-
- Phase 2: All tests listed first
|
|
75
|
-
- Phase 3+: Each user story has Test task before Implementation task
|
|
76
|
-
- Inserts "⚠️ TEST VERIFICATION CHECKPOINT" between Phase 2 and Phase 3
|
|
77
|
-
|
|
78
|
-
### devflow-tdd-enforcer guardrail prevents
|
|
79
|
-
- Users from manually reversing that order
|
|
80
|
-
- Implementation tasks marked complete before test tasks
|
|
81
|
-
- Real-time detection during file editing
|
|
82
|
-
|
|
83
|
-
## Additional Violation Patterns
|
|
84
|
-
|
|
85
|
-
### Pattern 2: Phase 3+ User Story TDD Order
|
|
86
|
-
```markdown
|
|
87
|
-
# ❌ BLOCKED
|
|
88
|
-
- [x] **T020** [US2] Implement login endpoint
|
|
89
|
-
- [ ] **T021** [US2] Test login with valid credentials
|
|
90
|
-
|
|
91
|
-
# ✅ CORRECT
|
|
92
|
-
- [x] **T020** [US2] Test login with valid credentials
|
|
93
|
-
- [x] **T021** **T021** [US2] Implement login endpoint
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
**Regex Pattern**: `\[x\].*\[US\d+\].*Implement.*\n.*\[ \].*\[US\d+\].*Test`
|
|
97
|
-
|
|
98
|
-
### Pattern 3: Implementation without Test
|
|
99
|
-
```markdown
|
|
100
|
-
# ❌ BLOCKED (if no corresponding test found)
|
|
101
|
-
- [ ] **T030** [US3] Implement password reset endpoint
|
|
102
|
-
# (No T029 or T031 test task found)
|
|
103
|
-
|
|
104
|
-
# ✅ CORRECT
|
|
105
|
-
- [ ] **T029** [US3] Test password reset with valid email
|
|
106
|
-
- [ ] **T030** [US3] Implement password reset endpoint
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
## Skip Conditions
|
|
110
|
-
|
|
111
|
-
Users can bypass TDD enforcer in specific scenarios:
|
|
112
|
-
|
|
113
|
-
### 1. Session Skip (One-time per session)
|
|
114
|
-
- **Mechanism**: `sessionSkillUsed: true` in skill-rules.json
|
|
115
|
-
- **Behavior**: Guardrail only triggers once per Claude session
|
|
116
|
-
- **Use case**: User acknowledged TDD violation, wants to continue
|
|
117
|
-
|
|
118
|
-
### 2. File Marker (Permanent skip for specific file)
|
|
119
|
-
- **Marker**: Add `@skip-tdd-check` comment anywhere in TASKS.md
|
|
120
|
-
- **Example**:
|
|
121
|
-
```markdown
|
|
122
|
-
<!-- @skip-tdd-check: Hotfix deployment, will add tests in follow-up -->
|
|
123
|
-
```
|
|
124
|
-
- **Use case**: Emergency hotfix, tests to be added later
|
|
125
|
-
|
|
126
|
-
### 3. Environment Variable (Temporary global skip)
|
|
127
|
-
- **Variable**: `SKIP_TDD_ENFORCER=1`
|
|
128
|
-
- **Scope**: Current terminal session
|
|
129
|
-
- **Use case**: Batch operations, automated scripts
|
|
130
|
-
|
|
131
|
-
## Relationship with Other Components
|
|
132
|
-
|
|
133
|
-
### mark-task-complete.sh (Script)
|
|
134
|
-
- **Purpose**: Marks tasks complete in正常 workflow (via /flow-dev)
|
|
135
|
-
- **Validation**: Batch validation at phase completion
|
|
136
|
-
- **Timing**: After task execution
|
|
137
|
-
|
|
138
|
-
### devflow-tdd-enforcer (Guardrail)
|
|
139
|
-
- **Purpose**: Real-time prevention of manual TDD violations
|
|
140
|
-
- **Validation**: Per-edit, blocks save if violation detected
|
|
141
|
-
- **Timing**: During file editing (PreToolUse hook)
|
|
142
|
-
|
|
143
|
-
**Relationship**: **Complementary (双重保险)**
|
|
144
|
-
- Script ensures正常流程 follows TDD
|
|
145
|
-
- Guardrail prevents手动编辑 from breaking TDD
|
|
146
|
-
|
|
147
|
-
### Constitution Article VI
|
|
148
|
-
- **Defines**: TDD philosophy and mandates
|
|
149
|
-
- **Enforcement**: planner agent (generation time) + devflow-tdd-enforcer (edit time)
|
|
150
|
-
|
|
151
|
-
## Configuration
|
|
152
|
-
|
|
153
|
-
In `.claude/skills/skill-rules.json`:
|
|
154
|
-
|
|
155
|
-
```json
|
|
156
|
-
{
|
|
157
|
-
"devflow-tdd-enforcer": {
|
|
158
|
-
"type": "guardrail",
|
|
159
|
-
"enforcement": "block",
|
|
160
|
-
"priority": "critical",
|
|
161
|
-
"description": "Enforces TDD order, extracted from planner agent rules",
|
|
162
|
-
"fileTriggers": {
|
|
163
|
-
"pathPatterns": ["devflow/requirements/**/TASKS.md"],
|
|
164
|
-
"contentPatterns": [
|
|
165
|
-
"\\[x\\].*Implementation.*\\n.*\\[ \\].*Test",
|
|
166
|
-
"\\[x\\].*\\[US\\d+\\].*Implement.*\\n.*\\[ \\].*\\[US\\d+\\].*Test"
|
|
167
|
-
]
|
|
168
|
-
},
|
|
169
|
-
"blockMessage": "⚠️ BLOCKED - TDD Violation\n\nTasks must follow TDD order:\n1. [ ] Test (write failing test)\n2. [ ] Implementation (make test pass)\n\n📋 ACTION: Re-order TASKS.md\nSource: planner agent mandate + Constitution Article VI\n\n💡 SKIP: @skip-tdd-check or SKIP_TDD_ENFORCER=1",
|
|
170
|
-
"skipConditions": {
|
|
171
|
-
"sessionSkillUsed": true,
|
|
172
|
-
"fileMarkers": ["@skip-tdd-check"],
|
|
173
|
-
"envOverride": "SKIP_TDD_ENFORCER"
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
## Design Principle
|
|
180
|
-
|
|
181
|
-
**This guardrail does NOT contain**:
|
|
182
|
-
- ❌ Complete TDD methodology (that's in planner agent)
|
|
183
|
-
- ❌ Task generation logic (that's in planner agent)
|
|
184
|
-
- ❌ Full Constitution Article VI (that's in project-constitution.md)
|
|
185
|
-
|
|
186
|
-
**This guardrail ONLY contains**:
|
|
187
|
-
- ✅ Prohibition rule extraction (from planner agent)
|
|
188
|
-
- ✅ Real-time violation detection (content pattern matching)
|
|
189
|
-
- ✅ Blocking mechanism (PreToolUse hook, exit code 2)
|
|
190
|
-
- ✅ Links to source documentation
|
|
191
|
-
|
|
192
|
-
**Rationale**: Avoid duplication ("不重不漏" principle). planner agent owns TDD generation logic, guardrail owns real-time enforcement.
|