claude-code-kit 0.10.0__tar.gz → 0.11.2__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 (225) hide show
  1. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/.claude-plugin/marketplace.json +1 -1
  2. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/.claude-plugin/plugin.json +1 -1
  3. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/CHANGELOG.md +143 -0
  4. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/PKG-INFO +1 -1
  5. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/catalog/mcp.yaml +11 -0
  6. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/catalog/profiles.yaml +1 -1
  7. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/hooks.json +1 -0
  8. claude_code_kit-0.11.2/hooks/scripts/guard-destructive-git.sh +39 -0
  9. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/pyproject.toml +1 -1
  10. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/testing.md +10 -0
  11. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/code-review-and-quality/SKILL.md +16 -0
  12. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/__init__.py +1 -1
  13. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/hooks.py +6 -0
  14. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/.gitignore +0 -0
  15. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/CLAUDE.md +0 -0
  16. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/CONTRIBUTING.md +0 -0
  17. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/LICENSE +0 -0
  18. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/README.md +0 -0
  19. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/acceptance-reviewer.md +0 -0
  20. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/auditor.md +0 -0
  21. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/dependency-scanner.md +0 -0
  22. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/developer.md +0 -0
  23. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/devils-advocate.md +0 -0
  24. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/devops-engineer.md +0 -0
  25. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/e2e-tester.md +0 -0
  26. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/em-reviewer.md +0 -0
  27. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/incident-responder.md +0 -0
  28. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/merge-reviewer.md +0 -0
  29. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/observability-engineer.md +0 -0
  30. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/orchestrator.md +0 -0
  31. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/owasp-reviewer.md +0 -0
  32. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/policy-validator.md +0 -0
  33. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/pr-raiser.md +0 -0
  34. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/risk-classifier.md +0 -0
  35. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/sdlc-code-reviewer.md +0 -0
  36. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/secret-scanner.md +0 -0
  37. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/security-reviewer.md +0 -0
  38. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/senior-backend-dev.md +0 -0
  39. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/senior-frontend-dev.md +0 -0
  40. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/senior-tester.md +0 -0
  41. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/spec-doc-writer.md +0 -0
  42. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/story-planner.md +0 -0
  43. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/technical-architect.md +0 -0
  44. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/tester.md +0 -0
  45. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/ui-designer.md +0 -0
  46. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/unit-tester.md +0 -0
  47. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/catalog/org.yaml +0 -0
  48. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/catalog/stacks.yaml +0 -0
  49. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/commands/init.md +0 -0
  50. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/commands/sdlc.md +0 -0
  51. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/commands/status.md +0 -0
  52. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/docs/agentic-patterns.md +0 -0
  53. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/docs/agents.md +0 -0
  54. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/docs/architecture.md +0 -0
  55. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/docs/org-capabilities.md +0 -0
  56. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/audit-log.sh +0 -0
  57. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/guard-secrets.sh +0 -0
  58. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/lint-fix.sh +0 -0
  59. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/load-autonomy.sh +0 -0
  60. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/load-continuity.sh +0 -0
  61. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/load-learnings.sh +0 -0
  62. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/type-check.sh +0 -0
  63. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/validate-frontmatter.sh +0 -0
  64. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/validate-settings.sh +0 -0
  65. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/warn-large-edits.sh +0 -0
  66. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/warn-llm-io.sh +0 -0
  67. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/warn-missing-tests.sh +0 -0
  68. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/warn-sensitive-files.sh +0 -0
  69. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/warn-shared-modules.sh +0 -0
  70. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/agent-guardrails.md +0 -0
  71. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/agent-memory.md +0 -0
  72. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/agent-resilience.md +0 -0
  73. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/autonomy-levels.md +0 -0
  74. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/code-organization.md +0 -0
  75. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/continuity.md +0 -0
  76. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/design-patterns.md +0 -0
  77. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/devops-observability.md +0 -0
  78. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/documentation.md +0 -0
  79. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/evals.md +0 -0
  80. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/frontend-best-practices.md +0 -0
  81. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/goal-setting-and-monitoring.md +0 -0
  82. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/human-in-the-loop.md +0 -0
  83. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/linting-and-formatting.md +0 -0
  84. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/mandatory-workflow.md +0 -0
  85. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/model-tiers.md +0 -0
  86. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/quality-gates.md +0 -0
  87. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/rarv-cycle.md +0 -0
  88. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/reasoning-techniques.md +0 -0
  89. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/responsive-and-accessibility.md +0 -0
  90. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/risk-classification.md +0 -0
  91. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/tool-design.md +0 -0
  92. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/scripts/init.sh +0 -0
  93. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/_references/accessibility-checklist.md +0 -0
  94. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/_references/orchestration-patterns.md +0 -0
  95. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/_references/performance-checklist.md +0 -0
  96. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/_references/security-checklist.md +0 -0
  97. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/_references/testing-patterns.md +0 -0
  98. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/accessibility-review/SKILL.md +0 -0
  99. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/api-and-interface-design/SKILL.md +0 -0
  100. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/api-integration/SKILL.md +0 -0
  101. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/archive-sprint/SKILL.md +0 -0
  102. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/backlog/SKILL.md +0 -0
  103. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/backlog/item-template.md +0 -0
  104. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/browser-testing-with-devtools/SKILL.md +0 -0
  105. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/ci-cd-and-automation/SKILL.md +0 -0
  106. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/code-simplification/SKILL.md +0 -0
  107. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/component-design/SKILL.md +0 -0
  108. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/consolidate-learnings/SKILL.md +0 -0
  109. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/context-engineering/SKILL.md +0 -0
  110. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/debugging-and-error-recovery/SKILL.md +0 -0
  111. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/decision/SKILL.md +0 -0
  112. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/decision/adr-template.md +0 -0
  113. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/deprecation-and-migration/SKILL.md +0 -0
  114. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/documentation-and-adrs/SKILL.md +0 -0
  115. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/doubt-driven-development/SKILL.md +0 -0
  116. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/execute/SKILL.md +0 -0
  117. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/frontend-ui-engineering/SKILL.md +0 -0
  118. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/git-workflow-and-versioning/SKILL.md +0 -0
  119. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/idea-refine/SKILL.md +0 -0
  120. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/idea-refine/examples.md +0 -0
  121. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/idea-refine/frameworks.md +0 -0
  122. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/idea-refine/refinement-criteria.md +0 -0
  123. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/idea-refine/scripts/idea-refine.sh +0 -0
  124. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/incident-postmortem/SKILL.md +0 -0
  125. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/incremental-implementation/SKILL.md +0 -0
  126. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/interview-me/SKILL.md +0 -0
  127. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/load-testing/SKILL.md +0 -0
  128. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/manual-test/SKILL.md +0 -0
  129. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/over-engineering-review/SKILL.md +0 -0
  130. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/performance-optimization/SKILL.md +0 -0
  131. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/planning-and-task-breakdown/SKILL.md +0 -0
  132. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/playwright-verification/SKILL.md +0 -0
  133. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/refresh-docs/SKILL.md +0 -0
  134. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/remember/SKILL.md +0 -0
  135. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/scope/SKILL.md +0 -0
  136. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/scope/scope-template.md +0 -0
  137. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/sdlc/SKILL.md +0 -0
  138. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/security-and-hardening/SKILL.md +0 -0
  139. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/security-verification/SKILL.md +0 -0
  140. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/shipping-and-launch/SKILL.md +0 -0
  141. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/simplification-debt/SKILL.md +0 -0
  142. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/smoke-test/SKILL.md +0 -0
  143. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/source-driven-development/SKILL.md +0 -0
  144. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/spec-driven-development/SKILL.md +0 -0
  145. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/sprint/SKILL.md +0 -0
  146. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/sprint/sprint-template.md +0 -0
  147. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/task-tracker-sync/SKILL.md +0 -0
  148. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/test-driven-development/SKILL.md +0 -0
  149. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/threat-model/SKILL.md +0 -0
  150. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/triage/SKILL.md +0 -0
  151. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/ui-ux-design/SKILL.md +0 -0
  152. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/unit-test/SKILL.md +0 -0
  153. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/using-agent-skills/SKILL.md +0 -0
  154. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/__main__.py +0 -0
  155. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/catalog.py +0 -0
  156. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/cli.py +0 -0
  157. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/models.py +0 -0
  158. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/prompts.py +0 -0
  159. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/render.py +0 -0
  160. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/scaffold.py +0 -0
  161. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/upgrader.py +0 -0
  162. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/validator.py +0 -0
  163. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/CLAUDE.md +0 -0
  164. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/CLAUDE.stack.md.tmpl +0 -0
  165. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/CONTINUITY.template.md +0 -0
  166. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/README.claude-sdlc.md.tmpl +0 -0
  167. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/MEMORY.md +0 -0
  168. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/api/.gitkeep +0 -0
  169. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/architecture/.gitkeep +0 -0
  170. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/debugging/.gitkeep +0 -0
  171. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/gotchas/.gitkeep +0 -0
  172. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/patterns/.gitkeep +0 -0
  173. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/performance/.gitkeep +0 -0
  174. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/artifacts/adr.md +0 -0
  175. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/artifacts/feature-spec.md +0 -0
  176. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/artifacts/release-plan.md +0 -0
  177. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/artifacts/runbook.md +0 -0
  178. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/artifacts/security-review.md +0 -0
  179. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/artifacts/test-plan.md +0 -0
  180. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/README.md +0 -0
  181. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/agents/data-workflow-agent.md +0 -0
  182. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/agents/founder-prototype-agent.md +0 -0
  183. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/agents/internal-tools-builder.md +0 -0
  184. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/agents/pm-copilot.md +0 -0
  185. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/agents/support-ticket-engineer.md +0 -0
  186. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/devops-and-release/README.md +0 -0
  187. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/devops-and-release/pack.yaml +0 -0
  188. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/engineering-core/README.md +0 -0
  189. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/engineering-core/pack.yaml +0 -0
  190. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/non-engineer-builder/README.md +0 -0
  191. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
  192. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/onboarding-and-docs/README.md +0 -0
  193. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
  194. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/product-to-code/README.md +0 -0
  195. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/product-to-code/pack.yaml +0 -0
  196. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/quality-and-review/README.md +0 -0
  197. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/quality-and-review/pack.yaml +0 -0
  198. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/security-and-compliance/README.md +0 -0
  199. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
  200. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/ai-working-agreement.md +0 -0
  201. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/ambiguity-resolution.md +0 -0
  202. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/branch-and-pr-policy.md +0 -0
  203. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/compliance-policy.md +0 -0
  204. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/non-engineer-safe-coding.md +0 -0
  205. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/pii-policy.md +0 -0
  206. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/production-data-policy.md +0 -0
  207. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/prompt-to-task-conversion.md +0 -0
  208. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/prototype-boundaries.md +0 -0
  209. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/secrets-policy.md +0 -0
  210. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
  211. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
  212. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
  213. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
  214. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
  215. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/settings.json +0 -0
  216. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
  217. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
  218. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
  219. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
  220. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
  221. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
  222. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
  223. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
  224. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
  225. {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/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.10.0",
13
+ "version": "0.11.2",
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.10.0",
3
+ "version": "0.11.2",
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,149 @@ 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.11.2] — 2026-06-15
8
+
9
+ A field review of **thirteen** more external collections — marketplaces, awesome-lists, subagent
10
+ packs, and hook/config repos — run through the same adversarial map→verify pass against the actual
11
+ kit files. Most are *distribution channels* (no copyable content) or *stack-specific* role packs that
12
+ would violate the agnostic core. Crucially, grounding the strongest candidates against the real hook
13
+ registry showed the kit **already** ships destructive-command blocking (`guard-rm-rf`,
14
+ `guard-push-main`), secret protection (`protect-secrets`, `guard-commit-secrets`), and skill
15
+ auto-routing (`skill-routing`) — refuting the headline ideas. Exactly **one** genuine gap survived.
16
+ Reviewed: [anthropics/claude-plugins-official](https://github.com/anthropics/claude-code) ·
17
+ claude-plugins-community · [hesreallyhim/awesome-claude-code](https://github.com/hesreallyhim/awesome-claude-code) ·
18
+ ccplugins/awesome-claude-code-plugins · rohitg00/awesome-claude-code-toolkit ·
19
+ [VoltAgent/awesome-claude-code-subagents](https://github.com/VoltAgent/awesome-claude-code-subagents) ·
20
+ [0xfurai/claude-code-subagents](https://github.com/0xfurai/claude-code-subagents) ·
21
+ [disler/claude-code-hooks-mastery](https://github.com/disler/claude-code-hooks-mastery) ·
22
+ yurukusa/claude-code-hooks (cc-safe-setup) · alirezarezvani/claude-skills ·
23
+ eddiemessiah/config-claude-code · ChrisWiles/claude-code-showcase.
24
+
25
+ ### Added
26
+ - **`hooks/scripts/guard-destructive-git.sh`** + the `guard-destructive-git` hook (PreToolUse·Bash,
27
+ `standard`→`enterprise`; absent in `lean`). A hard **block** (exit 2) for the git commands that
28
+ irreversibly destroy *uncommitted* work — `git reset --hard`, `git clean -f`, and worktree-wide
29
+ discards (`git checkout/restore .`) — each message pointing at the reversible alternative
30
+ (`git stash`). This completes the `guard-rm-rf` / `guard-push-main` destructive-command family with
31
+ the single most common irreversible agent mistake: nuking its own output. A *warn* would be theatre
32
+ here (the command would still run and the work would be gone), so this is a guard, consistent with
33
+ `guard-rm-rf`. Scope is deliberately git-only and conservative — no false positives on
34
+ `git clean -n`, branch checkouts, or single-file restores; fail-open without `jq`. (+2 tests, 78.)
35
+
36
+ ### Not adopted (deliberately, per the assessment)
37
+ - **Marketplaces** (anthropics official/community) — Apache-2.0 *distribution* manifests, not content;
38
+ claude-kit already ships its own `.claude-plugin/marketplace.json`. Nothing to copy.
39
+ - **Awesome-lists** (hesreallyhim, ccplugins, rohitg00) — curated discovery indexes; no installable
40
+ components of their own.
41
+ - **Subagent packs** (VoltAgent 154+, 0xfurai 100+; MIT) — overwhelmingly language/framework
42
+ specialists (violate the stack-agnostic core) or roles the kit already has; `api-designer`→
43
+ `technical-architect`/`api-and-interface-design`, `chaos-engineer`→`incident-responder`+`load-testing`,
44
+ `penetration-tester`→`security-reviewer`/`owasp-reviewer`/`threat-model`, `product-manager`→ the org
45
+ `pm-copilot` persona + `interview-me`/`idea-refine`. No genuine stack-agnostic SDLC role gap.
46
+ - **disler/claude-code-hooks-mastery** (no licence) — its destructive-command guard and skill-suggestion
47
+ ideas are already covered (`guard-rm-rf`/`guard-push-main`, `skill-routing`); lifecycle hooks
48
+ (SessionEnd/PreCompact continuity persistence) are covered by the continuity rule + `load-continuity`
49
+ + the SessionStart:compact reload. The one residual — git work-loss blocking — became the adoption above.
50
+ - **yurukusa/cc-safe-setup** (MIT) — its **database-wipe** guard (`migrate reset`/`drop database`) was
51
+ considered and **rejected as over-reach**: DB resets are legitimate in local dev and a hook can't tell
52
+ dev from prod, so a block would break normal workflows and a warn would be theatre. DB risk stays
53
+ governed by `risk-classification.md` (production-data/migrations → high/restricted) + `warn-sensitive-files`
54
+ on migration edits.
55
+ - **alirezarezvani/claude-skills** — a codebase-onboarding skill duplicates `context-engineering` +
56
+ `source-driven-development` (+ the org `repo-onboarding` skill).
57
+ - **eddiemessiah/config-claude-code, ChrisWiles/claude-code-showcase** (MIT) — personal config
58
+ collections; the transferable ideas (tool-budget hygiene → `agent-guardrails`§3/`tool-design`/
59
+ `context-engineering`; skill auto-suggestion → `skill-routing`; scheduled-maintenance CI → out of
60
+ scope for a config-only kit, covered by `ci-cd-and-automation`/`devops-engineer`) are already covered.
61
+
62
+ ## [0.11.1] — 2026-06-15
63
+
64
+ A field review of **seven** external projects, each run through the same adversarial map→verify pass
65
+ (read the source *and* the actual kit files; adopt only genuine, non-duplicative, config-only,
66
+ stack-agnostic, IP-safe gaps). The result is deliberately tiny: across all seven, exactly **one** real
67
+ gap survived — everything else is already covered, runtime-only, stack-specific, out of SDLC scope, or
68
+ IP-unsafe to copy. Reviewed: [obra/superpowers](https://github.com/obra/superpowers),
69
+ [wshobson/agents](https://github.com/wshobson/agents),
70
+ [anthropics/skills](https://github.com/anthropics/skills),
71
+ [karpathy/autoresearch](https://github.com/karpathy/autoresearch),
72
+ [browser-use](https://github.com/browser-use/browser-use),
73
+ [x1xhlol/system-prompts-and-models-of-ai-tools](https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools),
74
+ and [langgenius/dify](https://github.com/langgenius/dify).
75
+
76
+ ### Changed
77
+ - **`rules/testing.md`** — the "Async/Event-Loop Systems" guidance gains a **condition-based waiting**
78
+ rule (distilled from superpowers' `condition-based-waiting`, MIT, re-expressed in original,
79
+ stack-agnostic words): never wait on a fixed delay/sleep, poll for the observable condition instead
80
+ (framework waiter or a small `wait_for(condition, timeout)`), and avoid the three flakiness traps
81
+ (no timeout, interval too tight, stale reads). The section previously only said "mock I/O, use
82
+ async/await" — it never addressed timing-dependent test flakiness.
83
+
84
+ ### Not adopted (deliberately, per the assessment)
85
+ - **superpowers** — 14 skills, ~all duplicate existing kit skills (TDD, `systematic-debugging`→
86
+ `debugging-and-error-recovery`, `brainstorming`→`idea-refine`/`doubt-driven-development`/`interview-me`,
87
+ `writing-plans`→`planning-and-task-breakdown`, `executing-plans`→`execute`, `requesting`/`receiving-code-review`→
88
+ `code-review-and-quality`, `using-git-worktrees`/`finishing-a-development-branch`→`git-workflow-and-versioning`/
89
+ `shipping-and-launch`/`pr-raiser`, `verification-before-completion`→`rarv-cycle`+`mandatory-workflow`,
90
+ `dispatching-parallel-agents`→`orchestrator`, `writing-skills`→`using-agent-skills`). Its
91
+ `testing-anti-patterns` was refuted as a near-duplicate of the TDD skill's existing anti-pattern table.
92
+ - **wshobson/agents** — almost entirely language/framework specialists (violate the stack-agnostic core)
93
+ or roles the kit already has (`code-reviewer`, `security-auditor`, `incident-responder`,
94
+ `observability-engineer`, `performance-engineer`, `debugger`, `docs-architect`, `architect-reviewer`,
95
+ database/devops roles), plus out-of-SDLC-scope domains (SEO, business, data-science). No general gap.
96
+ - **anthropics/skills** — document skills are source-available (not open) and out of scope; the example
97
+ skills are out of scope (art/design/comms) or duplicative (`skill-creator`→`using-agent-skills`,
98
+ `frontend-design`→`frontend-ui-engineering`). The `SKILL.md` `name`+`description` convention is already followed.
99
+ - **karpathy/autoresearch** — the closed-loop / single-metric / fixed-budget principles are covered by
100
+ `evals` + `goal-setting-and-monitoring`; the ML-training loop itself is stack-specific. "Iterate the
101
+ instructions, not the code" is what the kit already *is* (config-only).
102
+ - **browser-use** — a runtime library; browser automation is already covered by the opt-in `playwright`
103
+ MCP entry + `browser-testing-with-devtools`/`playwright-verification`. Its "treat DOM/console/network
104
+ as untrusted" guidance is already a verbatim "Security Boundaries" section in `browser-testing-with-devtools`.
105
+ - **x1xhlol/system-prompts** — GPL-3.0 archive of prompts extracted from proprietary tools (double IP
106
+ hazard: copyleft + unresolved vendor rights). Its generic principles (plan-first, tool discipline,
107
+ minimal diffs, verification, concise comms, refusal/secret-safety) are already in `reasoning-techniques`,
108
+ `tool-design`, `mandatory-workflow`, `agent-guardrails`, `human-in-the-loop`, and `code-review-and-quality`.
109
+ Nothing was copied.
110
+ - **langgenius/dify** — a runtime platform (Apache-2.0 *with additional conditions*); its principles
111
+ (ReAct/function-calling agents, inspectable workflow steps, RAG stages, prompt-management feedback)
112
+ are covered by `reasoning-techniques`, `tool-design`, `context-engineering`, `evals`, and `devops-observability`.
113
+
114
+ ## [0.11.0] — 2026-06-15
115
+
116
+ Distils a field review of [repowise](https://github.com/repowise-dev/repowise) (a runtime
117
+ codebase-intelligence engine: dependency graph, git analytics, LLM wiki, code-health biomarkers,
118
+ change-risk, dead code). An adversarial map→verify pass over six candidates found that repowise is
119
+ overwhelmingly a **runtime product** whose config-equivalents claude-kit already ships — so the
120
+ honest, reuse-first result is small: one genuine kit-owned methodology gap and one sanctioned,
121
+ opt-in external-tool reference. No application code, no Docker, nothing bundled.
122
+
123
+ ### Added
124
+ - **`catalog/mcp.yaml`** gains an **opt-in** `repowise` MCP server (codebase intelligence: hotspots,
125
+ change-risk, co-change coupling, dead code). It is **only** written into `.mcp.json` when explicitly
126
+ selected at init — the kit *references* repowise, never bundles it. The label flags that it is
127
+ **AGPL-3.0** and requires installing it separately (`pip install repowise`) and indexing the repo
128
+ once (`repowise init`); the repo path is supplied via the `${REPOWISE_PROJECT_ROOT}` env placeholder
129
+ (same pattern as postgres's `${DATABASE_URL}`), so this is pure catalog data with no resolver change.
130
+
131
+ ### Changed
132
+ - **`skills/code-review-and-quality`** gains a **"Where to Focus: Change Hotspots & Coupling"** section:
133
+ a tool-agnostic, `git log`-only technique for spending review attention where defects cluster —
134
+ churn × complexity hotspots, co-change coupling (hidden dependencies), and single-owner/bus-factor
135
+ files. It notes that a codebase-intelligence MCP (e.g. the optional repowise server) provides the
136
+ same signals precomputed via `get_risk`/`get_health`, but always as **advisory input, never a
137
+ blocking gate**. A matching checklist item was added.
138
+
139
+ ### Not done (deliberately, per the assessment)
140
+ - repowise's engine itself — dependency graph, dashboard (`repowise serve`), deterministic PR bot,
141
+ LLM wiki/RAG, the 25 code-health biomarkers — is runtime and **cannot** be config. Its
142
+ config-equivalents already exist and were **not** duplicated: dead-code hygiene
143
+ (`over-engineering-review` / `code-simplification` / `code-review-and-quality` / `mandatory-workflow`),
144
+ noisy-output compression a.k.a. "distill" (`tool-design` rule + `context-engineering` skill),
145
+ read-an-overview-first (`context-engineering` / `source-driven-development`), ADRs
146
+ (`documentation-and-adrs`), commit provenance (`git-workflow-and-versioning`), and auto-generated
147
+ project instructions (`templates/CLAUDE.md`). No new rule/agent/skill/gate (the hotspot technique is
148
+ advisory, so it enriches a profile-gated skill rather than becoming a mandatory rule).
149
+
7
150
  ## [0.10.0] — 2026-06-15
8
151
 
9
152
  Adds **LLM / AI application-security** guidance distilled from a field review of
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-kit
3
- Version: 0.10.0
3
+ Version: 0.11.2
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
@@ -52,3 +52,14 @@ servers:
52
52
  config:
53
53
  type: http
54
54
  url: "https://mcp.context7.com/mcp"
55
+ # Repowise (github.com/repowise-dev/repowise) — optional codebase-intelligence engine exposing an
56
+ # MCP server: deterministic hotspots (churn × complexity), change-risk, co-change coupling, dead
57
+ # code, and a dependency graph. NOT bundled (claude-kit only references it): it is AGPL-3.0, so
58
+ # install it separately (`pip install repowise`) and index the repo once (`repowise init`) before
59
+ # first use. Point it at the repo via the env var below (e.g. `export REPOWISE_PROJECT_ROOT=$(pwd)`).
60
+ repowise:
61
+ label: "Repowise codebase intelligence (AGPL-3.0; needs `pip install repowise` + `repowise init`)"
62
+ config:
63
+ type: stdio
64
+ command: repowise
65
+ args: ["mcp", "${REPOWISE_PROJECT_ROOT}", "--transport", "stdio"]
@@ -83,7 +83,7 @@ profiles:
83
83
  - simplification-debt
84
84
  - task-tracker-sync
85
85
  gates: [spec-complete, em-approved, code-review, build-green, test-coverage, security-clear]
86
- hooks: [load-continuity, load-learnings, load-autonomy, skill-routing, learning-detection, guard-rm-rf, guard-push-main, protect-secrets, guard-commit-secrets, warn-shared-modules, warn-llm-io, lint-fix, type-check]
86
+ 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
87
 
88
88
  enterprise:
89
89
  label: "Enterprise — adds DevOps, Observability, full audit + acceptance"
@@ -30,6 +30,7 @@
30
30
  "hooks": [
31
31
  { "type": "command", "command": "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" },
32
32
  { "type": "command", "command": "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" },
33
+ { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/guard-destructive-git.sh\"" },
33
34
  { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/guard-secrets.sh\"" }
34
35
  ]
35
36
  },
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/env bash
2
+ # PreToolUse(Bash): BLOCK git commands that irreversibly destroy *uncommitted* work —
3
+ # `git reset --hard`, `git clean -f`, and worktree-wide discards (`git checkout/restore .`).
4
+ #
5
+ # Why a guard (block, exit 2) and not a warn: a PreToolUse advisory here would be theatre — the
6
+ # command would still run and the work would already be gone. So this guard refuses and points at
7
+ # the reversible alternative (`git stash`), exactly like guard-rm-rf points at trash. It completes
8
+ # the guard-rm-rf / guard-push-main destructive-command family with the single most common
9
+ # irreversible agent mistake: nuking its own uncommitted output.
10
+ #
11
+ # Scope is deliberately git-only and conservative — no false positives on `git clean -n` (dry run),
12
+ # plain branch checkouts, or single-file restores. Database wipes (`migrate reset`, `drop database`)
13
+ # stay OUT on purpose: they are legitimate in local dev, so blocking them would be over-reach; they
14
+ # are governed by .claude/rules/risk-classification.md and warn-sensitive-files on migration edits.
15
+ #
16
+ # Degrades to a no-op (fail-open) without jq.
17
+ command -v jq >/dev/null 2>&1 || exit 0
18
+ CMD="$(jq -r '.tool_input.command // empty' 2>/dev/null || true)"
19
+ [ -z "$CMD" ] && exit 0
20
+
21
+ # 1. reset --hard : discards all uncommitted tracked changes
22
+ if printf '%s' "$CMD" | grep -qE 'git[[:space:]]+reset[[:space:]].*--hard'; then
23
+ echo "BLOCKED: 'git reset --hard' discards uncommitted work irreversibly. Run 'git stash' to set it aside (recoverable via 'git stash list'), or 'git stash && git stash drop' to discard deliberately." >&2
24
+ exit 2
25
+ fi
26
+
27
+ # 2. clean -f / --force : permanently deletes untracked files
28
+ if printf '%s' "$CMD" | grep -qE 'git[[:space:]]+clean[[:space:]].*(-[a-zA-Z]*f|--force)'; then
29
+ echo "BLOCKED: 'git clean -f' permanently deletes untracked files. Preview with 'git clean -n' first; to keep them, 'git stash -u'." >&2
30
+ exit 2
31
+ fi
32
+
33
+ # 3. checkout/restore of the whole worktree ('.') : discards every unstaged change at once
34
+ if printf '%s' "$CMD" | grep -qE 'git[[:space:]]+(checkout|restore)[[:space:]]+(.*[[:space:]])?\.([[:space:]]|$)'; then
35
+ echo "BLOCKED: 'git checkout/restore .' discards every unstaged change in the worktree. Run 'git stash' first to keep a recoverable copy (restore a single file by naming it instead of '.')." >&2
36
+ exit 2
37
+ fi
38
+
39
+ exit 0
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "claude-code-kit"
7
- version = "0.10.0"
7
+ version = "0.11.2"
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"
@@ -383,6 +383,16 @@ For systems with async I/O or event loops (Node.js, Python asyncio, Go goroutine
383
383
  - Mock all I/O operations (database, HTTP, file system)
384
384
  - Use the test framework's async support (`async/await` in tests)
385
385
  - Never use blocking I/O in tests for async systems — mock it or use async equivalents
386
+ - **Wait on conditions, never on the clock.** A fixed delay ("sleep" to let the async work finish)
387
+ is the single biggest source of flaky tests — too short and it fails under load, too long and it
388
+ drags out the whole suite. Instead, **poll for the observable condition you actually care about**
389
+ (the value, state, or side effect) and continue the instant it holds:
390
+ - Use your framework's condition waiter — e.g. `waitFor` / `expect.poll` (JS), `Awaitility` (JVM),
391
+ `tenacity` or a polling fixture (Python), `Eventually` (Go) — or a small generic
392
+ `wait_for(condition, timeout)` that re-checks the live value on a short interval.
393
+ - Three mistakes that quietly re-introduce flakiness: (1) **no timeout** — the test hangs forever
394
+ instead of failing; (2) **interval too tight** — a busy-loop that pegs the CPU; (3) **stale
395
+ reads** — re-evaluate the live value on every poll, never assert against a snapshot captured once.
386
396
 
387
397
  ### Multi-Tenant/Authorization Systems
388
398
 
@@ -80,6 +80,21 @@ For detailed profiling and optimization, see `performance-optimization`. Does th
80
80
  - Any missing pagination on list endpoints?
81
81
  - Any large objects created in hot paths?
82
82
 
83
+ ## Where to Focus: Change Hotspots & Coupling
84
+
85
+ You can't give every line equal attention — on a large change or an unfamiliar codebase, spend the most scrutiny where defects actually cluster. The project's own git history surfaces this for free, no special tooling required:
86
+
87
+ - **Hotspots (churn × complexity).** Files that change *often* **and** are *large/complex* carry the most risk. List the frequently-changed files and weight review toward the complex ones among them — a rarely-touched file is usually stable, while a hotspot edited in *this* change deserves extra correctness and test scrutiny.
88
+ ```bash
89
+ # Most-churned files over the last 6 months — pair the top hits with their size/complexity
90
+ git log --since="6 months ago" --name-only --pretty=format: | sort | uniq -c | sort -rn | head -20
91
+ ```
92
+ Use the project's own complexity tooling if it has one; file size is only a rough proxy for complexity.
93
+ - **Co-change coupling (hidden dependencies).** Files historically committed together often share an implicit contract. If this change touches one side of a known pair but not the other, ask whether the coupled file also needs updating — `git log` on a changed file reveals what usually moves with it.
94
+ - **Single-owner / bus-factor files.** Code with one dominant author has had fewer eyes. Treat changes there with extra care and prefer a second reviewer.
95
+
96
+ These are deterministic signals an agent can derive from `git log` alone. If a codebase-intelligence MCP server is configured (e.g. the optional **repowise** server in the catalog), its `get_risk` / `get_health` tools surface the same hotspot, coupling, and change-risk signals precomputed — use them when available, but treat the output as **advisory input to your judgment, never a blocking gate**.
97
+
83
98
  ## Change Sizing
84
99
 
85
100
  Small, focused changes are easier to review, faster to merge, and safer to deploy. Target these sizes:
@@ -272,6 +287,7 @@ Part of code review is dependency review:
272
287
 
273
288
  ### Context
274
289
  - [ ] I understand what this change does and why
290
+ - [ ] For a large/unfamiliar change, I focused review on the riskiest files (hotspots, coupled files)
275
291
 
276
292
  ### Correctness
277
293
  - [ ] Change matches spec/task requirements
@@ -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.10.0"
10
+ __version__ = "0.11.2"
@@ -118,6 +118,12 @@ HOOK_REGISTRY: dict[str, dict[str, Any]] = {
118
118
  "entry": {"type": "command", "command": _PUSH_GUARD},
119
119
  "script": None,
120
120
  },
121
+ "guard-destructive-git": {
122
+ "event": "PreToolUse",
123
+ "matcher": "Bash",
124
+ "entry": _script_entry("guard-destructive-git.sh"),
125
+ "script": "guard-destructive-git.sh",
126
+ },
121
127
  "protect-secrets": {
122
128
  "event": "PreToolUse",
123
129
  "matcher": "Read",