claude-code-kit 0.26.0__tar.gz → 0.27.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 (520) hide show
  1. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/.claude-plugin/marketplace.json +1 -1
  2. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/.claude-plugin/plugin.json +1 -1
  3. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/CHANGELOG.md +47 -0
  4. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/PKG-INFO +4 -4
  5. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/README.md +3 -3
  6. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/security-reviewer.md +1 -1
  7. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/hooks.json +1 -1
  8. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/pyproject.toml +1 -1
  9. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/scripts/check_docs_consistency.py +7 -2
  10. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/design-patterns-and-conventions/SKILL.md +1 -1
  11. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/shannon-ai-pentest/SKILL.md +6 -7
  12. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/smoke-test/SKILL.md +1 -1
  13. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/zap-vapt-scanning/scripts/zap_vapt.py +11 -11
  14. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/src/claude_kit/__init__.py +1 -1
  15. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/src/claude_kit/hooks.py +5 -3
  16. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/src/claude_kit/scaffold.py +3 -0
  17. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/src/claude_kit/upgrader.py +8 -3
  18. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/src/claude_kit/validator.py +50 -11
  19. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +1 -1
  20. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/skills/repo-onboarding/SKILL.md +1 -1
  21. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/settings.json +1 -1
  22. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/.gitignore +0 -0
  23. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/CLAUDE.md +0 -0
  24. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/CONTRIBUTING.md +0 -0
  25. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/LICENSE +0 -0
  26. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/acceptance-reviewer.md +0 -0
  27. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/auditor.md +0 -0
  28. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/dependency-scanner.md +0 -0
  29. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/developer.md +0 -0
  30. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/devils-advocate.md +0 -0
  31. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/devops-engineer.md +0 -0
  32. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/e2e-tester.md +0 -0
  33. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/em-reviewer.md +0 -0
  34. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/incident-responder.md +0 -0
  35. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/merge-reviewer.md +0 -0
  36. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/observability-engineer.md +0 -0
  37. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/orchestrator.md +0 -0
  38. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/owasp-reviewer.md +0 -0
  39. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/policy-validator.md +0 -0
  40. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/pr-raiser.md +0 -0
  41. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/risk-classifier.md +0 -0
  42. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/sdlc-code-reviewer.md +0 -0
  43. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/secret-scanner.md +0 -0
  44. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/senior-backend-dev.md +0 -0
  45. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/senior-frontend-dev.md +0 -0
  46. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/senior-tester.md +0 -0
  47. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/spec-doc-writer.md +0 -0
  48. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/story-planner.md +0 -0
  49. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/technical-architect.md +0 -0
  50. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/tester.md +0 -0
  51. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/ui-designer.md +0 -0
  52. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/agents/unit-tester.md +0 -0
  53. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/catalog/capture.yaml +0 -0
  54. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/catalog/mcp.yaml +0 -0
  55. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/catalog/org.yaml +0 -0
  56. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/catalog/profiles.yaml +0 -0
  57. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/catalog/stacks.yaml +0 -0
  58. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/commands/abort.md +0 -0
  59. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/commands/init.md +0 -0
  60. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/commands/sdlc.md +0 -0
  61. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/commands/status.md +0 -0
  62. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/docs/agentic-patterns.md +0 -0
  63. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/docs/agents.md +0 -0
  64. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/docs/architecture.md +0 -0
  65. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/docs/coverage-audit.md +0 -0
  66. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/docs/eval-harness.md +0 -0
  67. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/docs/org-capabilities.md +0 -0
  68. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/docs/stack-skills/GAP-ANALYSIS.md +0 -0
  69. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/docs/stack-skills/README.md +0 -0
  70. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/docs/stack-skills/REPO-INVENTORY.md +0 -0
  71. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/audit-log.sh +0 -0
  72. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/capture-learnings.sh +0 -0
  73. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/guard-destructive-git.sh +0 -0
  74. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/guard-kubectl-delete.sh +0 -0
  75. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/guard-secrets.sh +0 -0
  76. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/lint-fix.sh +0 -0
  77. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/load-autonomy.sh +0 -0
  78. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/load-continuity.sh +0 -0
  79. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/load-learnings.sh +0 -0
  80. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/type-check.sh +0 -0
  81. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/validate-frontmatter.sh +0 -0
  82. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/validate-settings.sh +0 -0
  83. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/warn-large-edits.sh +0 -0
  84. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/warn-llm-io.sh +0 -0
  85. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/warn-missing-tests.sh +0 -0
  86. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
  87. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/hooks/scripts/warn-shared-modules.sh +0 -0
  88. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/agent-guardrails.md +0 -0
  89. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/agent-memory.md +0 -0
  90. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/agent-resilience.md +0 -0
  91. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/autonomy-levels.md +0 -0
  92. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/code-organization.md +0 -0
  93. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/continuity.md +0 -0
  94. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/design-patterns.md +0 -0
  95. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/devops-observability.md +0 -0
  96. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/documentation.md +0 -0
  97. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/evals.md +0 -0
  98. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/frontend-best-practices.md +0 -0
  99. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/goal-setting-and-monitoring.md +0 -0
  100. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/human-in-the-loop.md +0 -0
  101. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/linting-and-formatting.md +0 -0
  102. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/mandatory-workflow.md +0 -0
  103. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/model-tiers.md +0 -0
  104. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/quality-gates.md +0 -0
  105. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/rarv-cycle.md +0 -0
  106. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/reasoning-techniques.md +0 -0
  107. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/responsive-and-accessibility.md +0 -0
  108. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/risk-classification.md +0 -0
  109. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/testing.md +0 -0
  110. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/rules/tool-design.md +0 -0
  111. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/scripts/gen_hooks.py +0 -0
  112. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/scripts/init.sh +0 -0
  113. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/_references/accessibility-checklist.md +0 -0
  114. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/_references/orchestration-patterns.md +0 -0
  115. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/_references/performance-checklist.md +0 -0
  116. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/_references/security-checklist.md +0 -0
  117. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/_references/testing-patterns.md +0 -0
  118. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/accessibility-review/SKILL.md +0 -0
  119. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/alembic-migrations/README.md +0 -0
  120. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/alembic-migrations/SKILL.md +0 -0
  121. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/alembic-migrations/references/alembic-setup-and-env.md +0 -0
  122. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/alembic-migrations/references/async-and-multitenant-migrations.md +0 -0
  123. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/alembic-migrations/references/repo-evidence.md +0 -0
  124. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/alembic-migrations/references/troubleshooting-and-debugging.md +0 -0
  125. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/alembic-migrations/references/writing-migrations.md +0 -0
  126. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/anthropic-vertex-integration/README.md +0 -0
  127. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/anthropic-vertex-integration/SKILL.md +0 -0
  128. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/anthropic-vertex-integration/references/generate-helpers-and-retry.md +0 -0
  129. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/anthropic-vertex-integration/references/repo-evidence.md +0 -0
  130. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/anthropic-vertex-integration/references/vertex-client-and-auth.md +0 -0
  131. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/api-and-interface-design/SKILL.md +0 -0
  132. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/api-integration/SKILL.md +0 -0
  133. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/api-pagination-filtering-sorting/README.md +0 -0
  134. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/api-pagination-filtering-sorting/SKILL.md +0 -0
  135. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/api-pagination-filtering-sorting/references/query-params-conventions.md +0 -0
  136. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/api-pagination-filtering-sorting/references/repo-evidence.md +0 -0
  137. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/api-pagination-filtering-sorting/references/response-metadata.md +0 -0
  138. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/archive-sprint/SKILL.md +0 -0
  139. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/async-python-patterns/README.md +0 -0
  140. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/async-python-patterns/SKILL.md +0 -0
  141. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/async-python-patterns/references/async-boundaries.md +0 -0
  142. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/async-python-patterns/references/lifecycle-and-gather.md +0 -0
  143. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/async-python-patterns/references/repo-evidence.md +0 -0
  144. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/auth-and-rbac/README.md +0 -0
  145. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/auth-and-rbac/SKILL.md +0 -0
  146. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/auth-and-rbac/references/auth-dependencies.md +0 -0
  147. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/auth-and-rbac/references/rbac-and-permissions.md +0 -0
  148. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/auth-and-rbac/references/repo-evidence.md +0 -0
  149. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/auth-and-rbac/references/security-hardening.md +0 -0
  150. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/auth-and-rbac/references/tokens-and-hashing.md +0 -0
  151. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/backend-repo-architecture/README.md +0 -0
  152. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/backend-repo-architecture/SKILL.md +0 -0
  153. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/backend-repo-architecture/references/deployment-patterns.md +0 -0
  154. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/backend-repo-architecture/references/entrypoint-and-config.md +0 -0
  155. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/backend-repo-architecture/references/repo-evidence.md +0 -0
  156. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/backend-repo-architecture/references/structure-patterns.md +0 -0
  157. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/backend-repo-architecture/references/troubleshooting.md +0 -0
  158. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/backlog/SKILL.md +0 -0
  159. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/backlog/item-template.md +0 -0
  160. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
  161. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/bug-hunt/SKILL.md +0 -0
  162. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
  163. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/code-review-and-quality/SKILL.md +0 -0
  164. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/code-simplification/SKILL.md +0 -0
  165. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/component-design/SKILL.md +0 -0
  166. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/configargparse-yaml-env-layering/README.md +0 -0
  167. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/configargparse-yaml-env-layering/SKILL.md +0 -0
  168. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/configargparse-yaml-env-layering/references/config-layering-anatomy.md +0 -0
  169. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/configargparse-yaml-env-layering/references/mode-dispatch-and-precedence.md +0 -0
  170. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/configargparse-yaml-env-layering/references/repo-evidence.md +0 -0
  171. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/consolidate-learnings/SKILL.md +0 -0
  172. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/containerization-and-deployment/README.md +0 -0
  173. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/containerization-and-deployment/SKILL.md +0 -0
  174. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/containerization-and-deployment/references/deployment-and-secrets.md +0 -0
  175. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/containerization-and-deployment/references/dockerfile-and-compose.md +0 -0
  176. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/containerization-and-deployment/references/entrypoint-and-modes.md +0 -0
  177. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/containerization-and-deployment/references/kerberos-kinit-bootstrap.md +0 -0
  178. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/containerization-and-deployment/references/makefile-dev-workflow.md +0 -0
  179. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/containerization-and-deployment/references/repo-evidence.md +0 -0
  180. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/context-engineering/SKILL.md +0 -0
  181. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/cron-and-scheduled-jobs/README.md +0 -0
  182. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/cron-and-scheduled-jobs/SKILL.md +0 -0
  183. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/cron-and-scheduled-jobs/references/choosing-and-operations.md +0 -0
  184. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/cron-and-scheduled-jobs/references/kubernetes-cronjob.md +0 -0
  185. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/cron-and-scheduled-jobs/references/repo-evidence.md +0 -0
  186. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/cron-and-scheduled-jobs/references/temporal-schedules.md +0 -0
  187. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/data-engineering-bigquery-gcs/README.md +0 -0
  188. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/data-engineering-bigquery-gcs/SKILL.md +0 -0
  189. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/data-engineering-bigquery-gcs/references/bigquery-advanced-patterns.md +0 -0
  190. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/data-engineering-bigquery-gcs/references/bigquery-gcs-io.md +0 -0
  191. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/data-engineering-bigquery-gcs/references/medallion-architecture.md +0 -0
  192. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/data-engineering-bigquery-gcs/references/repo-evidence.md +0 -0
  193. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/data-engineering-bigquery-gcs/references/temp-table-merge-pattern.md +0 -0
  194. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
  195. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/decision/SKILL.md +0 -0
  196. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/decision/adr-template.md +0 -0
  197. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/deprecation-and-migration/SKILL.md +0 -0
  198. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/design-patterns-and-conventions/README.md +0 -0
  199. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/design-patterns-and-conventions/references/anti-patterns.md +0 -0
  200. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/design-patterns-and-conventions/references/naming-and-layout.md +0 -0
  201. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/design-patterns-and-conventions/references/patterns-catalog.md +0 -0
  202. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/design-patterns-and-conventions/references/repo-evidence.md +0 -0
  203. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/design-patterns-and-conventions/references/testing-patterns.md +0 -0
  204. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/design-patterns-and-conventions/references/troubleshooting.md +0 -0
  205. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/docker-compose/README.md +0 -0
  206. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/docker-compose/SKILL.md +0 -0
  207. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/docker-compose/references/compose-services-and-healthchecks.md +0 -0
  208. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/docker-compose/references/dev-vs-prod-variants.md +0 -0
  209. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/docker-compose/references/repo-evidence.md +0 -0
  210. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/docker-shared/README.md +0 -0
  211. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/docker-shared/SKILL.md +0 -0
  212. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/docker-shared/references/dockerignore-and-build-secrets.md +0 -0
  213. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/docker-shared/references/repo-evidence.md +0 -0
  214. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/docker-shared/references/shared-base-images.md +0 -0
  215. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/docker-shared/references/shared-compose-fragments.md +0 -0
  216. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/dockerfile-backend/README.md +0 -0
  217. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/dockerfile-backend/SKILL.md +0 -0
  218. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/dockerfile-backend/references/backend-dockerfile-anatomy.md +0 -0
  219. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/dockerfile-backend/references/repo-evidence.md +0 -0
  220. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/dockerfile-backend/references/system-deps-and-caching.md +0 -0
  221. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/dockerfile-frontend/README.md +0 -0
  222. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/dockerfile-frontend/SKILL.md +0 -0
  223. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/dockerfile-frontend/references/build-args-and-nginx.md +0 -0
  224. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/dockerfile-frontend/references/frontend-dockerfile-anatomy.md +0 -0
  225. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/dockerfile-frontend/references/repo-evidence.md +0 -0
  226. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/documentation-and-adrs/SKILL.md +0 -0
  227. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/doubt-driven-development/SKILL.md +0 -0
  228. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/edge-to-service-trust-boundary/README.md +0 -0
  229. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/edge-to-service-trust-boundary/SKILL.md +0 -0
  230. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/edge-to-service-trust-boundary/references/repo-evidence.md +0 -0
  231. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/edge-to-service-trust-boundary/references/trust-contract.md +0 -0
  232. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/execute/SKILL.md +0 -0
  233. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/fastapi-service-patterns/README.md +0 -0
  234. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/fastapi-service-patterns/SKILL.md +0 -0
  235. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/fastapi-service-patterns/references/api-versioning.md +0 -0
  236. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/fastapi-service-patterns/references/app-factory-and-lifespan.md +0 -0
  237. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/fastapi-service-patterns/references/custom-route-and-middleware.md +0 -0
  238. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/fastapi-service-patterns/references/dependency-injection.md +0 -0
  239. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/fastapi-service-patterns/references/model-and-serialization-patterns.md +0 -0
  240. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/fastapi-service-patterns/references/repo-evidence.md +0 -0
  241. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/file-export-and-reporting/README.md +0 -0
  242. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/file-export-and-reporting/SKILL.md +0 -0
  243. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/file-export-and-reporting/references/excel-generation.md +0 -0
  244. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/file-export-and-reporting/references/repo-evidence.md +0 -0
  245. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/file-export-and-reporting/references/streaming-and-downloads.md +0 -0
  246. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/frontend-repo-architecture/README.md +0 -0
  247. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/frontend-repo-architecture/SKILL.md +0 -0
  248. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/frontend-repo-architecture/references/api-layer-and-types.md +0 -0
  249. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/frontend-repo-architecture/references/divergences.md +0 -0
  250. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/frontend-repo-architecture/references/repo-evidence.md +0 -0
  251. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/frontend-repo-architecture/references/structure-and-state.md +0 -0
  252. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/frontend-repo-architecture/references/testing-patterns.md +0 -0
  253. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
  254. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/gcp-cloud-run-github-actions/README.md +0 -0
  255. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/gcp-cloud-run-github-actions/SKILL.md +0 -0
  256. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/gcp-cloud-run-github-actions/references/cloud-run-deploy.md +0 -0
  257. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/gcp-cloud-run-github-actions/references/repo-evidence.md +0 -0
  258. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/gcp-cloud-run-github-actions/references/workflow-structure.md +0 -0
  259. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/gcs-file-storage-patterns/README.md +0 -0
  260. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/gcs-file-storage-patterns/SKILL.md +0 -0
  261. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/gcs-file-storage-patterns/references/client-and-uploads.md +0 -0
  262. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/gcs-file-storage-patterns/references/repo-evidence.md +0 -0
  263. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/gcs-file-storage-patterns/references/signed-urls-and-reads.md +0 -0
  264. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
  265. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/grafana-dashboards-and-alerts/README.md +0 -0
  266. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/grafana-dashboards-and-alerts/SKILL.md +0 -0
  267. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/grafana-dashboards-and-alerts/references/dashboard-json-and-templating.md +0 -0
  268. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/grafana-dashboards-and-alerts/references/provisioning-and-organization.md +0 -0
  269. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/grafana-dashboards-and-alerts/references/red-metrics-queries.md +0 -0
  270. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/grafana-dashboards-and-alerts/references/repo-evidence.md +0 -0
  271. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/grafana-dashboards-and-alerts/references/unified-alerting.md +0 -0
  272. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/graphql-patterns/README.md +0 -0
  273. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/graphql-patterns/SKILL.md +0 -0
  274. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/graphql-patterns/references/apollo-client-frontend.md +0 -0
  275. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/graphql-patterns/references/apollo-client-setup.md +0 -0
  276. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/graphql-patterns/references/repo-evidence.md +0 -0
  277. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/graphql-patterns/references/strawberry-backend.md +0 -0
  278. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/graphql-patterns/references/when-to-use-graphql.md +0 -0
  279. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/idea-refine/SKILL.md +0 -0
  280. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/idea-refine/examples.md +0 -0
  281. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/idea-refine/frameworks.md +0 -0
  282. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/idea-refine/refinement-criteria.md +0 -0
  283. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
  284. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/incident-postmortem/SKILL.md +0 -0
  285. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/incremental-implementation/SKILL.md +0 -0
  286. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/interview-me/SKILL.md +0 -0
  287. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kafka-config-driven/README.md +0 -0
  288. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kafka-config-driven/SKILL.md +0 -0
  289. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kafka-config-driven/references/config-and-sasl-kerberos.md +0 -0
  290. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kafka-config-driven/references/consumer-producer-patterns.md +0 -0
  291. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kafka-config-driven/references/repo-evidence.md +0 -0
  292. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kafka-config-driven/references/troubleshooting-and-patterns.md +0 -0
  293. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kubectl-operations/README.md +0 -0
  294. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kubectl-operations/SKILL.md +0 -0
  295. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kubectl-operations/references/command-reference.md +0 -0
  296. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kubectl-operations/references/context-namespace-rbac.md +0 -0
  297. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kubectl-operations/references/debugging-playbooks.md +0 -0
  298. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kubectl-operations/references/output-formats-and-selectors.md +0 -0
  299. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kubectl-operations/references/repo-evidence.md +0 -0
  300. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kubernetes-workload-hardening/README.md +0 -0
  301. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kubernetes-workload-hardening/SKILL.md +0 -0
  302. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kubernetes-workload-hardening/references/networkpolicy-and-rbac.md +0 -0
  303. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kubernetes-workload-hardening/references/repo-evidence.md +0 -0
  304. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/kubernetes-workload-hardening/references/securitycontext-and-podsecurity.md +0 -0
  305. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/langfuse-llm-tracing/README.md +0 -0
  306. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/langfuse-llm-tracing/SKILL.md +0 -0
  307. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/langfuse-llm-tracing/references/langfuse-client-and-tracing.md +0 -0
  308. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/langfuse-llm-tracing/references/python-and-typescript.md +0 -0
  309. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/langfuse-llm-tracing/references/repo-evidence.md +0 -0
  310. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/load-testing/SKILL.md +0 -0
  311. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/manual-test/SKILL.md +0 -0
  312. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/modernization-and-migration/README.md +0 -0
  313. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/modernization-and-migration/SKILL.md +0 -0
  314. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/modernization-and-migration/references/migration-best-practices.md +0 -0
  315. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/modernization-and-migration/references/pydantic-v1-to-v2.md +0 -0
  316. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/modernization-and-migration/references/repo-evidence.md +0 -0
  317. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/modernization-and-migration/references/shared-internal-library.md +0 -0
  318. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/modernization-and-migration/references/sqlalchemy-14-to-20.md +0 -0
  319. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/multi-tenancy-patterns/README.md +0 -0
  320. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/multi-tenancy-patterns/SKILL.md +0 -0
  321. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/multi-tenancy-patterns/references/caching-patterns.md +0 -0
  322. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/multi-tenancy-patterns/references/isolation-strategies.md +0 -0
  323. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/multi-tenancy-patterns/references/repo-evidence.md +0 -0
  324. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/multi-tenancy-patterns/references/tenant-resolution.md +0 -0
  325. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/node-express-service/README.md +0 -0
  326. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/node-express-service/SKILL.md +0 -0
  327. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/node-express-service/references/app-factory-and-mode-dispatch.md +0 -0
  328. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/node-express-service/references/config-and-module-alias.md +0 -0
  329. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/node-express-service/references/middleware-patterns.md +0 -0
  330. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/node-express-service/references/repo-evidence.md +0 -0
  331. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/node-objection-knex/README.md +0 -0
  332. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/node-objection-knex/SKILL.md +0 -0
  333. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/node-objection-knex/references/migrations-and-validation.md +0 -0
  334. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/node-objection-knex/references/objection-model-and-knex.md +0 -0
  335. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/node-objection-knex/references/repo-evidence.md +0 -0
  336. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/notifications-and-messaging/README.md +0 -0
  337. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/notifications-and-messaging/SKILL.md +0 -0
  338. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/notifications-and-messaging/references/provider-abstraction.md +0 -0
  339. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/notifications-and-messaging/references/repo-evidence.md +0 -0
  340. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/notifications-and-messaging/references/templates-and-fallback.md +0 -0
  341. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/observability-and-logging/README.md +0 -0
  342. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/observability-and-logging/SKILL.md +0 -0
  343. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/observability-and-logging/references/health-and-readiness.md +0 -0
  344. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/observability-and-logging/references/logging-and-structlog.md +0 -0
  345. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/observability-and-logging/references/outbound-metrics-and-multi-mode.md +0 -0
  346. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/observability-and-logging/references/pii-redaction.md +0 -0
  347. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/observability-and-logging/references/repo-evidence.md +0 -0
  348. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/observability-and-logging/references/tracing-and-metrics.md +0 -0
  349. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/over-engineering-review/SKILL.md +0 -0
  350. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/performance-optimization/SKILL.md +0 -0
  351. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
  352. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/playwright-verification/SKILL.md +0 -0
  353. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/pydantic-schema-patterns/README.md +0 -0
  354. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/pydantic-schema-patterns/SKILL.md +0 -0
  355. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/pydantic-schema-patterns/references/repo-evidence.md +0 -0
  356. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/pydantic-schema-patterns/references/settings-and-validation.md +0 -0
  357. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/pydantic-schema-patterns/references/troubleshooting-and-common-errors.md +0 -0
  358. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/pydantic-schema-patterns/references/v1-vs-v2.md +0 -0
  359. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/python-dao-and-database/README.md +0 -0
  360. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/python-dao-and-database/SKILL.md +0 -0
  361. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/python-dao-and-database/references/advanced-query-patterns.md +0 -0
  362. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/python-dao-and-database/references/basedao-and-sessions.md +0 -0
  363. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/python-dao-and-database/references/mongodb-advanced.md +0 -0
  364. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/python-dao-and-database/references/other-db-mongodb.md +0 -0
  365. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/python-dao-and-database/references/repo-evidence.md +0 -0
  366. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/python-dao-and-database/references/sqlalchemy-1x-vs-2x.md +0 -0
  367. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/radix-tailwind-component-patterns/README.md +0 -0
  368. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/radix-tailwind-component-patterns/SKILL.md +0 -0
  369. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/radix-tailwind-component-patterns/references/radix-primitives-and-variants.md +0 -0
  370. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/radix-tailwind-component-patterns/references/repo-evidence.md +0 -0
  371. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/radix-tailwind-component-patterns/references/tailwind-theme-and-cn.md +0 -0
  372. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/react-hook-form-zod-patterns/README.md +0 -0
  373. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/react-hook-form-zod-patterns/SKILL.md +0 -0
  374. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/react-hook-form-zod-patterns/references/form-setup-and-zod.md +0 -0
  375. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/react-hook-form-zod-patterns/references/multi-step-and-modes.md +0 -0
  376. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/react-hook-form-zod-patterns/references/repo-evidence.md +0 -0
  377. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/redis-caching-patterns/README.md +0 -0
  378. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/redis-caching-patterns/SKILL.md +0 -0
  379. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/redis-caching-patterns/references/cache-manager-and-fallback.md +0 -0
  380. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/redis-caching-patterns/references/namespacing-and-invalidation.md +0 -0
  381. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/redis-caching-patterns/references/repo-evidence.md +0 -0
  382. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/refresh-docs/SKILL.md +0 -0
  383. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/remember/SKILL.md +0 -0
  384. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/scope/SKILL.md +0 -0
  385. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/scope/scope-template.md +0 -0
  386. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/sdlc/SKILL.md +0 -0
  387. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/security-and-hardening/SKILL.md +0 -0
  388. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/security-verification/SKILL.md +0 -0
  389. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/shannon-ai-pentest/README.md +0 -0
  390. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/shannon-ai-pentest/references/operating-guide.md +0 -0
  391. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/shipping-and-launch/SKILL.md +0 -0
  392. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/simplification-debt/SKILL.md +0 -0
  393. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/source-driven-development/SKILL.md +0 -0
  394. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/spec-driven-development/SKILL.md +0 -0
  395. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/sprint/SKILL.md +0 -0
  396. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/sprint/sprint-template.md +0 -0
  397. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/tanstack-react-query-patterns/README.md +0 -0
  398. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/tanstack-react-query-patterns/SKILL.md +0 -0
  399. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/tanstack-react-query-patterns/references/mutations-and-cache.md +0 -0
  400. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/tanstack-react-query-patterns/references/query-keys-and-hooks.md +0 -0
  401. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/tanstack-react-query-patterns/references/repo-evidence.md +0 -0
  402. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/task-tracker-sync/SKILL.md +0 -0
  403. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/temporal-config-driven/README.md +0 -0
  404. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/temporal-config-driven/SKILL.md +0 -0
  405. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/temporal-config-driven/references/config-and-retry-idempotency.md +0 -0
  406. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/temporal-config-driven/references/dag-dsl-interpreter.md +0 -0
  407. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/temporal-config-driven/references/repo-evidence.md +0 -0
  408. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/temporal-config-driven/references/schedule-registration.md +0 -0
  409. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/temporal-config-driven/references/schedules-and-cron.md +0 -0
  410. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/temporal-config-driven/references/worker-workflow-activity-patterns.md +0 -0
  411. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/test-driven-development/SKILL.md +0 -0
  412. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/test-plan-review/SKILL.md +0 -0
  413. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/testing-conventions/README.md +0 -0
  414. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/testing-conventions/SKILL.md +0 -0
  415. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/testing-conventions/references/async-and-mocking.md +0 -0
  416. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/testing-conventions/references/coverage-gap-and-recommendations.md +0 -0
  417. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/testing-conventions/references/github-actions-test-orchestration.md +0 -0
  418. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/testing-conventions/references/pytest-and-fixtures.md +0 -0
  419. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/testing-conventions/references/pytest-asyncio-modes.md +0 -0
  420. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/testing-conventions/references/repo-evidence.md +0 -0
  421. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/testing-conventions/references/security-regression-tests.md +0 -0
  422. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/testing-conventions/references/vitest-frontend-testing.md +0 -0
  423. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/threat-model/SKILL.md +0 -0
  424. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/triage/SKILL.md +0 -0
  425. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/ui-ux-design/SKILL.md +0 -0
  426. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/unit-test/SKILL.md +0 -0
  427. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/using-agent-skills/SKILL.md +0 -0
  428. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/vitest-rtl-msw-patterns/README.md +0 -0
  429. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/vitest-rtl-msw-patterns/SKILL.md +0 -0
  430. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/vitest-rtl-msw-patterns/references/msw-and-contract-tests.md +0 -0
  431. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/vitest-rtl-msw-patterns/references/repo-evidence.md +0 -0
  432. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/vitest-rtl-msw-patterns/references/vitest-rtl-setup.md +0 -0
  433. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/zap-vapt-scanning/README.md +0 -0
  434. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/zap-vapt-scanning/SKILL.md +0 -0
  435. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/zap-vapt-scanning/references/operating-guide.md +0 -0
  436. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/zap-vapt-scanning/scripts/endpoints.example.txt +0 -0
  437. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/zap-vapt-scanning/scripts/requirements.txt +0 -0
  438. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/zustand-state-patterns/README.md +0 -0
  439. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/zustand-state-patterns/SKILL.md +0 -0
  440. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/zustand-state-patterns/references/async-polling-and-persistence.md +0 -0
  441. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/zustand-state-patterns/references/repo-evidence.md +0 -0
  442. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/skills/zustand-state-patterns/references/store-structure-and-selectors.md +0 -0
  443. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/src/claude_kit/__main__.py +0 -0
  444. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/src/claude_kit/catalog.py +0 -0
  445. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/src/claude_kit/cli.py +0 -0
  446. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/src/claude_kit/models.py +0 -0
  447. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/src/claude_kit/pipeline.py +0 -0
  448. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/src/claude_kit/prompts.py +0 -0
  449. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/src/claude_kit/render.py +0 -0
  450. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/CLAUDE.md +0 -0
  451. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/CLAUDE.stack.md.tmpl +0 -0
  452. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/CONTINUITY.template.md +0 -0
  453. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/README.claude-sdlc.md.tmpl +0 -0
  454. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/agent-memory/MEMORY.md +0 -0
  455. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/agent-memory/api/.gitkeep +0 -0
  456. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/agent-memory/architecture/.gitkeep +0 -0
  457. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/agent-memory/debugging/.gitkeep +0 -0
  458. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
  459. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/agent-memory/patterns/.gitkeep +0 -0
  460. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/agent-memory/performance/.gitkeep +0 -0
  461. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/artifacts/adr.md +0 -0
  462. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/artifacts/api-change-report.md +0 -0
  463. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/artifacts/feature-spec.md +0 -0
  464. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/artifacts/release-plan.md +0 -0
  465. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/artifacts/runbook.md +0 -0
  466. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/artifacts/security-review.md +0 -0
  467. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/artifacts/test-plan.md +0 -0
  468. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/README.md +0 -0
  469. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/agents/data-workflow-agent.md +0 -0
  470. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/agents/founder-prototype-agent.md +0 -0
  471. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/agents/internal-tools-builder.md +0 -0
  472. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/agents/pm-copilot.md +0 -0
  473. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/agents/staff-pm-reviewer.md +0 -0
  474. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/agents/support-ticket-engineer.md +0 -0
  475. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/devops-and-release/README.md +0 -0
  476. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
  477. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/engineering-core/README.md +0 -0
  478. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
  479. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
  480. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
  481. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
  482. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
  483. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/product-to-code/README.md +0 -0
  484. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
  485. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/quality-and-review/README.md +0 -0
  486. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
  487. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/security-and-compliance/README.md +0 -0
  488. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
  489. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/rules/ai-working-agreement.md +0 -0
  490. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/rules/ambiguity-resolution.md +0 -0
  491. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
  492. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/rules/compliance-policy.md +0 -0
  493. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
  494. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/rules/pii-policy.md +0 -0
  495. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/rules/production-data-policy.md +0 -0
  496. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
  497. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/rules/prototype-boundaries.md +0 -0
  498. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/rules/secrets-policy.md +0 -0
  499. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
  500. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
  501. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
  502. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/skills/review-scope/SKILL.md +0 -0
  503. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/skills/review-sprint/SKILL.md +0 -0
  504. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/skills/review-sprint-plan/SKILL.md +0 -0
  505. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/org/skills/review-ux-flow/SKILL.md +0 -0
  506. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/backend/go/net-http/rules/go-patterns.md +0 -0
  507. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
  508. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
  509. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
  510. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
  511. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
  512. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
  513. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
  514. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
  515. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
  516. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/frontend/react/rules/design-system-compliance.md +0 -0
  517. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/frontend/react/rules/mobile-design-guidelines.md +0 -0
  518. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/frontend/react/rules/react-patterns.md +0 -0
  519. {claude_code_kit-0.26.0 → claude_code_kit-0.27.0}/templates/stacks/frontend/react/rules/ui-design-system.md +0 -0
  520. {claude_code_kit-0.26.0 → claude_code_kit-0.27.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.26.0",
13
+ "version": "0.27.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.26.0",
3
+ "version": "0.27.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,53 @@ 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.27.0] — 2026-06-24
8
+
9
+ **Objective fixes from a product review: honest skill counts (with a guard), drift-aware
10
+ `doctor`/`validate`, and a distinct corrupt-vs-missing manifest signal.**
11
+
12
+ ### Added
13
+ - **`validate`/`doctor` now surface kit-owned drift.** They already verified that every tracked file
14
+ is *present*; they now also compare each kit/overlay file's live SHA-256 against the install
15
+ manifest and emit `N kit-owned file(s) modified since install … run claude-kit diff` (a WARN, never
16
+ a FAIL — edits to user-editable files are not flagged). The manifest data already existed; only
17
+ `diff`/`upgrade` consulted it before.
18
+
19
+ ### Changed
20
+ - **Honest skill counts.** The README advertised "51 skills" — the count of *core* skills only, while
21
+ the repo ships **96** (51 stack-agnostic core + 45 stack-collection). All three occurrences now read
22
+ "96 … (51 core + 45 stack-collection)", and `check_docs_consistency.py` pins the headline total
23
+ **and** both halves to the filesystem so the number can't silently drift again.
24
+ - **Corrupt vs missing `init-options.json` are now distinct signals.** A missing manifest stays a WARN
25
+ ("validate/upgrade limited"); a *corrupt* one is a FAIL ("unreadable … repair the JSON or re-run
26
+ `claude-kit init --force`") in `validate`, `doctor`, `diff`, and `upgrade` — matching how the kit
27
+ already reports a malformed `settings.json`/`.mcp.json`.
28
+
29
+ ## [0.26.1] — 2026-06-24
30
+
31
+ **A second strict practical review (installed and exercised end-to-end) surfaced seven papercuts on
32
+ top of 0.26.0 — all bug fixes and polish, no behavior change for existing configs.**
33
+
34
+ ### Changed
35
+ - **The destructive-delete guard is no longer order-dependent.** The previous regex only matched
36
+ `r…f` order, so `rm -fr`, `rm -r -f`, `rm -Rf`, and `rm --recursive --force` slipped through. It now
37
+ blocks any invocation that combines a recursive flag **and** a force flag in any order or spelling
38
+ (incl. `-R` and long flags); the plugin `hooks.json` and starter `settings.json` were regenerated
39
+ from the registry. New functional tests fire JSON payloads through the guard to lock the behavior in.
40
+ - **CI lints shipped skill Python** (`ruff check … skills`), so future skill scripts are covered;
41
+ `zap_vapt.py` import ordering was fixed to match.
42
+
43
+ ### Fixed
44
+ - **Upgrade artifacts are now gitignored.** `claude-kit upgrade` writes `.claude-kit.bak-*/` backup
45
+ dirs and `*.claude-kit` sidecars; a scaffolded `.gitignore` now lists both so `git add -A` never
46
+ commits a backup.
47
+ - **Frontmatter hygiene, swept across every component.** Two skill descriptions over the 1024-char cap
48
+ (`design-patterns-and-conventions`, `shannon-ai-pentest`) were trimmed; `security-reviewer` and two
49
+ `templates/org` skills (`prompt-to-safe-task`, `repo-onboarding`) had unquoted `: ` scalars that
50
+ fail strict YAML and are now quoted; `smoke-test`'s `argument-hint` is a valid YAML string. A new
51
+ `tests/test_frontmatter.py` parses every shipped agent/command/skill under strict YAML and enforces
52
+ the description cap, so these regress loudly.
53
+
7
54
  ## [0.26.0] — 2026-06-24
8
55
 
9
56
  **Post-hardening follow-up: two correctness/security fixes plus polish, all from a verified review
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-kit
3
- Version: 0.26.0
3
+ Version: 0.27.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
@@ -81,7 +81,7 @@ Quick start) for the full breakdown of any row.
81
81
  | 🔁 **Pipeline & quality gates** | Gate-enforced progression (zero open Critical/High/Medium to advance), per-profile gate sets, a fast-track for small changes, and an anti-sycophancy `devils-advocate` pass |
82
82
  | 🤖 **Agent roster** | **28** tiered agents + per-database overlays + **6** org personas, led by an Orchestrator that never writes code |
83
83
  | 🔍 **Self-verification & review** | RARV green-Verify (real commands, not imagined), blind parallel review, and read-only risk classification |
84
- | 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **51** context-activated skills |
84
+ | 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **96** context-activated skills (51 core + 45 stack-collection) |
85
85
  | 🧱 **Stacks & overlays** | Stack-agnostic core + **10** overlay rule sets (React · FastAPI · Go · Postgres · Mongo) wired to your exact commands, incl. a full React design system |
86
86
  | 🎚️ **Profiles, scopes & org** | **3** rigor profiles · **3** scopes · **5** autonomy levels · **7** org packs + **10** policy rules |
87
87
  | 🧠 **Memory & learning** | Working memory across context compaction + a cost-aware learnings loop (`capture_mode`) so the same mistake isn't repeated |
@@ -258,7 +258,7 @@ need.
258
258
  - **23 stack-agnostic core rules** in [`rules/`](rules/) — `mandatory-workflow`, `quality-gates`,
259
259
  `rarv-cycle`, `continuity`, plus eight agent-operation rules and `autonomy-levels` +
260
260
  `risk-classification` (see [`docs/agentic-patterns.md`](docs/agentic-patterns.md)).
261
- - **51 on-demand skills** in [`skills/`](skills/) — spec-driven dev, planning, TDD, debugging, code
261
+ - **96 on-demand skills** in [`skills/`](skills/) (51 core + 45 stack-collection) — spec-driven dev, planning, TDD, debugging, code
262
262
  review, threat modeling, and more — activated by context and led by the `sdlc` entrypoint.
263
263
  - **Profile-subset install** — each profile installs a strict subset of agents, skills, hooks, and
264
264
  rules (`lean ⊂ standard ⊂ enterprise`), from fast track to full audit.
@@ -496,7 +496,7 @@ It is **not** a runtime, an orchestration engine, or a code library. That framin
496
496
  | **[wshobson/agents](https://github.com/wshobson/agents)** & similar agent collections | Large libraries of individual subagent prompts you pick from | claude-kit ships a **smaller, opinionated set wired into a sequenced pipeline with owned quality gates** — agents aren't a menu, they're stages that hand off and block on each other. Adopt-by-reuse, not by accumulation. |
497
497
  | **[GitHub spec-kit](https://github.com/github/spec-kit)** | A spec-driven workflow (constitution → spec → tasks → analyze) | claude-kit **absorbed spec-kit's coverage-gate idea** (the `story-planner` 1f gate + `task-tracker-sync`) into a **broader** lifecycle that also covers review, security, build, test, release, and observability gates. Complementary, wider scope. |
498
498
  | **claude-flow / multi-agent runtimes** | Runtime orchestrators that *execute* swarms of agents | claude-kit produces **portable configuration**, not a running process — the orchestration is described in rules the host (Claude Code) executes. No daemon, no lock-in, no app code. |
499
- | **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | claude-kit is a **catalog-driven generator**: it resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 51 skills, gates, and hooks, and keeps them **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
499
+ | **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | claude-kit is a **catalog-driven generator**: it resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 96 skills, gates, and hooks, and keeps them **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
500
500
 
501
501
  **Choose claude-kit when** you want a consistent, reviewable, **gate-enforced** autonomous-SDLC setup
502
502
  that's the same across every repo and stack, installs in seconds, ships nothing you have to run, and
@@ -51,7 +51,7 @@ Quick start) for the full breakdown of any row.
51
51
  | 🔁 **Pipeline & quality gates** | Gate-enforced progression (zero open Critical/High/Medium to advance), per-profile gate sets, a fast-track for small changes, and an anti-sycophancy `devils-advocate` pass |
52
52
  | 🤖 **Agent roster** | **28** tiered agents + per-database overlays + **6** org personas, led by an Orchestrator that never writes code |
53
53
  | 🔍 **Self-verification & review** | RARV green-Verify (real commands, not imagined), blind parallel review, and read-only risk classification |
54
- | 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **51** context-activated skills |
54
+ | 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **96** context-activated skills (51 core + 45 stack-collection) |
55
55
  | 🧱 **Stacks & overlays** | Stack-agnostic core + **10** overlay rule sets (React · FastAPI · Go · Postgres · Mongo) wired to your exact commands, incl. a full React design system |
56
56
  | 🎚️ **Profiles, scopes & org** | **3** rigor profiles · **3** scopes · **5** autonomy levels · **7** org packs + **10** policy rules |
57
57
  | 🧠 **Memory & learning** | Working memory across context compaction + a cost-aware learnings loop (`capture_mode`) so the same mistake isn't repeated |
@@ -228,7 +228,7 @@ need.
228
228
  - **23 stack-agnostic core rules** in [`rules/`](rules/) — `mandatory-workflow`, `quality-gates`,
229
229
  `rarv-cycle`, `continuity`, plus eight agent-operation rules and `autonomy-levels` +
230
230
  `risk-classification` (see [`docs/agentic-patterns.md`](docs/agentic-patterns.md)).
231
- - **51 on-demand skills** in [`skills/`](skills/) — spec-driven dev, planning, TDD, debugging, code
231
+ - **96 on-demand skills** in [`skills/`](skills/) (51 core + 45 stack-collection) — spec-driven dev, planning, TDD, debugging, code
232
232
  review, threat modeling, and more — activated by context and led by the `sdlc` entrypoint.
233
233
  - **Profile-subset install** — each profile installs a strict subset of agents, skills, hooks, and
234
234
  rules (`lean ⊂ standard ⊂ enterprise`), from fast track to full audit.
@@ -466,7 +466,7 @@ It is **not** a runtime, an orchestration engine, or a code library. That framin
466
466
  | **[wshobson/agents](https://github.com/wshobson/agents)** & similar agent collections | Large libraries of individual subagent prompts you pick from | claude-kit ships a **smaller, opinionated set wired into a sequenced pipeline with owned quality gates** — agents aren't a menu, they're stages that hand off and block on each other. Adopt-by-reuse, not by accumulation. |
467
467
  | **[GitHub spec-kit](https://github.com/github/spec-kit)** | A spec-driven workflow (constitution → spec → tasks → analyze) | claude-kit **absorbed spec-kit's coverage-gate idea** (the `story-planner` 1f gate + `task-tracker-sync`) into a **broader** lifecycle that also covers review, security, build, test, release, and observability gates. Complementary, wider scope. |
468
468
  | **claude-flow / multi-agent runtimes** | Runtime orchestrators that *execute* swarms of agents | claude-kit produces **portable configuration**, not a running process — the orchestration is described in rules the host (Claude Code) executes. No daemon, no lock-in, no app code. |
469
- | **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | claude-kit is a **catalog-driven generator**: it resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 51 skills, gates, and hooks, and keeps them **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
469
+ | **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | claude-kit is a **catalog-driven generator**: it resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 96 skills, gates, and hooks, and keeps them **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
470
470
 
471
471
  **Choose claude-kit when** you want a consistent, reviewable, **gate-enforced** autonomous-SDLC setup
472
472
  that's the same across every repo and stack, installs in seconds, ships nothing you have to run, and
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: security-reviewer
3
- description: Security stage coordinator. Runs at Phase 5.4 (after test-coverage VERIFIED, before DevOps). Dispatches four sub-scanners in parallel — secret-scanner, dependency-scanner, owasp-reviewer, policy-validator — aggregates findings by severity, and owns the Security Clear gate. Read-only: routes fixes through the Orchestrator's defect loop.
3
+ description: "Security stage coordinator. Runs at Phase 5.4 (after test-coverage VERIFIED, before DevOps). Dispatches four sub-scanners in parallel — secret-scanner, dependency-scanner, owasp-reviewer, policy-validator — aggregates findings by severity, and owns the Security Clear gate. Read-only: routes fixes through the Orchestrator's defect loop."
4
4
  tools: Agent, Read, Glob, Grep, Bash, SendMessage
5
5
  permissionMode: plan
6
6
  model: sonnet
@@ -29,7 +29,7 @@
29
29
  "hooks": [
30
30
  {
31
31
  "type": "command",
32
- "command": "command -v jq >/dev/null 2>&1 || exit 0; CMD=$(jq -r '.tool_input.command' 2>/dev/null || true); 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
+ "command": "command -v jq >/dev/null 2>&1 || exit 0; CMD=$(jq -r '.tool_input.command' 2>/dev/null || true); if printf '%s' \"$CMD\" | grep -qE '(^|[^[:alnum:]_])rm([[:space:]]|$)' && printf '%s' \"$CMD\" | grep -qE '(^|[[:space:]])-[a-zA-Z]*[rR]|--recursive' && printf '%s' \"$CMD\" | grep -qE '(^|[[:space:]])-[a-zA-Z]*f|--force'; then echo 'BLOCKED: rm -rf (recursive+force, any flag order/spelling) is disabled by claude-kit. Move to trash or delete specific paths explicitly.' >&2; exit 2; fi"
33
33
  },
34
34
  {
35
35
  "type": "command",
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "claude-code-kit"
7
- version = "0.26.0"
7
+ version = "0.27.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"
@@ -100,6 +100,7 @@ def _actuals() -> dict[str, int]:
100
100
  return {
101
101
  "agents": len(list((ROOT / "agents").glob("*.md"))),
102
102
  "rules": len(list((ROOT / "rules").glob("*.md"))),
103
+ "skills": core + collection,
103
104
  "core skills": core,
104
105
  "collection skills": collection,
105
106
  "hook scripts": len(list((ROOT / "hooks" / "scripts").glob("*.sh"))),
@@ -120,8 +121,12 @@ _ANCHORS: list[tuple[str, str, str]] = [
120
121
  ("rules", "README.md", r"(\d+) stack-agnostic core rules"),
121
122
  ("rules", "README.md", r"(\d+) stack-agnostic contracts"),
122
123
  ("rules", "README.md", r"(\d+) engineering rules"),
123
- ("core skills", "README.md", r"\*\*(\d+)\*\* context-activated skills"),
124
- ("core skills", "README.md", r"(\d+) on-demand skills"),
124
+ # The headline skill number is the FULL catalog (core + collection); the breakdown pins each part.
125
+ ("skills", "README.md", r"\*\*(\d+)\*\* context-activated skills"),
126
+ ("skills", "README.md", r"(\d+) on-demand skills"),
127
+ ("skills", "README.md", r"(\d+) skills, gates"),
128
+ ("core skills", "README.md", r"\((\d+) core \+"),
129
+ ("collection skills", "README.md", r"\+ (\d+) stack-collection\)"),
125
130
  ("hook scripts", "README.md", r"\*\*(\d+)\*\* event hooks"),
126
131
  ("hook scripts", "README.md", r"(\d+) event hook scripts"),
127
132
  ("mcp servers", "README.md", r"\*\*(\d+)\*\* ready MCP fragments"),
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: design-patterns-and-conventions
3
- description: Encodes the cross-cutting design patterns, naming conventions, folder layout, testing strategies, troubleshooting diagnostics, and catalogued anti-patterns observed across production Python/FastAPI backend services. Use when architecting new FastAPI services, refactoring code, reviewing structure, investigating technical debt, debugging session leaks or event loop blocks, setting up dependency injection, configuring multi-mode entrypoints (server/consumer/worker), implementing response envelopes, integrating Kafka or Temporal, organizing domain modules, or avoiding known anti-patterns (hardcoded secrets, CORS wildcards, sync clients in async code, unscoped sessions, deprecated lifecycle hooks). Particularly relevant for questions about layered architecture (router/service/dao), singleton patterns (ConnectionManager), CustomRequestRoute, loaded_config, naming standards (snake_case vs PascalCase), folder layout (per-domain modules), testing patterns (mocking, fixtures, TestClient), or troubleshooting common issues (session leaks, blocked event loop, duplicate routes, CORS errors, Kafka/Temporal problems).
3
+ description: Encodes the cross-cutting design patterns, naming conventions, folder layout, testing strategies, troubleshooting diagnostics, and catalogued anti-patterns observed across production Python/FastAPI backend services. Use when architecting new FastAPI services, refactoring code, reviewing structure, investigating technical debt, debugging session leaks or event loop blocks, setting up dependency injection, configuring multi-mode entrypoints (server/consumer/worker), implementing response envelopes, integrating Kafka or Temporal, organizing domain modules, or avoiding known anti-patterns (hardcoded secrets, CORS wildcards, sync clients in async code, unscoped sessions, deprecated lifecycle hooks). Also covers layered architecture (router/service/dao), the ConnectionManager singleton, CustomRequestRoute, naming standards (snake_case vs PascalCase), per-domain folder layout, and testing patterns (mocking, fixtures, TestClient).
4
4
  ---
5
5
 
6
6
  Enforce consistent design patterns, naming conventions, and architectural decisions across FastAPI backends, derived from real-world production services.
@@ -5,13 +5,12 @@ description: >
5
5
  app's source code, plans attacks, then runs real proof-of-concept exploits against the live app and
6
6
  reports only confirmed, reproducible findings. Covers installing/running the externally-distributed
7
7
  `npx @keygraph/shannon` CLI (setup, start, status, logs, stop, workspaces), configuring AI providers
8
- (Anthropic / AWS Bedrock / Google Vertex AI / proxy) and model tiers, writing the YAML engagement
9
- config (vuln classes, authentication + login flows + TOTP, scope avoid/focus rules, report
10
- filtering, rate limits), reading the Markdown report, and the safety/authorization rules. Shannon is
11
- a separate AGPL-3.0 tool you install yourself — this skill does NOT bundle it. Use when asked to run
12
- Shannon, set up an autonomous/white-box AI pentest, exploit-test an app from its source, configure
13
- `@keygraph/shannon`, write a Shannon engagement config, or produce a proof-by-exploitation security
14
- report. Only for systems you own or are authorized to test, never production.
8
+ and model tiers, writing the YAML engagement config (vuln classes, auth + login flows + TOTP, scope
9
+ avoid/focus rules, report filtering, rate limits), reading the Markdown report, and the
10
+ safety/authorization rules. Shannon is a separate AGPL-3.0 tool you install yourself this skill
11
+ does NOT bundle it. Use when asked to run Shannon, set up an autonomous/white-box AI pentest,
12
+ exploit-test an app from its source, write a Shannon engagement config, or produce a
13
+ proof-by-exploitation security report. Only for systems you own or are authorized to test.
15
14
  ---
16
15
 
17
16
  # Shannon — Autonomous White-Box AI Pentesting
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: smoke-test
3
3
  description: Quick health check — verifies all services are running and basic user flow works. Use before starting development or after deployment.
4
- argument-hint: [optional: "backend-only" or "frontend-only"]
4
+ argument-hint: 'backend-only | frontend-only (optional)'
5
5
  disable-model-invocation: true
6
6
  ---
7
7
 
@@ -20,7 +20,6 @@ import atexit
20
20
  import base64
21
21
  import json
22
22
  import os
23
- from collections import Counter
24
23
  import platform
25
24
  import re
26
25
  import shlex
@@ -28,12 +27,13 @@ import shutil
28
27
  import subprocess
29
28
  import sys
30
29
  import time
30
+ import xml.etree.ElementTree as ET
31
+ from collections import Counter
31
32
  from dataclasses import dataclass, field
32
33
  from datetime import datetime
33
34
  from glob import glob
34
- from urllib.parse import urlsplit, quote_plus
35
+ from urllib.parse import quote_plus, urlsplit
35
36
  from xml.sax.saxutils import escape as _xml_escape
36
- import xml.etree.ElementTree as ET
37
37
 
38
38
  # ----------------------------------------------------------------------------
39
39
  # Constants & small console helpers
@@ -1082,22 +1082,22 @@ def build_pdf(
1082
1082
  agg: Aggregates,
1083
1083
  unmatched: list | None = None,
1084
1084
  ):
1085
- from reportlab.lib.pagesizes import A4
1086
1085
  from reportlab.lib.colors import HexColor, white
1087
1086
  from reportlab.lib.enums import TA_CENTER
1087
+ from reportlab.lib.pagesizes import A4
1088
1088
  from reportlab.lib.styles import ParagraphStyle
1089
1089
  from reportlab.lib.utils import ImageReader
1090
1090
  from reportlab.platypus import (
1091
- SimpleDocTemplate,
1091
+ CondPageBreak,
1092
+ Flowable,
1093
+ Image,
1094
+ ListFlowable,
1095
+ PageBreak,
1092
1096
  Paragraph,
1097
+ SimpleDocTemplate,
1093
1098
  Spacer,
1094
1099
  Table,
1095
1100
  TableStyle,
1096
- Image,
1097
- PageBreak,
1098
- ListFlowable,
1099
- Flowable,
1100
- CondPageBreak,
1101
1101
  )
1102
1102
 
1103
1103
  G, B, GR = HexColor(GREEN), HexColor(BLUE), HexColor(GRID)
@@ -2091,8 +2091,8 @@ def main() -> int:
2091
2091
  return run_selftest()
2092
2092
 
2093
2093
  try:
2094
- import requests # noqa: F401
2095
2094
  import reportlab # noqa: F401
2095
+ import requests # noqa: F401
2096
2096
  except ImportError:
2097
2097
  err("Missing dependencies. Run: python3 -m pip install -r requirements.txt")
2098
2098
  return 2
@@ -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.26.0"
10
+ __version__ = "0.27.0"
@@ -20,9 +20,11 @@ from typing import Any
20
20
  _RM_RF_GUARD = (
21
21
  "command -v jq >/dev/null 2>&1 || exit 0; "
22
22
  "CMD=$(jq -r '.tool_input.command' 2>/dev/null || true); "
23
- "if echo \"$CMD\" | grep -qE 'rm[[:space:]]+-[^[:space:]]*r[^[:space:]]*f'; then "
24
- "echo 'BLOCKED: rm -rf is disabled by claude-kit. Move to trash or delete specific paths "
25
- "explicitly.' >&2; exit 2; fi"
23
+ "if printf '%s' \"$CMD\" | grep -qE '(^|[^[:alnum:]_])rm([[:space:]]|$)' "
24
+ "&& printf '%s' \"$CMD\" | grep -qE '(^|[[:space:]])-[a-zA-Z]*[rR]|--recursive' "
25
+ "&& printf '%s' \"$CMD\" | grep -qE '(^|[[:space:]])-[a-zA-Z]*f|--force'; then "
26
+ "echo 'BLOCKED: rm -rf (recursive+force, any flag order/spelling) is disabled by claude-kit. "
27
+ "Move to trash or delete specific paths explicitly.' >&2; exit 2; fi"
26
28
  )
27
29
 
28
30
  # Block pushes whose *target* ref is main/master. The branch token must be bounded by a space or
@@ -36,6 +36,9 @@ GITIGNORE_ENTRIES = (
36
36
  "CLAUDE.local.md",
37
37
  ".claude/state/",
38
38
  ".claude/tmp/",
39
+ # upgrade/merge artifacts written by `claude-kit upgrade` — never commit these
40
+ ".claude-kit.bak-*/",
41
+ "*.claude-kit",
39
42
  )
40
43
 
41
44
 
@@ -29,7 +29,7 @@ from pathlib import Path
29
29
 
30
30
  from claude_kit import catalog, scaffold
31
31
  from claude_kit.models import FileRecord, InitOptions, ResolvedPlan
32
- from claude_kit.validator import _load_init_options
32
+ from claude_kit.validator import _load_init_options, _read_init_options
33
33
 
34
34
  #: Sidecar suffix for a new version of a user-modified, protected file.
35
35
  _SIDECAR_SUFFIX = ".claude-kit"
@@ -129,9 +129,9 @@ def _compare(src: Path, target: str | Path) -> _Comparison | str:
129
129
  claude = target / ".claude"
130
130
  if not claude.is_dir():
131
131
  return "not-installed"
132
- old = _load_init_options(claude)
132
+ old, err = _read_init_options(claude)
133
133
  if old is None:
134
- return "no-options"
134
+ return "corrupt-options" if err and err.startswith("corrupt") else "no-options"
135
135
 
136
136
  plan = catalog.resolve(src, old.selection)
137
137
  # Render the reference under the REAL project name so CLAUDE.md/README don't diff spuriously.
@@ -355,6 +355,11 @@ def _explain_error(code: str, target: str | Path) -> tuple[bool, list[str]]:
355
355
  return False, [
356
356
  f"FAIL no .claude/ at {Path(target).expanduser().resolve()} — run `claude-kit init` first"
357
357
  ]
358
+ if code == "corrupt-options":
359
+ return False, [
360
+ "FAIL .claude/config/init-options.json is unreadable (invalid JSON) — repair it "
361
+ "or re-run `claude-kit init --force` to re-create it"
362
+ ]
358
363
  return False, [
359
364
  "FAIL no .claude/config/init-options.json — this install predates upgrade tracking; "
360
365
  "re-run `claude-kit init --force` to start tracking"
@@ -12,6 +12,7 @@ report and choose an exit code.
12
12
 
13
13
  from __future__ import annotations
14
14
 
15
+ import hashlib
15
16
  import json
16
17
  import os
17
18
  import platform
@@ -72,15 +73,31 @@ def _parse_frontmatter(text: str) -> dict[str, str] | None:
72
73
  return data
73
74
 
74
75
 
75
- def _load_init_options(claude_dir: Path) -> InitOptions | None:
76
- """Load and parse ``.claude/config/init-options.json`` if present."""
76
+ def _sha256(path: Path) -> str:
77
+ """Hex SHA-256 of a file's bytes (matches the digest recorded in init-options.json)."""
78
+ return hashlib.sha256(path.read_bytes()).hexdigest()
79
+
80
+
81
+ def _read_init_options(claude_dir: Path) -> tuple[InitOptions | None, str | None]:
82
+ """Load ``init-options.json``, distinguishing *missing* from *corrupt*.
83
+
84
+ Returns ``(options, None)`` on success; ``(None, "missing")`` when the file is absent; and
85
+ ``(None, "corrupt: <detail>")`` when it exists but cannot be parsed. Callers can then surface a
86
+ distinct, louder signal for a corrupt manifest (a real problem worth a FAIL) versus a missing
87
+ one (an older install that merely predates upgrade tracking — a WARN).
88
+ """
77
89
  path = claude_dir / "config" / "init-options.json"
78
90
  if not path.is_file():
79
- return None
91
+ return None, "missing"
80
92
  try:
81
- return InitOptions.from_dict(json.loads(path.read_text(encoding="utf-8")))
82
- except (json.JSONDecodeError, TypeError, ValueError):
83
- return None
93
+ return InitOptions.from_dict(json.loads(path.read_text(encoding="utf-8"))), None
94
+ except (json.JSONDecodeError, TypeError, ValueError) as exc:
95
+ return None, f"corrupt: {exc}"
96
+
97
+
98
+ def _load_init_options(claude_dir: Path) -> InitOptions | None:
99
+ """Back-compat: the parsed options, or None for either a missing or corrupt manifest."""
100
+ return _read_init_options(claude_dir)[0]
84
101
 
85
102
 
86
103
  def validate(target: str | Path, *, strict: bool = False) -> tuple[bool, list[str]]:
@@ -116,19 +133,41 @@ def validate(target: str | Path, *, strict: bool = False) -> tuple[bool, list[st
116
133
  fail(f"no .claude/ directory in {target} — run `claude-kit init` here")
117
134
  return ok, msgs
118
135
 
119
- options = _load_init_options(claude)
136
+ options, opt_err = _read_init_options(claude)
120
137
  if options is None:
121
- warn(
122
- "missing or unreadable .claude/config/init-options.json (validate/upgrade limited)"
123
- )
138
+ if opt_err == "missing":
139
+ warn(
140
+ "no .claude/config/init-options.json (validate/upgrade limited — "
141
+ "re-run `claude-kit init` to start tracking)"
142
+ )
143
+ else:
144
+ fail(
145
+ f".claude/config/init-options.json is unreadable ({opt_err}) — repair the JSON "
146
+ "or re-run `claude-kit init --force`"
147
+ )
124
148
  else:
125
149
  good(
126
150
  f"init-options.json (schema v{options.schema_version}, kit {options.claude_kit_version})"
127
151
  )
152
+ drifted: list[str] = []
128
153
  for rec in options.files:
129
- if not (target / rec.path).exists():
154
+ fp = target / rec.path
155
+ if not fp.exists():
130
156
  fail(f"recorded file missing: {rec.path}")
157
+ elif (
158
+ rec.owner in ("kit", "overlay")
159
+ and fp.is_file()
160
+ and _sha256(fp) != rec.sha256
161
+ ):
162
+ drifted.append(rec.path)
131
163
  good(f"tracked files present ({len(options.files)} recorded)")
164
+ if drifted:
165
+ preview = ", ".join(sorted(drifted)[:3])
166
+ more = "" if len(drifted) <= 3 else f" (+{len(drifted) - 3} more)"
167
+ warn(
168
+ f"{len(drifted)} kit-owned file(s) modified since install: {preview}{more} "
169
+ "— run `claude-kit diff` to review (edits to user-editable files are not flagged)"
170
+ )
132
171
 
133
172
  settings = claude / "settings.json"
134
173
  if settings.is_file():
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: prompt-to-safe-task
3
- description: Use when anyone — especially a non-engineer — types a free-form request in plain language and wants it turned into a scoped, risk-classified, approval-gated task before anything happens. The safe front door for vibe-coding: goal → scope + out-of-scope → risk tier → success criteria → plan → approval, then route to the right skill/agent.
3
+ description: "Use when anyone — especially a non-engineer — types a free-form request in plain language and wants it turned into a scoped, risk-classified, approval-gated task before anything happens. The safe front door for vibe-coding: goal → scope + out-of-scope → risk tier → success criteria → plan → approval, then route to the right skill/agent."
4
4
  ---
5
5
 
6
6
  # Prompt to Safe Task
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: repo-onboarding
3
- description: Use when someone new to the repo — a new engineer, support, or any newcomer — asks "how does this fit together and where do I start?" Maps the architecture, explains key modules and entry points, surfaces conventions, and produces an ordered onboarding path plus a "where things live" guide. Read-only: explores and explains, never changes code.
3
+ description: 'Use when someone new to the repo — a new engineer, support, or any newcomer — asks "how does this fit together and where do I start?" Maps the architecture, explains key modules and entry points, surfaces conventions, and produces an ordered onboarding path plus a "where things live" guide. Read-only: explores and explains, never changes code.'
4
4
  ---
5
5
 
6
6
  # Repo Onboarding
@@ -26,7 +26,7 @@
26
26
  "hooks": [
27
27
  {
28
28
  "type": "command",
29
- "command": "command -v jq >/dev/null 2>&1 || exit 0; CMD=$(jq -r '.tool_input.command' 2>/dev/null || true); 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"
29
+ "command": "command -v jq >/dev/null 2>&1 || exit 0; CMD=$(jq -r '.tool_input.command' 2>/dev/null || true); if printf '%s' \"$CMD\" | grep -qE '(^|[^[:alnum:]_])rm([[:space:]]|$)' && printf '%s' \"$CMD\" | grep -qE '(^|[[:space:]])-[a-zA-Z]*[rR]|--recursive' && printf '%s' \"$CMD\" | grep -qE '(^|[[:space:]])-[a-zA-Z]*f|--force'; then echo 'BLOCKED: rm -rf (recursive+force, any flag order/spelling) is disabled by claude-kit. Move to trash or delete specific paths explicitly.' >&2; exit 2; fi"
30
30
  },
31
31
  {
32
32
  "type": "command",