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.
Files changed (230) hide show
  1. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/.claude-plugin/marketplace.json +1 -1
  2. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/.claude-plugin/plugin.json +1 -1
  3. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/CHANGELOG.md +83 -0
  4. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/CLAUDE.md +3 -2
  5. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/CONTRIBUTING.md +7 -2
  6. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/PKG-INFO +19 -12
  7. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/README.md +18 -11
  8. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/acceptance-reviewer.md +19 -0
  9. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/merge-reviewer.md +2 -2
  10. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/catalog/org.yaml +4 -1
  11. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/catalog/profiles.yaml +4 -1
  12. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/catalog/stacks.yaml +18 -1
  13. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/docs/agents.md +4 -4
  14. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/docs/architecture.md +2 -1
  15. claude_code_kit-0.13.0/docs/coverage-audit.md +51 -0
  16. claude_code_kit-0.13.0/docs/eval-harness.md +58 -0
  17. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/docs/org-capabilities.md +4 -1
  18. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/pyproject.toml +1 -1
  19. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/evals.md +4 -0
  20. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/mandatory-workflow.md +1 -1
  21. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/quality-gates.md +2 -1
  22. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/__init__.py +1 -1
  23. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/catalog.py +2 -0
  24. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/CLAUDE.stack.md.tmpl +1 -0
  25. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/api-change-report.md +1 -1
  26. claude_code_kit-0.13.0/templates/stacks/backend/go/net-http/rules/go-patterns.md +74 -0
  27. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +3 -0
  28. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +6 -0
  29. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/postgres/agents/migration-specialist.md +4 -0
  30. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +7 -0
  31. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/.gitignore +0 -0
  32. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/LICENSE +0 -0
  33. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/auditor.md +0 -0
  34. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/dependency-scanner.md +0 -0
  35. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/developer.md +0 -0
  36. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/devils-advocate.md +0 -0
  37. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/devops-engineer.md +0 -0
  38. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/e2e-tester.md +0 -0
  39. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/em-reviewer.md +0 -0
  40. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/incident-responder.md +0 -0
  41. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/observability-engineer.md +0 -0
  42. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/orchestrator.md +0 -0
  43. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/owasp-reviewer.md +0 -0
  44. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/policy-validator.md +0 -0
  45. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/pr-raiser.md +0 -0
  46. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/risk-classifier.md +0 -0
  47. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/sdlc-code-reviewer.md +0 -0
  48. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/secret-scanner.md +0 -0
  49. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/security-reviewer.md +0 -0
  50. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/senior-backend-dev.md +0 -0
  51. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/senior-frontend-dev.md +0 -0
  52. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/senior-tester.md +0 -0
  53. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/spec-doc-writer.md +0 -0
  54. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/story-planner.md +0 -0
  55. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/technical-architect.md +0 -0
  56. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/tester.md +0 -0
  57. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/ui-designer.md +0 -0
  58. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/agents/unit-tester.md +0 -0
  59. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/catalog/mcp.yaml +0 -0
  60. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/commands/abort.md +0 -0
  61. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/commands/init.md +0 -0
  62. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/commands/sdlc.md +0 -0
  63. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/commands/status.md +0 -0
  64. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/docs/agentic-patterns.md +0 -0
  65. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/hooks.json +0 -0
  66. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/audit-log.sh +0 -0
  67. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/guard-destructive-git.sh +0 -0
  68. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/guard-secrets.sh +0 -0
  69. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/lint-fix.sh +0 -0
  70. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/load-autonomy.sh +0 -0
  71. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/load-continuity.sh +0 -0
  72. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/load-learnings.sh +0 -0
  73. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/type-check.sh +0 -0
  74. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/validate-frontmatter.sh +0 -0
  75. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/validate-settings.sh +0 -0
  76. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/warn-large-edits.sh +0 -0
  77. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/warn-llm-io.sh +0 -0
  78. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/warn-missing-tests.sh +0 -0
  79. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
  80. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/hooks/scripts/warn-shared-modules.sh +0 -0
  81. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/agent-guardrails.md +0 -0
  82. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/agent-memory.md +0 -0
  83. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/agent-resilience.md +0 -0
  84. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/autonomy-levels.md +0 -0
  85. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/code-organization.md +0 -0
  86. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/continuity.md +0 -0
  87. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/design-patterns.md +0 -0
  88. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/devops-observability.md +0 -0
  89. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/documentation.md +0 -0
  90. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/frontend-best-practices.md +0 -0
  91. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/goal-setting-and-monitoring.md +0 -0
  92. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/human-in-the-loop.md +0 -0
  93. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/linting-and-formatting.md +0 -0
  94. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/model-tiers.md +0 -0
  95. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/rarv-cycle.md +0 -0
  96. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/reasoning-techniques.md +0 -0
  97. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/responsive-and-accessibility.md +0 -0
  98. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/risk-classification.md +0 -0
  99. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/testing.md +0 -0
  100. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/rules/tool-design.md +0 -0
  101. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/scripts/init.sh +0 -0
  102. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/_references/accessibility-checklist.md +0 -0
  103. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/_references/orchestration-patterns.md +0 -0
  104. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/_references/performance-checklist.md +0 -0
  105. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/_references/security-checklist.md +0 -0
  106. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/_references/testing-patterns.md +0 -0
  107. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/accessibility-review/SKILL.md +0 -0
  108. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/api-and-interface-design/SKILL.md +0 -0
  109. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/api-integration/SKILL.md +0 -0
  110. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/archive-sprint/SKILL.md +0 -0
  111. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/backlog/SKILL.md +0 -0
  112. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/backlog/item-template.md +0 -0
  113. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
  114. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
  115. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/code-review-and-quality/SKILL.md +0 -0
  116. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/code-simplification/SKILL.md +0 -0
  117. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/component-design/SKILL.md +0 -0
  118. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/consolidate-learnings/SKILL.md +0 -0
  119. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/context-engineering/SKILL.md +0 -0
  120. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
  121. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/decision/SKILL.md +0 -0
  122. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/decision/adr-template.md +0 -0
  123. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/deprecation-and-migration/SKILL.md +0 -0
  124. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/documentation-and-adrs/SKILL.md +0 -0
  125. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/doubt-driven-development/SKILL.md +0 -0
  126. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/execute/SKILL.md +0 -0
  127. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
  128. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
  129. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/idea-refine/SKILL.md +0 -0
  130. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/idea-refine/examples.md +0 -0
  131. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/idea-refine/frameworks.md +0 -0
  132. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/idea-refine/refinement-criteria.md +0 -0
  133. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
  134. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/incident-postmortem/SKILL.md +0 -0
  135. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/incremental-implementation/SKILL.md +0 -0
  136. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/interview-me/SKILL.md +0 -0
  137. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/load-testing/SKILL.md +0 -0
  138. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/manual-test/SKILL.md +0 -0
  139. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/over-engineering-review/SKILL.md +0 -0
  140. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/performance-optimization/SKILL.md +0 -0
  141. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
  142. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/playwright-verification/SKILL.md +0 -0
  143. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/refresh-docs/SKILL.md +0 -0
  144. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/remember/SKILL.md +0 -0
  145. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/scope/SKILL.md +0 -0
  146. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/scope/scope-template.md +0 -0
  147. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/sdlc/SKILL.md +0 -0
  148. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/security-and-hardening/SKILL.md +0 -0
  149. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/security-verification/SKILL.md +0 -0
  150. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/shipping-and-launch/SKILL.md +0 -0
  151. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/simplification-debt/SKILL.md +0 -0
  152. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/smoke-test/SKILL.md +0 -0
  153. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/source-driven-development/SKILL.md +0 -0
  154. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/spec-driven-development/SKILL.md +0 -0
  155. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/sprint/SKILL.md +0 -0
  156. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/sprint/sprint-template.md +0 -0
  157. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/task-tracker-sync/SKILL.md +0 -0
  158. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/test-driven-development/SKILL.md +0 -0
  159. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/threat-model/SKILL.md +0 -0
  160. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/triage/SKILL.md +0 -0
  161. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/ui-ux-design/SKILL.md +0 -0
  162. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/unit-test/SKILL.md +0 -0
  163. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/skills/using-agent-skills/SKILL.md +0 -0
  164. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/__main__.py +0 -0
  165. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/cli.py +0 -0
  166. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/hooks.py +0 -0
  167. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/models.py +0 -0
  168. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/prompts.py +0 -0
  169. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/render.py +0 -0
  170. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/scaffold.py +0 -0
  171. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/upgrader.py +0 -0
  172. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/src/claude_kit/validator.py +0 -0
  173. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/CLAUDE.md +0 -0
  174. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/CONTINUITY.template.md +0 -0
  175. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/README.claude-sdlc.md.tmpl +0 -0
  176. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/MEMORY.md +0 -0
  177. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/api/.gitkeep +0 -0
  178. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/architecture/.gitkeep +0 -0
  179. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/debugging/.gitkeep +0 -0
  180. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
  181. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/patterns/.gitkeep +0 -0
  182. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/agent-memory/performance/.gitkeep +0 -0
  183. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/adr.md +0 -0
  184. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/feature-spec.md +0 -0
  185. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/release-plan.md +0 -0
  186. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/runbook.md +0 -0
  187. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/security-review.md +0 -0
  188. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/artifacts/test-plan.md +0 -0
  189. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/README.md +0 -0
  190. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/agents/data-workflow-agent.md +0 -0
  191. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/agents/founder-prototype-agent.md +0 -0
  192. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/agents/internal-tools-builder.md +0 -0
  193. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/agents/pm-copilot.md +0 -0
  194. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/agents/support-ticket-engineer.md +0 -0
  195. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/devops-and-release/README.md +0 -0
  196. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
  197. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/engineering-core/README.md +0 -0
  198. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
  199. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
  200. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
  201. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
  202. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
  203. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/product-to-code/README.md +0 -0
  204. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
  205. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/quality-and-review/README.md +0 -0
  206. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
  207. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/security-and-compliance/README.md +0 -0
  208. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
  209. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/ai-working-agreement.md +0 -0
  210. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/ambiguity-resolution.md +0 -0
  211. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
  212. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/compliance-policy.md +0 -0
  213. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
  214. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/pii-policy.md +0 -0
  215. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/production-data-policy.md +0 -0
  216. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
  217. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/prototype-boundaries.md +0 -0
  218. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/rules/secrets-policy.md +0 -0
  219. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
  220. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
  221. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
  222. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
  223. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
  224. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/settings.json +0 -0
  225. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
  226. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
  227. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
  228. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
  229. {claude_code_kit-0.12.0 → claude_code_kit-0.13.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
  230. {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.12.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.12.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
- | `docs/architecture.md` · `docs/agents.md` | Architecture diagrams · agent guide |
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. `python3 -m twine upload dist/*` (PyPI).
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.12.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: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
40
40
  [![Built for Claude Code](https://img.shields.io/badge/built%20for-Claude%20Code-d97757.svg)](https://www.claude.com/product/claude-code)
41
41
  [![CI](https://github.com/ajyadav013/claude-kit/actions/workflows/ci.yml/badge.svg)](https://github.com/ajyadav013/claude-kit/actions/workflows/ci.yml)
42
- [![Changelog](https://img.shields.io/badge/changelog-v0.10.0-blue.svg)](CHANGELOG.md)
42
+ [![Changelog](https://img.shields.io/badge/changelog-md-blue.svg)](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
- # Until the first PyPI release, install straight from the repo:
113
- pip install "git+https://github.com/ajyadav013/claude-kit.git"
114
- # Once published to PyPI this becomes: pip install claude-code-kit
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
- A **fast-track** mode collapses small changes (< 5 files) to Developer Code Reviewer Tester PR.
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 are listed as
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 | Not yet published to PyPI | Use `pip install "git+https://github.com/ajyadav013/claude-kit.git"` |
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: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
13
13
  [![Built for Claude Code](https://img.shields.io/badge/built%20for-Claude%20Code-d97757.svg)](https://www.claude.com/product/claude-code)
14
14
  [![CI](https://github.com/ajyadav013/claude-kit/actions/workflows/ci.yml/badge.svg)](https://github.com/ajyadav013/claude-kit/actions/workflows/ci.yml)
15
- [![Changelog](https://img.shields.io/badge/changelog-v0.10.0-blue.svg)](CHANGELOG.md)
15
+ [![Changelog](https://img.shields.io/badge/changelog-md-blue.svg)](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
- # Until the first PyPI release, install straight from the repo:
86
- pip install "git+https://github.com/ajyadav013/claude-kit.git"
87
- # Once published to PyPI this becomes: pip install claude-code-kit
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
- A **fast-track** mode collapses small changes (< 5 files) to Developer Code Reviewer Tester PR.
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 are listed as
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 | Not yet published to PyPI | Use `pip install "git+https://github.com/ajyadav013/claude-kit.git"` |
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; or any profile an org opts into via `org.yaml`
182
- strictness). With `Bash`:
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
- extra_gates: [security-clear, acceptance]
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
- gates: [spec-complete, em-approved, code-review, build-green, test-coverage, security-clear]
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 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 →
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"| TEST["Testing (parallel): unit · e2e · integration<br/>then Senior Tester verification"]
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` gates.
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.12.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 (enterprise, API-exposing stacks):** the `merge-reviewer` runs the
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