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,282 +0,0 @@
|
|
|
1
|
-
# CC-DevFlow Rationalization Library
|
|
2
|
-
|
|
3
|
-
> **Version**: 1.0.0
|
|
4
|
-
> **Purpose**: Centralized defense against AI Agent rationalization attempts
|
|
5
|
-
> **Source**: Extracted from superpowers TDD skill + CC-DevFlow operational experience
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## How to Use This Library
|
|
10
|
-
|
|
11
|
-
When an agent is about to violate a Constitutional Article, they will often produce
|
|
12
|
-
rationalizations. This library provides pre-crafted responses.
|
|
13
|
-
|
|
14
|
-
**Pattern**:
|
|
15
|
-
1. Agent produces excuse
|
|
16
|
-
2. Lookup excuse in relevant Article section
|
|
17
|
-
3. Respond with "Reality" column
|
|
18
|
-
4. If not found, add new rationalization to library
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Article I: Quality First - Rationalization Table
|
|
23
|
-
|
|
24
|
-
### Iron Law
|
|
25
|
-
```
|
|
26
|
-
NO PARTIAL IMPLEMENTATION - COMPLETE OR NOTHING
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Rationalizations
|
|
30
|
-
|
|
31
|
-
| Excuse | Reality |
|
|
32
|
-
|--------|---------|
|
|
33
|
-
| "This is simplified for now" | CONSTITUTIONAL VIOLATION. Complete it or don't ship it. |
|
|
34
|
-
| "Will complete in v2" | Future versions don't exist. Implement fully now. |
|
|
35
|
-
| "Core logic works, edge cases later" | Edge cases ARE the implementation. No later. |
|
|
36
|
-
| "Time constraint" | Ship later, ship complete. Never ship incomplete. |
|
|
37
|
-
| "MVP approach" | MVP = Minimum VIABLE. Viable means works completely. |
|
|
38
|
-
| "Placeholder for now" | Placeholders = technical debt = future bugs. |
|
|
39
|
-
| "I'll fix it before PR" | Fix it NOW. Not later. Now. |
|
|
40
|
-
| "80% is good enough" | 80% = broken for 20% of users. Not good enough. |
|
|
41
|
-
| "Works on my machine" | Production is not your machine. Test properly. |
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## Article II: Architectural Consistency - Rationalization Table
|
|
46
|
-
|
|
47
|
-
### Iron Law
|
|
48
|
-
```
|
|
49
|
-
REUSE EXISTING CODE - NO DUPLICATION
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Rationalizations
|
|
53
|
-
|
|
54
|
-
| Excuse | Reality |
|
|
55
|
-
|--------|---------|
|
|
56
|
-
| "Faster to rewrite" | Faster now = slower forever. Find and reuse. |
|
|
57
|
-
| "That code is messy" | Refactor it. Don't duplicate it. |
|
|
58
|
-
| "Slightly different use case" | Extract common, parameterize difference. |
|
|
59
|
-
| "I don't have time to search" | Searching takes 5 min. Maintaining duplicates takes forever. |
|
|
60
|
-
| "The other code might change" | Good. Your copy will be outdated. Use shared version. |
|
|
61
|
-
| "It's just a small function" | Small duplications compound. No exceptions. |
|
|
62
|
-
| "I understand my version better" | Understand the shared version. That's your job. |
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## Article III: Security First - Rationalization Table
|
|
67
|
-
|
|
68
|
-
### Iron Law
|
|
69
|
-
```
|
|
70
|
-
NO HARDCODED SECRETS - ENVIRONMENT VARIABLES ONLY
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### Rationalizations
|
|
74
|
-
|
|
75
|
-
| Excuse | Reality |
|
|
76
|
-
|--------|---------|
|
|
77
|
-
| "It's just for testing" | Commits are forever. Use env vars even for tests. |
|
|
78
|
-
| "I'll remove it before commit" | You won't. You'll forget. Use env vars. |
|
|
79
|
-
| "It's not a real secret" | Any credential is a real secret. Treat it as such. |
|
|
80
|
-
| "Local development only" | Local becomes production. Start secure. |
|
|
81
|
-
| "Nobody will see the repo" | Repos get shared. Git history is permanent. |
|
|
82
|
-
| "I'll rotate it later" | Rotation doesn't erase history. Never commit secrets. |
|
|
83
|
-
| "It's encrypted" | Encrypted secrets in code are still secrets in code. |
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## Article IV: Performance Accountability - Rationalization Table
|
|
88
|
-
|
|
89
|
-
### Iron Law
|
|
90
|
-
```
|
|
91
|
-
NO RESOURCE LEAKS - ALWAYS CLEANUP
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### Rationalizations
|
|
95
|
-
|
|
96
|
-
| Excuse | Reality |
|
|
97
|
-
|--------|---------|
|
|
98
|
-
| "Garbage collector will handle it" | GC doesn't close files/connections. Explicit cleanup. |
|
|
99
|
-
| "Small leak, won't matter" | Small leaks become big crashes. Fix now. |
|
|
100
|
-
| "It's a short-lived process" | Process lifetime is not your decision. Always cleanup. |
|
|
101
|
-
| "I'll add cleanup later" | Later = never. Add cleanup with creation. |
|
|
102
|
-
| "Framework handles it" | Verify that. Don't assume. |
|
|
103
|
-
| "Only happens in edge case" | Edge cases run in production. Handle them. |
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Article V: Maintainability - Rationalization Table
|
|
108
|
-
|
|
109
|
-
### Iron Law
|
|
110
|
-
```
|
|
111
|
-
NO DEAD CODE - USE IT OR DELETE IT
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### Rationalizations
|
|
115
|
-
|
|
116
|
-
| Excuse | Reality |
|
|
117
|
-
|--------|---------|
|
|
118
|
-
| "Might need it later" | Git history exists. Delete now, retrieve if needed. |
|
|
119
|
-
| "It's just commented out" | Commented code = noise. Delete it. |
|
|
120
|
-
| "Reference for future work" | Write docs. Don't keep dead code. |
|
|
121
|
-
| "Someone else might need it" | They'll write their own. Delete yours. |
|
|
122
|
-
| "Too risky to delete" | Tests exist. If tests pass after delete, it's safe. |
|
|
123
|
-
| "I worked hard on this" | Sunk cost fallacy. Delete it. |
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
## Article VI: Test-First Development - Rationalization Table
|
|
128
|
-
|
|
129
|
-
### Iron Law
|
|
130
|
-
```
|
|
131
|
-
NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
### Rationalizations
|
|
135
|
-
|
|
136
|
-
| Excuse | Reality |
|
|
137
|
-
|--------|---------|
|
|
138
|
-
| "Too simple to test" | Simple code breaks. Test takes 30 seconds. |
|
|
139
|
-
| "I'll test after" | Tests passing immediately prove nothing. |
|
|
140
|
-
| "Tests after achieve same goals" | Tests-after = "what does this do?" Tests-first = "what should this do?" |
|
|
141
|
-
| "Already manually tested" | Ad-hoc ≠ systematic. No record, can't re-run. |
|
|
142
|
-
| "Deleting X hours is wasteful" | Sunk cost fallacy. Keeping unverified code is technical debt. |
|
|
143
|
-
| "Keep as reference, write tests first" | You'll adapt it. That's testing after. Delete means delete. |
|
|
144
|
-
| "Need to explore first" | Fine. Throw away exploration, start with TDD. |
|
|
145
|
-
| "Test hard = design unclear" | Listen to test. Hard to test = hard to use. |
|
|
146
|
-
| "TDD slows me down" | TDD faster than debugging. Pragmatic = test-first. |
|
|
147
|
-
| "This is different because..." | No. This is rationalization. Follow the law. |
|
|
148
|
-
| "Spirit not letter" | Violating letter IS violating spirit. No loopholes. |
|
|
149
|
-
| "I'm being pragmatic, not dogmatic" | TDD IS pragmatic. Shortcuts = debugging in production = slower. |
|
|
150
|
-
| "Just this once" | No exceptions. Rules exist for this exact moment. |
|
|
151
|
-
| "Existing code has no tests" | You're improving it. Add tests for existing code. |
|
|
152
|
-
| "Manual test faster" | Manual doesn't prove edge cases. You'll re-test every change. |
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
## Article VII: Simplicity Gate - Rationalization Table
|
|
157
|
-
|
|
158
|
-
### Iron Law
|
|
159
|
-
```
|
|
160
|
-
MAXIMUM 3 PROJECTS - JUSTIFY ANY ADDITIONAL COMPLEXITY
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### Rationalizations
|
|
164
|
-
|
|
165
|
-
| Excuse | Reality |
|
|
166
|
-
|--------|---------|
|
|
167
|
-
| "Microservices are better" | For your scale? Monolith is simpler. Start there. |
|
|
168
|
-
| "Future scalability" | YAGNI. Scale when you need to. |
|
|
169
|
-
| "Separation of concerns" | Modules separate concerns. Projects add overhead. |
|
|
170
|
-
| "Team autonomy" | Autonomy ≠ architectural chaos. Coordinate. |
|
|
171
|
-
| "Best practices say..." | Best practices assume scale you don't have. |
|
|
172
|
-
| "We might need it" | Might ≠ do. Build for now, refactor when needed. |
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
## Article VIII: Anti-Abstraction - Rationalization Table
|
|
177
|
-
|
|
178
|
-
### Iron Law
|
|
179
|
-
```
|
|
180
|
-
USE FRAMEWORKS DIRECTLY - NO UNNECESSARY WRAPPERS
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### Rationalizations
|
|
184
|
-
|
|
185
|
-
| Excuse | Reality |
|
|
186
|
-
|--------|---------|
|
|
187
|
-
| "Abstraction for future flexibility" | YAGNI. You won't switch frameworks. |
|
|
188
|
-
| "Cleaner interface" | Framework interface IS clean. Learn it. |
|
|
189
|
-
| "Hide implementation details" | Framework IS implementation. Don't hide it. |
|
|
190
|
-
| "Consistent with other projects" | Consistency ≠ unnecessary abstraction. |
|
|
191
|
-
| "Easier testing" | Mock the framework. Don't wrap it. |
|
|
192
|
-
| "Best practice pattern" | Pattern ≠ always apply. Use judgment. |
|
|
193
|
-
|
|
194
|
-
---
|
|
195
|
-
|
|
196
|
-
## Article IX: Integration-First Testing - Rationalization Table
|
|
197
|
-
|
|
198
|
-
### Iron Law
|
|
199
|
-
```
|
|
200
|
-
CONTRACTS FIRST - REAL ENVIRONMENTS
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
### Rationalizations
|
|
204
|
-
|
|
205
|
-
| Excuse | Reality |
|
|
206
|
-
|--------|---------|
|
|
207
|
-
| "Unit tests are faster" | Fast wrong tests waste time. Integration tests catch real bugs. |
|
|
208
|
-
| "Mocks are simpler" | Mocks hide integration issues. Real databases find them. |
|
|
209
|
-
| "CI is slow" | CI is cheap. Production bugs are expensive. |
|
|
210
|
-
| "Docker is complex" | Docker is simpler than debugging integration issues. |
|
|
211
|
-
| "In-memory database works" | In-memory differs from production. Test with real DB. |
|
|
212
|
-
|
|
213
|
-
---
|
|
214
|
-
|
|
215
|
-
## Article X: Requirement Boundary - Rationalization Table
|
|
216
|
-
|
|
217
|
-
### Iron Law
|
|
218
|
-
```
|
|
219
|
-
IMPLEMENT WHAT'S REQUESTED, NOTHING MORE
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
### Rationalizations
|
|
223
|
-
|
|
224
|
-
| Excuse | Reality |
|
|
225
|
-
|--------|---------|
|
|
226
|
-
| "User might need this later" | User didn't ask. Don't add. YAGNI. |
|
|
227
|
-
| "It's just a small addition" | Small additions compound. Scope creep. |
|
|
228
|
-
| "This is a natural extension" | Extensions require explicit request. |
|
|
229
|
-
| "Would be nice to have" | Nice ≠ required. Focus on requirements. |
|
|
230
|
-
| "While I'm here anyway" | Stay on task. Create separate requirement. |
|
|
231
|
-
| "It's only 5 more lines" | 5 lines = testing + docs + maintenance. Not 5 lines. |
|
|
232
|
-
| "User will thank me" | User will thank you for ON-TIME, IN-SCOPE delivery. |
|
|
233
|
-
| "I'm being helpful" | Helpful = following spec. Unhelpful = scope creep. |
|
|
234
|
-
| "It's best practice" | Best practice: implement what's requested. |
|
|
235
|
-
| "Future-proofing" | Future-proofing = over-engineering = waste. |
|
|
236
|
-
| "Obvious feature" | If obvious, it should be in spec. Not in spec = don't do. |
|
|
237
|
-
|
|
238
|
-
---
|
|
239
|
-
|
|
240
|
-
## Cross-Article Rationalizations
|
|
241
|
-
|
|
242
|
-
These excuses appear across multiple Articles:
|
|
243
|
-
|
|
244
|
-
| Excuse | Reality | Articles |
|
|
245
|
-
|--------|---------|----------|
|
|
246
|
-
| "Just this once" | No exceptions. Rules exist for this exact moment. | All |
|
|
247
|
-
| "I'm being pragmatic" | Pragmatic = following rules. Shortcuts = technical debt. | All |
|
|
248
|
-
| "Time is tight" | Rushed work = bugs = more time spent debugging. | All |
|
|
249
|
-
| "It's obvious it works" | Nothing is obvious. Prove with tests. | I, VI |
|
|
250
|
-
| "Everyone does this" | Everyone is wrong. We do it right. | All |
|
|
251
|
-
| "Senior says skip it" | Constitution > authority. No skipping. | All |
|
|
252
|
-
| "Emergency situation" | Emergencies especially need rules. | III, VI |
|
|
253
|
-
| "This is different" | It's not different. Follow the rules. | All |
|
|
254
|
-
| "Spirit over letter" | Violating letter IS violating spirit. | VI |
|
|
255
|
-
| "Being practical" | Practical = disciplined. Shortcuts = impractical. | All |
|
|
256
|
-
|
|
257
|
-
---
|
|
258
|
-
|
|
259
|
-
## Adding New Rationalizations
|
|
260
|
-
|
|
261
|
-
When you encounter a new excuse not in this library:
|
|
262
|
-
|
|
263
|
-
1. **Capture verbatim** - Record exact words used
|
|
264
|
-
2. **Identify Article** - Which Constitutional Article does it violate?
|
|
265
|
-
3. **Craft Reality response** - Brief, direct, no compromise
|
|
266
|
-
4. **Add to library** - PR to update this document
|
|
267
|
-
5. **Update guardrails** - Add pattern to relevant skill if blocking needed
|
|
268
|
-
|
|
269
|
-
---
|
|
270
|
-
|
|
271
|
-
## Integration Points
|
|
272
|
-
|
|
273
|
-
This library is consumed by:
|
|
274
|
-
- `.claude/rules/project-constitution.md` (inline tables per Article)
|
|
275
|
-
- `.claude/agents/*.md` (relevant tables per agent role)
|
|
276
|
-
- `.claude/skills/devflow-tdd-enforcer/SKILL.md`
|
|
277
|
-
- `.claude/skills/constitution-guardian/SKILL.md`
|
|
278
|
-
- `tests/pressure-scenarios/` (test scenarios)
|
|
279
|
-
|
|
280
|
-
---
|
|
281
|
-
|
|
282
|
-
**[PROTOCOL]**: 变更时更新此头部,然后检查 CLAUDE.md
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://cc-devflow.claude/.claude/schemas/constitution.schema.json",
|
|
4
|
-
"title": "Devflow Constitution Tracking",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"required": [
|
|
7
|
-
"articles"
|
|
8
|
-
],
|
|
9
|
-
"properties": {
|
|
10
|
-
"articles": {
|
|
11
|
-
"type": "array",
|
|
12
|
-
"minItems": 1,
|
|
13
|
-
"items": {
|
|
14
|
-
"type": "object",
|
|
15
|
-
"required": [
|
|
16
|
-
"article",
|
|
17
|
-
"status"
|
|
18
|
-
],
|
|
19
|
-
"properties": {
|
|
20
|
-
"article": {
|
|
21
|
-
"type": "string",
|
|
22
|
-
"minLength": 1
|
|
23
|
-
},
|
|
24
|
-
"status": {
|
|
25
|
-
"type": "string",
|
|
26
|
-
"enum": [
|
|
27
|
-
"pending",
|
|
28
|
-
"in_progress",
|
|
29
|
-
"approved",
|
|
30
|
-
"waived",
|
|
31
|
-
"rejected"
|
|
32
|
-
]
|
|
33
|
-
},
|
|
34
|
-
"notes": {
|
|
35
|
-
"type": "string"
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
"additionalProperties": false
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
"additionalProperties": true
|
|
43
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
# scripts/
|
|
2
|
-
> L2 | 父级: .claude/CLAUDE.md
|
|
3
|
-
>
|
|
4
|
-
> [PROTOCOL]: 变更时更新此头部,然后检查 CLAUDE.md
|
|
5
|
-
|
|
6
|
-
## 目录定位
|
|
7
|
-
|
|
8
|
-
`.claude/scripts/` 是命令层与 Skill 层共享的执行脚本库,负责状态检测、质量门禁、需求目录操作与会话恢复。
|
|
9
|
-
|
|
10
|
-
## 成员清单
|
|
11
|
-
|
|
12
|
-
analyze-upgrade-impact.sh: 升级影响分析脚本。
|
|
13
|
-
archive-requirement.sh: 需求归档与清理脚本。
|
|
14
|
-
calculate-checklist-completion.sh: Checklist 完成度统计脚本。
|
|
15
|
-
calculate-quarter.sh: 时间季度计算脚本。
|
|
16
|
-
check-dependencies.sh: 依赖关系检查脚本。
|
|
17
|
-
check-prerequisites.sh: 流程前置条件统一校验脚本。
|
|
18
|
-
check-task-status.sh: TASKS 完成状态统计脚本。
|
|
19
|
-
checklist-errors.sh: Checklist 错误码与诊断脚本。
|
|
20
|
-
common.sh: 脚本公共函数库(REQ 识别、日志工具等)。
|
|
21
|
-
consolidate-research.sh: research 结果汇总脚本。
|
|
22
|
-
create-requirement.sh: 创建需求目录与初始状态;同步 workspace 的 `.current-req`。
|
|
23
|
-
delta-parser.ts: Delta 解析器。
|
|
24
|
-
detect-file-conflicts.sh: 并行开发文件冲突检测脚本。
|
|
25
|
-
export-contracts.sh: 合同文档导出脚本。
|
|
26
|
-
extract-data-model.sh: 数据模型抽取脚本。
|
|
27
|
-
flow-context-add.sh: context JSONL 条目追加脚本。
|
|
28
|
-
flow-context-init.sh: context 目录初始化脚本。
|
|
29
|
-
flow-context-validate.sh: context 路径验证脚本。
|
|
30
|
-
flow-delta-apply.sh: Delta 应用脚本。
|
|
31
|
-
flow-delta-archive.sh: Delta 归档脚本。
|
|
32
|
-
flow-delta-create.sh: Delta 创建脚本。
|
|
33
|
-
flow-delta-list.sh: Delta 列表脚本。
|
|
34
|
-
flow-delta-status.sh: Delta 状态脚本。
|
|
35
|
-
flow-quality-full.sh: 全量质量检查脚本。
|
|
36
|
-
flow-quality-quick.sh: 快速质量检查脚本。
|
|
37
|
-
flow-workspace-init.sh: 开发者 workspace 初始化脚本。
|
|
38
|
-
flow-workspace-record.sh: workspace journal 追加记录脚本。
|
|
39
|
-
generate-clarification-questions.sh: Clarify 问题生成脚本。
|
|
40
|
-
generate-clarification-report.sh: Clarify 报告生成脚本。
|
|
41
|
-
generate-quickstart.sh: quickstart 文档生成脚本。
|
|
42
|
-
generate-research-tasks.sh: research 任务生成脚本。
|
|
43
|
-
generate-status-report.sh: 状态报告聚合脚本。
|
|
44
|
-
generate-tech-analysis.sh: 技术分析生成脚本。
|
|
45
|
-
get-workflow-status.sh: 工作流状态读取脚本。
|
|
46
|
-
locate-requirement-in-roadmap.sh: roadmap 需求定位脚本。
|
|
47
|
-
manage-constitution.sh: Constitution 管理脚本。
|
|
48
|
-
mark-task-complete.sh: 任务完成标记脚本。
|
|
49
|
-
parse-task-dependencies.js: 任务依赖解析器。
|
|
50
|
-
populate-research-tasks.sh: research 任务填充脚本。
|
|
51
|
-
record-quality-error.sh: 质量错误记录脚本。
|
|
52
|
-
recover-workflow.sh: 中断恢复脚本。
|
|
53
|
-
run-clarify-scan.sh: Clarify 扫描执行脚本。
|
|
54
|
-
run-high-review.sh: 高强度 review 执行脚本。
|
|
55
|
-
run-problem-analysis.sh: 问题分析执行脚本。
|
|
56
|
-
run-quality-gates.sh: 质量门禁执行脚本。
|
|
57
|
-
setup-epic.sh: Epic 初始化脚本。
|
|
58
|
-
setup-ralph-loop.sh: Ralph Loop 初始化脚本。
|
|
59
|
-
sync-roadmap-progress.sh: roadmap 进度同步脚本。
|
|
60
|
-
sync-task-marks.sh: TASKS 勾选同步脚本。
|
|
61
|
-
team-dev-init.sh: Team 开发并行初始化脚本。
|
|
62
|
-
team-state-recovery.sh: Team 状态恢复脚本。
|
|
63
|
-
test-clarify-scan.sh: Clarify 扫描测试脚本。
|
|
64
|
-
update-agent-context.sh: Agent 上下文更新脚本。
|
|
65
|
-
validate-constitution.sh: Constitution 校验脚本。
|
|
66
|
-
validate-hooks.sh: Hooks 校验脚本。
|
|
67
|
-
validate-research.sh: research 质量校验脚本。
|
|
68
|
-
validate-scope-boundary.sh: scope 边界校验脚本。
|
|
69
|
-
verify-gate.sh: Gate 校验脚本。
|
|
70
|
-
verify-setup.sh: 环境/安装验证脚本。
|
|
71
|
-
workflow-status.ts: 工作流状态类型化读取器。
|
|
72
|
-
|
|
73
|
-
## 设计约束
|
|
74
|
-
|
|
75
|
-
- 需求识别统一复用 `common.sh`,避免多处正则分叉。
|
|
76
|
-
- 新增脚本优先保持幂等与可重入,便于中断恢复。
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# shellcheck disable=SC2312
|
|
3
|
-
|
|
4
|
-
set -euo pipefail
|
|
5
|
-
|
|
6
|
-
usage() {
|
|
7
|
-
cat <<'USAGE'
|
|
8
|
-
Usage: scripts/bash/analyze-upgrade-impact.sh --req <requirement-dir|REQ-ID> [--compare version] [--format {text,json}]
|
|
9
|
-
|
|
10
|
-
Produces PRD change detection and impact assessment reports under
|
|
11
|
-
devflow/requirements/<REQ>/analysis/.
|
|
12
|
-
USAGE
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
REQ=""
|
|
16
|
-
COMPARE=""
|
|
17
|
-
FORMAT="text"
|
|
18
|
-
|
|
19
|
-
while [[ $# -gt 0 ]]; do
|
|
20
|
-
case "$1" in
|
|
21
|
-
--req)
|
|
22
|
-
shift
|
|
23
|
-
REQ="${1:-}"
|
|
24
|
-
;;
|
|
25
|
-
--compare)
|
|
26
|
-
shift
|
|
27
|
-
COMPARE="${1:-}"
|
|
28
|
-
;;
|
|
29
|
-
--format)
|
|
30
|
-
shift
|
|
31
|
-
FORMAT="${1:-text}"
|
|
32
|
-
;;
|
|
33
|
-
-h|--help)
|
|
34
|
-
usage
|
|
35
|
-
exit 0
|
|
36
|
-
;;
|
|
37
|
-
*)
|
|
38
|
-
echo "Unknown argument: $1" >&2
|
|
39
|
-
usage
|
|
40
|
-
exit 1
|
|
41
|
-
;;
|
|
42
|
-
esac
|
|
43
|
-
shift
|
|
44
|
-
done
|
|
45
|
-
|
|
46
|
-
if [[ -z "$REQ" ]]; then
|
|
47
|
-
echo "Error: --req is required." >&2
|
|
48
|
-
usage
|
|
49
|
-
exit 1
|
|
50
|
-
fi
|
|
51
|
-
|
|
52
|
-
if [[ -d "$REQ" ]]; then
|
|
53
|
-
REQ_DIR="$(cd "$REQ" && pwd)"
|
|
54
|
-
else
|
|
55
|
-
REQ_DIR="devflow/requirements/$REQ"
|
|
56
|
-
fi
|
|
57
|
-
|
|
58
|
-
if [[ ! -d "$REQ_DIR" ]]; then
|
|
59
|
-
echo "Error: requirement directory '$REQ_DIR' not found." >&2
|
|
60
|
-
exit 1
|
|
61
|
-
fi
|
|
62
|
-
|
|
63
|
-
python3 - "$REQ_DIR" "$COMPARE" "$FORMAT" <<'PY'
|
|
64
|
-
from __future__ import annotations
|
|
65
|
-
|
|
66
|
-
import json
|
|
67
|
-
import re
|
|
68
|
-
import sys
|
|
69
|
-
from datetime import datetime, timezone
|
|
70
|
-
from pathlib import Path
|
|
71
|
-
from typing import Dict, Any
|
|
72
|
-
|
|
73
|
-
req_dir = Path(sys.argv[1]).resolve()
|
|
74
|
-
compare_version = sys.argv[2] or ""
|
|
75
|
-
fmt = sys.argv[3]
|
|
76
|
-
|
|
77
|
-
prd_current = req_dir / "PRD.md"
|
|
78
|
-
if not prd_current.exists():
|
|
79
|
-
print(f"Error: {prd_current} not found.", file=sys.stderr)
|
|
80
|
-
sys.exit(1)
|
|
81
|
-
|
|
82
|
-
versions_dir = req_dir / "versions"
|
|
83
|
-
compare_path = None
|
|
84
|
-
if compare_version:
|
|
85
|
-
compare_path = versions_dir / compare_version / "PRD.md"
|
|
86
|
-
if not compare_path.exists():
|
|
87
|
-
print(f"Warning: compare version {compare_version} not found; skipping diff.", file=sys.stderr)
|
|
88
|
-
compare_path = None
|
|
89
|
-
|
|
90
|
-
current_lines = prd_current.read_text(encoding="utf-8").splitlines()
|
|
91
|
-
previous_lines = compare_path.read_text(encoding="utf-8").splitlines() if compare_path else []
|
|
92
|
-
|
|
93
|
-
analysis_dir = req_dir / "analysis"
|
|
94
|
-
analysis_dir.mkdir(exist_ok=True, parents=True)
|
|
95
|
-
timestamp = datetime.now(timezone.utc).strftime("%Y%m%d-%H%M%S")
|
|
96
|
-
|
|
97
|
-
def diff_stats() -> Dict[str, Any]:
|
|
98
|
-
additions = sum(1 for line in current_lines if line.startswith("+") and "User Story" in line)
|
|
99
|
-
removals = sum(1 for line in previous_lines if line.startswith("+") and "User Story" in line)
|
|
100
|
-
breaking = 0
|
|
101
|
-
additive = 0
|
|
102
|
-
for line in current_lines:
|
|
103
|
-
if "[BREAKING]" in line or re.search(r"\bRemoved\b", line, re.IGNORECASE):
|
|
104
|
-
breaking += 1
|
|
105
|
-
if "User Story" in line or "API" in line:
|
|
106
|
-
additive += 1
|
|
107
|
-
return {
|
|
108
|
-
"userStoriesAdded": additions,
|
|
109
|
-
"userStoriesRemoved": removals,
|
|
110
|
-
"breakingMarkers": breaking,
|
|
111
|
-
"featureChanges": additive,
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
stats = diff_stats()
|
|
115
|
-
|
|
116
|
-
if stats["breakingMarkers"] > 0 or stats["userStoriesRemoved"] > 0:
|
|
117
|
-
recommendation = "MAJOR"
|
|
118
|
-
elif stats["featureChanges"] > 1:
|
|
119
|
-
recommendation = "MINOR"
|
|
120
|
-
else:
|
|
121
|
-
recommendation = "PATCH"
|
|
122
|
-
|
|
123
|
-
change_report = analysis_dir / f"change_detection_{timestamp}.md"
|
|
124
|
-
impact_report = analysis_dir / f"impact_assessment_{timestamp}.md"
|
|
125
|
-
recommendation_report = analysis_dir / f"upgrade_recommendation_{timestamp}.md"
|
|
126
|
-
|
|
127
|
-
change_report.write_text(
|
|
128
|
-
"\n".join(
|
|
129
|
-
[
|
|
130
|
-
f"# Change Detection — {req_dir.name}",
|
|
131
|
-
f"Generated: {datetime.now(timezone.utc).isoformat()}",
|
|
132
|
-
"",
|
|
133
|
-
f"- User stories added: {stats['userStoriesAdded']}",
|
|
134
|
-
f"- User stories removed: {stats['userStoriesRemoved']}",
|
|
135
|
-
f"- Breaking markers: {stats['breakingMarkers']}",
|
|
136
|
-
f"- Feature change mentions: {stats['featureChanges']}",
|
|
137
|
-
]
|
|
138
|
-
)
|
|
139
|
-
+ "\n",
|
|
140
|
-
encoding="utf-8",
|
|
141
|
-
)
|
|
142
|
-
|
|
143
|
-
impact_report.write_text(
|
|
144
|
-
"\n".join(
|
|
145
|
-
[
|
|
146
|
-
f"# Impact Assessment — {req_dir.name}",
|
|
147
|
-
"",
|
|
148
|
-
"## Code Areas Impacted",
|
|
149
|
-
"- TODO: map affected services/controllers.",
|
|
150
|
-
"",
|
|
151
|
-
"## Test Plan Impact",
|
|
152
|
-
"- TODO: identify regression suites requiring updates.",
|
|
153
|
-
"",
|
|
154
|
-
"## Deployment Considerations",
|
|
155
|
-
"- TODO: document rollout/rollback implications.",
|
|
156
|
-
]
|
|
157
|
-
)
|
|
158
|
-
+ "\n",
|
|
159
|
-
encoding="utf-8",
|
|
160
|
-
)
|
|
161
|
-
|
|
162
|
-
recommendation_report.write_text(
|
|
163
|
-
"\n".join(
|
|
164
|
-
[
|
|
165
|
-
f"# Upgrade Recommendation — {req_dir.name}",
|
|
166
|
-
"",
|
|
167
|
-
f"- Suggested version bump: **{recommendation}**",
|
|
168
|
-
"- Rationale:",
|
|
169
|
-
f" * Breaking markers detected: {stats['breakingMarkers']}",
|
|
170
|
-
f" * User stories added: {stats['userStoriesAdded']}",
|
|
171
|
-
f" * User stories removed: {stats['userStoriesRemoved']}",
|
|
172
|
-
]
|
|
173
|
-
)
|
|
174
|
-
+ "\n",
|
|
175
|
-
encoding="utf-8",
|
|
176
|
-
)
|
|
177
|
-
|
|
178
|
-
summary = {
|
|
179
|
-
"requirement": req_dir.name,
|
|
180
|
-
"compareVersion": compare_version or None,
|
|
181
|
-
"recommendedBump": recommendation,
|
|
182
|
-
"statistics": stats,
|
|
183
|
-
"reports": {
|
|
184
|
-
"changeDetection": str(change_report.relative_to(req_dir)),
|
|
185
|
-
"impactAssessment": str(impact_report.relative_to(req_dir)),
|
|
186
|
-
"recommendation": str(recommendation_report.relative_to(req_dir)),
|
|
187
|
-
},
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
if fmt.lower() == "json":
|
|
191
|
-
print(json.dumps(summary, indent=2))
|
|
192
|
-
else:
|
|
193
|
-
print(
|
|
194
|
-
f"Recommended bump: {recommendation}\n"
|
|
195
|
-
f"Reports:\n"
|
|
196
|
-
f" - {summary['reports']['changeDetection']}\n"
|
|
197
|
-
f" - {summary['reports']['impactAssessment']}\n"
|
|
198
|
-
f" - {summary['reports']['recommendation']}"
|
|
199
|
-
)
|
|
200
|
-
PY
|