claude-code-kit 0.12.0__tar.gz → 0.13.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.12.0 → claude_code_kit-0.13.0}/.claude-plugin/marketplace.json +1 -1
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/.claude-plugin/plugin.json +1 -1
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/CHANGELOG.md +83 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/CLAUDE.md +3 -2
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/CONTRIBUTING.md +7 -2
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/PKG-INFO +19 -12
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/README.md +18 -11
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/acceptance-reviewer.md +19 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/merge-reviewer.md +2 -2
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/catalog/org.yaml +4 -1
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/catalog/profiles.yaml +4 -1
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/catalog/stacks.yaml +18 -1
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/docs/agents.md +4 -4
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/docs/architecture.md +2 -1
- claude_code_kit-0.13.0/docs/coverage-audit.md +51 -0
- claude_code_kit-0.13.0/docs/eval-harness.md +58 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/docs/org-capabilities.md +4 -1
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/pyproject.toml +1 -1
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/evals.md +4 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/mandatory-workflow.md +1 -1
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/quality-gates.md +2 -1
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/__init__.py +1 -1
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/catalog.py +2 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/CLAUDE.stack.md.tmpl +1 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/api-change-report.md +1 -1
- claude_code_kit-0.13.0/templates/stacks/backend/go/net-http/rules/go-patterns.md +74 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +3 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +6 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/postgres/agents/migration-specialist.md +4 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +7 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/.gitignore +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/LICENSE +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/auditor.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/dependency-scanner.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/developer.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/devils-advocate.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/devops-engineer.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/e2e-tester.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/em-reviewer.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/incident-responder.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/observability-engineer.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/orchestrator.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/owasp-reviewer.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/policy-validator.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/pr-raiser.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/risk-classifier.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/sdlc-code-reviewer.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/secret-scanner.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/security-reviewer.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/senior-backend-dev.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/senior-frontend-dev.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/senior-tester.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/spec-doc-writer.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/story-planner.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/technical-architect.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/tester.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/ui-designer.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/unit-tester.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/catalog/mcp.yaml +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/commands/abort.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/commands/init.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/commands/sdlc.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/commands/status.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/docs/agentic-patterns.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/hooks.json +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/audit-log.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/guard-destructive-git.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/guard-secrets.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/lint-fix.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/load-autonomy.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/load-continuity.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/load-learnings.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/type-check.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/validate-frontmatter.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/validate-settings.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/warn-large-edits.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/warn-llm-io.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/warn-missing-tests.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/warn-shared-modules.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/agent-guardrails.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/agent-memory.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/agent-resilience.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/autonomy-levels.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/code-organization.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/continuity.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/design-patterns.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/devops-observability.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/documentation.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/frontend-best-practices.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/goal-setting-and-monitoring.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/human-in-the-loop.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/linting-and-formatting.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/model-tiers.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/rarv-cycle.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/reasoning-techniques.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/responsive-and-accessibility.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/risk-classification.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/testing.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/tool-design.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/scripts/init.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/_references/accessibility-checklist.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/_references/orchestration-patterns.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/_references/performance-checklist.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/_references/security-checklist.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/_references/testing-patterns.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/accessibility-review/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/api-and-interface-design/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/api-integration/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/archive-sprint/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/backlog/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/backlog/item-template.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/code-review-and-quality/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/code-simplification/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/component-design/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/consolidate-learnings/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/context-engineering/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/decision/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/decision/adr-template.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/deprecation-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/documentation-and-adrs/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/doubt-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/execute/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/idea-refine/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/idea-refine/examples.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/idea-refine/frameworks.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/idea-refine/refinement-criteria.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/incident-postmortem/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/incremental-implementation/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/interview-me/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/load-testing/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/manual-test/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/over-engineering-review/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/performance-optimization/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/playwright-verification/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/refresh-docs/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/remember/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/scope/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/scope/scope-template.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/sdlc/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/security-and-hardening/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/security-verification/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/shipping-and-launch/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/simplification-debt/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/smoke-test/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/source-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/spec-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/sprint/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/sprint/sprint-template.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/task-tracker-sync/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/test-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/threat-model/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/triage/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/ui-ux-design/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/unit-test/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/using-agent-skills/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/__main__.py +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/cli.py +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/hooks.py +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/models.py +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/prompts.py +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/render.py +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/scaffold.py +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/upgrader.py +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/validator.py +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/CLAUDE.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/CONTINUITY.template.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/README.claude-sdlc.md.tmpl +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/MEMORY.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/api/.gitkeep +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/architecture/.gitkeep +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/debugging/.gitkeep +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/patterns/.gitkeep +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/performance/.gitkeep +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/adr.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/feature-spec.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/release-plan.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/runbook.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/security-review.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/test-plan.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/README.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/agents/data-workflow-agent.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/agents/founder-prototype-agent.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/agents/internal-tools-builder.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/agents/pm-copilot.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/agents/support-ticket-engineer.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/devops-and-release/README.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/engineering-core/README.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/product-to-code/README.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/quality-and-review/README.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/security-and-compliance/README.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/ai-working-agreement.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/ambiguity-resolution.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/compliance-policy.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/pii-policy.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/production-data-policy.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/prototype-boundaries.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/secrets-policy.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/settings.json +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
- {claude_code_kit-0.12.0 → claude_code_kit-0.13.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.13.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.13.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,89 @@ 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.13.0] — 2026-06-15
|
|
8
|
+
|
|
9
|
+
A **second improvement brief** (external self-review, post-0.12.0) — Item 0 (a covered-vs-gated audit)
|
|
10
|
+
+ P0-1/P0-2, P1-1/P1-2/P1-3, and six P2 items — run through the kit's mandated **adversarial
|
|
11
|
+
reuse-first map→verify** (a 24-agent map→verify pass). The decisive finding repeated from last time:
|
|
12
|
+
several premises were **overstated** against the live files (migration safety was already largely
|
|
13
|
+
enforced; the README "no PyPI yet" text was simply stale; the README is already progressively
|
|
14
|
+
disclosed). The result is a mix of **two new gates wired as data, one new live backend stack, and
|
|
15
|
+
targeted extensions** — **zero new agents/skills/rules** beyond what already existed (core counts
|
|
16
|
+
unchanged: 28 agents · 50 skills · 23 rules).
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
- **Item 0 — `docs/coverage-audit.md`.** The justification record the briefs kept eliding: every
|
|
20
|
+
"already covered" capability classified **GATED (enforced) / RULE (always-on) / SKILL-DOC
|
|
21
|
+
(advisory)** with file evidence. Verifies rollback (GATED enterprise-only; RULE elsewhere), cost
|
|
22
|
+
(DOC by design), migration safety (overlay-advisory + enterprise rollback), accessibility, and
|
|
23
|
+
flags the one *looks-enforced-but-isn't* trap (the `accessibility-review` skill's internal "Quality
|
|
24
|
+
gates" heading is **not** a gate token).
|
|
25
|
+
- **P0-1 — `contract-clear` reaches the default `standard` profile** (API stacks), not just
|
|
26
|
+
enterprise (`catalog/profiles.yaml`). It still self-skips when the stack exposes no API contract
|
|
27
|
+
surface, so non-API projects are unaffected. *(Deliberate posture change: 0.12.0 placed it in
|
|
28
|
+
enterprise under golden-rule-#6 "heavyweight gates default to enterprise"; the brief explicitly
|
|
29
|
+
authorizes promoting it because breaking-change detection is table-stakes for the headline FastAPI
|
|
30
|
+
backend. Documented, not silent.)* Owned by `merge-reviewer`; quality-gates §4 + mandatory-workflow
|
|
31
|
+
§2d + the api-change-report template updated to say "standard+".
|
|
32
|
+
- **P1-1 — a live Go backend stack** (Go · stdlib **net/http**): a pure `catalog/stacks.yaml` entry +
|
|
33
|
+
`templates/stacks/backend/go/net-http/rules/go-patterns.md` overlay + exact `go` commands
|
|
34
|
+
(`go build ./...`, `go test ./...`, `go vet`, `gofmt`). Chosen over Node/Express precisely because
|
|
35
|
+
its build/test command shapes differ most from npm/pip — the strongest test of the stack-agnostic
|
|
36
|
+
claim. The one supporting code change: a **`build`** key added to `_BACKEND_CMD_KEYS` (compiled
|
|
37
|
+
backends surface a build command; interpreted ones leave it empty). No `resolve()` branch.
|
|
38
|
+
- **P1-2 — `accessibility-clear` gate** at organization scope, **`regulated` strictness only**
|
|
39
|
+
(`catalog/org.yaml` `extra_gates`). Owned by `acceptance-reviewer` (read-only, already present at
|
|
40
|
+
standard+), drives the existing `accessibility-review` skill over changed UI (WCAG-AA), self-skips
|
|
41
|
+
when no UI surface. Wired in `org.yaml` only, so the `lean⊊standard⊊enterprise` profile invariant is
|
|
42
|
+
untouched.
|
|
43
|
+
- **`examples/react-fastapi-postgres-feature/`** (P2-2) — a clearly-labelled **synthetic** end-to-end
|
|
44
|
+
walkthrough: request → feature-spec → story breakdown (coverage gate) → gate verdicts (incl. one
|
|
45
|
+
defect-loop cycle and a Devil's-Advocate CONFIRMED line) → sample PR diff. Repo reference (like
|
|
46
|
+
`docs/`), **not** bundled into the wheel.
|
|
47
|
+
- **`docs/eval-harness.md`** (P2-4) — a fill-in template to measure the pipeline with vs without the
|
|
48
|
+
gates (which gate caught which defect), built on `rules/evals.md` §6 median-of-N. Ships **no**
|
|
49
|
+
numbers by design (an eval result is environment-specific); honesty rules included.
|
|
50
|
+
- **Self-test matrix** (P2-5) — a parametrized test sweeping **every live frontend × backend ×
|
|
51
|
+
database × profile × scope** (now 24 combos incl. Go), each resolved + installed + validated +
|
|
52
|
+
Docker-checked. Driven off `catalog.list_options`, so new live stacks auto-join with no test edit.
|
|
53
|
+
|
|
54
|
+
### Changed
|
|
55
|
+
- **P0-2 — migration safety made explicit.** Both `migration-specialist` overlays (postgres + mongodb)
|
|
56
|
+
already mandated expand/contract, reversible down-path, and idempotent backfill *as agent guidance*;
|
|
57
|
+
added the explicit hard rule **"no destructive drop in the same release as the code that stops using
|
|
58
|
+
the old shape"** with **severity** to the always-on overlay RULES (`postgres-patterns.md`,
|
|
59
|
+
`mongodb-patterns.md`) — so it lives in a rule, not only an agent prompt. (Same-release destruction
|
|
60
|
+
= at least **High**.)
|
|
61
|
+
- **P1-3 — the PyPI story reconciled.** `claude-code-kit` **is** published (latest 0.12.0); the README
|
|
62
|
+
install block, troubleshooting row, and a stale `changelog-v0.10.0` badge said otherwise. Install is
|
|
63
|
+
now `pip install claude-code-kit`; the changelog badge is de-versioned (self-healing); the CI
|
|
64
|
+
publish machinery (`publish.yml`) was correct and left untouched.
|
|
65
|
+
- **P2-3 (on-ramp, minimal)** — added an **Examples** nav link + pipeline pointer only; the proposed
|
|
66
|
+
full README restructure was **rejected** (see below). Pipeline gate table + `docs/architecture.md`
|
|
67
|
+
diagram updated for `contract-clear` (standard+) and the Go stack.
|
|
68
|
+
|
|
69
|
+
### Not adopted (deliberately — premise overstated or against the kit's design)
|
|
70
|
+
- **A dedicated migration GATE token (P0-2).** Migrations are overlay-conditioned and not every-run;
|
|
71
|
+
`resolve()` can't emit stack gates without a branch. Strengthened the always-on overlay rules +
|
|
72
|
+
reviewer agents instead — enforcement via review + the enterprise rollback gate (`pipeline-green`),
|
|
73
|
+
per the coverage audit.
|
|
74
|
+
- **Node/Express as the new backend (P1-1).** Chose **Go** instead — its command shapes differ more
|
|
75
|
+
from the existing npm/pip stacks, which is the whole point of the breadth test. Express/Vue/Svelte/
|
|
76
|
+
Django remain `planned`.
|
|
77
|
+
- **A full README restructure + GIF (P2-3).** The README already uses progressive disclosure
|
|
78
|
+
(`<details>`); a big move-to-`docs/` churn is negative-value and a GIF can't be produced here. Added
|
|
79
|
+
only the example link. (Recording a demo GIF is a human follow-up.)
|
|
80
|
+
- **Relocating the CHANGELOG "Not adopted" blocks to `docs/decision-log.md` (P2-6).** Those blocks are
|
|
81
|
+
a **marketed feature** the README links to; moving them would break that cross-reference for low
|
|
82
|
+
value. Added a forward-looking note in `CONTRIBUTING.md` instead (split later *only if* the README
|
|
83
|
+
link is updated in the same change).
|
|
84
|
+
- **Repo About-box metadata (P2-1)** — host config outside the payload; `gh` is unavailable here.
|
|
85
|
+
Human follow-up: `gh repo edit ajyadav013/claude-kit --description "Config-only, stack-agnostic
|
|
86
|
+
autonomous-SDLC scaffolder for Claude Code (plugin + pip)" --add-topic claude-code --add-topic
|
|
87
|
+
claude-code-plugins --add-topic sdlc --add-topic ai-agents --add-topic agentic-coding --add-topic
|
|
88
|
+
claude-skills`.
|
|
89
|
+
|
|
7
90
|
## [0.12.0] — 2026-06-15
|
|
8
91
|
|
|
9
92
|
An **improvement brief** (external self-review, no repo access) proposed ~15 changes — four P0, five
|
|
@@ -29,8 +29,9 @@ distributed two ways from one source of truth:
|
|
|
29
29
|
| `templates/org/` | **Org overlay** content (scope-gated, organization only): `skills/`, `agents/` (personas), `rules/` (policy/vibe), `packs/<pack>/{pack.yaml,README.md}`, `README.md`. Wired via `catalog/org.yaml`. The only place org-specific content lives. |
|
|
30
30
|
| `scripts/init.sh` | Thin no-pip fallback scaffolder (copies the full payload; no catalog resolution) |
|
|
31
31
|
| `src/claude_kit/` | The pip CLI (Typer): `cli.py`, `catalog.py` (resolver), `prompts.py`, `models.py`, `scaffold.py` (installer), `render.py` (Jinja2), `hooks.py`, `validator.py`, `upgrader.py` |
|
|
32
|
-
| `tests/` | pytest suite (catalog, render, scaffold, validator, upgrader, CLI) |
|
|
33
|
-
| `
|
|
32
|
+
| `tests/` | pytest suite (catalog, render, scaffold, validator, upgrader, CLI; incl. the profile×stack×scope self-test matrix) |
|
|
33
|
+
| `examples/` | Synthetic end-to-end `/sdlc` worked example (repo reference; **not** bundled into the wheel) |
|
|
34
|
+
| `docs/architecture.md` · `docs/agents.md` · `docs/coverage-audit.md` · `docs/eval-harness.md` | Architecture diagrams · agent guide · the GATED-vs-RULE-vs-SKILL enforcement audit · the with/without eval template |
|
|
34
35
|
| `pyproject.toml` | Packaging (deps: typer/jinja2/pyyaml); `[tool.hatch...force-include]` bundles the payload into the wheel |
|
|
35
36
|
|
|
36
37
|
**One source of truth:** `agents/ skills/ commands/ hooks/ rules/ templates/ catalog/` at the repo
|
|
@@ -83,9 +83,14 @@ a specific stack — `pytest` enforces the no-Docker invariant on a scaffolded p
|
|
|
83
83
|
|
|
84
84
|
1. Bump the version in **all four** places: `pyproject.toml`, `.claude-plugin/plugin.json`, the
|
|
85
85
|
`.claude-plugin/marketplace.json` entry, and `src/claude_kit/__init__.py`.
|
|
86
|
-
2. Add a `CHANGELOG.md` entry
|
|
86
|
+
2. Add a `CHANGELOG.md` entry, including a **"Not adopted (deliberately)"** block stating what you
|
|
87
|
+
chose *not* to add and why — this is a marketed feature of the changelog (the README links to it),
|
|
88
|
+
so keep it. If those blocks ever grow unwieldy they may later split into `docs/decision-log.md`,
|
|
89
|
+
but **only if** the README's CHANGELOG cross-reference is updated in the same change; until then
|
|
90
|
+
they stay in `CHANGELOG.md` by design.
|
|
87
91
|
3. `pytest` green, then `python3 -m build && python3 -m twine check dist/*`.
|
|
88
|
-
4.
|
|
92
|
+
4. CI auto-publishes to PyPI on merge to `main` when the version is new (`.github/workflows/publish.yml`,
|
|
93
|
+
OIDC trusted publishing). Manual `python3 -m twine upload dist/*` is the fallback.
|
|
89
94
|
5. Tag the release and push so plugin users get the update.
|
|
90
95
|
|
|
91
96
|
## License
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-code-kit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.13.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
|
|
@@ -39,9 +39,9 @@ with a quality gate between every phase. **No application code. No Docker. Confi
|
|
|
39
39
|
[](LICENSE)
|
|
40
40
|
[](https://www.claude.com/product/claude-code)
|
|
41
41
|
[](https://github.com/ajyadav013/claude-kit/actions/workflows/ci.yml)
|
|
42
|
-
[](CHANGELOG.md)
|
|
43
43
|
|
|
44
|
-
🚀 [Quick start](#quick-start) · 🧭 [How it works](#how-it-works) · 🔁 [The pipeline](#the-pipeline) · 🌱 [What we adopted](#influences--what-we-adopted) · 🤖 [Agents](#the-agents) · 🧩 [Catalog](#catalog--extensibility) · 🛠️ [CLI](#cli-reference) · 📖 [Agent guide](docs/agents.md)
|
|
44
|
+
🚀 [Quick start](#quick-start) · 🧭 [How it works](#how-it-works) · 🔁 [The pipeline](#the-pipeline) · 🧪 [Example](examples/) · 🌱 [What we adopted](#influences--what-we-adopted) · 🤖 [Agents](#the-agents) · 🧩 [Catalog](#catalog--extensibility) · 🛠️ [CLI](#cli-reference) · 📖 [Agent guide](docs/agents.md)
|
|
45
45
|
|
|
46
46
|
</div>
|
|
47
47
|
|
|
@@ -59,7 +59,7 @@ refuses to advance a phase until its **quality gate** passes. You drive it all w
|
|
|
59
59
|
**At a glance:**
|
|
60
60
|
|
|
61
61
|
- 🧱 **Stack-agnostic** — the pipeline assumes no language or framework. Pick a stack at `init` and it
|
|
62
|
-
installs matching overlay rules (React · FastAPI · PostgreSQL · MongoDB) and your exact
|
|
62
|
+
installs matching overlay rules (React · FastAPI · Go/net-http · PostgreSQL · MongoDB) and your exact
|
|
63
63
|
lint/test/build commands. It never writes your app code and never needs Docker.
|
|
64
64
|
- 🎚️ **Dial the rigor with profiles** — `lean ⊊ standard ⊊ enterprise` decide how many agents, skills,
|
|
65
65
|
hooks, and gates are active, from "fast track" to "full audit".
|
|
@@ -109,9 +109,9 @@ Then, inside any project you want the pipeline to manage:
|
|
|
109
109
|
A CLI (`claude-kit`, aliases `ckit` / `claude-sdlc`) that scaffolds the same config into any repo:
|
|
110
110
|
|
|
111
111
|
```bash
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
#
|
|
112
|
+
pip install claude-code-kit
|
|
113
|
+
# or, for the bleeding edge straight from the repo:
|
|
114
|
+
# pip install "git+https://github.com/ajyadav013/claude-kit.git"
|
|
115
115
|
|
|
116
116
|
claude-kit init # interactive: prompts for stack, profile, MCP
|
|
117
117
|
claude-kit init --defaults # non-interactive: React + Python/FastAPI + Postgres + standard
|
|
@@ -223,10 +223,16 @@ flowchart TD
|
|
|
223
223
|
| Profile | Gates that run |
|
|
224
224
|
|---|---|
|
|
225
225
|
| **lean** | code-review · build-green |
|
|
226
|
-
| **standard** | spec-complete · em-approved · code-review · build-green · test-coverage · security-clear |
|
|
226
|
+
| **standard** | spec-complete · em-approved · code-review · build-green · test-coverage · security-clear · contract-clear\* |
|
|
227
227
|
| **enterprise** | standard + pipeline-green · observability-ready · acceptance |
|
|
228
228
|
|
|
229
|
-
|
|
229
|
+
\* `contract-clear` (API breaking-change diff) self-skips when the stack exposes no API surface, so it
|
|
230
|
+
is inert for non-API projects. Organization scope at `regulated` strictness adds `accessibility-clear`
|
|
231
|
+
(WCAG-AA on changed UI). A **fast-track** mode collapses small changes (< 5 files) to Developer →
|
|
232
|
+
Code Reviewer → Tester → PR.
|
|
233
|
+
|
|
234
|
+
See [`examples/`](examples/) for a synthetic end-to-end walkthrough — request → spec → story breakdown
|
|
235
|
+
→ gate verdicts (with one defect-loop cycle) → sample PR diff.
|
|
230
236
|
|
|
231
237
|
---
|
|
232
238
|
|
|
@@ -245,6 +251,7 @@ non-duplicative gaps**, minimally and catalog-wired.
|
|
|
245
251
|
| **[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` |
|
|
246
252
|
| **[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
253
|
| **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` |
|
|
254
|
+
| **Improvement brief #2** (external self-review) | The covered-vs-**gated** distinction (a skill ≠ a gate); enforce API breaking-changes by default; expand/contract migration safety; back the stack-agnostic claim with a compiled backend; WCAG as a regulated gate; reconcile the PyPI story; ship a worked example + a self-test matrix | [`docs/coverage-audit.md`](docs/coverage-audit.md); **`contract-clear` promoted to `standard`**; a live **Go/net-http** backend; the **`accessibility-clear`** regulated gate; explicit migration-drop rules; a synthetic [`examples/`](examples/) run; an eval-harness template; a profile×stack×scope self-test matrix — **2 gates wired + 1 stack, 0 new agents/skills/rules** | `0.13.0` |
|
|
248
255
|
|
|
249
256
|
> Each adoption is detailed in the [CHANGELOG](CHANGELOG.md) — including, for every review, what we
|
|
250
257
|
> deliberately **did not** add because the kit already covered it.
|
|
@@ -386,8 +393,8 @@ change.
|
|
|
386
393
|
<br>
|
|
387
394
|
|
|
388
395
|
- **`catalog/stacks.yaml`** — frontend frameworks, backend languages → frameworks, and databases.
|
|
389
|
-
Live today: React · Python/FastAPI · PostgreSQL/MongoDB. Vue/Svelte/Django/Express
|
|
390
|
-
`planned` (offered by `list-options`, not yet selectable).
|
|
396
|
+
Live today: React · Python/FastAPI · **Go/net-http** · PostgreSQL/MongoDB. Vue/Svelte/Django/Express
|
|
397
|
+
are listed as `planned` (offered by `list-options`, not yet selectable).
|
|
391
398
|
- **`catalog/profiles.yaml`** — what each profile activates (`inherit:` composes; `all` = everything).
|
|
392
399
|
- **`catalog/mcp.yaml`** — ready `.mcp.json` fragments per server, with `${ENV}` placeholders.
|
|
393
400
|
- **`catalog/org.yaml`** — the **organization layer**: scopes, teams, the autonomy model, review
|
|
@@ -454,7 +461,7 @@ hints.
|
|
|
454
461
|
| 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
462
|
| 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 |
|
|
456
463
|
| 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` |
|
|
457
|
-
| `pip install claude-code-kit` fails |
|
|
464
|
+
| `pip install claude-code-kit` fails | Outdated `pip`, or you want an unreleased change | Upgrade pip (`pip install -U pip`); for unreleased changes use `pip install "git+https://github.com/ajyadav013/claude-kit.git"` |
|
|
458
465
|
| `validate` reports missing files | Partial or outdated install | Re-run `claude-kit init` (choose **merge**), or `claude-kit upgrade` |
|
|
459
466
|
|
|
460
467
|
</details>
|
|
@@ -12,9 +12,9 @@ with a quality gate between every phase. **No application code. No Docker. Confi
|
|
|
12
12
|
[](LICENSE)
|
|
13
13
|
[](https://www.claude.com/product/claude-code)
|
|
14
14
|
[](https://github.com/ajyadav013/claude-kit/actions/workflows/ci.yml)
|
|
15
|
-
[](CHANGELOG.md)
|
|
16
16
|
|
|
17
|
-
🚀 [Quick start](#quick-start) · 🧭 [How it works](#how-it-works) · 🔁 [The pipeline](#the-pipeline) · 🌱 [What we adopted](#influences--what-we-adopted) · 🤖 [Agents](#the-agents) · 🧩 [Catalog](#catalog--extensibility) · 🛠️ [CLI](#cli-reference) · 📖 [Agent guide](docs/agents.md)
|
|
17
|
+
🚀 [Quick start](#quick-start) · 🧭 [How it works](#how-it-works) · 🔁 [The pipeline](#the-pipeline) · 🧪 [Example](examples/) · 🌱 [What we adopted](#influences--what-we-adopted) · 🤖 [Agents](#the-agents) · 🧩 [Catalog](#catalog--extensibility) · 🛠️ [CLI](#cli-reference) · 📖 [Agent guide](docs/agents.md)
|
|
18
18
|
|
|
19
19
|
</div>
|
|
20
20
|
|
|
@@ -32,7 +32,7 @@ refuses to advance a phase until its **quality gate** passes. You drive it all w
|
|
|
32
32
|
**At a glance:**
|
|
33
33
|
|
|
34
34
|
- 🧱 **Stack-agnostic** — the pipeline assumes no language or framework. Pick a stack at `init` and it
|
|
35
|
-
installs matching overlay rules (React · FastAPI · PostgreSQL · MongoDB) and your exact
|
|
35
|
+
installs matching overlay rules (React · FastAPI · Go/net-http · PostgreSQL · MongoDB) and your exact
|
|
36
36
|
lint/test/build commands. It never writes your app code and never needs Docker.
|
|
37
37
|
- 🎚️ **Dial the rigor with profiles** — `lean ⊊ standard ⊊ enterprise` decide how many agents, skills,
|
|
38
38
|
hooks, and gates are active, from "fast track" to "full audit".
|
|
@@ -82,9 +82,9 @@ Then, inside any project you want the pipeline to manage:
|
|
|
82
82
|
A CLI (`claude-kit`, aliases `ckit` / `claude-sdlc`) that scaffolds the same config into any repo:
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
#
|
|
85
|
+
pip install claude-code-kit
|
|
86
|
+
# or, for the bleeding edge straight from the repo:
|
|
87
|
+
# pip install "git+https://github.com/ajyadav013/claude-kit.git"
|
|
88
88
|
|
|
89
89
|
claude-kit init # interactive: prompts for stack, profile, MCP
|
|
90
90
|
claude-kit init --defaults # non-interactive: React + Python/FastAPI + Postgres + standard
|
|
@@ -196,10 +196,16 @@ flowchart TD
|
|
|
196
196
|
| Profile | Gates that run |
|
|
197
197
|
|---|---|
|
|
198
198
|
| **lean** | code-review · build-green |
|
|
199
|
-
| **standard** | spec-complete · em-approved · code-review · build-green · test-coverage · security-clear |
|
|
199
|
+
| **standard** | spec-complete · em-approved · code-review · build-green · test-coverage · security-clear · contract-clear\* |
|
|
200
200
|
| **enterprise** | standard + pipeline-green · observability-ready · acceptance |
|
|
201
201
|
|
|
202
|
-
|
|
202
|
+
\* `contract-clear` (API breaking-change diff) self-skips when the stack exposes no API surface, so it
|
|
203
|
+
is inert for non-API projects. Organization scope at `regulated` strictness adds `accessibility-clear`
|
|
204
|
+
(WCAG-AA on changed UI). A **fast-track** mode collapses small changes (< 5 files) to Developer →
|
|
205
|
+
Code Reviewer → Tester → PR.
|
|
206
|
+
|
|
207
|
+
See [`examples/`](examples/) for a synthetic end-to-end walkthrough — request → spec → story breakdown
|
|
208
|
+
→ gate verdicts (with one defect-loop cycle) → sample PR diff.
|
|
203
209
|
|
|
204
210
|
---
|
|
205
211
|
|
|
@@ -218,6 +224,7 @@ non-duplicative gaps**, minimally and catalog-wired.
|
|
|
218
224
|
| **[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` |
|
|
219
225
|
| **[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
226
|
| **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` |
|
|
227
|
+
| **Improvement brief #2** (external self-review) | The covered-vs-**gated** distinction (a skill ≠ a gate); enforce API breaking-changes by default; expand/contract migration safety; back the stack-agnostic claim with a compiled backend; WCAG as a regulated gate; reconcile the PyPI story; ship a worked example + a self-test matrix | [`docs/coverage-audit.md`](docs/coverage-audit.md); **`contract-clear` promoted to `standard`**; a live **Go/net-http** backend; the **`accessibility-clear`** regulated gate; explicit migration-drop rules; a synthetic [`examples/`](examples/) run; an eval-harness template; a profile×stack×scope self-test matrix — **2 gates wired + 1 stack, 0 new agents/skills/rules** | `0.13.0` |
|
|
221
228
|
|
|
222
229
|
> Each adoption is detailed in the [CHANGELOG](CHANGELOG.md) — including, for every review, what we
|
|
223
230
|
> deliberately **did not** add because the kit already covered it.
|
|
@@ -359,8 +366,8 @@ change.
|
|
|
359
366
|
<br>
|
|
360
367
|
|
|
361
368
|
- **`catalog/stacks.yaml`** — frontend frameworks, backend languages → frameworks, and databases.
|
|
362
|
-
Live today: React · Python/FastAPI · PostgreSQL/MongoDB. Vue/Svelte/Django/Express
|
|
363
|
-
`planned` (offered by `list-options`, not yet selectable).
|
|
369
|
+
Live today: React · Python/FastAPI · **Go/net-http** · PostgreSQL/MongoDB. Vue/Svelte/Django/Express
|
|
370
|
+
are listed as `planned` (offered by `list-options`, not yet selectable).
|
|
364
371
|
- **`catalog/profiles.yaml`** — what each profile activates (`inherit:` composes; `all` = everything).
|
|
365
372
|
- **`catalog/mcp.yaml`** — ready `.mcp.json` fragments per server, with `${ENV}` placeholders.
|
|
366
373
|
- **`catalog/org.yaml`** — the **organization layer**: scopes, teams, the autonomy model, review
|
|
@@ -427,7 +434,7 @@ hints.
|
|
|
427
434
|
| 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
435
|
| 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 |
|
|
429
436
|
| 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` |
|
|
430
|
-
| `pip install claude-code-kit` fails |
|
|
437
|
+
| `pip install claude-code-kit` fails | Outdated `pip`, or you want an unreleased change | Upgrade pip (`pip install -U pip`); for unreleased changes use `pip install "git+https://github.com/ajyadav013/claude-kit.git"` |
|
|
431
438
|
| `validate` reports missing files | Partial or outdated install | Re-run `claude-kit init` (choose **merge**), or `claude-kit upgrade` |
|
|
432
439
|
|
|
433
440
|
</details>
|
|
@@ -53,6 +53,25 @@ Run the **RARV** cycle (`.claude/rules/rarv-cycle.md`) with a green Verify (you
|
|
|
53
53
|
checks) before issuing the verdict, and update `.claude/CONTINUITY.md`. This gate is **Acceptance**
|
|
54
54
|
in the enterprise profile and runs before the PR is handed to a human.
|
|
55
55
|
|
|
56
|
+
## Join Point: Accessibility (accessibility-clear gate)
|
|
57
|
+
|
|
58
|
+
> Active **only** under organization scope at **`regulated`** review strictness (where WCAG is
|
|
59
|
+
> commonly a legal requirement). You own the **accessibility-clear** gate. **Degrade to a no-op**
|
|
60
|
+
> (PASS, note "no UI surface") when the change touches no frontend/UI files — detect with `Bash`
|
|
61
|
+
> (`git diff --name-only <base>` against the frontend stack dir / component globs); never block a
|
|
62
|
+
> back-end-only or API-only change.
|
|
63
|
+
|
|
64
|
+
When a UI surface is present:
|
|
65
|
+
|
|
66
|
+
1. **Drive `.claude/skills/accessibility-review`** over the changed views/components (and the standards
|
|
67
|
+
in `.claude/rules/responsive-and-accessibility.md`) — keyboard operability, focus management,
|
|
68
|
+
semantics/ARIA, color contrast (WCAG AA), motion, and screen-reader labels.
|
|
69
|
+
2. **Classify each finding** by `.claude/rules/quality-gates.md` §1. A WCAG-AA failure on a
|
|
70
|
+
legally-required surface is at least **High** (per `accessibility-review`'s risk note); a missing
|
|
71
|
+
label, focus trap, or sub-threshold contrast is **High/Medium**; cosmetic spacing is **Low**.
|
|
72
|
+
3. **Verdict** — *accessibility-clear* PASSes only at zero Critical/High/Medium, consistent with every
|
|
73
|
+
other gate. Record findings in the acceptance report.
|
|
74
|
+
|
|
56
75
|
## Escalation
|
|
57
76
|
|
|
58
77
|
Escalate to the human when acceptance criteria themselves are ambiguous or untestable, when the spec
|
|
@@ -178,8 +178,8 @@ Frontend code reviewed: ✓ | Build/tests: ✓
|
|
|
178
178
|
> source is found — mirror the hooks' detect-then-skip pattern; never block a project that has no
|
|
179
179
|
> contract.
|
|
180
180
|
|
|
181
|
-
Owns the **contract-clear** gate (enterprise
|
|
182
|
-
|
|
181
|
+
Owns the **contract-clear** gate (runs in **standard and enterprise** — any profile that includes the
|
|
182
|
+
`merge-reviewer` — whenever the selected stack exposes an API surface). With `Bash`:
|
|
183
183
|
|
|
184
184
|
1. **Locate or generate the contract** — a committed `openapi.(json|yaml)` / GraphQL SDL, or generate it from the framework's typed routes.
|
|
185
185
|
2. **Diff against the base branch** — `git show <base>:<contract-path>` vs the working copy.
|
|
@@ -77,7 +77,10 @@ strictness:
|
|
|
77
77
|
regulated:
|
|
78
78
|
label: "Regulated — compliance-grade gates"
|
|
79
79
|
hooks: [validate-frontmatter, validate-settings]
|
|
80
|
-
|
|
80
|
+
# accessibility-clear (brief #2 P1-2): a WCAG gate owned by acceptance-reviewer, driving the
|
|
81
|
+
# accessibility-review skill. Regulated-strictness only (WCAG is often a legal requirement there);
|
|
82
|
+
# self-skips when the change touches no UI surface, so API/back-end-only work is unaffected.
|
|
83
|
+
extra_gates: [security-clear, acceptance, accessibility-clear]
|
|
81
84
|
|
|
82
85
|
# --- core agents the org layer activates regardless of profile ---------------------------------------
|
|
83
86
|
# These live in the core agents/ dir (installed via the normal agent path); listing them here unions
|
|
@@ -82,7 +82,10 @@ profiles:
|
|
|
82
82
|
- over-engineering-review
|
|
83
83
|
- simplification-debt
|
|
84
84
|
- task-tracker-sync
|
|
85
|
-
|
|
85
|
+
# contract-clear self-skips when the stack exposes no API contract surface, so it is inert for
|
|
86
|
+
# non-API projects on standard while enforcing backward-compatibility for API-exposing backends
|
|
87
|
+
# (e.g. FastAPI). Promoted from enterprise-only per brief #2 P0-1 — see CHANGELOG 0.13.0.
|
|
88
|
+
gates: [spec-complete, em-approved, code-review, build-green, test-coverage, security-clear, contract-clear]
|
|
86
89
|
hooks: [load-continuity, load-learnings, load-autonomy, skill-routing, learning-detection, guard-rm-rf, guard-push-main, guard-destructive-git, protect-secrets, guard-commit-secrets, warn-shared-modules, warn-llm-io, lint-fix, type-check]
|
|
87
90
|
|
|
88
91
|
enterprise:
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Adding a frontend framework, backend language/framework, or database is a DATA change here
|
|
4
4
|
# (plus a templates/stacks/<stack_dir>/ folder for its overlay rules/agents) — never a code change.
|
|
5
5
|
# Entries marked `status: planned` are offered by `list-options` as "coming soon" but cannot be
|
|
6
|
-
# selected yet (no overlay content shipped). React + Python/FastAPI + Postgres/Mongo are live.
|
|
6
|
+
# selected yet (no overlay content shipped). React + Python/FastAPI + Go/net-http + Postgres/Mongo are live.
|
|
7
7
|
#
|
|
8
8
|
# Each live entry may declare:
|
|
9
9
|
# label human name shown in prompts
|
|
@@ -78,6 +78,23 @@ backend:
|
|
|
78
78
|
label: "Express"
|
|
79
79
|
status: planned
|
|
80
80
|
stack_dir: backend/node/express
|
|
81
|
+
go:
|
|
82
|
+
label: "Go"
|
|
83
|
+
default_framework: net-http
|
|
84
|
+
frameworks:
|
|
85
|
+
net-http:
|
|
86
|
+
label: "net/http (stdlib)"
|
|
87
|
+
overlay_rules: [go-patterns.md]
|
|
88
|
+
overlay_agents: []
|
|
89
|
+
skills: [api-and-interface-design, api-integration]
|
|
90
|
+
stack_dir: backend/go/net-http
|
|
91
|
+
commands:
|
|
92
|
+
install: "go mod download"
|
|
93
|
+
dev: "go run ./..."
|
|
94
|
+
test: "go test ./..."
|
|
95
|
+
lint: "go vet ./... && gofmt -l ."
|
|
96
|
+
format: "gofmt -w ."
|
|
97
|
+
build: "go build ./..."
|
|
81
98
|
|
|
82
99
|
database:
|
|
83
100
|
default: postgres
|
|
@@ -54,10 +54,10 @@ 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
|
-
observability-ready · acceptance (contract-clear self-skips on stacks with no API contract surface
|
|
59
|
-
**fast-track** path (bug fixes / < 5 files) skips planning:
|
|
60
|
-
Tester → PR.
|
|
57
|
+
adds spec/EM/coverage/security · contract-clear; **enterprise** adds pipeline-green ·
|
|
58
|
+
observability-ready · acceptance (contract-clear self-skips on stacks with no API contract surface, so
|
|
59
|
+
it is inert for non-API projects). A **fast-track** path (bug fixes / < 5 files) skips planning:
|
|
60
|
+
Developer → Code Reviewer → Tester → PR.
|
|
61
61
|
|
|
62
62
|
Every gate uses the same severity model — a gate passes only with **zero Critical/High/Medium**
|
|
63
63
|
findings open — and a *unanimous* PASS triggers the `devils-advocate` agent before the gate counts
|
|
@@ -100,7 +100,8 @@ flowchart TD
|
|
|
100
100
|
FORK --> LANES
|
|
101
101
|
LANES --> MR1{{"Gate: Merge Reviewer<br/>cross-lane consistency"}}
|
|
102
102
|
|
|
103
|
-
MR1 -->|"pass"|
|
|
103
|
+
MR1 -->|"pass"| CC{{"Gate: Contract clear<br/>standard+ · API stacks (self-skips otherwise)"}}
|
|
104
|
+
CC -->|"pass"| TEST["Testing (parallel): unit · e2e · integration<br/>then Senior Tester verification"]
|
|
104
105
|
TEST --> TCG{{"Gate: Test coverage<br/>blind review + Devil's Advocate"}}
|
|
105
106
|
|
|
106
107
|
TCG -->|"pass / CONFIRMED"| SEC{{"Gate: Security Clear<br/>security-reviewer + 4 sub-scanners"}}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Coverage audit — GATED vs RULE vs SKILL/DOC
|
|
2
|
+
|
|
3
|
+
claude-kit's reuse-first reviews often defer adding something because a skill or rule "touches" the
|
|
4
|
+
topic. But the three are **not** equivalent in enforcement strength:
|
|
5
|
+
|
|
6
|
+
| Class | What it means | Enforced? |
|
|
7
|
+
|-------|---------------|-----------|
|
|
8
|
+
| **GATED** | A gate token in `catalog/profiles.yaml` / `catalog/org.yaml`, owned by an agent, blocking at ≥ Medium severity (`rules/quality-gates.md` §1) | **Yes** — blocks delivery |
|
|
9
|
+
| **RULE** | An always-on file in `.claude/rules/` (installed in every profile) | Partly — an instruction the agents must follow; not a blocking checkpoint by itself |
|
|
10
|
+
| **SKILL / DOC** | A profile-gated skill (advisory, invoked on demand) or repo documentation | **No** — guidance, runs only when invoked |
|
|
11
|
+
|
|
12
|
+
This document is the **justification record** for what the kit enforces versus documents. Each P0/P1
|
|
13
|
+
item in the improvement briefs cites a row here. It reflects the state **as of 0.13.0**.
|
|
14
|
+
|
|
15
|
+
## The named capabilities (verified against the files)
|
|
16
|
+
|
|
17
|
+
| Capability | Class | Evidence | Enforced where |
|
|
18
|
+
|------------|-------|----------|----------------|
|
|
19
|
+
| **Rollback (verified)** | **GATED — enterprise only**; RULE elsewhere | `pipeline-green` gate is listed **only** in the enterprise profile (`catalog/profiles.yaml`); owned by `devops-engineer`, which requires a *verified* rollback + runbook (`rules/devops-observability.md`, `agents/devops-engineer.md`). In lean/standard, rollback is **RULE-level** advice via `rules/risk-classification.md` (high-risk changes need rollback notes), not a gate. | enterprise (blocking); lean/standard (advisory) |
|
|
20
|
+
| **Cost expectations** | **DOC — by design** | `rules/model-tiers.md` "Profile cost expectations" (added 0.12.0). A `cost-estimate` skill + per-run cost hook were **deliberately rejected** (CHANGELOG 0.12.0) — the kit cannot reliably meter tokens at scaffold time. | documented only (accepted) |
|
|
21
|
+
| **Migration safety** | **RULE + OVERLAY-AGENT (advisory) + enterprise rollback** | Always-on RULE: `rules/risk-classification.md` (DB migrations = sensitive, ≥ High). Overlay RULES (when a DB is selected): `postgres-patterns.md` / `mongodb-patterns.md` now state expand/contract + "no destructive drop in the same release" with **severity** (0.13.0, brief #2 P0-2). Overlay AGENT: `migration-specialist` (postgres + mongodb) reviews each change (expand/contract, reversible down-path, idempotent backfill; irreversible/table-locking ≥ High). **No dedicated migration gate token** — it is reviewed, not gated, and the enterprise rollback verification (`pipeline-green`) is the nearest enforced backstop. | overlay-advisory + enterprise rollback |
|
|
22
|
+
| **Accessibility** | **SKILL/DOC** in lean/standard/team; **GATED** at org `regulated` strictness (0.13.0) | RULE (standards): `rules/responsive-and-accessibility.md` (always-on, advisory). SKILL (review procedure): `skills/accessibility-review`. As of 0.13.0 there **is** a gate — `accessibility-clear` — but **only** under organization scope at `regulated` strictness (`catalog/org.yaml`), owned by `acceptance-reviewer`, self-skipping when no UI surface (brief #2 P1-2). Outside `regulated`, a11y is advisory and blocks nothing. | regulated-org (blocking); otherwise advisory |
|
|
23
|
+
| **API breaking changes** | **GATED — standard+ (API stacks)** as of 0.13.0 | `contract-clear` gate, owned by `merge-reviewer`, now in the **standard** and enterprise profiles (`catalog/profiles.yaml`); self-skips when the stack exposes no API contract surface (brief #2 P0-1). The manual counterpart is `rules/mandatory-workflow.md` §2d. | standard+ (blocking, API stacks) |
|
|
24
|
+
|
|
25
|
+
### The one "looks enforced but isn't" trap
|
|
26
|
+
|
|
27
|
+
`skills/accessibility-review/SKILL.md` contains an internal **"Quality gates"** heading — that is the
|
|
28
|
+
*skill's own checklist wording*, **not** a kit gate token. Before 0.13.0 nothing in
|
|
29
|
+
`catalog/*.yaml` enforced accessibility in any profile, so that heading could be misread as an enforced
|
|
30
|
+
gate. The 0.13.0 `accessibility-clear` gate (regulated-org only) is the *actual* enforcing token;
|
|
31
|
+
elsewhere the skill remains advisory. Do not cite a skill's internal "gate" wording as evidence of
|
|
32
|
+
enforcement — only a token in `catalog/{profiles,org}.yaml` enforces.
|
|
33
|
+
|
|
34
|
+
## Why the posture is internally consistent
|
|
35
|
+
|
|
36
|
+
- Gates come **only** from `prof["gates"] + org.extra_gates` (`src/claude_kit/catalog.py`); stacks
|
|
37
|
+
contribute overlay rules/agents/skills, never gates. So "gated" always traces to a profile or org
|
|
38
|
+
strictness level, and `resolve()` stays branch-free.
|
|
39
|
+
- Heavyweight, situational gates default to **enterprise** or to **org strictness** (golden rule #6).
|
|
40
|
+
`contract-clear` is the deliberate exception promoted to `standard` (brief #2 P0-1) because
|
|
41
|
+
breaking-change detection is table-stakes for the headline FastAPI backend — and it self-skips for
|
|
42
|
+
non-API stacks, so it adds no burden where it doesn't apply.
|
|
43
|
+
- Where a capability is *advisory by design* (cost, lean/standard rollback, non-regulated a11y), this
|
|
44
|
+
audit says so plainly rather than implying enforcement the kit doesn't provide.
|
|
45
|
+
|
|
46
|
+
## How to extend enforcement (the lever)
|
|
47
|
+
|
|
48
|
+
To move a capability from RULE/SKILL to GATED: add a gate token to a profile (`catalog/profiles.yaml`)
|
|
49
|
+
or to an org strictness level (`catalog/org.yaml` `extra_gates`), give it an **owner agent**, a
|
|
50
|
+
**self-skip** condition when irrelevant, a **severity mapping**, and a row in `rules/quality-gates.md`
|
|
51
|
+
§4. That is exactly how `contract-clear` (standard+) and `accessibility-clear` (regulated) were wired.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Eval harness — does the pipeline earn its cost?
|
|
2
|
+
|
|
3
|
+
A repeatable method to measure what the claude-kit gate pipeline actually *catches* — and what it
|
|
4
|
+
costs — by comparing the same tasks run **with** and **without** the pipeline. This is a **template you
|
|
5
|
+
fill from your own runs**; the kit deliberately ships **no numbers here**, because an eval result is
|
|
6
|
+
only meaningful for the model, tasks, and environment that produced it.
|
|
7
|
+
|
|
8
|
+
> Method reference: `.claude/rules/evals.md` **§6 (Repeat and aggregate)** — run each case **N times**
|
|
9
|
+
> (commonly 5–10) and report the **median**, not the mean, with N stated. This doc does not restate that
|
|
10
|
+
> rule; it gives the with/without comparison structure on top of it.
|
|
11
|
+
|
|
12
|
+
## Design
|
|
13
|
+
|
|
14
|
+
Two arms over the **same** task set:
|
|
15
|
+
|
|
16
|
+
- **Arm A — baseline:** the task done by a single agent, no `/sdlc`, no gates (one Developer pass).
|
|
17
|
+
- **Arm B — pipeline:** the same task through `/sdlc` at a chosen profile (state which: `lean` /
|
|
18
|
+
`standard` / `enterprise`), with the gates active.
|
|
19
|
+
|
|
20
|
+
Pick **5–10 representative tasks** with *objective* pass criteria (a hidden test that must pass, a
|
|
21
|
+
known breaking change that must be flagged, a secret that must be blocked). Avoid tasks graded by
|
|
22
|
+
taste. Run each task **N times per arm** (per `evals.md` §6) and report the **median**.
|
|
23
|
+
|
|
24
|
+
Keep a third column for **what caught it**: when Arm B succeeds where Arm A fails, name the gate
|
|
25
|
+
(`code-review`, `test-coverage`, `security-clear`, `contract-clear`, …) and the severity it assigned.
|
|
26
|
+
That is the load-bearing evidence — it converts "the pipeline feels safer" into "gate X caught defect
|
|
27
|
+
class Y, Z% of the time."
|
|
28
|
+
|
|
29
|
+
## Results (fill from your own runs — do not ship fabricated numbers)
|
|
30
|
+
|
|
31
|
+
> N = ___ runs per arm · model = ___ · profile (Arm B) = ___ · date = ___
|
|
32
|
+
|
|
33
|
+
| Task | Objective pass criterion | Arm A median (no pipeline) | Arm B median (pipeline) | Gate that caught the gap | Notes |
|
|
34
|
+
|------|--------------------------|----------------------------|-------------------------|--------------------------|-------|
|
|
35
|
+
| T1 — _e.g._ add endpoint + tests | hidden test suite green | _fill_ | _fill_ | _e.g._ test-coverage (High) | |
|
|
36
|
+
| T2 — introduce a breaking API change | change flagged + migration required | _fill_ | _fill_ | contract-clear (High) | |
|
|
37
|
+
| T3 — paste a hardcoded secret | secret blocked pre-commit | _fill_ | _fill_ | guard-commit-secrets / security-clear | |
|
|
38
|
+
| T4 — … | … | | | | |
|
|
39
|
+
| T5 — … | … | | | | |
|
|
40
|
+
|
|
41
|
+
### Cost
|
|
42
|
+
|
|
43
|
+
| Arm | Median tokens / task | Median wall-clock / task |
|
|
44
|
+
|-----|----------------------|--------------------------|
|
|
45
|
+
| A (baseline) | _fill_ | _fill_ |
|
|
46
|
+
| B (pipeline) | _fill_ | _fill_ |
|
|
47
|
+
|
|
48
|
+
> The pipeline costs more per task by design (more agents, more gates). The question this harness
|
|
49
|
+
> answers is whether the **defects caught** (and their severity) justify that delta **for your task mix**.
|
|
50
|
+
|
|
51
|
+
## Honesty rules
|
|
52
|
+
|
|
53
|
+
- **Never publish numbers you did not run.** A "90%" from one run and from twenty runs are not the same
|
|
54
|
+
claim (`evals.md` §6) — always report N.
|
|
55
|
+
- An eval result is environment-specific; do not present one repo's table as a general claim about
|
|
56
|
+
claude-kit.
|
|
57
|
+
- If a gate caught nothing across the suite, **say so** — that is a signal the gate may be miscalibrated
|
|
58
|
+
for your tasks, which is exactly what this harness is for.
|
|
@@ -47,7 +47,10 @@ How much Claude may do before a human acts. Set per repo; default **assisted**.
|
|
|
47
47
|
| `enterprise-controlled` | work through strict gates + audit | edit sensitive files / finish without security + review | `warn-sensitive-files`, `warn-large-edits`, `warn-missing-tests`, `validate-frontmatter`, `validate-settings`, `audit-log`, `guard-push-main`, `guard-commit-secrets` |
|
|
48
48
|
|
|
49
49
|
Review **strictness** (`light` / `standard` / `regulated`) is an independent axis; `regulated` adds the
|
|
50
|
-
`validate-frontmatter` + `validate-settings` hooks and the `security-clear` + `acceptance`
|
|
50
|
+
`validate-frontmatter` + `validate-settings` hooks and the `security-clear` + `acceptance` +
|
|
51
|
+
`accessibility-clear` gates. The `accessibility-clear` gate (owned by `acceptance-reviewer`, driving
|
|
52
|
+
the `accessibility-review` skill) enforces WCAG-AA on changed UI and self-skips when the change has no
|
|
53
|
+
UI surface — so it binds only when both `regulated` strictness **and** a frontend are in play.
|
|
51
54
|
|
|
52
55
|
## Risk classification
|
|
53
56
|
|
|
@@ -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.13.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"
|
|
@@ -67,6 +67,10 @@ honest:
|
|
|
67
67
|
> 3 models × 5 tasks at 10 runs each (median reported), with a line-count *measurement* that always
|
|
68
68
|
> passes beside a *correctness gate* that spawns the runtime to actually execute the generated code.
|
|
69
69
|
> A concrete instance of this section's two practices.
|
|
70
|
+
>
|
|
71
|
+
> To measure the **claude-kit pipeline itself** (the same tasks run with vs without the gates, and
|
|
72
|
+
> which gate caught each defect), the claude-kit repo ships a fill-in template — `docs/eval-harness.md`
|
|
73
|
+
> — that builds the with/without comparison on top of this section's median-of-N method.
|
|
70
74
|
|
|
71
75
|
## Rules
|
|
72
76
|
|
|
@@ -223,7 +223,7 @@ every consumer and verify it still works. Run the full test suite (not just your
|
|
|
223
223
|
Review the diff for changes outside your scope.
|
|
224
224
|
**Gate:** zero regressions verified across the codebase.
|
|
225
225
|
|
|
226
|
-
> **Mechanical counterpart (
|
|
226
|
+
> **Mechanical counterpart (standard+, API-exposing stacks):** the `merge-reviewer` runs the
|
|
227
227
|
> **contract-clear** gate — a base-branch API-surface diff (`git show <base>:<schema>`) that classifies
|
|
228
228
|
> each delta by severity and blocks backward-incompatible changes lacking an approved migration note +
|
|
229
229
|
> version bump. It self-skips when no API contract surface exists. This §2d is the manual consumer
|