cc-devflow 4.3.0 → 4.5.0
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 +70 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +212 -0
- package/.claude/skills/cc-act/SKILL.md +330 -0
- package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +68 -0
- package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +29 -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 +245 -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 +200 -0
- package/.claude/skills/cc-act/scripts/sync-act-docs.sh +328 -0
- package/.claude/skills/cc-act/scripts/verify-act-gate.sh +63 -0
- package/.claude/skills/cc-check/CHANGELOG.md +78 -0
- package/.claude/skills/cc-check/PLAYBOOK.md +153 -0
- package/.claude/skills/cc-check/SKILL.md +353 -0
- package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +53 -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 +54 -0
- package/.claude/skills/cc-do/PLAYBOOK.md +119 -0
- package/.claude/skills/cc-do/SKILL.md +224 -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 +31 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +49 -0
- package/.claude/skills/cc-investigate/SKILL.md +229 -0
- package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +56 -0
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +53 -0
- package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +106 -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 +104 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +106 -0
- package/.claude/skills/cc-plan/SKILL.md +333 -0
- package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +156 -0
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +99 -0
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +111 -0
- package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +80 -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 +119 -0
- package/.claude/skills/cc-roadmap/PLAYBOOK.md +136 -0
- package/.claude/skills/cc-roadmap/SKILL.md +267 -0
- package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +46 -0
- package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +154 -0
- package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +51 -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 +12 -0
- package/.claude/skills/cc-spec-init/PLAYBOOK.md +55 -0
- package/.claude/skills/cc-spec-init/SKILL.md +135 -0
- package/.claude/skills/cc-spec-init/assets/CAPABILITY_TEMPLATE.md +64 -0
- package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +28 -0
- package/.claude/skills/cc-spec-init/assets/INDEX_TEMPLATE.md +35 -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 +80 -4
- package/README.md +148 -741
- package/README.zh-CN.md +146 -740
- package/bin/adapt.js +2 -6
- package/bin/cc-devflow-cli.js +287 -166
- package/config/distributable-skills.json +24 -0
- package/config/schema/cc-devflow-config.schema.json +45 -0
- package/config/user-config.template.yml +16 -0
- package/docs/CLAUDE.md +10 -6
- package/docs/commands/README.md +19 -46
- package/docs/commands/README.zh-CN.md +25 -48
- package/docs/examples/BY-ARTIFACT.md +7 -0
- package/docs/examples/README.md +38 -0
- package/docs/examples/START-HERE.md +149 -0
- package/docs/examples/example-bindings.json +38 -0
- package/docs/examples/full-design-blocked/BACKLOG.md +45 -0
- package/docs/examples/full-design-blocked/README.md +55 -0
- package/docs/examples/full-design-blocked/ROADMAP.md +53 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +154 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +146 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +78 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +52 -0
- package/docs/examples/full-design-blocked/roadmap-tracking.json +50 -0
- package/docs/examples/local-handoff/BACKLOG.md +45 -0
- package/docs/examples/local-handoff/README.md +56 -0
- package/docs/examples/local-handoff/ROADMAP.md +45 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +39 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +29 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +71 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +98 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +59 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +44 -0
- package/docs/examples/local-handoff/roadmap-tracking.json +48 -0
- package/docs/examples/pdca-loop/BACKLOG.md +46 -0
- package/docs/examples/pdca-loop/README.md +58 -0
- package/docs/examples/pdca-loop/ROADMAP.md +133 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +72 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +29 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +72 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +201 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +73 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +44 -0
- package/docs/examples/pdca-loop/roadmap-tracking.json +114 -0
- package/docs/examples/scripts/check-example-bindings.sh +116 -0
- package/docs/guides/getting-started.md +94 -129
- package/docs/guides/getting-started.zh-CN.md +103 -84
- package/docs/skill-runtime-migration.md +46 -0
- package/docs/v4.3.0-migration-guide.md +60 -225
- package/lib/compiler/CLAUDE.md +55 -84
- package/lib/compiler/__tests__/drift.test.js +1 -1
- package/lib/compiler/__tests__/errors.test.js +0 -1
- package/lib/compiler/__tests__/integration.test.js +49 -3
- package/lib/compiler/__tests__/manifest.test.js +0 -156
- package/lib/compiler/__tests__/parser.test.js +33 -104
- package/lib/compiler/__tests__/schemas.test.js +30 -34
- package/lib/compiler/__tests__/skills-registry.test.js +114 -0
- package/lib/compiler/__tests__/transformer.test.js +5 -9
- package/lib/compiler/emitters/antigravity-emitter.js +5 -213
- package/lib/compiler/emitters/base-emitter.js +3 -298
- package/lib/compiler/emitters/codex-emitter.js +4 -202
- package/lib/compiler/emitters/cursor-emitter.js +3 -287
- package/lib/compiler/emitters/qwen-emitter.js +4 -176
- package/lib/compiler/index.js +65 -345
- package/lib/compiler/manifest.js +6 -68
- package/lib/compiler/parser.js +31 -63
- package/lib/compiler/platforms.js +32 -277
- package/lib/compiler/resource-copier.js +176 -6
- package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +3 -3
- package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +14 -4
- package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +16 -7
- package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +10 -15
- package/lib/compiler/rules-emitters/base-rules-emitter.js +5 -5
- package/lib/compiler/rules-emitters/cursor-rules-emitter.js +7 -12
- package/lib/compiler/rules-emitters/index.js +6 -3
- package/lib/compiler/rules-emitters/qwen-rules-emitter.js +7 -7
- package/lib/compiler/schemas.js +8 -4
- package/lib/compiler/skills-registry.js +213 -15
- package/lib/compiler/transformer.js +1 -1
- package/lib/skill-runtime/CLAUDE.md +19 -0
- package/lib/skill-runtime/__tests__/autopilot.test.js +210 -0
- package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +291 -0
- package/lib/skill-runtime/__tests__/config.test.js +161 -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 +281 -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/config.js +379 -0
- package/lib/skill-runtime/delegation.js +533 -0
- package/lib/skill-runtime/index.js +36 -0
- package/lib/skill-runtime/intent.js +333 -0
- package/lib/skill-runtime/lifecycle.js +294 -0
- package/lib/skill-runtime/operations/CLAUDE.md +19 -0
- package/lib/skill-runtime/operations/approve.js +66 -0
- package/lib/skill-runtime/operations/autopilot-core.js +337 -0
- package/lib/skill-runtime/operations/autopilot-execution.js +307 -0
- package/lib/skill-runtime/operations/autopilot-shared.js +48 -0
- package/lib/skill-runtime/operations/autopilot.js +163 -0
- package/lib/skill-runtime/operations/dispatch.js +454 -0
- package/lib/skill-runtime/operations/init.js +64 -0
- package/lib/{harness → skill-runtime}/operations/janitor.js +9 -6
- package/lib/skill-runtime/operations/plan.js +59 -0
- package/lib/skill-runtime/operations/prepare-pr.js +25 -0
- package/lib/skill-runtime/operations/release.js +96 -0
- package/lib/skill-runtime/operations/resume.js +143 -0
- package/lib/skill-runtime/operations/snapshot.js +45 -0
- package/lib/skill-runtime/operations/verify.js +170 -0
- package/lib/skill-runtime/operations/worker-run.js +529 -0
- package/lib/skill-runtime/operations/worker.js +33 -0
- package/lib/skill-runtime/paths.js +213 -0
- package/lib/skill-runtime/planner.js +519 -0
- package/lib/skill-runtime/query.js +157 -0
- package/lib/skill-runtime/review.js +557 -0
- package/lib/skill-runtime/schemas.js +400 -0
- package/lib/{harness → skill-runtime}/store.js +45 -30
- package/lib/skill-runtime/team-state.js +122 -0
- package/package.json +13 -11
- package/.claude/CLAUDE.md +0 -125
- package/.claude/agents/architecture-designer.md +0 -443
- package/.claude/agents/bug-analyzer.md +0 -381
- package/.claude/agents/checklist-agent.md +0 -175
- package/.claude/agents/clarify-analyst.md +0 -50
- package/.claude/agents/code-quality-reviewer.md +0 -205
- package/.claude/agents/code-reviewer.md +0 -71
- package/.claude/agents/codex-analyzer.md +0 -39
- package/.claude/agents/compatibility-checker.md +0 -579
- package/.claude/agents/consistency-checker.md +0 -532
- package/.claude/agents/dev-implementer.md +0 -195
- package/.claude/agents/flow-researcher.md +0 -132
- package/.claude/agents/impact-analyzer.md +0 -440
- package/.claude/agents/planner.md +0 -230
- package/.claude/agents/prd-writer.md +0 -320
- package/.claude/agents/project-guidelines-generator.md +0 -1329
- package/.claude/agents/qa-tester.md +0 -313
- package/.claude/agents/release-manager.md +0 -295
- package/.claude/agents/security-reviewer.md +0 -314
- package/.claude/agents/spec-reviewer.md +0 -221
- package/.claude/agents/style-guide-generator.md +0 -458
- package/.claude/agents/tech-architect.md +0 -516
- package/.claude/agents/ui-designer.md +0 -485
- package/.claude/commands/core/architecture.md +0 -459
- package/.claude/commands/core/guidelines.md +0 -511
- package/.claude/commands/core/roadmap.md +0 -468
- package/.claude/commands/core/style.md +0 -83
- package/.claude/commands/flow/CLAUDE.md +0 -24
- package/.claude/commands/flow/archive.md +0 -280
- package/.claude/commands/flow/constitution.md +0 -82
- package/.claude/commands/flow/context.md +0 -150
- package/.claude/commands/flow/delta.md +0 -245
- package/.claude/commands/flow/dev.md +0 -40
- package/.claude/commands/flow/fix.md +0 -217
- package/.claude/commands/flow/ideate.md +0 -214
- package/.claude/commands/flow/init.md +0 -38
- package/.claude/commands/flow/release.md +0 -36
- package/.claude/commands/flow/restart.md +0 -97
- package/.claude/commands/flow/spec.md +0 -36
- package/.claude/commands/flow/status.md +0 -64
- package/.claude/commands/flow/update.md +0 -111
- package/.claude/commands/flow/upgrade.md +0 -115
- package/.claude/commands/flow/verify.md +0 -37
- package/.claude/commands/flow/workspace.md +0 -155
- package/.claude/commands/util/cancel-ralph.md +0 -60
- package/.claude/commands/util/code-review.md +0 -58
- package/.claude/commands/util/git-commit.md +0 -422
- package/.claude/commands/util/problem-analyzer.md +0 -60
- package/.claude/config/quality-gates.yml +0 -305
- package/.claude/config/quality-rules.yml +0 -161
- package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +0 -426
- package/.claude/docs/design/consistency-conflict-detection-algorithms.md +0 -658
- package/.claude/docs/design/intent-driven-input-design.md +0 -380
- package/.claude/docs/design/prd-version-management-design.md +0 -437
- package/.claude/docs/examples/design-inspiration-pool.md +0 -59
- package/.claude/docs/examples/ui-prototype-constitution-checklist.md +0 -75
- package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +0 -117
- package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +0 -99
- package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +0 -188
- package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +0 -338
- package/.claude/docs/guides/TEAM_MODE_GUIDE.md +0 -312
- package/.claude/docs/implementation-summary-v7.md +0 -449
- package/.claude/docs/spec-format-guide.md +0 -349
- package/.claude/docs/state-consolidation-design.md +0 -323
- package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +0 -332
- package/.claude/docs/templates/ATTEMPT_TEMPLATE.md +0 -156
- package/.claude/docs/templates/BACKLOG_TEMPLATE.md +0 -261
- package/.claude/docs/templates/BRAINSTORM_TEMPLATE.md +0 -148
- package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +0 -52
- package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +0 -206
- package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +0 -71
- package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +0 -91
- package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +0 -151
- package/.claude/docs/templates/DESIGN_TEMPLATE.md +0 -157
- package/.claude/docs/templates/ERROR_LOG_TEMPLATE.md +0 -80
- package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +0 -198
- package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +0 -57
- package/.claude/docs/templates/JOURNAL_TEMPLATE.md +0 -75
- package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +0 -76
- package/.claude/docs/templates/PROPOSAL_TEMPLATE.md +0 -91
- package/.claude/docs/templates/RESEARCH_TEMPLATE.md +0 -276
- package/.claude/docs/templates/REVIEW-HIGH.md +0 -57
- package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +0 -198
- package/.claude/docs/templates/ROADMAP_TEMPLATE.md +0 -310
- package/.claude/docs/templates/SPEC_TEMPLATE_DELTA.md +0 -139
- package/.claude/docs/templates/SPEC_TEMPLATE_PROJECT.md +0 -93
- package/.claude/docs/templates/STYLE_TEMPLATE.md +0 -479
- package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +0 -373
- package/.claude/docs/templates/_shared/CLAUDE.md +0 -36
- package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +0 -125
- package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +0 -187
- package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +0 -164
- package/.claude/docs/templates/context/dev.jsonl.template +0 -6
- package/.claude/docs/templates/context/epic.jsonl.template +0 -5
- package/.claude/docs/templates/context/prd.jsonl.template +0 -4
- package/.claude/docs/templates/context/research.jsonl.template +0 -4
- package/.claude/docs/templates/context/review.jsonl.template +0 -5
- package/.claude/docs/templates/context/tech.jsonl.template +0 -5
- package/.claude/guides/agent-guides/agent-coordination-guide.md +0 -459
- package/.claude/guides/project-guidelines-system.md +0 -463
- package/.claude/guides/technical-guides/datetime-handling-guide.md +0 -563
- package/.claude/guides/technical-guides/git-github-guide.md +0 -642
- package/.claude/guides/technical-guides/test-execution-guide.md +0 -618
- package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +0 -217
- package/.claude/guides/workflow-guides/flow-orchestrator.md +0 -48
- package/.claude/hooks/CLAUDE.md +0 -342
- package/.claude/hooks/checklist-gate.js +0 -397
- package/.claude/hooks/error-handling-reminder.sh +0 -12
- package/.claude/hooks/error-handling-reminder.ts +0 -459
- package/.claude/hooks/hooks.json +0 -15
- package/.claude/hooks/inject-agent-context.ts +0 -480
- package/.claude/hooks/inject-skill-context.ts +0 -359
- package/.claude/hooks/post-tool-use-tracker.sh +0 -280
- package/.claude/hooks/pre-tool-use-guardrail.sh +0 -36
- package/.claude/hooks/pre-tool-use-guardrail.ts +0 -342
- package/.claude/hooks/ralph-loop.ts +0 -931
- package/.claude/hooks/ralph-stop-hook.sh +0 -190
- package/.claude/hooks/skill-activation-prompt.sh +0 -36
- package/.claude/hooks/skill-activation-prompt.ts +0 -214
- package/.claude/hooks/state/skills-used-test-guard.json +0 -3
- package/.claude/hooks/task-completed-hook.ts +0 -593
- package/.claude/hooks/teammate-idle-hook.ts +0 -690
- package/.claude/hooks/types/team-types.d.ts +0 -238
- package/.claude/rules/devflow-conventions.md +0 -286
- package/.claude/rules/project-constitution.md +0 -1002
- package/.claude/rules/rationalization-library.md +0 -282
- package/.claude/schemas/constitution.schema.json +0 -43
- package/.claude/scripts/.claude/commands/flow/export-openspec.md +0 -221
- package/.claude/scripts/.claude/commands/flow/import-openspec.md +0 -171
- package/.claude/scripts/CLAUDE.md +0 -76
- package/.claude/scripts/__tests__/openspec.test.js +0 -212
- package/.claude/scripts/analyze-upgrade-impact.sh +0 -200
- package/.claude/scripts/archive-requirement.sh +0 -394
- package/.claude/scripts/calculate-checklist-completion.sh +0 -243
- package/.claude/scripts/calculate-quarter.sh +0 -206
- package/.claude/scripts/check-dependencies.sh +0 -409
- package/.claude/scripts/check-prerequisites.sh +0 -232
- package/.claude/scripts/check-task-status.sh +0 -288
- package/.claude/scripts/checklist-errors.sh +0 -131
- package/.claude/scripts/common.sh +0 -1102
- package/.claude/scripts/consolidate-research.sh +0 -182
- package/.claude/scripts/create-requirement.sh +0 -451
- package/.claude/scripts/delta-parser.ts +0 -637
- package/.claude/scripts/detect-file-conflicts.sh +0 -151
- package/.claude/scripts/export-contracts.sh +0 -117
- package/.claude/scripts/export-openspec.js +0 -222
- package/.claude/scripts/extract-data-model.sh +0 -78
- package/.claude/scripts/flow-context-add.sh +0 -134
- package/.claude/scripts/flow-context-init.sh +0 -133
- package/.claude/scripts/flow-context-validate.sh +0 -144
- package/.claude/scripts/flow-delta-apply.sh +0 -297
- package/.claude/scripts/flow-delta-archive.sh +0 -71
- package/.claude/scripts/flow-delta-create.sh +0 -202
- package/.claude/scripts/flow-delta-list.sh +0 -142
- package/.claude/scripts/flow-delta-status.sh +0 -235
- package/.claude/scripts/flow-quality-full.sh +0 -215
- package/.claude/scripts/flow-quality-quick.sh +0 -119
- package/.claude/scripts/flow-workspace-init.sh +0 -117
- package/.claude/scripts/flow-workspace-record.sh +0 -164
- package/.claude/scripts/generate-clarification-questions.sh +0 -377
- package/.claude/scripts/generate-clarification-report.sh +0 -463
- package/.claude/scripts/generate-quickstart.sh +0 -146
- package/.claude/scripts/generate-research-tasks.sh +0 -157
- package/.claude/scripts/generate-status-report.sh +0 -523
- package/.claude/scripts/generate-tech-analysis.sh +0 -46
- package/.claude/scripts/get-workflow-status.sh +0 -415
- package/.claude/scripts/import-openspec.js +0 -272
- package/.claude/scripts/locate-requirement-in-roadmap.sh +0 -233
- package/.claude/scripts/manage-constitution.sh +0 -602
- package/.claude/scripts/mark-task-complete.sh +0 -198
- package/.claude/scripts/parse-task-dependencies.js +0 -334
- package/.claude/scripts/populate-research-tasks.sh +0 -284
- package/.claude/scripts/record-quality-error.sh +0 -165
- package/.claude/scripts/recover-workflow.sh +0 -463
- package/.claude/scripts/run-clarify-scan.sh +0 -601
- package/.claude/scripts/run-high-review.sh +0 -62
- package/.claude/scripts/run-problem-analysis.sh +0 -68
- package/.claude/scripts/run-quality-gates.sh +0 -242
- package/.claude/scripts/setup-epic.sh +0 -173
- package/.claude/scripts/setup-ralph-loop.sh +0 -155
- package/.claude/scripts/sync-roadmap-progress.sh +0 -300
- package/.claude/scripts/sync-task-marks.sh +0 -199
- package/.claude/scripts/team-dev-init.sh +0 -319
- package/.claude/scripts/team-state-recovery.sh +0 -229
- package/.claude/scripts/test-clarify-scan.sh +0 -515
- package/.claude/scripts/update-agent-context.sh +0 -806
- package/.claude/scripts/validate-constitution.sh +0 -567
- package/.claude/scripts/validate-hooks.sh +0 -487
- package/.claude/scripts/validate-research.sh +0 -332
- package/.claude/scripts/validate-scope-boundary.sh +0 -493
- package/.claude/scripts/validate-scope.sh +0 -200
- package/.claude/scripts/verify-gate.sh +0 -269
- package/.claude/scripts/verify-setup.sh +0 -37
- package/.claude/scripts/workflow-status.ts +0 -433
- package/.claude/settings.json +0 -95
- package/.claude/skills/_reference-implementations/README.md +0 -96
- package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +0 -302
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +0 -451
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +0 -307
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +0 -638
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +0 -275
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +0 -224
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +0 -213
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +0 -756
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +0 -336
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +0 -789
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +0 -235
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +0 -754
- package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +0 -399
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +0 -331
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +0 -872
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +0 -502
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +0 -767
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +0 -502
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +0 -501
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +0 -406
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +0 -364
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +0 -428
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +0 -418
- package/.claude/skills/attention-refresh/SKILL.md +0 -170
- package/.claude/skills/brainstorming/SKILL.md +0 -161
- package/.claude/skills/cc-devflow-orchestrator/SKILL.md +0 -169
- package/.claude/skills/constitution-guardian/SKILL.md +0 -306
- package/.claude/skills/constitution-quick-ref/SKILL.md +0 -374
- package/.claude/skills/debugging/SKILL.md +0 -221
- package/.claude/skills/file-standards/SKILL.md +0 -353
- package/.claude/skills/finishing-branch/SKILL.md +0 -189
- package/.claude/skills/flow-dev/CLAUDE.md +0 -16
- package/.claude/skills/flow-dev/SKILL.md +0 -94
- package/.claude/skills/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -71
- package/.claude/skills/flow-dev/context.jsonl +0 -4
- package/.claude/skills/flow-dev/dev-implementer.jsonl +0 -8
- package/.claude/skills/flow-dev/scripts/entry-gate.sh +0 -116
- package/.claude/skills/flow-dev/scripts/exit-gate.sh +0 -101
- package/.claude/skills/flow-dev/scripts/task-orchestrator.sh +0 -106
- package/.claude/skills/flow-fix/SKILL.md +0 -105
- package/.claude/skills/flow-fix/context.jsonl +0 -6
- package/.claude/skills/flow-fix/references/bug-analyzer.md +0 -381
- package/.claude/skills/flow-init/SKILL.md +0 -105
- package/.claude/skills/flow-init/assets/BRAINSTORM_TEMPLATE.md +0 -148
- package/.claude/skills/flow-init/assets/INIT_FLOW_TEMPLATE.md +0 -198
- package/.claude/skills/flow-init/assets/RESEARCH_TEMPLATE.md +0 -276
- package/.claude/skills/flow-init/context.jsonl +0 -5
- package/.claude/skills/flow-init/references/flow-researcher.md +0 -132
- package/.claude/skills/flow-init/scripts/check-prerequisites.sh +0 -240
- package/.claude/skills/flow-init/scripts/consolidate-research.sh +0 -182
- package/.claude/skills/flow-init/scripts/create-requirement.sh +0 -404
- package/.claude/skills/flow-init/scripts/generate-research-tasks.sh +0 -157
- package/.claude/skills/flow-init/scripts/populate-research-tasks.sh +0 -284
- package/.claude/skills/flow-init/scripts/validate-research.sh +0 -340
- package/.claude/skills/flow-quality/SKILL.md +0 -98
- package/.claude/skills/flow-quality/context.jsonl +0 -6
- package/.claude/skills/flow-quality/references/code-quality-reviewer.md +0 -205
- package/.claude/skills/flow-quality/references/qa-tester.md +0 -313
- package/.claude/skills/flow-quality/references/security-reviewer.md +0 -314
- package/.claude/skills/flow-quality/references/spec-reviewer.md +0 -221
- package/.claude/skills/flow-release/SKILL.md +0 -60
- package/.claude/skills/flow-release/context.jsonl +0 -5
- package/.claude/skills/flow-release/references/release-manager.md +0 -295
- package/.claude/skills/flow-spec/CLAUDE.md +0 -17
- package/.claude/skills/flow-spec/SKILL.md +0 -102
- package/.claude/skills/flow-spec/context.jsonl +0 -5
- package/.claude/skills/flow-spec/scripts/entry-gate.sh +0 -194
- package/.claude/skills/flow-spec/scripts/exit-gate.sh +0 -244
- package/.claude/skills/flow-spec/scripts/parallel-orchestrator.sh +0 -205
- package/.claude/skills/flow-spec/scripts/team-communication.sh +0 -353
- package/.claude/skills/flow-spec/scripts/team-init.sh +0 -195
- package/.claude/skills/flow-spec/scripts/test-team-mode.sh +0 -496
- package/.claude/skills/flow-spec/team-config.json +0 -165
- package/.claude/skills/flow-verify/CLAUDE.md +0 -10
- package/.claude/skills/flow-verify/SKILL.md +0 -53
- package/.claude/skills/flow-verify/context.jsonl +0 -5
- package/.claude/skills/fractal-docs/SKILL.md +0 -45
- package/.claude/skills/journey-checker/SKILL.md +0 -199
- package/.claude/skills/journey-checker/pressure-scenarios.md +0 -164
- package/.claude/skills/receiving-review/SKILL.md +0 -153
- package/.claude/skills/skill-creator/LICENSE.txt +0 -202
- package/.claude/skills/skill-creator/SKILL.md +0 -356
- package/.claude/skills/skill-creator/references/output-patterns.md +0 -82
- package/.claude/skills/skill-creator/references/workflows.md +0 -28
- package/.claude/skills/skill-creator/scripts/init_skill.py +0 -303
- package/.claude/skills/skill-creator/scripts/package_skill.py +0 -110
- package/.claude/skills/skill-creator/scripts/quick_validate.py +0 -95
- package/.claude/skills/skill-rules.json +0 -359
- package/.claude/skills/tdd/SKILL.md +0 -218
- package/.claude/skills/tdd-enforcer/SKILL.md +0 -192
- package/.claude/skills/utility/npm-release/CLAUDE.md +0 -55
- package/.claude/skills/utility/npm-release/SKILL.md +0 -379
- package/.claude/skills/utility/npm-release/references/version-decision-guide.md +0 -134
- package/.claude/skills/utility/npm-release/scripts/atomic-version-bump.sh +0 -95
- package/.claude/skills/utility/npm-release/scripts/validate-version-sync.sh +0 -82
- package/.claude/skills/utility/npm-release/scripts/version-decision-tree.sh +0 -44
- package/.claude/skills/verification/SKILL.md +0 -158
- package/.claude/skills/workflow.yaml +0 -219
- package/.claude/tests/README.md +0 -300
- package/.claude/tests/TODO.md +0 -69
- package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/constitution/run_all_constitution_tests.sh +0 -111
- package/.claude/tests/constitution/test_agent_assignment.sh +0 -207
- package/.claude/tests/constitution/test_article_coverage.sh +0 -201
- package/.claude/tests/constitution/test_template_completeness.sh +0 -150
- package/.claude/tests/constitution/test_version_consistency.sh +0 -120
- package/.claude/tests/fixtures/spec_delta_full.md +0 -16
- package/.claude/tests/fixtures/tasks_progress_sample.md +0 -5
- package/.claude/tests/run-all-tests.sh +0 -229
- package/.claude/tests/scripts/run.sh +0 -30
- package/.claude/tests/scripts/test-framework.sh +0 -128
- package/.claude/tests/scripts/test_check_prerequisites.sh +0 -511
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak +0 -504
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +0 -505
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +0 -506
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +0 -507
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +0 -508
- package/.claude/tests/scripts/test_check_task_status.sh +0 -499
- package/.claude/tests/scripts/test_common.sh +0 -244
- package/.claude/tests/scripts/test_generate_status_report.sh +0 -71
- package/.claude/tests/scripts/test_mark_task_complete.sh +0 -441
- package/.claude/tests/scripts/test_mark_task_complete.sh.backup +0 -410
- package/.claude/tests/scripts/test_recover_workflow.sh +0 -304
- package/.claude/tests/scripts/test_setup_epic.sh +0 -437
- package/.claude/tests/scripts/test_sync_task_marks.sh +0 -196
- package/.claude/tests/scripts/test_validate_constitution.sh +0 -74
- package/.claude/tests/scripts/test_validate_research.sh +0 -462
- package/.claude/tests/slugify.bats +0 -82
- package/.claude/tests/test-framework.sh +0 -732
- package/.claude/tests/test_analyze_upgrade_impact.py +0 -34
- package/.claude/tests/test_consolidate_research.py +0 -48
- package/.claude/tests/test_export_contracts.py +0 -43
- package/.claude/tests/test_extract_data_model.py +0 -33
- package/.claude/tests/test_generate_quickstart.py +0 -50
- package/.claude/tests/test_generate_research_tasks.py +0 -52
- package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/affected-repos.txt +0 -1
- package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/edited-files.log +0 -2
- package/bin/harness.js +0 -22
- package/docs/commands/core-roadmap.md +0 -106
- package/docs/commands/core-roadmap.zh-CN.md +0 -102
- package/docs/commands/core-style.md +0 -53
- package/docs/commands/core-style.zh-CN.md +0 -53
- package/docs/commands/flow-init.md +0 -140
- package/docs/commands/flow-init.zh-CN.md +0 -169
- package/docs/commands/flow-new.md +0 -39
- package/docs/commands/flow-new.zh-CN.md +0 -39
- package/lib/compiler/__tests__/compile-regression.test.js +0 -103
- package/lib/compiler/__tests__/multi-module-emitters.test.js +0 -534
- package/lib/compiler/__tests__/resource-copier.test.js +0 -26
- package/lib/compiler/__tests__/skill-discovery.test.js +0 -72
- package/lib/compiler/context-expander.js +0 -179
- package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +0 -109
- package/lib/compiler/rules-emitters/codex-rules-emitter.js +0 -116
- package/lib/compiler/skill-discovery.js +0 -68
- package/lib/harness/CLAUDE.md +0 -22
- package/lib/harness/__tests__/planner.tdd.test.js +0 -125
- package/lib/harness/cli.js +0 -208
- package/lib/harness/index.js +0 -18
- package/lib/harness/operations/dispatch.js +0 -298
- package/lib/harness/operations/init.js +0 -48
- package/lib/harness/operations/pack.js +0 -100
- package/lib/harness/operations/plan.js +0 -83
- package/lib/harness/operations/release.js +0 -170
- package/lib/harness/operations/resume.js +0 -44
- package/lib/harness/operations/verify.js +0 -177
- package/lib/harness/planner.js +0 -272
- package/lib/harness/query.js +0 -126
- package/lib/harness/schemas.js +0 -129
|
@@ -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.
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# npm-release Skill
|
|
2
|
-
|
|
3
|
-
Version management skill with semantic versioning enforcement.
|
|
4
|
-
|
|
5
|
-
## Structure
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
npm-release/
|
|
9
|
-
├── SKILL.md # Main workflow instructions
|
|
10
|
-
├── scripts/
|
|
11
|
-
│ ├── validate-version-sync.sh # Check version consistency
|
|
12
|
-
│ ├── version-decision-tree.sh # Calculate next version
|
|
13
|
-
│ └── atomic-version-bump.sh # Atomic version update
|
|
14
|
-
└── references/
|
|
15
|
-
└── version-decision-guide.md # Detailed SemVer rules
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## Purpose
|
|
19
|
-
|
|
20
|
-
Prevents version chaos by enforcing:
|
|
21
|
-
1. Semantic versioning rules (no arbitrary jumps)
|
|
22
|
-
2. Atomic synchronization (package.json + CHANGELOG.md + git tags)
|
|
23
|
-
3. Format consistency (vX.Y.Z everywhere)
|
|
24
|
-
|
|
25
|
-
## Key Scripts
|
|
26
|
-
|
|
27
|
-
### validate-version-sync.sh
|
|
28
|
-
Checks that package.json, git tags, and CHANGELOG.md all have matching versions.
|
|
29
|
-
|
|
30
|
-
### version-decision-tree.sh
|
|
31
|
-
Enforces SemVer rules:
|
|
32
|
-
- Breaking change → MAJOR (X.0.0)
|
|
33
|
-
- New feature → MINOR (X.Y.0)
|
|
34
|
-
- Bug fix → PATCH (X.Y.Z)
|
|
35
|
-
|
|
36
|
-
### atomic-version-bump.sh
|
|
37
|
-
Updates all version markers in one transaction, preventing inconsistencies.
|
|
38
|
-
|
|
39
|
-
## Usage
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
# Validate current state
|
|
43
|
-
bash scripts/validate-version-sync.sh
|
|
44
|
-
|
|
45
|
-
# Calculate next version
|
|
46
|
-
bash scripts/version-decision-tree.sh 4.2.0 minor
|
|
47
|
-
# Output: 4.3.0
|
|
48
|
-
|
|
49
|
-
# Atomic bump (recommended)
|
|
50
|
-
bash scripts/atomic-version-bump.sh minor "Add export command"
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
**[PROTOCOL]**: 变更时更新此头部,然后检查 CLAUDE.md
|
|
@@ -1,379 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: npm-release
|
|
3
|
-
description: Use when ready to publish a new version of cc-devflow npm package to npm registry. Enforces semantic versioning rules, prevents arbitrary version jumps (e.g., 3.0.1→7.0.0), and ensures atomic synchronization across package.json, CHANGELOG.md, and git tags.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# NPM Release Workflow
|
|
7
|
-
|
|
8
|
-
## Overview
|
|
9
|
-
|
|
10
|
-
Standardized release process for cc-devflow npm package ensuring consistent versioning, changelog maintenance, and safe publishing.
|
|
11
|
-
|
|
12
|
-
**Core Principles**:
|
|
13
|
-
1. **Atomic release** - All version markers (package.json, CHANGELOG.md, git tag) stay in sync
|
|
14
|
-
2. **Semantic versioning enforcement** - Prevents arbitrary jumps and format inconsistencies
|
|
15
|
-
3. **Decision tree validation** - Every version bump follows explicit SemVer rules
|
|
16
|
-
|
|
17
|
-
## When to Use
|
|
18
|
-
|
|
19
|
-
Use this skill when:
|
|
20
|
-
- ✅ Ready to release a new version of cc-devflow
|
|
21
|
-
- ✅ All changes committed and pushed
|
|
22
|
-
- ✅ On main branch with clean working directory
|
|
23
|
-
- ✅ Need to publish to npm registry
|
|
24
|
-
|
|
25
|
-
Don't use when:
|
|
26
|
-
- ❌ Working directory has uncommitted changes
|
|
27
|
-
- ❌ Not on main branch
|
|
28
|
-
- ❌ Pre-release/beta versions (needs adaptation)
|
|
29
|
-
|
|
30
|
-
## Version Decision Protocol
|
|
31
|
-
|
|
32
|
-
**MANDATORY**: Before any version bump, determine change type using the decision tree.
|
|
33
|
-
|
|
34
|
-
See [references/version-decision-guide.md](references/version-decision-guide.md) for detailed rules and examples.
|
|
35
|
-
|
|
36
|
-
### Quick Decision Tree
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
Is this a breaking change?
|
|
40
|
-
├─ YES → MAJOR bump (X.0.0)
|
|
41
|
-
└─ NO → Is this a new feature?
|
|
42
|
-
├─ YES → MINOR bump (X.Y.0)
|
|
43
|
-
└─ NO → PATCH bump (X.Y.Z)
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### Release Types
|
|
47
|
-
|
|
48
|
-
Follow [Semantic Versioning](https://semver.org/):
|
|
49
|
-
|
|
50
|
-
| Type | Version Change | When |
|
|
51
|
-
|------|---------------|------|
|
|
52
|
-
| **Patch** | 4.2.0 → 4.2.1 | Bug fixes, minor improvements |
|
|
53
|
-
| **Minor** | 4.2.1 → 4.3.0 | New features, backward compatible |
|
|
54
|
-
| **Major** | 4.3.0 → 5.0.0 | Breaking changes |
|
|
55
|
-
|
|
56
|
-
### Anti-Patterns (FORBIDDEN)
|
|
57
|
-
|
|
58
|
-
❌ **Arbitrary jumps**: 3.0.1 → 7.0.0 (no justification)
|
|
59
|
-
❌ **Skipping versions**: 4.2.0 → 4.4.0 (skipped 4.3.0)
|
|
60
|
-
❌ **Inconsistent formats**: v1.0, 1.0.0, release-1.0 (mixed formats)
|
|
61
|
-
|
|
62
|
-
## Complete Workflow
|
|
63
|
-
|
|
64
|
-
### Phase 0: Version Validation (MANDATORY)
|
|
65
|
-
|
|
66
|
-
**Before any changes**, validate current state and determine next version:
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
# 1. Validate version synchronization
|
|
70
|
-
bash .claude/skills/utility/npm-release/scripts/validate-version-sync.sh
|
|
71
|
-
|
|
72
|
-
# 2. Determine change type (patch/minor/major)
|
|
73
|
-
# Use decision tree in references/version-decision-guide.md
|
|
74
|
-
|
|
75
|
-
# 3. Calculate next version
|
|
76
|
-
bash .claude/skills/utility/npm-release/scripts/version-decision-tree.sh $(grep -o '"version": *"[^"]*"' package.json | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+') <patch|minor|major>
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**STOP if validation fails** - Fix inconsistencies before proceeding.
|
|
80
|
-
|
|
81
|
-
### Phase 1: Pre-Release Checks
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
# 1. Verify git status
|
|
85
|
-
git status
|
|
86
|
-
# MUST show: "On branch main", "working tree clean"
|
|
87
|
-
|
|
88
|
-
# 2. Check current version
|
|
89
|
-
cat package.json | grep version
|
|
90
|
-
# e.g., "version": "4.2.0"
|
|
91
|
-
|
|
92
|
-
# 3. Review recent changes
|
|
93
|
-
git log --oneline -10
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
**STOP if**:
|
|
97
|
-
- Not on main branch
|
|
98
|
-
- Uncommitted changes exist
|
|
99
|
-
- Unpushed commits exist
|
|
100
|
-
|
|
101
|
-
### Phase 2: Atomic Version Bump
|
|
102
|
-
|
|
103
|
-
**Use the atomic bump script** (recommended):
|
|
104
|
-
|
|
105
|
-
```bash
|
|
106
|
-
# Automatically updates package.json + CHANGELOG.md
|
|
107
|
-
bash .claude/skills/utility/npm-release/scripts/atomic-version-bump.sh <patch|minor|major> "Brief description"
|
|
108
|
-
|
|
109
|
-
# Example:
|
|
110
|
-
bash .claude/skills/utility/npm-release/scripts/atomic-version-bump.sh minor "Add export command"
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
**Or manual update** (if script unavailable):
|
|
114
|
-
|
|
115
|
-
**Step 1: Update package.json**
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
npm version patch --no-git-tag-version # For patch release
|
|
119
|
-
npm version minor --no-git-tag-version # For minor release
|
|
120
|
-
npm version major --no-git-tag-version # For major release
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
**Step 2: Update CHANGELOG.md**
|
|
124
|
-
|
|
125
|
-
Add new version section at the top (after `---`):
|
|
126
|
-
|
|
127
|
-
```markdown
|
|
128
|
-
## [X.Y.Z] - YYYY-MM-DD
|
|
129
|
-
|
|
130
|
-
### 🎯 Release Title
|
|
131
|
-
|
|
132
|
-
Brief description of main changes.
|
|
133
|
-
|
|
134
|
-
#### Changed / Added / Fixed
|
|
135
|
-
- Bullet point 1
|
|
136
|
-
- Bullet point 2
|
|
137
|
-
|
|
138
|
-
#### Benefits
|
|
139
|
-
- ✅ Benefit 1
|
|
140
|
-
- ✅ Benefit 2
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### Phase 3: Git Operations
|
|
144
|
-
|
|
145
|
-
**Step 1: Create Release Commit**
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
git add CHANGELOG.md package.json
|
|
149
|
-
|
|
150
|
-
git commit -m "$(cat <<'EOF'
|
|
151
|
-
chore(release): bump version to X.Y.Z
|
|
152
|
-
|
|
153
|
-
Release X.Y.Z - [Brief title]
|
|
154
|
-
|
|
155
|
-
主要变更:
|
|
156
|
-
- 变更点 1
|
|
157
|
-
- 变更点 2
|
|
158
|
-
|
|
159
|
-
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
160
|
-
EOF
|
|
161
|
-
)"
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
**Step 2: Create Annotated Tag**
|
|
165
|
-
|
|
166
|
-
```bash
|
|
167
|
-
git tag -a vX.Y.Z -m "$(cat <<'EOF'
|
|
168
|
-
Release vX.Y.Z - [Brief title]
|
|
169
|
-
|
|
170
|
-
🎯 Main changes:
|
|
171
|
-
- Change 1
|
|
172
|
-
- Change 2
|
|
173
|
-
|
|
174
|
-
Benefits:
|
|
175
|
-
✅ Benefit 1
|
|
176
|
-
✅ Benefit 2
|
|
177
|
-
|
|
178
|
-
Full changelog: https://github.com/Dimon94/cc-devflow/blob/main/CHANGELOG.md
|
|
179
|
-
EOF
|
|
180
|
-
)"
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
**Step 3: Verify**
|
|
184
|
-
|
|
185
|
-
```bash
|
|
186
|
-
# Check commit
|
|
187
|
-
git log --oneline -1
|
|
188
|
-
|
|
189
|
-
# Check tag
|
|
190
|
-
git tag -l "v2.4.*" | tail -3
|
|
191
|
-
|
|
192
|
-
# Verify tag annotation
|
|
193
|
-
git show vX.Y.Z
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### Phase 4: Publish
|
|
197
|
-
|
|
198
|
-
**Step 1: Push to GitHub**
|
|
199
|
-
|
|
200
|
-
```bash
|
|
201
|
-
# Push commits
|
|
202
|
-
git push origin main
|
|
203
|
-
|
|
204
|
-
# Push tags
|
|
205
|
-
git push origin vX.Y.Z
|
|
206
|
-
# Or push all tags: git push origin --tags
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
**Step 2: Create GitHub Release (Optional)**
|
|
210
|
-
|
|
211
|
-
Via GitHub CLI:
|
|
212
|
-
```bash
|
|
213
|
-
gh release create vX.Y.Z \
|
|
214
|
-
--title "vX.Y.Z - [Title]" \
|
|
215
|
-
--notes-file <(sed -n '/## \[X.Y.Z\]/,/## \[/p' CHANGELOG.md | head -n -1)
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
Or manually at: https://github.com/Dimon94/cc-devflow/releases/new
|
|
219
|
-
|
|
220
|
-
**Step 3: Publish to npm**
|
|
221
|
-
|
|
222
|
-
```bash
|
|
223
|
-
# Test publish first (dry-run)
|
|
224
|
-
npm publish --dry-run
|
|
225
|
-
|
|
226
|
-
# Actual publish
|
|
227
|
-
npm publish
|
|
228
|
-
|
|
229
|
-
# Verify publication
|
|
230
|
-
npm view cc-devflow version
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
## Quick Reference
|
|
234
|
-
|
|
235
|
-
| Step | Command | Purpose |
|
|
236
|
-
|------|---------|---------|
|
|
237
|
-
| **Validate sync** | `bash scripts/validate-version-sync.sh` | Check version consistency |
|
|
238
|
-
| **Decide version** | `bash scripts/version-decision-tree.sh <current> <type>` | Calculate next version |
|
|
239
|
-
| **Atomic bump** | `bash scripts/atomic-version-bump.sh <type> "desc"` | Update all markers |
|
|
240
|
-
| Check status | `git status` | Verify clean state |
|
|
241
|
-
| Check version | `grep version package.json` | Current version |
|
|
242
|
-
| Create commit | `git commit -m "chore(release): ..."` | Commit version bump |
|
|
243
|
-
| Create tag | `git tag -a vX.Y.Z -m "..."` | Tag release |
|
|
244
|
-
| Push commits | `git push origin main` | Push to GitHub |
|
|
245
|
-
| Push tags | `git push origin vX.Y.Z` | Push tag to GitHub |
|
|
246
|
-
| Publish npm | `npm publish` | Publish to registry |
|
|
247
|
-
|
|
248
|
-
## Version Management Scripts
|
|
249
|
-
|
|
250
|
-
Three scripts enforce version discipline:
|
|
251
|
-
|
|
252
|
-
1. **validate-version-sync.sh** - Checks package.json, git tags, CHANGELOG.md consistency
|
|
253
|
-
2. **version-decision-tree.sh** - Calculates next version following SemVer rules
|
|
254
|
-
3. **atomic-version-bump.sh** - Updates all version markers atomically
|
|
255
|
-
|
|
256
|
-
**Usage**:
|
|
257
|
-
```bash
|
|
258
|
-
# Check current state
|
|
259
|
-
bash .claude/skills/utility/npm-release/scripts/validate-version-sync.sh
|
|
260
|
-
|
|
261
|
-
# Calculate next version
|
|
262
|
-
bash .claude/skills/utility/npm-release/scripts/version-decision-tree.sh 4.2.0 minor
|
|
263
|
-
# Output: 4.3.0
|
|
264
|
-
|
|
265
|
-
# Atomic bump (recommended)
|
|
266
|
-
bash .claude/skills/utility/npm-release/scripts/atomic-version-bump.sh minor "Add export command"
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
## Common Mistakes
|
|
270
|
-
|
|
271
|
-
### ❌ Mistake 1: Arbitrary Version Jumps
|
|
272
|
-
|
|
273
|
-
**Problem**: Version jumps from 3.0.1 to 7.0.0 without justification
|
|
274
|
-
|
|
275
|
-
**Fix**: Use version-decision-tree.sh to calculate correct next version based on change type
|
|
276
|
-
|
|
277
|
-
### ❌ Mistake 2: Inconsistent Version Numbers
|
|
278
|
-
|
|
279
|
-
**Problem**: package.json shows 4.2.1 but CHANGELOG.md shows 4.2.0
|
|
280
|
-
|
|
281
|
-
**Fix**: Use atomic-version-bump.sh to update all markers simultaneously
|
|
282
|
-
|
|
283
|
-
### ❌ Mistake 3: Forgetting to Update CHANGELOG.md
|
|
284
|
-
|
|
285
|
-
**Problem**: Version bumped but no changelog entry
|
|
286
|
-
|
|
287
|
-
**Fix**: Always update CHANGELOG.md BEFORE committing (atomic-version-bump.sh does this automatically)
|
|
288
|
-
|
|
289
|
-
### ❌ Mistake 4: Pushing Tag Before Commit
|
|
290
|
-
|
|
291
|
-
**Problem**: Tag points to wrong commit
|
|
292
|
-
|
|
293
|
-
**Fix**: Always commit first, then tag, then push both together
|
|
294
|
-
|
|
295
|
-
### ❌ Mistake 5: Not Testing npm publish
|
|
296
|
-
|
|
297
|
-
**Problem**: Published package is broken
|
|
298
|
-
|
|
299
|
-
**Fix**: Run `npm publish --dry-run` first to catch issues
|
|
300
|
-
|
|
301
|
-
### ❌ Mistake 6: Inconsistent Tag Format
|
|
302
|
-
|
|
303
|
-
**Problem**: Mixed formats like v1.0, 1.0.0, release-1.0
|
|
304
|
-
|
|
305
|
-
**Fix**: Always use vX.Y.Z format (e.g., v4.2.0). validate-version-sync.sh detects format inconsistencies
|
|
306
|
-
|
|
307
|
-
## Network Troubleshooting
|
|
308
|
-
|
|
309
|
-
If `git push` fails with timeout:
|
|
310
|
-
|
|
311
|
-
1. **Check network connectivity**:
|
|
312
|
-
```bash
|
|
313
|
-
curl -I https://github.com 2>&1 | head -5
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
2. **Try SSH instead of HTTPS**:
|
|
317
|
-
```bash
|
|
318
|
-
git remote -v # Check current remote URL
|
|
319
|
-
git remote set-url origin git@github.com:Dimon94/cc-devflow.git
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
3. **If SSH fails (publickey error)**:
|
|
323
|
-
- Check SSH key: `ssh -T git@github.com`
|
|
324
|
-
- Add SSH key to GitHub: https://github.com/settings/keys
|
|
325
|
-
- Or stay with HTTPS and retry later
|
|
326
|
-
|
|
327
|
-
4. **Commits and tags are safe locally**:
|
|
328
|
-
- They won't be lost
|
|
329
|
-
- Push when network is available
|
|
330
|
-
|
|
331
|
-
## Post-Release Verification
|
|
332
|
-
|
|
333
|
-
After successful release:
|
|
334
|
-
|
|
335
|
-
```bash
|
|
336
|
-
# 1. Verify GitHub tag
|
|
337
|
-
open https://github.com/Dimon94/cc-devflow/tags
|
|
338
|
-
|
|
339
|
-
# 2. Verify npm package
|
|
340
|
-
npm view cc-devflow version
|
|
341
|
-
npm view cc-devflow time
|
|
342
|
-
|
|
343
|
-
# 3. Test installation
|
|
344
|
-
npm install -g cc-devflow@latest
|
|
345
|
-
cc-devflow --version # Should show new version
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
## Rollback (If Needed)
|
|
349
|
-
|
|
350
|
-
If published version has critical bugs:
|
|
351
|
-
|
|
352
|
-
```bash
|
|
353
|
-
# 1. Unpublish from npm (within 72 hours)
|
|
354
|
-
npm unpublish cc-devflow@X.Y.Z
|
|
355
|
-
|
|
356
|
-
# 2. Delete git tag locally and remotely
|
|
357
|
-
git tag -d vX.Y.Z
|
|
358
|
-
git push origin :refs/tags/vX.Y.Z
|
|
359
|
-
|
|
360
|
-
# 3. Revert commit
|
|
361
|
-
git revert HEAD
|
|
362
|
-
|
|
363
|
-
# 4. Fix bug and re-release with new patch version
|
|
364
|
-
```
|
|
365
|
-
|
|
366
|
-
**Note**: npm unpublish is only available within 72 hours of publication. After that, publish a new patch version instead.
|
|
367
|
-
|
|
368
|
-
## Real-World Impact
|
|
369
|
-
|
|
370
|
-
Following this workflow ensures:
|
|
371
|
-
- ✅ **Consistency**: All version markers stay in sync
|
|
372
|
-
- ✅ **Traceability**: Clear changelog and git history
|
|
373
|
-
- ✅ **Safety**: Dry-run catches issues before publishing
|
|
374
|
-
- ✅ **Recoverability**: Can rollback if needed
|
|
375
|
-
- ✅ **Automation-ready**: Scriptable workflow for future CI/CD
|
|
376
|
-
|
|
377
|
-
---
|
|
378
|
-
|
|
379
|
-
**[PROTOCOL]**: 变更时更新此头部,然后检查 CLAUDE.md
|