claude-code-kit 0.11.3__tar.gz → 0.12.0__tar.gz
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.
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/.claude-plugin/marketplace.json +1 -1
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/.claude-plugin/plugin.json +1 -1
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/CHANGELOG.md +85 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/PKG-INFO +30 -1
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/README.md +29 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/dependency-scanner.md +18 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/merge-reviewer.md +26 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/observability-engineer.md +1 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/orchestrator.md +2 -1
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/catalog/profiles.yaml +1 -1
- claude_code_kit-0.12.0/commands/abort.md +27 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/docs/agents.md +3 -2
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/pyproject.toml +1 -1
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/continuity.md +6 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/devops-observability.md +1 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/mandatory-workflow.md +11 -1
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/model-tiers.md +18 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/quality-gates.md +2 -1
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/ci-cd-and-automation/SKILL.md +9 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/sdlc/SKILL.md +15 -2
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/src/claude_kit/__init__.py +1 -1
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/src/claude_kit/validator.py +15 -0
- claude_code_kit-0.12.0/templates/artifacts/api-change-report.md +29 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/.gitignore +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/CLAUDE.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/CONTRIBUTING.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/LICENSE +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/acceptance-reviewer.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/auditor.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/developer.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/devils-advocate.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/devops-engineer.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/e2e-tester.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/em-reviewer.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/incident-responder.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/owasp-reviewer.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/policy-validator.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/pr-raiser.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/risk-classifier.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/sdlc-code-reviewer.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/secret-scanner.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/security-reviewer.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/senior-backend-dev.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/senior-frontend-dev.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/senior-tester.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/spec-doc-writer.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/story-planner.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/technical-architect.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/tester.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/ui-designer.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/agents/unit-tester.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/catalog/mcp.yaml +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/catalog/org.yaml +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/catalog/stacks.yaml +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/commands/init.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/commands/sdlc.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/commands/status.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/docs/agentic-patterns.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/docs/architecture.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/docs/org-capabilities.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/hooks.json +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/audit-log.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/guard-destructive-git.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/guard-secrets.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/lint-fix.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/load-autonomy.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/load-continuity.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/load-learnings.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/type-check.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/validate-frontmatter.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/validate-settings.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/warn-large-edits.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/warn-llm-io.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/warn-missing-tests.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/hooks/scripts/warn-shared-modules.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/agent-guardrails.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/agent-memory.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/agent-resilience.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/autonomy-levels.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/code-organization.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/design-patterns.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/documentation.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/evals.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/frontend-best-practices.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/goal-setting-and-monitoring.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/human-in-the-loop.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/linting-and-formatting.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/rarv-cycle.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/reasoning-techniques.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/responsive-and-accessibility.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/risk-classification.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/testing.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/rules/tool-design.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/scripts/init.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/_references/accessibility-checklist.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/_references/orchestration-patterns.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/_references/performance-checklist.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/_references/security-checklist.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/_references/testing-patterns.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/accessibility-review/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/api-and-interface-design/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/api-integration/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/archive-sprint/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/backlog/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/backlog/item-template.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/code-review-and-quality/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/code-simplification/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/component-design/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/consolidate-learnings/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/context-engineering/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/decision/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/decision/adr-template.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/deprecation-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/documentation-and-adrs/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/doubt-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/execute/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/idea-refine/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/idea-refine/examples.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/idea-refine/frameworks.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/idea-refine/refinement-criteria.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/incident-postmortem/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/incremental-implementation/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/interview-me/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/load-testing/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/manual-test/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/over-engineering-review/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/performance-optimization/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/playwright-verification/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/refresh-docs/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/remember/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/scope/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/scope/scope-template.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/security-and-hardening/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/security-verification/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/shipping-and-launch/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/simplification-debt/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/smoke-test/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/source-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/spec-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/sprint/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/sprint/sprint-template.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/task-tracker-sync/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/test-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/threat-model/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/triage/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/ui-ux-design/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/unit-test/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/skills/using-agent-skills/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/src/claude_kit/__main__.py +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/src/claude_kit/catalog.py +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/src/claude_kit/cli.py +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/src/claude_kit/hooks.py +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/src/claude_kit/models.py +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/src/claude_kit/prompts.py +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/src/claude_kit/render.py +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/src/claude_kit/scaffold.py +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/src/claude_kit/upgrader.py +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/CLAUDE.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/CLAUDE.stack.md.tmpl +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/CONTINUITY.template.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/README.claude-sdlc.md.tmpl +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/agent-memory/MEMORY.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/agent-memory/api/.gitkeep +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/agent-memory/architecture/.gitkeep +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/agent-memory/debugging/.gitkeep +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/agent-memory/patterns/.gitkeep +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/agent-memory/performance/.gitkeep +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/artifacts/adr.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/artifacts/feature-spec.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/artifacts/release-plan.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/artifacts/runbook.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/artifacts/security-review.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/artifacts/test-plan.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/README.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/agents/data-workflow-agent.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/agents/founder-prototype-agent.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/agents/internal-tools-builder.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/agents/pm-copilot.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/agents/support-ticket-engineer.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/devops-and-release/README.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/engineering-core/README.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/product-to-code/README.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/quality-and-review/README.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/security-and-compliance/README.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/rules/ai-working-agreement.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/rules/ambiguity-resolution.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/rules/compliance-policy.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/rules/pii-policy.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/rules/production-data-policy.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/rules/prototype-boundaries.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/rules/secrets-policy.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/settings.json +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
- {claude_code_kit-0.11.3 → claude_code_kit-0.12.0}/templates/stacks/frontend/react/rules/react-patterns.md +0 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"name": "claude-kit",
|
|
11
11
|
"source": "./",
|
|
12
12
|
"description": "Cookiecutter-style scaffolder for an autonomous Claude Code SDLC config (no app code, no Docker): install CLAUDE.md + .claude/ (rules, the profile's agents/skills, hooks, artifact templates) + optional .mcp.json, then run /sdlc to drive spec → review → build → test → security → ship through profile-aware quality gates, working memory, and a self-improving learnings loop.",
|
|
13
|
-
"version": "0.
|
|
13
|
+
"version": "0.12.0",
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"keywords": ["sdlc", "agents", "orchestration", "quality-gates", "workflow", "scaffold", "cookiecutter"]
|
|
16
16
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Cookiecutter-style scaffolder for an autonomous Claude Code SDLC config (no app code, no Docker). `claude-kit init` asks ordered questions and installs CLAUDE.md + .claude/ (rules, the profile's agents/skills, hooks, artifact templates) + optional .mcp.json; run /sdlc to drive spec → review → build → test → security → ship through profile-aware quality gates with working memory and a self-improving learnings loop.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Arjunsingh Yadav",
|
|
@@ -4,6 +4,91 @@ All notable changes to claude-kit are documented here. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/), and the project uses
|
|
5
5
|
[semantic versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [0.12.0] — 2026-06-15
|
|
8
|
+
|
|
9
|
+
An **improvement brief** (external self-review, no repo access) proposed ~15 changes — four P0, five
|
|
10
|
+
P1, six P2. Run through the kit's own mandated **adversarial reuse-first mapping** (an 18-agent
|
|
11
|
+
map→verify pass), **every substantive (P0/P1) item resolved to _extend an existing component_, not add
|
|
12
|
+
a new one** — the brief, written without the repo, repeatedly proposed agents/gates/skills that already
|
|
13
|
+
ship. The result is **one new quality gate, one new artifact template, one new slash command, and a set
|
|
14
|
+
of surgical edits to existing files — zero new agents, skills, or rules** (counts unchanged: 28 core
|
|
15
|
+
agents · 50 skills · 23 rules). Config-only, stack-agnostic, no Docker, no new `resolve()` branches.
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- **`contract-clear` quality gate** (enterprise profile; API-exposing backend stacks only). A
|
|
19
|
+
pre-merge **API backward-compatibility** gate **owned by the existing `merge-reviewer`** (not a new
|
|
20
|
+
agent): it diffs the API contract against the base branch (`git show <base>:<contract>`), classifies
|
|
21
|
+
each delta by the kit's severity model (removed/renamed endpoint or field, narrowed type, new
|
|
22
|
+
required field, removed status code = **Critical/High**), and blocks a breaking change that lacks an
|
|
23
|
+
approved migration note + version bump. **Self-skips** when the stack has no contract surface, so it
|
|
24
|
+
is inert for non-API projects. Wired as **data** in `catalog/profiles.yaml` (enterprise gate list),
|
|
25
|
+
documented in `rules/quality-gates.md` §4, and sequenced as the mechanical counterpart to
|
|
26
|
+
`mandatory-workflow.md` §2d. Builds **on** §2d's existing manual breaking-change check rather than
|
|
27
|
+
replacing it.
|
|
28
|
+
- **`templates/artifacts/api-change-report.md`** — the `contract-clear` gate's output artifact
|
|
29
|
+
(contract source · base ref · added/changed/removed tables with per-row severity · backward-compat
|
|
30
|
+
verdict · affected consumers). Installs with the other artifact templates.
|
|
31
|
+
- **`/claude-kit:abort`** slash command (`commands/abort.md`) — a guided, **reversible** mid-pipeline
|
|
32
|
+
cleanup: confirm a run is in progress, remove **only the worktrees this run created**, mark
|
|
33
|
+
`CONTINUITY.md` aborted. Deliberately **not** a `claude-kit abort` CLI subcommand (a destructive
|
|
34
|
+
one-shot CLI for "remove worktrees" is exactly the kind of irreversible action the kit gates).
|
|
35
|
+
|
|
36
|
+
### Changed (surgical extensions to existing components)
|
|
37
|
+
- **`skills/ci-cd-and-automation`** — named **Blue/Green vs Canary** as an explicit deployment-strategy
|
|
38
|
+
subsection (blue/green was never named anywhere in the kit; cross-refs the existing Rollout Decision
|
|
39
|
+
Thresholds). *(P0-1 — the only real gap; see "Not adopted" for the rest of P0-1.)*
|
|
40
|
+
- **`rules/devops-observability.md` + `agents/observability-engineer.md`** — Observability Ready now
|
|
41
|
+
requires, **for a hot / SLO-bearing backend path**, an empirical load run (drive the existing
|
|
42
|
+
`load-testing` skill) that meets its p95/p99 latency, error-rate, and throughput budgets; a budget
|
|
43
|
+
breach is **High**. Recorded in the `quality-gates.md` §4 row. No new gate, no new agent. *(P0-3)*
|
|
44
|
+
- **`agents/dependency-scanner.md`** — added a **Cadence Mode** (a whole-project, scheduled
|
|
45
|
+
supply-chain maintenance pass: batch grouped upgrades, defer triage to `security-and-hardening`,
|
|
46
|
+
re-run the existing gates on applied upgrades). Scheduling is left to org CI (the kit has no
|
|
47
|
+
time-driven hook). No new skill. *(P0-4)*
|
|
48
|
+
- **`rules/model-tiers.md`** — added a **profile cost expectations** subsection (relative, non-currency
|
|
49
|
+
ballpark: lean cheapest → enterprise heaviest, noting enterprise still runs only four opus agents).
|
|
50
|
+
*(P1-1)*
|
|
51
|
+
- **`skills/sdlc` + `agents/orchestrator.md`** — `/sdlc` now **detects an in-progress run** from
|
|
52
|
+
`CONTINUITY.md` and offers **resume** (re-enter at the first gate after the last PASS, read from the
|
|
53
|
+
orchestrator's `PIPELINE:` state line) **vs restart**; the orchestrator's Stage-7 summary now reports
|
|
54
|
+
per-gate PASS/FAIL + severity + PR-or-ABORTED and **tears down this run's worktrees**. *(P1-2, P1-3)*
|
|
55
|
+
- **`rules/mandatory-workflow.md`** — §2a now states the **worktree lifecycle** (one per lane → merge
|
|
56
|
+
after gates pass → remove after the PR is raised or the run is aborted); §2d gained a note pointing
|
|
57
|
+
at the mechanical `contract-clear` counterpart. *(P1-3)*
|
|
58
|
+
- **`rules/continuity.md`** — added a **Concurrency** subsection (one live `CONTINUITY.md` per working
|
|
59
|
+
dir; use a worktree per concurrent `/sdlc`; `agent-memory` is intentionally shared, not namespaced).
|
|
60
|
+
*(P1-4)*
|
|
61
|
+
- **`src/claude_kit/validator.py` + README** — `claude-kit doctor` now reports **platform visibility**:
|
|
62
|
+
on Windows without `jq` it WARNs (actionable: run under WSL/Git Bash; config + CLI work natively
|
|
63
|
+
regardless) and on Windows *with* `jq` it confirms a POSIX shell is providing the hooks — **never a
|
|
64
|
+
failure**. README gained a Windows prerequisites note + troubleshooting row. *(P1-5)*
|
|
65
|
+
|
|
66
|
+
### Not adopted (deliberately — the kit already covers these)
|
|
67
|
+
- **P0-1 `release-manager`/`release-ready`/`rollback-safety` (new agent + gate + rule).** Release &
|
|
68
|
+
rollback are **already owned by `devops-engineer`** (and the Pipeline Green gate already requires a
|
|
69
|
+
*verified* rollback + runbook); canary, feature flags, staged rollout, and rollback are already
|
|
70
|
+
covered in depth by the `shipping-and-launch` skill. Only "blue/green was never named" was a genuine
|
|
71
|
+
gap — fixed above as one subsection, no new components.
|
|
72
|
+
- **P0-2 `contract-reviewer` agent in the _standard_ profile.** Reused `merge-reviewer` instead of a
|
|
73
|
+
new agent, and placed the gate in **enterprise** (heavyweight gates default to enterprise per the
|
|
74
|
+
profile policy), not standard. It also **builds on** `mandatory-workflow.md` §2d rather than
|
|
75
|
+
duplicating it.
|
|
76
|
+
- **P0-3 `performance-engineer` agent + standalone performance gate.** Folded into the existing
|
|
77
|
+
Observability Ready gate + `observability-engineer` + `load-testing` skill.
|
|
78
|
+
- **P0-4 `dependency-maintenance` skill.** Folded into the existing `dependency-scanner` agent as a
|
|
79
|
+
mode; no competing skill.
|
|
80
|
+
- **P1-1 `cost-estimate` skill + a per-run cost hook.** A doc subsection in `model-tiers.md` conveys
|
|
81
|
+
the expectation without a runtime token-accounting surface the kit can't reliably measure.
|
|
82
|
+
- **P1-3 a `run-report` subsystem / structured run trace.** Already covered by `CONTINUITY.md` working
|
|
83
|
+
memory + the orchestrator's Stage-7 summary; only the genuine gaps (worktree teardown + clean abort)
|
|
84
|
+
were added.
|
|
85
|
+
- **P1-5 a PowerShell hook port.** The hooks stay POSIX `.sh`; `doctor` now tells Windows users to run
|
|
86
|
+
under WSL/Git Bash. Porting every guard to PowerShell would double the maintenance surface for a
|
|
87
|
+
shell most users already have via WSL/Git Bash.
|
|
88
|
+
- **The P2 items** (repo metadata, PyPI publish, listing submissions) that require a human / `gh` are
|
|
89
|
+
left as follow-ups; the **E2E worked example**, **positioning section**, and **README on-ramp** were
|
|
90
|
+
partly addressed (a "How claude-kit compares" positioning block + the adoption row were added).
|
|
91
|
+
|
|
7
92
|
## [0.11.3] — 2026-06-15
|
|
8
93
|
|
|
9
94
|
A field review of a **reference table of ecosystem repos** — official + community **MCP-server
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-code-kit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.12.0
|
|
4
4
|
Summary: Cookiecutter-style scaffolder for an autonomous Claude Code SDLC configuration (no app code, no Docker). Asks ordered questions and installs CLAUDE.md + .claude/ (rules, the chosen profile's agents/skills, hooks, artifact templates) + optional .mcp.json; run /sdlc to drive spec → review → build → test → security → ship through profile-aware quality gates, working memory, and a self-improving learnings loop.
|
|
5
5
|
Project-URL: Homepage, https://github.com/ajyadav013/claude-kit
|
|
6
6
|
Project-URL: Repository, https://github.com/ajyadav013/claude-kit
|
|
@@ -122,6 +122,11 @@ claude-kit init --defaults # non-interactive: React + Python/FastAPI + Post
|
|
|
122
122
|
> **Prerequisites:** [Claude Code](https://www.claude.com/product/claude-code); Python ≥ 3.9 for the
|
|
123
123
|
> CLI; `jq` to enable the shell hooks (they no-op without it); Node / `npx` only if you enable an MCP
|
|
124
124
|
> (Model Context Protocol) server.
|
|
125
|
+
>
|
|
126
|
+
> **Windows:** the config (agents · skills · rules) and the `claude-kit` CLI work natively. The shell
|
|
127
|
+
> hooks (`guard-*`, `warn-*`) need a POSIX shell + `jq`, so run inside **WSL or Git Bash** to enable
|
|
128
|
+
> them — `claude-kit doctor` detects Windows and tells you which case you're in. Without a POSIX shell
|
|
129
|
+
> the hooks silently no-op (the kit still functions; you just lose the deterministic guards).
|
|
125
130
|
|
|
126
131
|
<details>
|
|
127
132
|
<summary><b>What the init flow asks & what lands on disk</b></summary>
|
|
@@ -239,6 +244,7 @@ non-duplicative gaps**, minimally and catalog-wired.
|
|
|
239
244
|
| **[ponytail](https://github.com/DietrichGebert/ponytail)** | YAGNI / anti-over-engineering as an explicit recurring pass; deferral-debt tracking; surfacing the active autonomy level | `over-engineering-review` & `simplification-debt` skills, the `load-autonomy` hook, median-of-N in `evals` | `0.8.0` |
|
|
240
245
|
| **[GitHub spec-kit](https://github.com/github/spec-kit)** | Spec → tasks → **analyze** coverage gate; tasks → tracker issues; stable requirement IDs + assumptions in specs | Wired the (previously orphaned) `story-planner` as the **coverage gate (1f)**, a tracker-agnostic `task-tracker-sync` skill, and enriched the feature-spec template | `0.9.0` |
|
|
241
246
|
| **[protectai/llm-guard](https://github.com/protectai/llm-guard)** | Input→model→output guardrails for LLM features — prompt injection, PII vault, treating model output as untrusted | **Opt-in** "LLM / AI Feature Security" guidance in `security-and-hardening` + the advisory `warn-llm-io` hook (warns, **never blocks**) | `0.10.0` |
|
|
247
|
+
| **Improvement brief** (external self-review) | API backward-compat as a gate; load-against-SLO as a release criterion; supply-chain maintenance cadence; pipeline resumability, clean abort, and worktree lifecycle; pipeline cost/concurrency/cross-platform transparency | The enterprise **`contract-clear`** gate (owned by `merge-reviewer`) + `api-change-report` template; a load-vs-SLO criterion in Observability Ready; dependency **Cadence Mode**; `/sdlc` resume-vs-restart, `/claude-kit:abort`, worktree teardown; cost/concurrency/Windows notes — **9 surgical extensions, 0 new agents/skills/rules** | `0.12.0` |
|
|
242
248
|
|
|
243
249
|
> Each adoption is detailed in the [CHANGELOG](CHANGELOG.md) — including, for every review, what we
|
|
244
250
|
> deliberately **did not** add because the kit already covered it.
|
|
@@ -273,6 +279,28 @@ mandatory security gate — that would have made it mandatory.
|
|
|
273
279
|
|
|
274
280
|
</details>
|
|
275
281
|
|
|
282
|
+
<details>
|
|
283
|
+
<summary><b>How claude-kit compares (positioning)</b></summary>
|
|
284
|
+
|
|
285
|
+
<br>
|
|
286
|
+
|
|
287
|
+
claude-kit is a **config-only, stack-agnostic SDLC scaffolder** — it installs a governed pipeline
|
|
288
|
+
(agents · skills · rules · gates · hooks) into your project's `.claude/` and then gets out of the way.
|
|
289
|
+
It is **not** a runtime, an orchestration engine, or a code library. That framing is the difference:
|
|
290
|
+
|
|
291
|
+
| Project | What it is | How claude-kit differs |
|
|
292
|
+
|---|---|---|
|
|
293
|
+
| **[wshobson/agents](https://github.com/wshobson/agents)** & similar agent collections | Large libraries of individual subagent prompts you pick from | claude-kit ships a **smaller, opinionated set wired into a sequenced pipeline with owned quality gates** — agents aren't a menu, they're stages that hand off and block on each other. Adopt-by-reuse, not by accumulation. |
|
|
294
|
+
| **[GitHub spec-kit](https://github.com/github/spec-kit)** | A spec-driven workflow (constitution → spec → tasks → analyze) | claude-kit **absorbed spec-kit's coverage-gate idea** (the `story-planner` 1f gate + `task-tracker-sync`) into a **broader** lifecycle that also covers review, security, build, test, release, and observability gates. Complementary, wider scope. |
|
|
295
|
+
| **claude-flow / multi-agent runtimes** | Runtime orchestrators that *execute* swarms of agents | claude-kit produces **portable configuration**, not a running process — the orchestration is described in rules the host (Claude Code) executes. No daemon, no lock-in, no app code. |
|
|
296
|
+
| **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | claude-kit is a **catalog-driven generator**: it resolves your stack/profile/scope into the right subset of 23 rules, ~28 agents, ~50 skills, gates, and hooks, and keeps them **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
|
|
297
|
+
|
|
298
|
+
**Choose claude-kit when** you want a consistent, reviewable, **gate-enforced** autonomous-SDLC setup
|
|
299
|
+
that's the same across every repo and stack, installs in seconds, ships nothing you have to run, and
|
|
300
|
+
**evolves reuse-first** rather than by piling on near-duplicate agents.
|
|
301
|
+
|
|
302
|
+
</details>
|
|
303
|
+
|
|
276
304
|
---
|
|
277
305
|
|
|
278
306
|
## The agents
|
|
@@ -424,6 +452,7 @@ hints.
|
|
|
424
452
|
|---|---|---|
|
|
425
453
|
| `/sdlc`, agents, or skills "not found" right after `init` | Claude Code hasn't loaded the new project config yet | **Restart Claude Code** — or use `/claude-kit:sdlc <task>` (works without a restart) |
|
|
426
454
|
| Guard / quality hooks seem to do nothing | `jq` isn't installed (the hooks parse tool input with it) | Install `jq`; without it the hooks degrade to no-ops by design |
|
|
455
|
+
| Hooks do nothing on **Windows** | No POSIX shell — `.sh` hooks can't run under `cmd`/PowerShell | Run claude-kit inside **WSL or Git Bash** (with `jq`); `claude-kit doctor` confirms. Config + CLI work natively regardless |
|
|
427
456
|
| A selected MCP server won't start | `node` / `npx` missing (most MCP servers launch via `npx`) | Install Node.js, or remove the server from `.mcp.json` |
|
|
428
457
|
| `pip install claude-code-kit` fails | Not yet published to PyPI | Use `pip install "git+https://github.com/ajyadav013/claude-kit.git"` |
|
|
429
458
|
| `validate` reports missing files | Partial or outdated install | Re-run `claude-kit init` (choose **merge**), or `claude-kit upgrade` |
|
|
@@ -95,6 +95,11 @@ claude-kit init --defaults # non-interactive: React + Python/FastAPI + Post
|
|
|
95
95
|
> **Prerequisites:** [Claude Code](https://www.claude.com/product/claude-code); Python ≥ 3.9 for the
|
|
96
96
|
> CLI; `jq` to enable the shell hooks (they no-op without it); Node / `npx` only if you enable an MCP
|
|
97
97
|
> (Model Context Protocol) server.
|
|
98
|
+
>
|
|
99
|
+
> **Windows:** the config (agents · skills · rules) and the `claude-kit` CLI work natively. The shell
|
|
100
|
+
> hooks (`guard-*`, `warn-*`) need a POSIX shell + `jq`, so run inside **WSL or Git Bash** to enable
|
|
101
|
+
> them — `claude-kit doctor` detects Windows and tells you which case you're in. Without a POSIX shell
|
|
102
|
+
> the hooks silently no-op (the kit still functions; you just lose the deterministic guards).
|
|
98
103
|
|
|
99
104
|
<details>
|
|
100
105
|
<summary><b>What the init flow asks & what lands on disk</b></summary>
|
|
@@ -212,6 +217,7 @@ non-duplicative gaps**, minimally and catalog-wired.
|
|
|
212
217
|
| **[ponytail](https://github.com/DietrichGebert/ponytail)** | YAGNI / anti-over-engineering as an explicit recurring pass; deferral-debt tracking; surfacing the active autonomy level | `over-engineering-review` & `simplification-debt` skills, the `load-autonomy` hook, median-of-N in `evals` | `0.8.0` |
|
|
213
218
|
| **[GitHub spec-kit](https://github.com/github/spec-kit)** | Spec → tasks → **analyze** coverage gate; tasks → tracker issues; stable requirement IDs + assumptions in specs | Wired the (previously orphaned) `story-planner` as the **coverage gate (1f)**, a tracker-agnostic `task-tracker-sync` skill, and enriched the feature-spec template | `0.9.0` |
|
|
214
219
|
| **[protectai/llm-guard](https://github.com/protectai/llm-guard)** | Input→model→output guardrails for LLM features — prompt injection, PII vault, treating model output as untrusted | **Opt-in** "LLM / AI Feature Security" guidance in `security-and-hardening` + the advisory `warn-llm-io` hook (warns, **never blocks**) | `0.10.0` |
|
|
220
|
+
| **Improvement brief** (external self-review) | API backward-compat as a gate; load-against-SLO as a release criterion; supply-chain maintenance cadence; pipeline resumability, clean abort, and worktree lifecycle; pipeline cost/concurrency/cross-platform transparency | The enterprise **`contract-clear`** gate (owned by `merge-reviewer`) + `api-change-report` template; a load-vs-SLO criterion in Observability Ready; dependency **Cadence Mode**; `/sdlc` resume-vs-restart, `/claude-kit:abort`, worktree teardown; cost/concurrency/Windows notes — **9 surgical extensions, 0 new agents/skills/rules** | `0.12.0` |
|
|
215
221
|
|
|
216
222
|
> Each adoption is detailed in the [CHANGELOG](CHANGELOG.md) — including, for every review, what we
|
|
217
223
|
> deliberately **did not** add because the kit already covered it.
|
|
@@ -246,6 +252,28 @@ mandatory security gate — that would have made it mandatory.
|
|
|
246
252
|
|
|
247
253
|
</details>
|
|
248
254
|
|
|
255
|
+
<details>
|
|
256
|
+
<summary><b>How claude-kit compares (positioning)</b></summary>
|
|
257
|
+
|
|
258
|
+
<br>
|
|
259
|
+
|
|
260
|
+
claude-kit is a **config-only, stack-agnostic SDLC scaffolder** — it installs a governed pipeline
|
|
261
|
+
(agents · skills · rules · gates · hooks) into your project's `.claude/` and then gets out of the way.
|
|
262
|
+
It is **not** a runtime, an orchestration engine, or a code library. That framing is the difference:
|
|
263
|
+
|
|
264
|
+
| Project | What it is | How claude-kit differs |
|
|
265
|
+
|---|---|---|
|
|
266
|
+
| **[wshobson/agents](https://github.com/wshobson/agents)** & similar agent collections | Large libraries of individual subagent prompts you pick from | claude-kit ships a **smaller, opinionated set wired into a sequenced pipeline with owned quality gates** — agents aren't a menu, they're stages that hand off and block on each other. Adopt-by-reuse, not by accumulation. |
|
|
267
|
+
| **[GitHub spec-kit](https://github.com/github/spec-kit)** | A spec-driven workflow (constitution → spec → tasks → analyze) | claude-kit **absorbed spec-kit's coverage-gate idea** (the `story-planner` 1f gate + `task-tracker-sync`) into a **broader** lifecycle that also covers review, security, build, test, release, and observability gates. Complementary, wider scope. |
|
|
268
|
+
| **claude-flow / multi-agent runtimes** | Runtime orchestrators that *execute* swarms of agents | claude-kit produces **portable configuration**, not a running process — the orchestration is described in rules the host (Claude Code) executes. No daemon, no lock-in, no app code. |
|
|
269
|
+
| **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | claude-kit is a **catalog-driven generator**: it resolves your stack/profile/scope into the right subset of 23 rules, ~28 agents, ~50 skills, gates, and hooks, and keeps them **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
|
|
270
|
+
|
|
271
|
+
**Choose claude-kit when** you want a consistent, reviewable, **gate-enforced** autonomous-SDLC setup
|
|
272
|
+
that's the same across every repo and stack, installs in seconds, ships nothing you have to run, and
|
|
273
|
+
**evolves reuse-first** rather than by piling on near-duplicate agents.
|
|
274
|
+
|
|
275
|
+
</details>
|
|
276
|
+
|
|
249
277
|
---
|
|
250
278
|
|
|
251
279
|
## The agents
|
|
@@ -397,6 +425,7 @@ hints.
|
|
|
397
425
|
|---|---|---|
|
|
398
426
|
| `/sdlc`, agents, or skills "not found" right after `init` | Claude Code hasn't loaded the new project config yet | **Restart Claude Code** — or use `/claude-kit:sdlc <task>` (works without a restart) |
|
|
399
427
|
| Guard / quality hooks seem to do nothing | `jq` isn't installed (the hooks parse tool input with it) | Install `jq`; without it the hooks degrade to no-ops by design |
|
|
428
|
+
| Hooks do nothing on **Windows** | No POSIX shell — `.sh` hooks can't run under `cmd`/PowerShell | Run claude-kit inside **WSL or Git Bash** (with `jq`); `claude-kit doctor` confirms. Config + CLI work natively regardless |
|
|
400
429
|
| A selected MCP server won't start | `node` / `npx` missing (most MCP servers launch via `npx`) | Install Node.js, or remove the server from `.mcp.json` |
|
|
401
430
|
| `pip install claude-code-kit` fails | Not yet published to PyPI | Use `pip install "git+https://github.com/ajyadav013/claude-kit.git"` |
|
|
402
431
|
| `validate` reports missing files | Partial or outdated install | Re-run `claude-kit init` (choose **merge**), or `claude-kit upgrade` |
|
|
@@ -82,3 +82,21 @@ Backend deps: {N} · Frontend deps: {N} · Vulns: Critical {N} / High {N} / Medi
|
|
|
82
82
|
## HANDOFF
|
|
83
83
|
|
|
84
84
|
Return counts by severity + the finding table to `security-reviewer`. If a CVE has no patch, recommend a workaround or replacement and mark it for an allowlist-with-review-date decision (route to the human via the Orchestrator). Log durable findings to `.claude/CONTINUITY.md`.
|
|
85
|
+
|
|
86
|
+
## CADENCE MODE (whole-project maintenance pass)
|
|
87
|
+
|
|
88
|
+
The same audit can be dispatched **standalone** — outside any one feature — as a recurring
|
|
89
|
+
maintenance pass over the *whole* project (the ongoing CVE-remediation loop):
|
|
90
|
+
|
|
91
|
+
- Run the **same METHOD** across every manifest in the repo, not just one feature's dependencies.
|
|
92
|
+
- **Batch** the findings into grouped upgrade proposals — group by ecosystem and by major-vs-minor,
|
|
93
|
+
and keep **security** patches separate from routine bumps — ordered by the
|
|
94
|
+
`.claude/rules/quality-gates.md` severity model.
|
|
95
|
+
- **Triage stays in** `.claude/skills/security-and-hardening` §"Triaging Dependency Audit Results"
|
|
96
|
+
(reachability → fix-timing); cite it, do not restate it. Reuse the same recommend→apply split: you
|
|
97
|
+
**recommend**; the **developer lane applies** (manifest edits need user approval).
|
|
98
|
+
- Posture is **advisory** — you propose; the human/Orchestrator decides what to schedule and apply.
|
|
99
|
+
Every applied upgrade re-runs the existing **security-clear + build-green + test-coverage** gates
|
|
100
|
+
(no new gate logic, no new skill).
|
|
101
|
+
- **Scheduling** (cron/CI) is the consuming project's CI concern, not the kit's — claude-kit hooks are
|
|
102
|
+
event-driven (no time trigger). Wire a periodic job in the project's CI to invoke this pass.
|
|
@@ -168,6 +168,32 @@ Frontend code reviewed: ✓ | Build/tests: ✓
|
|
|
168
168
|
|
|
169
169
|
---
|
|
170
170
|
|
|
171
|
+
## Join Point: API Backward-Compatibility (contract-clear gate)
|
|
172
|
+
|
|
173
|
+
> **Extends** `.claude/rules/mandatory-workflow.md` §2d (Breaking Changes + Impact Check). §2d is the
|
|
174
|
+
> Developer's manual consumer/signature check for *internal* exports; this is its **mechanical
|
|
175
|
+
> counterpart for the externally-exposed contract** — a base-branch surface diff. It runs **only**
|
|
176
|
+
> when the selected stack exposes an API surface (a committed OpenAPI/GraphQL schema, or typed routes
|
|
177
|
+
> a generator can emit). **Degrade to a no-op** (PASS, note "no API contract surface") when no schema
|
|
178
|
+
> source is found — mirror the hooks' detect-then-skip pattern; never block a project that has no
|
|
179
|
+
> contract.
|
|
180
|
+
|
|
181
|
+
Owns the **contract-clear** gate (enterprise; or any profile an org opts into via `org.yaml`
|
|
182
|
+
strictness). With `Bash`:
|
|
183
|
+
|
|
184
|
+
1. **Locate or generate the contract** — a committed `openapi.(json|yaml)` / GraphQL SDL, or generate it from the framework's typed routes.
|
|
185
|
+
2. **Diff against the base branch** — `git show <base>:<contract-path>` vs the working copy.
|
|
186
|
+
3. **Classify each delta** by `.claude/rules/quality-gates.md` §1:
|
|
187
|
+
- **Critical/High** — a removed or renamed endpoint/field, a narrowed type, a new **required** request field, or a removed status code clients branch on (backward-incompatible for already-shipped consumers).
|
|
188
|
+
- **Medium** — an undocumented additive change, or a deprecation with no migration note.
|
|
189
|
+
- **Low/Cosmetic** — an additive **optional** field, or a doc-only change.
|
|
190
|
+
4. **Require a migration path** — any Critical/High breaking delta needs an approved migration note (cross-ref `.claude/skills/deprecation-and-migration`) **and** a version bump before PASS.
|
|
191
|
+
5. **Emit** `docs/api/{feature-name}_api-change-report.md` from the `api-change-report.md` artifact template.
|
|
192
|
+
|
|
193
|
+
**Rule:** *contract-clear* PASSes only at zero Critical/High/Medium per the severity model; a breaking change shipped without an approved migration note + version bump is **auto-High**.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
171
197
|
## Defect Loop Integration
|
|
172
198
|
|
|
173
199
|
When the Tester or Senior Tester finds defects after your verification:
|
|
@@ -45,6 +45,7 @@ You are the **Observability Engineer** agent. You make a feature **operable in p
|
|
|
45
45
|
### 1. SLOs / SLIs
|
|
46
46
|
- For each critical journey the feature adds, define a measurable objective: latency (p95/p99), availability/success-rate, or error budget.
|
|
47
47
|
- Record them where the project keeps them (e.g., `docs/observability/{feature}-slo.md`); reference the spec's NFR targets.
|
|
48
|
+
- When the feature adds a **hot / concurrency-sensitive backend path**, don't stop at *defining* the SLO — drive `.claude/skills/load-testing` against it, attach the run to the SLO doc (record under `docs/performance/`), and confirm it **meets** the budget. A budget breach (p95/p99 latency, error rate, or throughput) is **High** per `.claude/rules/quality-gates.md`. Skip (note why in `CONTINUITY.md`) for changes with no concurrency-sensitive surface.
|
|
48
49
|
|
|
49
50
|
### 2. Health & Readiness
|
|
50
51
|
- Liveness endpoint stays trivial and dependency-free (always 200 if the process is up).
|
|
@@ -392,7 +392,8 @@ For backend-only or frontend-only tasks, spawn a single tester in `full` mode
|
|
|
392
392
|
|
|
393
393
|
### Stage 7: Pipeline Complete
|
|
394
394
|
- Report PR URL to the human.
|
|
395
|
-
- Summarize: specs, dev docs, design, reviews (senior dev + tech architect + EM per lane), code reviewed, merge verified, testing validated + verified, Devil's Advocate (if unanimous), DevOps + Observability (where applicable), PR raised.
|
|
395
|
+
- Summarize: specs, dev docs, design, reviews (senior dev + tech architect + EM per lane), code reviewed, merge verified, testing validated + verified, Devil's Advocate (if unanimous), DevOps + Observability (where applicable), PR raised. State the summary as **per-gate PASS/FAIL**, open findings by **Critical/High/Medium**, and **PR-or-ABORTED** status (`.claude/rules/quality-gates.md` severity model).
|
|
396
|
+
- **Tear down this run's worktrees.** Once the PR is raised (or the run is abandoned), remove the per-lane worktrees this run created via the Agent tool's `isolation: "worktree"` — they auto-clean when unchanged; for merged lanes confirm removal with `git worktree remove`. **Only** remove worktrees this run created — never the user's other worktrees or the primary checkout. If a run must be cancelled mid-pipeline before this stage, use `/claude-kit:abort`.
|
|
396
397
|
|
|
397
398
|
---
|
|
398
399
|
|
|
@@ -95,5 +95,5 @@ profiles:
|
|
|
95
95
|
- incident-responder
|
|
96
96
|
- risk-classifier
|
|
97
97
|
skills: all
|
|
98
|
-
gates: [spec-complete, em-approved, code-review, build-green, test-coverage, security-clear, pipeline-green, observability-ready, acceptance]
|
|
98
|
+
gates: [spec-complete, em-approved, code-review, build-green, test-coverage, security-clear, contract-clear, pipeline-green, observability-ready, acceptance]
|
|
99
99
|
hooks: all
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Abort the in-progress /sdlc run — remove only this run's worktrees and mark CONTINUITY aborted
|
|
3
|
+
argument-hint: "[reason]"
|
|
4
|
+
allowed-tools: Bash, Read, Edit
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Cleanly abort the in-progress autonomous SDLC run in this project. There is **no destructive CLI** for
|
|
8
|
+
this by design — aborting is a guided, reversible cleanup you perform, never removing anything this run
|
|
9
|
+
did not create.
|
|
10
|
+
|
|
11
|
+
1. **Confirm a run is in progress.** Read `.claude/CONTINUITY.md` — check **Current Phase** /
|
|
12
|
+
**Active Tasks** and the orchestrator's `PIPELINE:` line to see which lanes/worktrees this run
|
|
13
|
+
created. If no run is in progress, say so and stop.
|
|
14
|
+
2. **List worktrees:** `git worktree list`. Identify **only** the worktrees this run created for its
|
|
15
|
+
lanes (the `developer` lanes use the Agent tool's `isolation: "worktree"`). **Never** remove a
|
|
16
|
+
worktree this run did not create, and never the primary checkout.
|
|
17
|
+
3. **Remove them:** `git worktree remove <path>` for each identified worktree. Unchanged worktrees are
|
|
18
|
+
auto-cleaned by the Agent tool; this handles any that remain. Add `--force` **only** after telling
|
|
19
|
+
the user exactly what uncommitted lane work would be lost and getting confirmation.
|
|
20
|
+
4. **Mark the run aborted:** append `ABORTED <date> — <reason from $ARGUMENTS>` under **Current Phase**
|
|
21
|
+
in `.claude/CONTINUITY.md`, and reset **Active Tasks** / **Next Steps** so the next `/sdlc` starts
|
|
22
|
+
fresh. (To merely *pause*, leave the `PIPELINE:` line intact so `/sdlc` can offer RESUME instead.)
|
|
23
|
+
5. **Report** what was removed and the final state. Do not touch the user's branches, commits, or other
|
|
24
|
+
worktrees.
|
|
25
|
+
|
|
26
|
+
This is the counterpart to the worktree-teardown step in `orchestrator` Stage 7: use it when a run must
|
|
27
|
+
be cancelled mid-pipeline rather than completing to a PR.
|
|
@@ -54,8 +54,9 @@ Request ─▶ classify ─▶ Spec & Dev Docs ─▶ [Gate: EM approved]
|
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
Which gates actually run depends on the profile: **lean** = code-review · build-green; **standard**
|
|
57
|
-
adds spec/EM/coverage/security; **enterprise** adds
|
|
58
|
-
acceptance
|
|
57
|
+
adds spec/EM/coverage/security; **enterprise** adds contract-clear · pipeline-green ·
|
|
58
|
+
observability-ready · acceptance (contract-clear self-skips on stacks with no API contract surface). A
|
|
59
|
+
**fast-track** path (bug fixes / < 5 files) skips planning: Developer → Code Reviewer →
|
|
59
60
|
Tester → PR.
|
|
60
61
|
|
|
61
62
|
Every gate uses the same severity model — a gate passes only with **zero Critical/High/Medium**
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "claude-code-kit"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.12.0"
|
|
8
8
|
description = "Cookiecutter-style scaffolder for an autonomous Claude Code SDLC configuration (no app code, no Docker). Asks ordered questions and installs CLAUDE.md + .claude/ (rules, the chosen profile's agents/skills, hooks, artifact templates) + optional .mcp.json; run /sdlc to drive spec → review → build → test → security → ship through profile-aware quality gates, working memory, and a self-improving learnings loop."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -22,6 +22,12 @@ When a CONTINUITY entry under **Mistakes & Learnings** is durable (a correction,
|
|
|
22
22
|
- **Seed:** `.claude/CONTINUITY.template.md` — committed. The `load-continuity.sh` SessionStart hook copies the template to the live file if the live file is missing, then prints it into context.
|
|
23
23
|
- Never commit the live file. Never store secrets, tokens, or credentials in it.
|
|
24
24
|
|
|
25
|
+
## Concurrency
|
|
26
|
+
|
|
27
|
+
- There is exactly **one** live `.claude/CONTINUITY.md` per working directory. Two pipeline runs in the **same** checkout share it and will clobber each other's state — don't run concurrent `/sdlc` in one directory.
|
|
28
|
+
- To run pipelines **concurrently** on one repo, give each its own **git worktree** (the isolation primitive already used for parallel lanes in `.claude/rules/mandatory-workflow.md`). Each worktree is a separate checkout, so the `load-continuity.sh` SessionStart hook seeds it an independent `CONTINUITY.md` (it copies the template to `$ROOT/.claude/CONTINUITY.md` when absent).
|
|
29
|
+
- `agent-memory/` is the opposite by design: a single **shared, committed** store any session reads and contributes to (last-writer-wins on distinct kebab-case files; the `remember` skill dedups). It is intentionally **not** namespaced per branch — cross-run learnings pool on purpose.
|
|
30
|
+
|
|
25
31
|
## Protocol
|
|
26
32
|
|
|
27
33
|
**At the start of every turn / session / after compaction:**
|
|
@@ -41,6 +41,7 @@ Ensures the feature is **operable in production**: you can tell when it breaks a
|
|
|
41
41
|
|
|
42
42
|
**Observability Ready passes when:**
|
|
43
43
|
- [ ] **SLOs/SLIs** defined for each critical user journey the feature adds (e.g., "p95 endpoint latency < 200ms", "login success rate ≥ 99.5%").
|
|
44
|
+
- [ ] **Load verified against the SLO** — for a change to a hot / SLO-bearing backend path, an empirical load run (drive `.claude/skills/load-testing`) was executed against the defined SLO and **met** its p95/p99 latency + error-rate + throughput budgets; record it under `docs/performance/` and link it from the feature SLO doc. *Skip (note why in `CONTINUITY.md`) for changes with no concurrency-sensitive surface.* A budget breach is **High** (`.claude/rules/quality-gates.md`).
|
|
44
45
|
- [ ] **Health/readiness** — any new external dependency (database, cache, third-party service) is reflected in the readiness check; liveness stays dependency-free.
|
|
45
46
|
- [ ] **Structured logging** — new state changes log via the project's structured logger as JSON key-values, semantic event names, **no secrets/PII**; error paths log at `error`/`exception` level.
|
|
46
47
|
- [ ] **Alerts** — alert rules defined for the feature's failure modes (error-rate spike, latency breach, dependency down) with a severity and an owner.
|
|
@@ -176,7 +176,10 @@ CANNOT start until coverage is complete.
|
|
|
176
176
|
# Phase 2 — Development (Stages 4-5)
|
|
177
177
|
|
|
178
178
|
## 2a — Read Existing Code & Confirm Scope `[Developer]`
|
|
179
|
-
Work in an **isolated git worktree
|
|
179
|
+
Work in an **isolated git worktree** (lifecycle: create one per lane → merge after the gates pass →
|
|
180
|
+
**remove it after the PR is raised or the run is aborted** — only the worktrees this run created, never
|
|
181
|
+
the user's others; `git worktree remove`, see `.claude/skills/git-workflow-and-versioning/SKILL.md`).
|
|
182
|
+
Before writing code, read the approved spec + dev docs,
|
|
180
183
|
the relevant `.claude/rules/*` for your stack, and EVERY file you plan to modify — in full.
|
|
181
184
|
Understand a function's callers/returns before changing it. Reuse existing utilities and
|
|
182
185
|
components — search before creating.
|
|
@@ -220,6 +223,13 @@ every consumer and verify it still works. Run the full test suite (not just your
|
|
|
220
223
|
Review the diff for changes outside your scope.
|
|
221
224
|
**Gate:** zero regressions verified across the codebase.
|
|
222
225
|
|
|
226
|
+
> **Mechanical counterpart (enterprise, API-exposing stacks):** the `merge-reviewer` runs the
|
|
227
|
+
> **contract-clear** gate — a base-branch API-surface diff (`git show <base>:<schema>`) that classifies
|
|
228
|
+
> each delta by severity and blocks backward-incompatible changes lacking an approved migration note +
|
|
229
|
+
> version bump. It self-skips when no API contract surface exists. This §2d is the manual consumer
|
|
230
|
+
> check; contract-clear is its automated, externally-exposed-contract complement. See
|
|
231
|
+
> `.claude/agents/merge-reviewer.md`.
|
|
232
|
+
|
|
223
233
|
---
|
|
224
234
|
|
|
225
235
|
# Phase 3 — Testing & Delivery (Stages 6-7)
|
|
@@ -32,3 +32,21 @@ tier — they are focused specialists/personas, not deep-reasoning orchestrators
|
|
|
32
32
|
(`secret-scanner`, `dependency-scanner`, `policy-validator`) are `sonnet` (pattern/tool work).
|
|
33
33
|
- **Re-map when names/prices change.** Keep the tier *intent* (Critical / Default / Fast); swap the
|
|
34
34
|
concrete alias if Anthropic's model lineup shifts.
|
|
35
|
+
|
|
36
|
+
## Profile cost expectations
|
|
37
|
+
|
|
38
|
+
Token cost scales with the **profile** (the agent / skill / hook set it installs — see
|
|
39
|
+
`catalog/profiles.yaml`): more agents and more parallel review lanes mean more model turns. As a
|
|
40
|
+
*relative* guide (not a currency figure):
|
|
41
|
+
|
|
42
|
+
- **lean** — cheapest: ~5 agents, a single review lane, no Devil's Advocate, fewest gates. Only
|
|
43
|
+
`orchestrator` + `developer` run on `opus`; the rest are `sonnet`/`haiku`.
|
|
44
|
+
- **standard** — adds the spec / design / test / security lanes and the blind-review + Devil's
|
|
45
|
+
Advocate pass: mostly `sonnet` reviewers and scanners layered on top of lean.
|
|
46
|
+
- **enterprise** — heaviest: adds the DevOps / Observability / audit agents, `skills: all`, and
|
|
47
|
+
`hooks: all`, with more gates — but still only the four `opus` agents (`orchestrator`, `developer`,
|
|
48
|
+
`devils-advocate`, `owasp-reviewer`); everything it adds is `sonnet`/`haiku`.
|
|
49
|
+
|
|
50
|
+
Scale effort to the work, not the ceremony: pick the smallest profile that fits, and use the per-agent
|
|
51
|
+
tier table above plus `.claude/rules/reasoning-techniques.md` ("resource-aware effort") to avoid
|
|
52
|
+
spending `opus` on mechanical turns.
|
|
@@ -90,7 +90,8 @@ Where the agent is installed, a gate reached by unanimous PASS is not PASS until
|
|
|
90
90
|
| Test coverage verified | 3 | All acceptance criteria covered across lanes | **Yes** — senior testers blind, Devil's Advocate on unanimous PASS |
|
|
91
91
|
| Security clear | 5.4 | 0 Critical/High/Medium, no secrets, deps patched, policies enforced | No — `security-reviewer` + sub-scanners |
|
|
92
92
|
| Pipeline green | DevOps | CI valid, container/build artifacts healthy, runbook complete | No — see `devops-observability.md` |
|
|
93
|
-
| Observability ready | Observability | SLOs, health checks, alerts, structured logs | No — see `devops-observability.md` |
|
|
93
|
+
| Observability ready | Observability | SLOs, health checks, alerts, structured logs + (for hot backend paths) a load run meets the SLO | No — see `devops-observability.md` |
|
|
94
|
+
| Contract clear *(enterprise; API stacks)* | Pre-merge | API contract diff vs base branch: 0 backward-incompatible deltas without an approved migration note + version bump; self-skips when no contract surface | No — `merge-reviewer` |
|
|
94
95
|
|
|
95
96
|
---
|
|
96
97
|
|
|
@@ -236,6 +236,15 @@ return renderLegacyCheckout();
|
|
|
236
236
|
|
|
237
237
|
**Flag lifecycle:** Create → Enable for testing → Canary → Full rollout → Remove the flag and dead code. Flags that live forever become technical debt — set a cleanup date when you create them.
|
|
238
238
|
|
|
239
|
+
### Blue/Green vs Canary
|
|
240
|
+
|
|
241
|
+
Two complementary cutover strategies — both keep rollback fast:
|
|
242
|
+
|
|
243
|
+
- **Blue/green** — run two identical production environments (blue = current, green = new). Deploy to the idle one, smoke-test it, then flip the router/load balancer in a single switch. Rollback is instant: flip back. Choose it when you need an atomic cutover and a clean, immediate revert and can afford two full environments.
|
|
244
|
+
- **Canary** — keep one environment and shift a *percentage* of traffic (or users, via a flag) to the new version — 5% → 25% → 50% → 100% — watching error rate, latency, and business metrics at each step before advancing. Choose it to limit blast radius on real traffic, tolerating both versions running at once.
|
|
245
|
+
|
|
246
|
+
Pick blue/green for atomic switch + instant revert, canary for gradual observable exposure. Either way, define the advance / hold / rollback thresholds **before** you start — reuse the Rollout Decision Thresholds table in `.claude/skills/shipping-and-launch/SKILL.md` rather than inventing new ones.
|
|
247
|
+
|
|
239
248
|
### Staged Rollouts
|
|
240
249
|
|
|
241
250
|
```
|
|
@@ -25,6 +25,18 @@ Before doing anything, read:
|
|
|
25
25
|
and the blind-review + Devil's Advocate protocol.
|
|
26
26
|
- `.claude/rules/rarv-cycle.md` — the Reason → Act → Reflect → Verify self-check every agent runs.
|
|
27
27
|
|
|
28
|
+
Then read `.claude/CONTINUITY.md` (the `load-continuity` SessionStart hook has already printed it into
|
|
29
|
+
context). **Detect an in-progress run:** if **Current Phase** is not idle and **Active Tasks** names a
|
|
30
|
+
run matching `$ARGUMENTS`, an earlier pipeline is in flight. Tell the user the **last PASSed gate** and
|
|
31
|
+
the active lane(s) from the mirrored `PIPELINE:` line (the orchestrator's authoritative, gate-precise
|
|
32
|
+
state line — see `.claude/rules/continuity.md`), then ask whether to:
|
|
33
|
+
|
|
34
|
+
- **RESUME** — re-enter the orchestrator at the first gate *after* the last passed one, re-running only
|
|
35
|
+
un-passed or defect-affected lanes; or
|
|
36
|
+
- **RESTART** — reset **Current Phase** / **Next Steps** and begin again from spec.
|
|
37
|
+
|
|
38
|
+
If **Current Phase** is idle (or CONTINUITY was freshly seeded), proceed as a fresh run.
|
|
39
|
+
|
|
28
40
|
## 2. Discover the active profile (this decides which gates run)
|
|
29
41
|
|
|
30
42
|
Read `.claude/config/stack-catalog.snapshot.yaml`. Its `gates:` and `agents:` lists are the
|
|
@@ -53,8 +65,9 @@ and the stack selection. Instruct it to:
|
|
|
53
65
|
1. **Classify** the work — bug fix vs. feature; single-stream vs. parallel lanes (backend/frontend);
|
|
54
66
|
fast-track (< 5 files) vs. full pipeline. Fast-track collapses to the lean gate set regardless of
|
|
55
67
|
profile.
|
|
56
|
-
2. **Record** the plan and
|
|
57
|
-
compaction — update it at every phase transition).
|
|
68
|
+
2. **Record** (or, **on resume**, update) the plan and state in `.claude/CONTINUITY.md` (working memory
|
|
69
|
+
survives compaction — update it at every phase transition). On resume, re-enter at the first gate
|
|
70
|
+
*after* the last PASSed gate per the `PIPELINE:` line rather than restarting from spec.
|
|
58
71
|
3. **Run each active phase with its gate**, in order, using only the profile's agents:
|
|
59
72
|
spec & dev-docs → story planning → (design, if UI) → senior/architect/EM review →
|
|
60
73
|
implementation (one worktree per lane) → code review → unit + e2e tests → test-coverage merge →
|
|
@@ -9,6 +9,7 @@ and choose an exit code.
|
|
|
9
9
|
from __future__ import annotations
|
|
10
10
|
|
|
11
11
|
import json
|
|
12
|
+
import platform
|
|
12
13
|
import shutil
|
|
13
14
|
from pathlib import Path
|
|
14
15
|
|
|
@@ -171,6 +172,20 @@ def doctor(target: str | Path) -> tuple[bool, list[str]]:
|
|
|
171
172
|
else:
|
|
172
173
|
msgs.append(f"WARN {tool} not on PATH — {why}")
|
|
173
174
|
|
|
175
|
+
# Platform visibility: the shell hooks need a POSIX shell + jq. On Windows they no-op silently
|
|
176
|
+
# unless run under WSL/Git Bash; the config and CLI work natively regardless. Never a failure.
|
|
177
|
+
if platform.system() == "Windows":
|
|
178
|
+
if shutil.which("jq"):
|
|
179
|
+
msgs.append(
|
|
180
|
+
"OK Windows with jq on PATH — a POSIX shell (Git Bash/WSL) is providing the hooks"
|
|
181
|
+
)
|
|
182
|
+
else:
|
|
183
|
+
msgs.append(
|
|
184
|
+
"WARN Windows detected and jq not on PATH — the shell hooks (guard-*, warn-*) will "
|
|
185
|
+
"no-op. Run claude-kit inside WSL or Git Bash to enable them; the kit config "
|
|
186
|
+
"(agents/skills/rules) and the claude-kit CLI work natively on Windows regardless."
|
|
187
|
+
)
|
|
188
|
+
|
|
174
189
|
hooks_dir = claude / "hooks"
|
|
175
190
|
if hooks_dir.is_dir():
|
|
176
191
|
nonexec = [
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# API change report: <feature / version>
|
|
2
|
+
|
|
3
|
+
> Produced by the **contract-clear** gate (`merge-reviewer`, enterprise / API-exposing stacks). It
|
|
4
|
+
> diffs the externally-exposed API contract against the base branch. Backward-incompatible deltas for
|
|
5
|
+
> already-shipped consumers block the gate unless an approved migration note + version bump accompany
|
|
6
|
+
> them. The gate self-skips when no contract surface (OpenAPI / GraphQL / typed routes) is found.
|
|
7
|
+
|
|
8
|
+
## Contract source
|
|
9
|
+
- Spec: <openapi.(json|yaml) | GraphQL SDL | generated-from-typed-routes>
|
|
10
|
+
- Base ref: <branch/commit the working copy was diffed against>
|
|
11
|
+
|
|
12
|
+
## Added (non-breaking)
|
|
13
|
+
- <new endpoint / new optional field / new enum value>
|
|
14
|
+
|
|
15
|
+
## Changed
|
|
16
|
+
| Delta | Endpoint / field | Severity | Backward-incompatible? | Migration note |
|
|
17
|
+
|-------|------------------|----------|------------------------|----------------|
|
|
18
|
+
| <type narrowed / new required field / status code changed / renamed> | … | Critical/High/Medium/Low | yes/no | <link or N/A> |
|
|
19
|
+
|
|
20
|
+
## Removed / deprecated
|
|
21
|
+
- <removed or renamed endpoint/field> — deprecation + removal plan: <link to `.claude/skills/deprecation-and-migration` output>
|
|
22
|
+
|
|
23
|
+
## Backward-compatibility verdict
|
|
24
|
+
- Breaking deltas: <count> · each carries an approved migration note + version bump: <yes/no>
|
|
25
|
+
- Version bump: <major | minor | patch> — <old → new>
|
|
26
|
+
- **contract-clear:** <PASS / FAIL> (PASS only at zero Critical/High/Medium per `.claude/rules/quality-gates.md`)
|
|
27
|
+
|
|
28
|
+
## Affected consumers
|
|
29
|
+
- <known internal/external consumers of the changed surfaces, and how each is migrated>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|