claude-code-kit 0.22.0__tar.gz → 0.24.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 (523) hide show
  1. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/.claude-plugin/marketplace.json +1 -1
  2. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/.claude-plugin/plugin.json +1 -1
  3. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/CHANGELOG.md +75 -0
  4. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/CLAUDE.md +1 -1
  5. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/CONTRIBUTING.md +19 -7
  6. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/PKG-INFO +16 -3
  7. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/README.md +12 -2
  8. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/commands/init.md +21 -7
  9. claude_code_kit-0.24.0/hooks/hooks.json +106 -0
  10. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/warn-missing-tests.sh +1 -1
  11. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/warn-sensitive-files.sh +1 -1
  12. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/pyproject.toml +18 -1
  13. claude_code_kit-0.24.0/scripts/gen_hooks.py +69 -0
  14. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/scripts/init.sh +10 -0
  15. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/src/claude_kit/__init__.py +1 -1
  16. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/src/claude_kit/__main__.py +1 -3
  17. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/src/claude_kit/cli.py +65 -4
  18. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/src/claude_kit/hooks.py +157 -26
  19. claude_code_kit-0.24.0/src/claude_kit/pipeline.py +240 -0
  20. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/src/claude_kit/prompts.py +6 -1
  21. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/src/claude_kit/scaffold.py +73 -3
  22. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/src/claude_kit/upgrader.py +5 -4
  23. claude_code_kit-0.24.0/src/claude_kit/validator.py +574 -0
  24. claude_code_kit-0.24.0/templates/settings.json +74 -0
  25. claude_code_kit-0.22.0/hooks/hooks.json +0 -58
  26. claude_code_kit-0.22.0/src/claude_kit/validator.py +0 -212
  27. claude_code_kit-0.22.0/templates/settings.json +0 -47
  28. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/.gitignore +0 -0
  29. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/LICENSE +0 -0
  30. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/acceptance-reviewer.md +0 -0
  31. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/auditor.md +0 -0
  32. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/dependency-scanner.md +0 -0
  33. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/developer.md +0 -0
  34. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/devils-advocate.md +0 -0
  35. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/devops-engineer.md +0 -0
  36. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/e2e-tester.md +0 -0
  37. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/em-reviewer.md +0 -0
  38. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/incident-responder.md +0 -0
  39. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/merge-reviewer.md +0 -0
  40. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/observability-engineer.md +0 -0
  41. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/orchestrator.md +0 -0
  42. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/owasp-reviewer.md +0 -0
  43. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/policy-validator.md +0 -0
  44. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/pr-raiser.md +0 -0
  45. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/risk-classifier.md +0 -0
  46. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/sdlc-code-reviewer.md +0 -0
  47. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/secret-scanner.md +0 -0
  48. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/security-reviewer.md +0 -0
  49. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/senior-backend-dev.md +0 -0
  50. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/senior-frontend-dev.md +0 -0
  51. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/senior-tester.md +0 -0
  52. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/spec-doc-writer.md +0 -0
  53. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/story-planner.md +0 -0
  54. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/technical-architect.md +0 -0
  55. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/tester.md +0 -0
  56. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/ui-designer.md +0 -0
  57. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/agents/unit-tester.md +0 -0
  58. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/catalog/capture.yaml +0 -0
  59. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/catalog/mcp.yaml +0 -0
  60. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/catalog/org.yaml +0 -0
  61. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/catalog/profiles.yaml +0 -0
  62. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/catalog/stacks.yaml +0 -0
  63. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/commands/abort.md +0 -0
  64. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/commands/sdlc.md +0 -0
  65. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/commands/status.md +0 -0
  66. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/docs/agentic-patterns.md +0 -0
  67. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/docs/agents.md +0 -0
  68. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/docs/architecture.md +0 -0
  69. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/docs/coverage-audit.md +0 -0
  70. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/docs/eval-harness.md +0 -0
  71. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/docs/org-capabilities.md +0 -0
  72. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/docs/stack-skills/GAP-ANALYSIS.md +0 -0
  73. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/docs/stack-skills/README.md +0 -0
  74. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/docs/stack-skills/REPO-INVENTORY.md +0 -0
  75. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/audit-log.sh +0 -0
  76. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/capture-learnings.sh +0 -0
  77. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/guard-destructive-git.sh +0 -0
  78. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/guard-kubectl-delete.sh +0 -0
  79. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/guard-secrets.sh +0 -0
  80. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/lint-fix.sh +0 -0
  81. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/load-autonomy.sh +0 -0
  82. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/load-continuity.sh +0 -0
  83. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/load-learnings.sh +0 -0
  84. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/type-check.sh +0 -0
  85. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/validate-frontmatter.sh +0 -0
  86. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/validate-settings.sh +0 -0
  87. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/warn-large-edits.sh +0 -0
  88. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/warn-llm-io.sh +0 -0
  89. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/hooks/scripts/warn-shared-modules.sh +0 -0
  90. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/agent-guardrails.md +0 -0
  91. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/agent-memory.md +0 -0
  92. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/agent-resilience.md +0 -0
  93. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/autonomy-levels.md +0 -0
  94. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/code-organization.md +0 -0
  95. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/continuity.md +0 -0
  96. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/design-patterns.md +0 -0
  97. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/devops-observability.md +0 -0
  98. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/documentation.md +0 -0
  99. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/evals.md +0 -0
  100. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/frontend-best-practices.md +0 -0
  101. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/goal-setting-and-monitoring.md +0 -0
  102. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/human-in-the-loop.md +0 -0
  103. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/linting-and-formatting.md +0 -0
  104. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/mandatory-workflow.md +0 -0
  105. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/model-tiers.md +0 -0
  106. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/quality-gates.md +0 -0
  107. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/rarv-cycle.md +0 -0
  108. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/reasoning-techniques.md +0 -0
  109. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/responsive-and-accessibility.md +0 -0
  110. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/risk-classification.md +0 -0
  111. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/testing.md +0 -0
  112. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/rules/tool-design.md +0 -0
  113. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/scripts/check_docs_consistency.py +0 -0
  114. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/_references/accessibility-checklist.md +0 -0
  115. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/_references/orchestration-patterns.md +0 -0
  116. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/_references/performance-checklist.md +0 -0
  117. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/_references/security-checklist.md +0 -0
  118. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/_references/testing-patterns.md +0 -0
  119. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/accessibility-review/SKILL.md +0 -0
  120. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/alembic-migrations/README.md +0 -0
  121. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/alembic-migrations/SKILL.md +0 -0
  122. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/alembic-migrations/references/alembic-setup-and-env.md +0 -0
  123. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/alembic-migrations/references/async-and-multitenant-migrations.md +0 -0
  124. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/alembic-migrations/references/repo-evidence.md +0 -0
  125. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/alembic-migrations/references/troubleshooting-and-debugging.md +0 -0
  126. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/alembic-migrations/references/writing-migrations.md +0 -0
  127. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/anthropic-vertex-integration/README.md +0 -0
  128. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/anthropic-vertex-integration/SKILL.md +0 -0
  129. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/anthropic-vertex-integration/references/generate-helpers-and-retry.md +0 -0
  130. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/anthropic-vertex-integration/references/repo-evidence.md +0 -0
  131. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/anthropic-vertex-integration/references/vertex-client-and-auth.md +0 -0
  132. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/api-and-interface-design/SKILL.md +0 -0
  133. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/api-integration/SKILL.md +0 -0
  134. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/api-pagination-filtering-sorting/README.md +0 -0
  135. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/api-pagination-filtering-sorting/SKILL.md +0 -0
  136. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/api-pagination-filtering-sorting/references/query-params-conventions.md +0 -0
  137. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/api-pagination-filtering-sorting/references/repo-evidence.md +0 -0
  138. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/api-pagination-filtering-sorting/references/response-metadata.md +0 -0
  139. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/archive-sprint/SKILL.md +0 -0
  140. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/async-python-patterns/README.md +0 -0
  141. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/async-python-patterns/SKILL.md +0 -0
  142. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/async-python-patterns/references/async-boundaries.md +0 -0
  143. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/async-python-patterns/references/lifecycle-and-gather.md +0 -0
  144. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/async-python-patterns/references/repo-evidence.md +0 -0
  145. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/auth-and-rbac/README.md +0 -0
  146. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/auth-and-rbac/SKILL.md +0 -0
  147. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/auth-and-rbac/references/auth-dependencies.md +0 -0
  148. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/auth-and-rbac/references/rbac-and-permissions.md +0 -0
  149. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/auth-and-rbac/references/repo-evidence.md +0 -0
  150. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/auth-and-rbac/references/security-hardening.md +0 -0
  151. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/auth-and-rbac/references/tokens-and-hashing.md +0 -0
  152. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/backend-repo-architecture/README.md +0 -0
  153. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/backend-repo-architecture/SKILL.md +0 -0
  154. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/backend-repo-architecture/references/deployment-patterns.md +0 -0
  155. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/backend-repo-architecture/references/entrypoint-and-config.md +0 -0
  156. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/backend-repo-architecture/references/repo-evidence.md +0 -0
  157. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/backend-repo-architecture/references/structure-patterns.md +0 -0
  158. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/backend-repo-architecture/references/troubleshooting.md +0 -0
  159. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/backlog/SKILL.md +0 -0
  160. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/backlog/item-template.md +0 -0
  161. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
  162. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/bug-hunt/SKILL.md +0 -0
  163. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
  164. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/code-review-and-quality/SKILL.md +0 -0
  165. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/code-simplification/SKILL.md +0 -0
  166. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/component-design/SKILL.md +0 -0
  167. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/configargparse-yaml-env-layering/README.md +0 -0
  168. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/configargparse-yaml-env-layering/SKILL.md +0 -0
  169. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/configargparse-yaml-env-layering/references/config-layering-anatomy.md +0 -0
  170. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/configargparse-yaml-env-layering/references/mode-dispatch-and-precedence.md +0 -0
  171. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/configargparse-yaml-env-layering/references/repo-evidence.md +0 -0
  172. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/consolidate-learnings/SKILL.md +0 -0
  173. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/containerization-and-deployment/README.md +0 -0
  174. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/containerization-and-deployment/SKILL.md +0 -0
  175. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/containerization-and-deployment/references/deployment-and-secrets.md +0 -0
  176. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/containerization-and-deployment/references/dockerfile-and-compose.md +0 -0
  177. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/containerization-and-deployment/references/entrypoint-and-modes.md +0 -0
  178. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/containerization-and-deployment/references/kerberos-kinit-bootstrap.md +0 -0
  179. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/containerization-and-deployment/references/makefile-dev-workflow.md +0 -0
  180. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/containerization-and-deployment/references/repo-evidence.md +0 -0
  181. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/context-engineering/SKILL.md +0 -0
  182. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/cron-and-scheduled-jobs/README.md +0 -0
  183. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/cron-and-scheduled-jobs/SKILL.md +0 -0
  184. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/cron-and-scheduled-jobs/references/choosing-and-operations.md +0 -0
  185. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/cron-and-scheduled-jobs/references/kubernetes-cronjob.md +0 -0
  186. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/cron-and-scheduled-jobs/references/repo-evidence.md +0 -0
  187. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/cron-and-scheduled-jobs/references/temporal-schedules.md +0 -0
  188. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/data-engineering-bigquery-gcs/README.md +0 -0
  189. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/data-engineering-bigquery-gcs/SKILL.md +0 -0
  190. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/data-engineering-bigquery-gcs/references/bigquery-advanced-patterns.md +0 -0
  191. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/data-engineering-bigquery-gcs/references/bigquery-gcs-io.md +0 -0
  192. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/data-engineering-bigquery-gcs/references/medallion-architecture.md +0 -0
  193. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/data-engineering-bigquery-gcs/references/repo-evidence.md +0 -0
  194. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/data-engineering-bigquery-gcs/references/temp-table-merge-pattern.md +0 -0
  195. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
  196. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/decision/SKILL.md +0 -0
  197. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/decision/adr-template.md +0 -0
  198. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/deprecation-and-migration/SKILL.md +0 -0
  199. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/design-patterns-and-conventions/README.md +0 -0
  200. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/design-patterns-and-conventions/SKILL.md +0 -0
  201. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/design-patterns-and-conventions/references/anti-patterns.md +0 -0
  202. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/design-patterns-and-conventions/references/naming-and-layout.md +0 -0
  203. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/design-patterns-and-conventions/references/patterns-catalog.md +0 -0
  204. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/design-patterns-and-conventions/references/repo-evidence.md +0 -0
  205. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/design-patterns-and-conventions/references/testing-patterns.md +0 -0
  206. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/design-patterns-and-conventions/references/troubleshooting.md +0 -0
  207. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/docker-compose/README.md +0 -0
  208. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/docker-compose/SKILL.md +0 -0
  209. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/docker-compose/references/compose-services-and-healthchecks.md +0 -0
  210. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/docker-compose/references/dev-vs-prod-variants.md +0 -0
  211. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/docker-compose/references/repo-evidence.md +0 -0
  212. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/docker-shared/README.md +0 -0
  213. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/docker-shared/SKILL.md +0 -0
  214. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/docker-shared/references/dockerignore-and-build-secrets.md +0 -0
  215. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/docker-shared/references/repo-evidence.md +0 -0
  216. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/docker-shared/references/shared-base-images.md +0 -0
  217. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/docker-shared/references/shared-compose-fragments.md +0 -0
  218. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/dockerfile-backend/README.md +0 -0
  219. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/dockerfile-backend/SKILL.md +0 -0
  220. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/dockerfile-backend/references/backend-dockerfile-anatomy.md +0 -0
  221. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/dockerfile-backend/references/repo-evidence.md +0 -0
  222. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/dockerfile-backend/references/system-deps-and-caching.md +0 -0
  223. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/dockerfile-frontend/README.md +0 -0
  224. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/dockerfile-frontend/SKILL.md +0 -0
  225. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/dockerfile-frontend/references/build-args-and-nginx.md +0 -0
  226. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/dockerfile-frontend/references/frontend-dockerfile-anatomy.md +0 -0
  227. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/dockerfile-frontend/references/repo-evidence.md +0 -0
  228. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/documentation-and-adrs/SKILL.md +0 -0
  229. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/doubt-driven-development/SKILL.md +0 -0
  230. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/edge-to-service-trust-boundary/README.md +0 -0
  231. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/edge-to-service-trust-boundary/SKILL.md +0 -0
  232. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/edge-to-service-trust-boundary/references/repo-evidence.md +0 -0
  233. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/edge-to-service-trust-boundary/references/trust-contract.md +0 -0
  234. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/execute/SKILL.md +0 -0
  235. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/fastapi-service-patterns/README.md +0 -0
  236. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/fastapi-service-patterns/SKILL.md +0 -0
  237. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/fastapi-service-patterns/references/api-versioning.md +0 -0
  238. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/fastapi-service-patterns/references/app-factory-and-lifespan.md +0 -0
  239. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/fastapi-service-patterns/references/custom-route-and-middleware.md +0 -0
  240. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/fastapi-service-patterns/references/dependency-injection.md +0 -0
  241. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/fastapi-service-patterns/references/model-and-serialization-patterns.md +0 -0
  242. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/fastapi-service-patterns/references/repo-evidence.md +0 -0
  243. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/file-export-and-reporting/README.md +0 -0
  244. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/file-export-and-reporting/SKILL.md +0 -0
  245. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/file-export-and-reporting/references/excel-generation.md +0 -0
  246. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/file-export-and-reporting/references/repo-evidence.md +0 -0
  247. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/file-export-and-reporting/references/streaming-and-downloads.md +0 -0
  248. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/frontend-repo-architecture/README.md +0 -0
  249. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/frontend-repo-architecture/SKILL.md +0 -0
  250. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/frontend-repo-architecture/references/api-layer-and-types.md +0 -0
  251. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/frontend-repo-architecture/references/divergences.md +0 -0
  252. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/frontend-repo-architecture/references/repo-evidence.md +0 -0
  253. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/frontend-repo-architecture/references/structure-and-state.md +0 -0
  254. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/frontend-repo-architecture/references/testing-patterns.md +0 -0
  255. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
  256. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/gcp-cloud-run-github-actions/README.md +0 -0
  257. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/gcp-cloud-run-github-actions/SKILL.md +0 -0
  258. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/gcp-cloud-run-github-actions/references/cloud-run-deploy.md +0 -0
  259. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/gcp-cloud-run-github-actions/references/repo-evidence.md +0 -0
  260. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/gcp-cloud-run-github-actions/references/workflow-structure.md +0 -0
  261. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/gcs-file-storage-patterns/README.md +0 -0
  262. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/gcs-file-storage-patterns/SKILL.md +0 -0
  263. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/gcs-file-storage-patterns/references/client-and-uploads.md +0 -0
  264. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/gcs-file-storage-patterns/references/repo-evidence.md +0 -0
  265. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/gcs-file-storage-patterns/references/signed-urls-and-reads.md +0 -0
  266. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
  267. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/grafana-dashboards-and-alerts/README.md +0 -0
  268. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/grafana-dashboards-and-alerts/SKILL.md +0 -0
  269. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/grafana-dashboards-and-alerts/references/dashboard-json-and-templating.md +0 -0
  270. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/grafana-dashboards-and-alerts/references/provisioning-and-organization.md +0 -0
  271. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/grafana-dashboards-and-alerts/references/red-metrics-queries.md +0 -0
  272. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/grafana-dashboards-and-alerts/references/repo-evidence.md +0 -0
  273. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/grafana-dashboards-and-alerts/references/unified-alerting.md +0 -0
  274. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/graphql-patterns/README.md +0 -0
  275. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/graphql-patterns/SKILL.md +0 -0
  276. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/graphql-patterns/references/apollo-client-frontend.md +0 -0
  277. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/graphql-patterns/references/apollo-client-setup.md +0 -0
  278. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/graphql-patterns/references/repo-evidence.md +0 -0
  279. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/graphql-patterns/references/strawberry-backend.md +0 -0
  280. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/graphql-patterns/references/when-to-use-graphql.md +0 -0
  281. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/idea-refine/SKILL.md +0 -0
  282. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/idea-refine/examples.md +0 -0
  283. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/idea-refine/frameworks.md +0 -0
  284. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/idea-refine/refinement-criteria.md +0 -0
  285. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
  286. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/incident-postmortem/SKILL.md +0 -0
  287. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/incremental-implementation/SKILL.md +0 -0
  288. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/interview-me/SKILL.md +0 -0
  289. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kafka-config-driven/README.md +0 -0
  290. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kafka-config-driven/SKILL.md +0 -0
  291. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kafka-config-driven/references/config-and-sasl-kerberos.md +0 -0
  292. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kafka-config-driven/references/consumer-producer-patterns.md +0 -0
  293. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kafka-config-driven/references/repo-evidence.md +0 -0
  294. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kafka-config-driven/references/troubleshooting-and-patterns.md +0 -0
  295. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kubectl-operations/README.md +0 -0
  296. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kubectl-operations/SKILL.md +0 -0
  297. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kubectl-operations/references/command-reference.md +0 -0
  298. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kubectl-operations/references/context-namespace-rbac.md +0 -0
  299. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kubectl-operations/references/debugging-playbooks.md +0 -0
  300. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kubectl-operations/references/output-formats-and-selectors.md +0 -0
  301. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kubectl-operations/references/repo-evidence.md +0 -0
  302. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kubernetes-workload-hardening/README.md +0 -0
  303. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kubernetes-workload-hardening/SKILL.md +0 -0
  304. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kubernetes-workload-hardening/references/networkpolicy-and-rbac.md +0 -0
  305. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kubernetes-workload-hardening/references/repo-evidence.md +0 -0
  306. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/kubernetes-workload-hardening/references/securitycontext-and-podsecurity.md +0 -0
  307. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/langfuse-llm-tracing/README.md +0 -0
  308. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/langfuse-llm-tracing/SKILL.md +0 -0
  309. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/langfuse-llm-tracing/references/langfuse-client-and-tracing.md +0 -0
  310. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/langfuse-llm-tracing/references/python-and-typescript.md +0 -0
  311. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/langfuse-llm-tracing/references/repo-evidence.md +0 -0
  312. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/load-testing/SKILL.md +0 -0
  313. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/manual-test/SKILL.md +0 -0
  314. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/modernization-and-migration/README.md +0 -0
  315. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/modernization-and-migration/SKILL.md +0 -0
  316. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/modernization-and-migration/references/migration-best-practices.md +0 -0
  317. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/modernization-and-migration/references/pydantic-v1-to-v2.md +0 -0
  318. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/modernization-and-migration/references/repo-evidence.md +0 -0
  319. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/modernization-and-migration/references/shared-internal-library.md +0 -0
  320. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/modernization-and-migration/references/sqlalchemy-14-to-20.md +0 -0
  321. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/multi-tenancy-patterns/README.md +0 -0
  322. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/multi-tenancy-patterns/SKILL.md +0 -0
  323. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/multi-tenancy-patterns/references/caching-patterns.md +0 -0
  324. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/multi-tenancy-patterns/references/isolation-strategies.md +0 -0
  325. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/multi-tenancy-patterns/references/repo-evidence.md +0 -0
  326. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/multi-tenancy-patterns/references/tenant-resolution.md +0 -0
  327. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/node-express-service/README.md +0 -0
  328. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/node-express-service/SKILL.md +0 -0
  329. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/node-express-service/references/app-factory-and-mode-dispatch.md +0 -0
  330. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/node-express-service/references/config-and-module-alias.md +0 -0
  331. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/node-express-service/references/middleware-patterns.md +0 -0
  332. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/node-express-service/references/repo-evidence.md +0 -0
  333. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/node-objection-knex/README.md +0 -0
  334. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/node-objection-knex/SKILL.md +0 -0
  335. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/node-objection-knex/references/migrations-and-validation.md +0 -0
  336. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/node-objection-knex/references/objection-model-and-knex.md +0 -0
  337. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/node-objection-knex/references/repo-evidence.md +0 -0
  338. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/notifications-and-messaging/README.md +0 -0
  339. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/notifications-and-messaging/SKILL.md +0 -0
  340. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/notifications-and-messaging/references/provider-abstraction.md +0 -0
  341. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/notifications-and-messaging/references/repo-evidence.md +0 -0
  342. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/notifications-and-messaging/references/templates-and-fallback.md +0 -0
  343. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/observability-and-logging/README.md +0 -0
  344. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/observability-and-logging/SKILL.md +0 -0
  345. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/observability-and-logging/references/health-and-readiness.md +0 -0
  346. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/observability-and-logging/references/logging-and-structlog.md +0 -0
  347. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/observability-and-logging/references/outbound-metrics-and-multi-mode.md +0 -0
  348. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/observability-and-logging/references/pii-redaction.md +0 -0
  349. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/observability-and-logging/references/repo-evidence.md +0 -0
  350. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/observability-and-logging/references/tracing-and-metrics.md +0 -0
  351. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/over-engineering-review/SKILL.md +0 -0
  352. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/performance-optimization/SKILL.md +0 -0
  353. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
  354. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/playwright-verification/SKILL.md +0 -0
  355. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/pydantic-schema-patterns/README.md +0 -0
  356. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/pydantic-schema-patterns/SKILL.md +0 -0
  357. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/pydantic-schema-patterns/references/repo-evidence.md +0 -0
  358. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/pydantic-schema-patterns/references/settings-and-validation.md +0 -0
  359. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/pydantic-schema-patterns/references/troubleshooting-and-common-errors.md +0 -0
  360. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/pydantic-schema-patterns/references/v1-vs-v2.md +0 -0
  361. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/python-dao-and-database/README.md +0 -0
  362. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/python-dao-and-database/SKILL.md +0 -0
  363. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/python-dao-and-database/references/advanced-query-patterns.md +0 -0
  364. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/python-dao-and-database/references/basedao-and-sessions.md +0 -0
  365. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/python-dao-and-database/references/mongodb-advanced.md +0 -0
  366. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/python-dao-and-database/references/other-db-mongodb.md +0 -0
  367. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/python-dao-and-database/references/repo-evidence.md +0 -0
  368. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/python-dao-and-database/references/sqlalchemy-1x-vs-2x.md +0 -0
  369. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/radix-tailwind-component-patterns/README.md +0 -0
  370. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/radix-tailwind-component-patterns/SKILL.md +0 -0
  371. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/radix-tailwind-component-patterns/references/radix-primitives-and-variants.md +0 -0
  372. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/radix-tailwind-component-patterns/references/repo-evidence.md +0 -0
  373. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/radix-tailwind-component-patterns/references/tailwind-theme-and-cn.md +0 -0
  374. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/react-hook-form-zod-patterns/README.md +0 -0
  375. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/react-hook-form-zod-patterns/SKILL.md +0 -0
  376. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/react-hook-form-zod-patterns/references/form-setup-and-zod.md +0 -0
  377. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/react-hook-form-zod-patterns/references/multi-step-and-modes.md +0 -0
  378. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/react-hook-form-zod-patterns/references/repo-evidence.md +0 -0
  379. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/redis-caching-patterns/README.md +0 -0
  380. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/redis-caching-patterns/SKILL.md +0 -0
  381. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/redis-caching-patterns/references/cache-manager-and-fallback.md +0 -0
  382. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/redis-caching-patterns/references/namespacing-and-invalidation.md +0 -0
  383. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/redis-caching-patterns/references/repo-evidence.md +0 -0
  384. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/refresh-docs/SKILL.md +0 -0
  385. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/remember/SKILL.md +0 -0
  386. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/scope/SKILL.md +0 -0
  387. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/scope/scope-template.md +0 -0
  388. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/sdlc/SKILL.md +0 -0
  389. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/security-and-hardening/SKILL.md +0 -0
  390. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/security-verification/SKILL.md +0 -0
  391. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/shannon-ai-pentest/README.md +0 -0
  392. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/shannon-ai-pentest/SKILL.md +0 -0
  393. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/shannon-ai-pentest/references/operating-guide.md +0 -0
  394. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/shipping-and-launch/SKILL.md +0 -0
  395. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/simplification-debt/SKILL.md +0 -0
  396. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/smoke-test/SKILL.md +0 -0
  397. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/source-driven-development/SKILL.md +0 -0
  398. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/spec-driven-development/SKILL.md +0 -0
  399. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/sprint/SKILL.md +0 -0
  400. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/sprint/sprint-template.md +0 -0
  401. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/tanstack-react-query-patterns/README.md +0 -0
  402. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/tanstack-react-query-patterns/SKILL.md +0 -0
  403. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/tanstack-react-query-patterns/references/mutations-and-cache.md +0 -0
  404. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/tanstack-react-query-patterns/references/query-keys-and-hooks.md +0 -0
  405. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/tanstack-react-query-patterns/references/repo-evidence.md +0 -0
  406. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/task-tracker-sync/SKILL.md +0 -0
  407. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/temporal-config-driven/README.md +0 -0
  408. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/temporal-config-driven/SKILL.md +0 -0
  409. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/temporal-config-driven/references/config-and-retry-idempotency.md +0 -0
  410. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/temporal-config-driven/references/dag-dsl-interpreter.md +0 -0
  411. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/temporal-config-driven/references/repo-evidence.md +0 -0
  412. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/temporal-config-driven/references/schedule-registration.md +0 -0
  413. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/temporal-config-driven/references/schedules-and-cron.md +0 -0
  414. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/temporal-config-driven/references/worker-workflow-activity-patterns.md +0 -0
  415. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/test-driven-development/SKILL.md +0 -0
  416. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/test-plan-review/SKILL.md +0 -0
  417. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/testing-conventions/README.md +0 -0
  418. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/testing-conventions/SKILL.md +0 -0
  419. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/testing-conventions/references/async-and-mocking.md +0 -0
  420. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/testing-conventions/references/coverage-gap-and-recommendations.md +0 -0
  421. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/testing-conventions/references/github-actions-test-orchestration.md +0 -0
  422. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/testing-conventions/references/pytest-and-fixtures.md +0 -0
  423. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/testing-conventions/references/pytest-asyncio-modes.md +0 -0
  424. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/testing-conventions/references/repo-evidence.md +0 -0
  425. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/testing-conventions/references/security-regression-tests.md +0 -0
  426. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/testing-conventions/references/vitest-frontend-testing.md +0 -0
  427. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/threat-model/SKILL.md +0 -0
  428. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/triage/SKILL.md +0 -0
  429. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/ui-ux-design/SKILL.md +0 -0
  430. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/unit-test/SKILL.md +0 -0
  431. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/using-agent-skills/SKILL.md +0 -0
  432. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/vitest-rtl-msw-patterns/README.md +0 -0
  433. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/vitest-rtl-msw-patterns/SKILL.md +0 -0
  434. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/vitest-rtl-msw-patterns/references/msw-and-contract-tests.md +0 -0
  435. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/vitest-rtl-msw-patterns/references/repo-evidence.md +0 -0
  436. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/vitest-rtl-msw-patterns/references/vitest-rtl-setup.md +0 -0
  437. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/zap-vapt-scanning/README.md +0 -0
  438. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/zap-vapt-scanning/SKILL.md +0 -0
  439. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/zap-vapt-scanning/references/operating-guide.md +0 -0
  440. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/zap-vapt-scanning/scripts/endpoints.example.txt +0 -0
  441. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/zap-vapt-scanning/scripts/requirements.txt +0 -0
  442. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/zap-vapt-scanning/scripts/zap_vapt.py +0 -0
  443. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/zustand-state-patterns/README.md +0 -0
  444. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/zustand-state-patterns/SKILL.md +0 -0
  445. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/zustand-state-patterns/references/async-polling-and-persistence.md +0 -0
  446. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/zustand-state-patterns/references/repo-evidence.md +0 -0
  447. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/skills/zustand-state-patterns/references/store-structure-and-selectors.md +0 -0
  448. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/src/claude_kit/catalog.py +0 -0
  449. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/src/claude_kit/models.py +0 -0
  450. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/src/claude_kit/render.py +0 -0
  451. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/CLAUDE.md +0 -0
  452. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/CLAUDE.stack.md.tmpl +0 -0
  453. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/CONTINUITY.template.md +0 -0
  454. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/README.claude-sdlc.md.tmpl +0 -0
  455. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/agent-memory/MEMORY.md +0 -0
  456. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/agent-memory/api/.gitkeep +0 -0
  457. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/agent-memory/architecture/.gitkeep +0 -0
  458. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/agent-memory/debugging/.gitkeep +0 -0
  459. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
  460. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/agent-memory/patterns/.gitkeep +0 -0
  461. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/agent-memory/performance/.gitkeep +0 -0
  462. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/artifacts/adr.md +0 -0
  463. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/artifacts/api-change-report.md +0 -0
  464. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/artifacts/feature-spec.md +0 -0
  465. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/artifacts/release-plan.md +0 -0
  466. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/artifacts/runbook.md +0 -0
  467. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/artifacts/security-review.md +0 -0
  468. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/artifacts/test-plan.md +0 -0
  469. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/README.md +0 -0
  470. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/agents/data-workflow-agent.md +0 -0
  471. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/agents/founder-prototype-agent.md +0 -0
  472. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/agents/internal-tools-builder.md +0 -0
  473. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/agents/pm-copilot.md +0 -0
  474. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/agents/staff-pm-reviewer.md +0 -0
  475. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/agents/support-ticket-engineer.md +0 -0
  476. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/devops-and-release/README.md +0 -0
  477. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
  478. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/engineering-core/README.md +0 -0
  479. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
  480. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
  481. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
  482. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
  483. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
  484. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/product-to-code/README.md +0 -0
  485. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
  486. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/quality-and-review/README.md +0 -0
  487. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
  488. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/security-and-compliance/README.md +0 -0
  489. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
  490. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/rules/ai-working-agreement.md +0 -0
  491. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/rules/ambiguity-resolution.md +0 -0
  492. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
  493. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/rules/compliance-policy.md +0 -0
  494. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
  495. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/rules/pii-policy.md +0 -0
  496. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/rules/production-data-policy.md +0 -0
  497. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
  498. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/rules/prototype-boundaries.md +0 -0
  499. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/rules/secrets-policy.md +0 -0
  500. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
  501. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
  502. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
  503. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
  504. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
  505. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/skills/review-scope/SKILL.md +0 -0
  506. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/skills/review-sprint/SKILL.md +0 -0
  507. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/skills/review-sprint-plan/SKILL.md +0 -0
  508. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/org/skills/review-ux-flow/SKILL.md +0 -0
  509. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/backend/go/net-http/rules/go-patterns.md +0 -0
  510. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
  511. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
  512. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
  513. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
  514. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
  515. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
  516. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
  517. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
  518. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
  519. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/frontend/react/rules/design-system-compliance.md +0 -0
  520. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/frontend/react/rules/mobile-design-guidelines.md +0 -0
  521. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/frontend/react/rules/react-patterns.md +0 -0
  522. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/frontend/react/rules/ui-design-system.md +0 -0
  523. {claude_code_kit-0.22.0 → claude_code_kit-0.24.0}/templates/stacks/frontend/react/rules/ux-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.22.0",
13
+ "version": "0.24.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.22.0",
3
+ "version": "0.24.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,81 @@ 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.24.0] — 2026-06-24
8
+
9
+ **PR3 of the phased hardening review: deeper validation, a deterministic pipeline CLI, an MCP
10
+ lockfile, and a CI matrix that brings every distribution channel and quality dimension under test.**
11
+
12
+ ### Added
13
+
14
+ - **`claude-kit validate --strict`** — beyond the structural checks, strict mode verifies that every
15
+ `settings.json` hook fires on a known event and runs an **installed, executable** script; that
16
+ `.mcp.json` has a sane `{mcpServers: {id: {command|url}}}` shape; that the resolved
17
+ `stack-catalog.snapshot.yaml` agrees with the agents/skills/overlays actually on disk; and that the
18
+ **bundled catalog is referentially consistent** (`validator.check_catalog`: every profile resolves to
19
+ existing agents/skills/registered hooks, every stack overlay rule/agent file is present, and the org
20
+ overlay's new skills/agents/rules/packs exist). `doctor` now runs the strict validate by default.
21
+ - **`claude-kit pipeline` command group** (`src/claude_kit/pipeline.py`) — deterministic,
22
+ **non-executing** operations on the `/sdlc` state files: `pipeline validate` (snapshot shape +
23
+ profile/scope/mode/lane/findings coherence, with `last_gate_passed` checked against the installed
24
+ gate set), `pipeline status` (human-readable run summary), `pipeline close-gate <gate> --evidence
25
+ <file>` (records a passed gate, requiring the evidence artifact and a gate name the profile defines),
26
+ and `pipeline abort`. These validate/mutate `.claude/state/pipeline-snapshot.json` — they do **not**
27
+ run the pipeline.
28
+ - **`.mcp.lock.json`** — when `.mcp.json` is written, a deterministic lockfile captures the resolved
29
+ package + pinned version (parsed from the `npx -y <pkg>@<ver>` args) or hosted URL per server, so a
30
+ reviewer can see exactly what would run. It is a kit-owned, derived artifact (refreshed on upgrade,
31
+ never a user sidecar). **`claude-kit doctor --mcp`** checks each server's command is on PATH, warns on
32
+ unset `${ENV}` vars, and flags a lockfile that has drifted from `.mcp.json` (warnings only).
33
+ - **Expanded CI** (`.github/workflows/ci.yml`) — new jobs alongside the test matrix: `lint`
34
+ (`ruff check` + `ruff format --check` + `mypy`), `shell` (`shellcheck -S warning` over all hook + repo
35
+ scripts), `static` (`gen_hooks.py --check`, the docs-consistency guard, catalog referential
36
+ integrity, and JSON validity of the plugin manifests + `hooks.json`), and `wheel-smoke` (build → install
37
+ into a clean venv → `init --defaults` → `validate --strict` → `doctor`). `ruff`/`mypy`/`shellcheck-py`
38
+ are added to the `dev` extra, with conservative `[tool.ruff.lint]` (no E501) and `[tool.mypy]` config.
39
+
40
+ ### Fixed
41
+
42
+ - **Latent type/lint bugs surfaced by the new CI** — `upgrader.py` used `ResolvedPlan` in annotations
43
+ without importing it (harmless under `from __future__ import annotations`, but undefined) and passed
44
+ `str | Path` to a `Path`-typed `_compare`; `_format_preview` could dereference `None`;
45
+ `prompts._choose_many` and `__main__` used None-returning calls in value position. All fixed; the
46
+ codebase is now `ruff` + `mypy --ignore-missing-imports` clean. Two hook scripts had redundant,
47
+ shellcheck-flagged glob alternatives (`*__tests__*` under `*test*`; `*oauth*`/`*authoriz*` under
48
+ `*auth*`) — removed with no behavior change.
49
+
50
+ ## [0.23.0] — 2026-06-23
51
+
52
+ **PR2 of the phased hardening review: structural single-source-of-truth for hooks, and plugin/CLI
53
+ parity that fails loud instead of silently degrading.**
54
+
55
+ ### Changed
56
+
57
+ - **Hooks are now generated from one registry.** The two previously hand-maintained static hook files —
58
+ the plugin's `hooks/hooks.json` and the no-pip starter `templates/settings.json` — are now generated
59
+ from `src/claude_kit/hooks.py` (`HOOK_REGISTRY` + per-channel membership data) via
60
+ `scripts/gen_hooks.py`. They had already drifted (the starter was missing `load-autonomy`, the PR1
61
+ `jq`-degradation prefix, and used a slightly different block message). A drift test
62
+ (`gen_hooks.py --check`, run in the suite) fails the build if either file is hand-edited.
63
+ - The installed per-profile `.claude/settings.json` (built by `build_settings`) is **byte-identical**
64
+ to before — pure refactor, verified against `origin/main`.
65
+ - `hooks/hooks.json` is **semantically identical** to before (reflowed to canonical 2-space JSON; no
66
+ hook added, removed, or reordered).
67
+ - `templates/settings.json` changes only by refreshing its two inline Bash guards to the registry
68
+ versions (gaining the `command -v jq … || exit 0` no-jq degradation + aligned message); same hook
69
+ membership.
70
+ - **`guard-kubectl-delete` is now declared data.** It moves into a `PLUGIN_ONLY_HOOKS` map (with a
71
+ `reason`) — the single documented exception to "the registry is the source of truth" — instead of
72
+ being a silent hand-edit in `hooks.json`.
73
+
74
+ ### Fixed
75
+
76
+ - **Plugin/CLI parity: `/claude-kit:init` requires the CLI and fails loud.** The command no longer
77
+ silently falls back to the thin `scripts/init.sh` scaffolder when neither `claude-kit` nor `ckit` is
78
+ on PATH — it stops and instructs `pipx install claude-code-kit` (or `pip install …`). The shell
79
+ fallback is now opt-in only (`CLAUDE_KIT_BASIC=1`) and prints a loud "degraded, no-resolution
80
+ install; upgrade/diff won't work" warning. README onboarding documents the CLI requirement.
81
+
7
82
  ## [0.22.0] — 2026-06-23
8
83
 
9
84
  **Critical-correctness hardening (PR1 of a phased review): a non-destructive `init` merge that no longer
@@ -28,7 +28,7 @@ distributed two ways from one source of truth:
28
28
  | `templates/stacks/<kind>/<id>/` | Per-stack **overlay** content: `rules/` (+ `agents/` for DB stacks). **No application code, no Docker** — the only place stack-specific content lives. |
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
- | `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` |
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` (incl. `validate --strict` + `check_catalog`), `upgrader.py`, `pipeline.py` (deterministic `/sdlc` state-file ops) |
32
32
  | `tests/` | pytest suite (catalog, render, scaffold, validator, upgrader, CLI; incl. the profile×stack×scope self-test matrix) |
33
33
  | `examples/` | Synthetic end-to-end `/sdlc` worked example (repo reference; **not** bundled into the wheel) |
34
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 |
@@ -38,11 +38,15 @@ locally, and how to release.
38
38
  *when* to use it. Add it to the relevant profile(s) in `catalog/profiles.yaml`.
39
39
  - **Rule** → add `rules/<name>.md`; cross-reference siblings as `.claude/rules/<name>.md`.
40
40
  - **Hook** → add a script to `hooks/scripts/`, register it in the `HOOK_REGISTRY` in
41
- `src/claude_kit/hooks.py`, wire it in `hooks/hooks.json` (plugin), and list its id in the relevant
42
- profile's `hooks:`. (Exception: the agent-side capture hooks `capture-learnings[-catchup|-stop]` are
43
- **not** profile-listed they're installed by the init-time `capture_mode` choice via
44
- `catalog/capture.yaml` + `catalog._apply_capture_mode`. One script, three triggers, dispatched by an
45
- arg.)
41
+ `src/claude_kit/hooks.py`, and list its id in the relevant profile's `hooks:`. To surface it in the
42
+ plugin and/or the no-pip starter, add its id to `PLUGIN_HOOK_IDS` / `STARTER_HOOK_IDS` (same module),
43
+ then **run `python scripts/gen_hooks.py`** to regenerate `hooks/hooks.json` and
44
+ `templates/settings.json` **never hand-edit those two files** (a drift test, `gen_hooks.py --check`,
45
+ fails the build if they diverge from the registry). A plugin-only hook (no CLI scaffold equivalent,
46
+ e.g. `guard-kubectl-delete`) goes in `PLUGIN_ONLY_HOOKS` with a `reason` instead of the registry.
47
+ (Exception: the agent-side capture hooks `capture-learnings[-catchup|-stop]` are **not** profile-listed
48
+ — they're installed by the init-time `capture_mode` choice via `catalog/capture.yaml` +
49
+ `catalog._apply_capture_mode`. One script, three triggers, dispatched by an arg.)
46
50
  - **Stack** (framework / database) → a **data change**: add an entry to `catalog/stacks.yaml`
47
51
  (`label`, `overlay_rules`, optional `overlay_agents`, `skills`, `stack_dir`, `commands`) and create
48
52
  `templates/stacks/<stack_dir>/rules/<name>.md` (+ `agents/` for a database). Mark not-yet-ready
@@ -67,6 +71,13 @@ claude-kit diff /tmp/ck-demo
67
71
  # Tests:
68
72
  pytest
69
73
 
74
+ # Lint / type / shell / drift checks (all run in CI — keep them green locally):
75
+ ruff check src scripts tests && ruff format --check src scripts tests
76
+ mypy
77
+ shellcheck -S warning hooks/scripts/*.sh scripts/*.sh
78
+ python scripts/gen_hooks.py --check
79
+ python scripts/check_docs_consistency.py
80
+
70
81
  # Build + validate the package:
71
82
  python3 -m build
72
83
  python3 -m twine check dist/*
@@ -84,8 +95,9 @@ a specific stack — `pytest` enforces the no-Docker invariant on a scaffolded p
84
95
 
85
96
  ## Releasing
86
97
 
87
- 1. Bump the version in **all four** places: `pyproject.toml`, `.claude-plugin/plugin.json`, the
88
- `.claude-plugin/marketplace.json` entry, and `src/claude_kit/__init__.py`.
98
+ 1. Bump the version in **all five** places: `pyproject.toml`, `.claude-plugin/plugin.json`, the
99
+ `.claude-plugin/marketplace.json` entry, `src/claude_kit/__init__.py`, and `SECURITY.md`
100
+ (`check_docs_consistency.py` enforces parity across all of them + the latest `CHANGELOG.md` heading).
89
101
  2. Add a `CHANGELOG.md` entry, including a **"Not adopted (deliberately)"** block stating what you
90
102
  chose *not* to add and why — this is a marketed feature of the changelog (the README links to it),
91
103
  so keep it. If those blocks ever grow unwieldy they may later split into `docs/decision-log.md`,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-kit
3
- Version: 0.22.0
3
+ Version: 0.24.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
@@ -21,7 +21,10 @@ Requires-Dist: pyyaml>=6.0
21
21
  Requires-Dist: typer>=0.12
22
22
  Provides-Extra: dev
23
23
  Requires-Dist: build>=1.2; extra == 'dev'
24
+ Requires-Dist: mypy>=1.10; extra == 'dev'
24
25
  Requires-Dist: pytest>=8.0; extra == 'dev'
26
+ Requires-Dist: ruff>=0.6; extra == 'dev'
27
+ Requires-Dist: shellcheck-py>=0.10; extra == 'dev'
25
28
  Requires-Dist: twine>=5.0; extra == 'dev'
26
29
  Description-Content-Type: text/markdown
27
30
 
@@ -110,6 +113,12 @@ Then, inside any project you want the pipeline to manage:
110
113
  /sdlc Add a CSV export button to the reports page
111
114
  ```
112
115
 
116
+ > **`/claude-kit:init` requires the Python CLI** (`pipx install claude-code-kit`, or `pip install
117
+ > claude-code-kit`) — it's what resolves your stack/profile/MCP catalog and records `init-options.json`
118
+ > for safe `upgrade`/`diff`. If the CLI isn't on PATH the command stops and tells you to install it
119
+ > rather than doing a partial install. (A degraded, no-resolution shell scaffolder is available only by
120
+ > explicitly setting `CLAUDE_KIT_BASIC=1`; `upgrade`/`diff` won't work against it.)
121
+
113
122
  > `/sdlc` is a **project skill** installed by `init`, so it becomes available after the restart. The
114
123
  > plugin also exposes `/claude-kit:sdlc <task>`, which works immediately (no restart needed).
115
124
 
@@ -607,10 +616,11 @@ everything available.
607
616
  | Command | Description |
608
617
  |---------|-------------|
609
618
  | `init [path] [--defaults] [--config FILE] [--force]` | Scaffold `CLAUDE.md` + `.claude/` (interactive or non-interactive) |
610
- | `validate [path]` | Structurally validate an installed config |
611
- | `doctor [path]` | Validate + environment/health checks with fix hints |
619
+ | `validate [path] [--strict]` | Structurally validate an installed config; `--strict` adds hooks→script, `.mcp.json`-shape, snapshot, and catalog-integrity checks |
620
+ | `doctor [path] [--mcp]` | Strict validate + environment/health checks; `--mcp` checks MCP commands, `${ENV}` vars, and lockfile drift |
612
621
  | `diff [path]` | Preview what an `upgrade` would change (no writes) |
613
622
  | `upgrade [path] [--force]` | Refresh kit/overlay files; protect your edits; prune orphans |
623
+ | `pipeline validate · status · close-gate · abort` | Inspect/mutate the `/sdlc` state files (gate/lane/evidence coherence); **does not run** the pipeline |
614
624
  | `list-options` | List available frontend/backend/database/profile/MCP options |
615
625
  | `status [path]` | Show what's installed, the selection, and working memory |
616
626
  | `version` | Print the version |
@@ -619,6 +629,9 @@ everything available.
619
629
  Plugin slash commands: `/claude-kit:init`, `/claude-kit:sdlc <task>`, `/claude-kit:status`; and the
620
630
  `/sdlc` skill inside any scaffolded project.
621
631
 
632
+ > When MCP servers are selected, `init` also writes a derived **`.mcp.lock.json`** pinning each
633
+ > server's resolved package version — inspect it (or run `doctor --mcp`) to see exactly what would run.
634
+
622
635
  </details>
623
636
 
624
637
  <details>
@@ -83,6 +83,12 @@ Then, inside any project you want the pipeline to manage:
83
83
  /sdlc Add a CSV export button to the reports page
84
84
  ```
85
85
 
86
+ > **`/claude-kit:init` requires the Python CLI** (`pipx install claude-code-kit`, or `pip install
87
+ > claude-code-kit`) — it's what resolves your stack/profile/MCP catalog and records `init-options.json`
88
+ > for safe `upgrade`/`diff`. If the CLI isn't on PATH the command stops and tells you to install it
89
+ > rather than doing a partial install. (A degraded, no-resolution shell scaffolder is available only by
90
+ > explicitly setting `CLAUDE_KIT_BASIC=1`; `upgrade`/`diff` won't work against it.)
91
+
86
92
  > `/sdlc` is a **project skill** installed by `init`, so it becomes available after the restart. The
87
93
  > plugin also exposes `/claude-kit:sdlc <task>`, which works immediately (no restart needed).
88
94
 
@@ -580,10 +586,11 @@ everything available.
580
586
  | Command | Description |
581
587
  |---------|-------------|
582
588
  | `init [path] [--defaults] [--config FILE] [--force]` | Scaffold `CLAUDE.md` + `.claude/` (interactive or non-interactive) |
583
- | `validate [path]` | Structurally validate an installed config |
584
- | `doctor [path]` | Validate + environment/health checks with fix hints |
589
+ | `validate [path] [--strict]` | Structurally validate an installed config; `--strict` adds hooks→script, `.mcp.json`-shape, snapshot, and catalog-integrity checks |
590
+ | `doctor [path] [--mcp]` | Strict validate + environment/health checks; `--mcp` checks MCP commands, `${ENV}` vars, and lockfile drift |
585
591
  | `diff [path]` | Preview what an `upgrade` would change (no writes) |
586
592
  | `upgrade [path] [--force]` | Refresh kit/overlay files; protect your edits; prune orphans |
593
+ | `pipeline validate · status · close-gate · abort` | Inspect/mutate the `/sdlc` state files (gate/lane/evidence coherence); **does not run** the pipeline |
587
594
  | `list-options` | List available frontend/backend/database/profile/MCP options |
588
595
  | `status [path]` | Show what's installed, the selection, and working memory |
589
596
  | `version` | Print the version |
@@ -592,6 +599,9 @@ everything available.
592
599
  Plugin slash commands: `/claude-kit:init`, `/claude-kit:sdlc <task>`, `/claude-kit:status`; and the
593
600
  `/sdlc` skill inside any scaffolded project.
594
601
 
602
+ > When MCP servers are selected, `init` also writes a derived **`.mcp.lock.json`** pinning each
603
+ > server's resolved package version — inspect it (or run `doctor --mcp`) to see exactly what would run.
604
+
595
605
  </details>
596
606
 
597
607
  <details>
@@ -6,21 +6,35 @@ allowed-tools: Bash, Read, Glob
6
6
 
7
7
  Install the claude-kit autonomous-SDLC configuration into the current project.
8
8
 
9
- **Prefer the full Python CLI** (it runs the ordered prompts, resolves the stack/profile/MCP catalog,
9
+ **The Python CLI is required.** It runs the ordered prompts, resolves the stack/profile/MCP catalog,
10
10
  installs overlay rules + agents, assembles `settings.json`, and records `init-options.json` for safe
11
- upgrades). Check whether it's on PATH and use it, passing through `$ARGUMENTS`:
11
+ upgrades (`claude-kit upgrade` / `diff`). Check whether it's on PATH and use it, passing through
12
+ `$ARGUMENTS`:
12
13
 
13
14
  ```
14
15
  command -v claude-kit >/dev/null 2>&1 && claude-kit init $ARGUMENTS \
15
- || { command -v ckit >/dev/null 2>&1 && ckit init $ARGUMENTS; }
16
+ || { command -v ckit >/dev/null 2>&1 && ckit init $ARGUMENTS \
17
+ || echo "CKIT_CLI_MISSING"; }
16
18
  ```
17
19
 
18
- If neither `claude-kit` nor `ckit` is installed, fall back to the **thin** bundled scaffolder (it
19
- copies the full payload with no stack/profile resolution a superset install; suggest the user
20
- `pip install claude-code-kit` afterwards for the catalog-driven experience):
20
+ **If the output is `CKIT_CLI_MISSING`, STOP do not scaffold anything.** Neither `claude-kit` nor
21
+ `ckit` is installed. Tell the user the CLI is required and how to install it, then have them re-run
22
+ `/claude-kit:init`. Do **not** silently fall back to a partial install:
23
+
24
+ - Recommended: `pipx install claude-code-kit`
25
+ - Or: `pip install claude-code-kit`
26
+
27
+ **Escape hatch (advanced, opt-in only).** A thin shell scaffolder exists for locked-down environments
28
+ where installing the CLI is impossible. It copies the full payload as a **superset** with **no**
29
+ stack/profile/MCP resolution, and `claude-kit upgrade` / `diff` will **not** work against it. Use it
30
+ **only** if the user has explicitly opted in by setting `CLAUDE_KIT_BASIC=1`:
21
31
 
22
32
  ```
23
- bash "${CLAUDE_PLUGIN_ROOT}/scripts/init.sh" $ARGUMENTS
33
+ if [ "${CLAUDE_KIT_BASIC:-0}" = "1" ]; then
34
+ bash "${CLAUDE_PLUGIN_ROOT}/scripts/init.sh" $ARGUMENTS
35
+ else
36
+ echo "set CLAUDE_KIT_BASIC=1 to use the degraded no-CLI scaffolder (the CLI is the supported path)"
37
+ fi
24
38
  ```
25
39
 
26
40
  If `${CLAUDE_PLUGIN_ROOT}` is not set (running from a source checkout), locate `scripts/init.sh` in
@@ -0,0 +1,106 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "matcher": "",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/load-continuity.sh\""
10
+ },
11
+ {
12
+ "type": "command",
13
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/load-learnings.sh\""
14
+ },
15
+ {
16
+ "type": "command",
17
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/load-autonomy.sh\""
18
+ },
19
+ {
20
+ "type": "command",
21
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/capture-learnings.sh\" catchup"
22
+ }
23
+ ]
24
+ }
25
+ ],
26
+ "PreToolUse": [
27
+ {
28
+ "matcher": "Bash",
29
+ "hooks": [
30
+ {
31
+ "type": "command",
32
+ "command": "command -v jq >/dev/null 2>&1 || exit 0; CMD=$(jq -r '.tool_input.command'); if echo \"$CMD\" | grep -qE 'rm[[:space:]]+-[^[:space:]]*r[^[:space:]]*f'; then echo 'BLOCKED: rm -rf is disabled by claude-kit. Move to trash or delete specific paths explicitly.' >&2; exit 2; fi"
33
+ },
34
+ {
35
+ "type": "command",
36
+ "command": "command -v jq >/dev/null 2>&1 || exit 0; CMD=$(jq -r '.tool_input.command'); if echo \"$CMD\" | grep -qE 'git[[:space:]]+push.*[[:space:]:](main|master)([[:space:]]|$)'; then echo 'BLOCKED: refusing to push to main/master — use a feature branch and a PR.' >&2; exit 2; fi"
37
+ },
38
+ {
39
+ "type": "command",
40
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/guard-destructive-git.sh\""
41
+ },
42
+ {
43
+ "type": "command",
44
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/guard-secrets.sh\""
45
+ },
46
+ {
47
+ "type": "command",
48
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/guard-kubectl-delete.sh\""
49
+ }
50
+ ]
51
+ },
52
+ {
53
+ "matcher": "Edit|Write",
54
+ "hooks": [
55
+ {
56
+ "type": "command",
57
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/warn-shared-modules.sh\""
58
+ },
59
+ {
60
+ "type": "command",
61
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/warn-llm-io.sh\""
62
+ },
63
+ {
64
+ "type": "command",
65
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/warn-sensitive-files.sh\""
66
+ }
67
+ ]
68
+ },
69
+ {
70
+ "matcher": "Write",
71
+ "hooks": [
72
+ {
73
+ "type": "command",
74
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/validate-settings.sh\""
75
+ }
76
+ ]
77
+ }
78
+ ],
79
+ "Stop": [
80
+ {
81
+ "matcher": "",
82
+ "hooks": [
83
+ {
84
+ "type": "command",
85
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/lint-fix.sh\""
86
+ },
87
+ {
88
+ "type": "command",
89
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/type-check.sh\""
90
+ }
91
+ ]
92
+ }
93
+ ],
94
+ "SessionEnd": [
95
+ {
96
+ "matcher": "",
97
+ "hooks": [
98
+ {
99
+ "type": "command",
100
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/capture-learnings.sh\" end"
101
+ }
102
+ ]
103
+ }
104
+ ]
105
+ }
106
+ }
@@ -12,7 +12,7 @@ low="$(printf '%s' "$FILE_PATH" | tr '[:upper:]' '[:lower:]')"
12
12
 
13
13
  # Skip non-source: tests, docs, config, markdown, and the kit's own config.
14
14
  case "$low" in
15
- *test*|*spec*|*__tests__*|*.md|*.markdown|*.json|*.ya?ml|*.toml|*.ini|*.cfg|*.txt|*.lock|*/.claude/*)
15
+ *test*|*spec*|*.md|*.markdown|*.json|*.ya?ml|*.toml|*.ini|*.cfg|*.txt|*.lock|*/.claude/*)
16
16
  exit 0 ;;
17
17
  esac
18
18
 
@@ -11,7 +11,7 @@ FILE_PATH="$(echo "$INPUT" | jq -r '.tool_input.file_path // .tool_response.file
11
11
  low="$(printf '%s' "$FILE_PATH" | tr '[:upper:]' '[:lower:]')"
12
12
 
13
13
  case "$low" in
14
- *auth*|*login*|*session*|*oauth*|*jwt*|*password*|*permission*|*rbac*|*authoriz*)
14
+ *auth*|*login*|*session*|*jwt*|*password*|*permission*|*rbac*)
15
15
  echo "WARN: editing an AUTH / authorization surface ($FILE_PATH). High-risk: get review + security check before completion (.claude/rules/risk-classification.md)." >&2 ;;
16
16
  esac
17
17
  case "$low" in
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "claude-code-kit"
7
- version = "0.22.0"
7
+ version = "0.24.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"
@@ -46,6 +46,9 @@ dev = [
46
46
  "pytest>=8.0",
47
47
  "build>=1.2",
48
48
  "twine>=5.0",
49
+ "ruff>=0.6",
50
+ "mypy>=1.10",
51
+ "shellcheck-py>=0.10",
49
52
  ]
50
53
 
51
54
  [project.urls]
@@ -62,6 +65,20 @@ claude-sdlc = "claude_kit.cli:main"
62
65
  testpaths = ["tests"]
63
66
  pythonpath = ["."]
64
67
 
68
+ [tool.ruff]
69
+ target-version = "py39"
70
+
71
+ [tool.ruff.lint]
72
+ # Deliberately conservative: pyflakes (F) + the actionable pycodestyle subsets (E4/E7/E9, W) +
73
+ # import sorting (I) + bugbear (B). Line length (E501) is intentionally NOT enforced — docstrings and
74
+ # pinned-version comments run long on purpose and `ruff format` owns layout.
75
+ select = ["E4", "E7", "E9", "F", "W", "I", "B"]
76
+
77
+ [tool.mypy]
78
+ files = ["src/claude_kit"]
79
+ ignore_missing_imports = true
80
+ # typer/yaml ship without type stubs; we check our own code, not third-party signatures.
81
+
65
82
  [tool.hatch.build.targets.wheel]
66
83
  packages = ["src/claude_kit"]
67
84
 
@@ -0,0 +1,69 @@
1
+ #!/usr/bin/env python3
2
+ """Generate (or --check) the two *static* hook files from the single ``hooks.py`` registry.
3
+
4
+ claude-kit ships hooks through three channels, but only one should ever be hand-maintained:
5
+
6
+ * the **installed** ``.claude/settings.json`` — built per-profile by ``hooks.build_settings`` at init;
7
+ * the auto-discovered **plugin** ``hooks/hooks.json`` (``${CLAUDE_PLUGIN_ROOT}`` paths);
8
+ * the thin no-pip **starter** ``templates/settings.json`` (``$CLAUDE_PROJECT_DIR`` paths).
9
+
10
+ The latter two used to be edited by hand and silently drifted from the registry (and each other).
11
+ This script regenerates both from ``claude_kit.hooks`` so the registry is the single source of truth.
12
+
13
+ Usage::
14
+
15
+ python scripts/gen_hooks.py # regenerate the two files in place
16
+ python scripts/gen_hooks.py --check # exit 1 if either file is out of sync (CI / tests)
17
+ """
18
+
19
+ from __future__ import annotations
20
+
21
+ import json
22
+ import sys
23
+ from pathlib import Path
24
+
25
+ ROOT = Path(__file__).resolve().parent.parent
26
+ sys.path.insert(
27
+ 0, str(ROOT / "src")
28
+ ) # importable from a bare checkout (no editable install needed)
29
+
30
+ from claude_kit import hooks # noqa: E402
31
+
32
+ #: (path on disk, generator) for each static file derived from the registry.
33
+ TARGETS = [
34
+ (ROOT / "hooks" / "hooks.json", hooks.generate_plugin_hooks_json),
35
+ (ROOT / "templates" / "settings.json", hooks.generate_starter_settings),
36
+ ]
37
+
38
+
39
+ def _render(doc: dict) -> str:
40
+ """Canonical JSON form (2-space indent, literal Unicode, trailing newline) for both files."""
41
+ return json.dumps(doc, indent=2, ensure_ascii=False) + "\n"
42
+
43
+
44
+ def main(argv: list[str]) -> int:
45
+ check = "--check" in argv
46
+ drift: list[Path] = []
47
+ for path, generate in TARGETS:
48
+ want = _render(generate())
49
+ have = path.read_text(encoding="utf-8") if path.is_file() else ""
50
+ if check:
51
+ if want != have:
52
+ drift.append(path)
53
+ else:
54
+ path.write_text(want, encoding="utf-8")
55
+ print(f"wrote {path.relative_to(ROOT)}")
56
+ if check:
57
+ if drift:
58
+ print(
59
+ "hooks drift: FAIL — run `python scripts/gen_hooks.py` to regenerate:"
60
+ )
61
+ for path in drift:
62
+ print(f" - {path.relative_to(ROOT)}")
63
+ return 1
64
+ print("hooks: in sync with the registry")
65
+ return 0
66
+
67
+
68
+ if __name__ == "__main__":
69
+ sys.exit(main(sys.argv[1:]))
@@ -40,6 +40,16 @@ done
40
40
 
41
41
  DEST="$TARGET/.claude"
42
42
  mkdir -p "$DEST"
43
+
44
+ # Loud warning: this is the degraded, no-pip path. The full experience is the Python CLI.
45
+ echo "================================================================" >&2
46
+ echo "claude-kit BASIC scaffolder (no Python CLI)" >&2
47
+ echo " SUPERSET install: NO stack / profile / MCP resolution." >&2
48
+ echo " 'claude-kit upgrade' and 'diff' will NOT work against it." >&2
49
+ echo " For the full catalog-driven experience + safe upgrades:" >&2
50
+ echo " pipx install claude-code-kit (then re-run /claude-kit:init)" >&2
51
+ echo "================================================================" >&2
52
+
43
53
  echo "claude-kit: scaffolding into $TARGET"
44
54
 
45
55
  copy_root_file() { # src, dest, label
@@ -7,4 +7,4 @@ Docker): ``claude-kit init`` asks ordered questions and lays down ``CLAUDE.md``
7
7
  as a plugin. Extensibility is data-driven via the ``catalog/`` (stacks, profiles, MCP).
8
8
  """
9
9
 
10
- __version__ = "0.22.0"
10
+ __version__ = "0.24.0"
@@ -1,8 +1,6 @@
1
1
  """Enable ``python -m claude_kit`` as an alias for the CLI."""
2
2
 
3
- import sys
4
-
5
3
  from claude_kit.cli import main
6
4
 
7
5
  if __name__ == "__main__":
8
- sys.exit(main())
6
+ main() # Typer's app() raises SystemExit with the right code itself.