claude-code-kit 0.37.0__tar.gz → 0.39.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 (533) hide show
  1. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/.claude-plugin/marketplace.json +1 -1
  2. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/.claude-plugin/plugin.json +1 -1
  3. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/CHANGELOG.md +40 -0
  4. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/PKG-INFO +4 -4
  5. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/README.md +3 -3
  6. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/dependency-scanner.md +23 -0
  7. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/pyproject.toml +1 -1
  8. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/code-review-and-quality/SKILL.md +2 -0
  9. claude_code_kit-0.39.0/skills/dependency-verification/SKILL.md +101 -0
  10. claude_code_kit-0.39.0/skills/library-review/SKILL.md +105 -0
  11. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/security-and-hardening/SKILL.md +6 -0
  12. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/test-driven-development/SKILL.md +29 -0
  13. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/src/claude_kit/__init__.py +1 -1
  14. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/.gitignore +0 -0
  15. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/CLAUDE.md +0 -0
  16. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/CONTRIBUTING.md +0 -0
  17. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/LICENSE +0 -0
  18. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/acceptance-reviewer.md +0 -0
  19. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/auditor.md +0 -0
  20. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/developer.md +0 -0
  21. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/devils-advocate.md +0 -0
  22. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/devops-engineer.md +0 -0
  23. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/e2e-tester.md +0 -0
  24. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/em-reviewer.md +0 -0
  25. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/incident-responder.md +0 -0
  26. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/merge-reviewer.md +0 -0
  27. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/observability-engineer.md +0 -0
  28. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/orchestrator.md +0 -0
  29. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/owasp-reviewer.md +0 -0
  30. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/policy-validator.md +0 -0
  31. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/pr-raiser.md +0 -0
  32. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/risk-classifier.md +0 -0
  33. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/sdlc-code-reviewer.md +0 -0
  34. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/secret-scanner.md +0 -0
  35. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/security-reviewer.md +0 -0
  36. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/senior-backend-dev.md +0 -0
  37. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/senior-frontend-dev.md +0 -0
  38. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/senior-tester.md +0 -0
  39. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/spec-doc-writer.md +0 -0
  40. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/story-planner.md +0 -0
  41. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/technical-architect.md +0 -0
  42. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/tester.md +0 -0
  43. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/ui-designer.md +0 -0
  44. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/agents/unit-tester.md +0 -0
  45. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/catalog/capture.yaml +0 -0
  46. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/catalog/mcp.yaml +0 -0
  47. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/catalog/org.yaml +0 -0
  48. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/catalog/profiles.yaml +0 -0
  49. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/catalog/stacks.yaml +0 -0
  50. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/commands/abort.md +0 -0
  51. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/commands/init.md +0 -0
  52. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/commands/sdlc.md +0 -0
  53. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/commands/status.md +0 -0
  54. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/docs/agentic-patterns.md +0 -0
  55. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/docs/agents.md +0 -0
  56. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/docs/architecture.md +0 -0
  57. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/docs/capture-a-real-run.md +0 -0
  58. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/docs/coverage-audit.md +0 -0
  59. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/docs/eval-harness.md +0 -0
  60. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/docs/org-capabilities.md +0 -0
  61. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/docs/stack-skills/GAP-ANALYSIS.md +0 -0
  62. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/docs/stack-skills/README.md +0 -0
  63. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/docs/stack-skills/REPO-INVENTORY.md +0 -0
  64. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/hooks.json +0 -0
  65. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/audit-log.sh +0 -0
  66. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/capture-learnings.sh +0 -0
  67. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/guard-destructive-git.sh +0 -0
  68. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/guard-kubectl-delete.sh +0 -0
  69. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/guard-secrets.sh +0 -0
  70. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/lint-fix.sh +0 -0
  71. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/load-autonomy.sh +0 -0
  72. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/load-continuity.sh +0 -0
  73. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/load-learnings.sh +0 -0
  74. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/type-check.sh +0 -0
  75. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/validate-frontmatter.sh +0 -0
  76. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/validate-settings.sh +0 -0
  77. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/warn-large-edits.sh +0 -0
  78. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/warn-llm-io.sh +0 -0
  79. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/warn-missing-tests.sh +0 -0
  80. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
  81. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/hooks/scripts/warn-shared-modules.sh +0 -0
  82. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/agent-guardrails.md +0 -0
  83. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/agent-memory.md +0 -0
  84. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/agent-resilience.md +0 -0
  85. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/autonomy-levels.md +0 -0
  86. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/code-organization.md +0 -0
  87. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/continuity.md +0 -0
  88. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/design-patterns.md +0 -0
  89. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/devops-observability.md +0 -0
  90. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/documentation.md +0 -0
  91. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/evals.md +0 -0
  92. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/frontend-best-practices.md +0 -0
  93. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/goal-setting-and-monitoring.md +0 -0
  94. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/human-in-the-loop.md +0 -0
  95. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/linting-and-formatting.md +0 -0
  96. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/mandatory-workflow.md +0 -0
  97. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/model-tiers.md +0 -0
  98. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/quality-gates.md +0 -0
  99. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/rarv-cycle.md +0 -0
  100. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/reasoning-techniques.md +0 -0
  101. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/responsive-and-accessibility.md +0 -0
  102. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/risk-classification.md +0 -0
  103. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/testing.md +0 -0
  104. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/rules/tool-design.md +0 -0
  105. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/scripts/capture-sdlc-run.sh +0 -0
  106. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/scripts/check_docs_consistency.py +0 -0
  107. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/scripts/gen_hooks.py +0 -0
  108. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/scripts/init.sh +0 -0
  109. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/_references/accessibility-checklist.md +0 -0
  110. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/_references/orchestration-patterns.md +0 -0
  111. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/_references/performance-checklist.md +0 -0
  112. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/_references/security-checklist.md +0 -0
  113. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/_references/testing-patterns.md +0 -0
  114. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/accessibility-review/SKILL.md +0 -0
  115. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/alembic-migrations/README.md +0 -0
  116. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/alembic-migrations/SKILL.md +0 -0
  117. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/alembic-migrations/references/alembic-setup-and-env.md +0 -0
  118. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/alembic-migrations/references/async-and-multitenant-migrations.md +0 -0
  119. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/alembic-migrations/references/repo-evidence.md +0 -0
  120. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/alembic-migrations/references/troubleshooting-and-debugging.md +0 -0
  121. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/alembic-migrations/references/writing-migrations.md +0 -0
  122. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/anthropic-vertex-integration/README.md +0 -0
  123. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/anthropic-vertex-integration/SKILL.md +0 -0
  124. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/anthropic-vertex-integration/references/generate-helpers-and-retry.md +0 -0
  125. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/anthropic-vertex-integration/references/repo-evidence.md +0 -0
  126. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/anthropic-vertex-integration/references/vertex-client-and-auth.md +0 -0
  127. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/api-and-interface-design/SKILL.md +0 -0
  128. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/api-integration/SKILL.md +0 -0
  129. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/api-pagination-filtering-sorting/README.md +0 -0
  130. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/api-pagination-filtering-sorting/SKILL.md +0 -0
  131. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/api-pagination-filtering-sorting/references/query-params-conventions.md +0 -0
  132. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/api-pagination-filtering-sorting/references/repo-evidence.md +0 -0
  133. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/api-pagination-filtering-sorting/references/response-metadata.md +0 -0
  134. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/archive-sprint/SKILL.md +0 -0
  135. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/async-python-patterns/README.md +0 -0
  136. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/async-python-patterns/SKILL.md +0 -0
  137. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/async-python-patterns/references/async-boundaries.md +0 -0
  138. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/async-python-patterns/references/lifecycle-and-gather.md +0 -0
  139. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/async-python-patterns/references/repo-evidence.md +0 -0
  140. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/auth-and-rbac/README.md +0 -0
  141. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/auth-and-rbac/SKILL.md +0 -0
  142. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/auth-and-rbac/references/auth-dependencies.md +0 -0
  143. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/auth-and-rbac/references/rbac-and-permissions.md +0 -0
  144. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/auth-and-rbac/references/repo-evidence.md +0 -0
  145. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/auth-and-rbac/references/security-hardening.md +0 -0
  146. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/auth-and-rbac/references/tokens-and-hashing.md +0 -0
  147. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/backend-repo-architecture/README.md +0 -0
  148. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/backend-repo-architecture/SKILL.md +0 -0
  149. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/backend-repo-architecture/references/deployment-patterns.md +0 -0
  150. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/backend-repo-architecture/references/entrypoint-and-config.md +0 -0
  151. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/backend-repo-architecture/references/repo-evidence.md +0 -0
  152. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/backend-repo-architecture/references/structure-patterns.md +0 -0
  153. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/backend-repo-architecture/references/troubleshooting.md +0 -0
  154. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/backlog/SKILL.md +0 -0
  155. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/backlog/item-template.md +0 -0
  156. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
  157. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/bug-hunt/SKILL.md +0 -0
  158. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
  159. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/code-simplification/SKILL.md +0 -0
  160. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/component-design/SKILL.md +0 -0
  161. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/configargparse-yaml-env-layering/README.md +0 -0
  162. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/configargparse-yaml-env-layering/SKILL.md +0 -0
  163. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/configargparse-yaml-env-layering/references/config-layering-anatomy.md +0 -0
  164. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/configargparse-yaml-env-layering/references/mode-dispatch-and-precedence.md +0 -0
  165. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/configargparse-yaml-env-layering/references/repo-evidence.md +0 -0
  166. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/consolidate-learnings/SKILL.md +0 -0
  167. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/containerization-and-deployment/README.md +0 -0
  168. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/containerization-and-deployment/SKILL.md +0 -0
  169. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/containerization-and-deployment/references/deployment-and-secrets.md +0 -0
  170. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/containerization-and-deployment/references/dockerfile-and-compose.md +0 -0
  171. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/containerization-and-deployment/references/entrypoint-and-modes.md +0 -0
  172. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/containerization-and-deployment/references/kerberos-kinit-bootstrap.md +0 -0
  173. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/containerization-and-deployment/references/makefile-dev-workflow.md +0 -0
  174. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/containerization-and-deployment/references/repo-evidence.md +0 -0
  175. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/context-engineering/SKILL.md +0 -0
  176. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/cron-and-scheduled-jobs/README.md +0 -0
  177. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/cron-and-scheduled-jobs/SKILL.md +0 -0
  178. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/cron-and-scheduled-jobs/references/choosing-and-operations.md +0 -0
  179. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/cron-and-scheduled-jobs/references/kubernetes-cronjob.md +0 -0
  180. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/cron-and-scheduled-jobs/references/repo-evidence.md +0 -0
  181. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/cron-and-scheduled-jobs/references/temporal-schedules.md +0 -0
  182. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/data-engineering-bigquery-gcs/README.md +0 -0
  183. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/data-engineering-bigquery-gcs/SKILL.md +0 -0
  184. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/data-engineering-bigquery-gcs/references/bigquery-advanced-patterns.md +0 -0
  185. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/data-engineering-bigquery-gcs/references/bigquery-gcs-io.md +0 -0
  186. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/data-engineering-bigquery-gcs/references/medallion-architecture.md +0 -0
  187. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/data-engineering-bigquery-gcs/references/repo-evidence.md +0 -0
  188. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/data-engineering-bigquery-gcs/references/temp-table-merge-pattern.md +0 -0
  189. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
  190. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/decision/SKILL.md +0 -0
  191. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/decision/adr-template.md +0 -0
  192. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/deprecation-and-migration/SKILL.md +0 -0
  193. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/design-patterns-and-conventions/README.md +0 -0
  194. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/design-patterns-and-conventions/SKILL.md +0 -0
  195. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/design-patterns-and-conventions/references/anti-patterns.md +0 -0
  196. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/design-patterns-and-conventions/references/naming-and-layout.md +0 -0
  197. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/design-patterns-and-conventions/references/patterns-catalog.md +0 -0
  198. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/design-patterns-and-conventions/references/repo-evidence.md +0 -0
  199. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/design-patterns-and-conventions/references/testing-patterns.md +0 -0
  200. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/design-patterns-and-conventions/references/troubleshooting.md +0 -0
  201. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/docker-compose/README.md +0 -0
  202. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/docker-compose/SKILL.md +0 -0
  203. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/docker-compose/references/compose-services-and-healthchecks.md +0 -0
  204. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/docker-compose/references/dev-vs-prod-variants.md +0 -0
  205. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/docker-compose/references/repo-evidence.md +0 -0
  206. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/docker-shared/README.md +0 -0
  207. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/docker-shared/SKILL.md +0 -0
  208. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/docker-shared/references/dockerignore-and-build-secrets.md +0 -0
  209. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/docker-shared/references/repo-evidence.md +0 -0
  210. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/docker-shared/references/shared-base-images.md +0 -0
  211. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/docker-shared/references/shared-compose-fragments.md +0 -0
  212. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/dockerfile-backend/README.md +0 -0
  213. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/dockerfile-backend/SKILL.md +0 -0
  214. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/dockerfile-backend/references/backend-dockerfile-anatomy.md +0 -0
  215. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/dockerfile-backend/references/repo-evidence.md +0 -0
  216. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/dockerfile-backend/references/system-deps-and-caching.md +0 -0
  217. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/dockerfile-frontend/README.md +0 -0
  218. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/dockerfile-frontend/SKILL.md +0 -0
  219. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/dockerfile-frontend/references/build-args-and-nginx.md +0 -0
  220. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/dockerfile-frontend/references/frontend-dockerfile-anatomy.md +0 -0
  221. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/dockerfile-frontend/references/repo-evidence.md +0 -0
  222. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/documentation-and-adrs/SKILL.md +0 -0
  223. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/doubt-driven-development/SKILL.md +0 -0
  224. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/edge-to-service-trust-boundary/README.md +0 -0
  225. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/edge-to-service-trust-boundary/SKILL.md +0 -0
  226. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/edge-to-service-trust-boundary/references/repo-evidence.md +0 -0
  227. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/edge-to-service-trust-boundary/references/trust-contract.md +0 -0
  228. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/execute/SKILL.md +0 -0
  229. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/fastapi-service-patterns/README.md +0 -0
  230. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/fastapi-service-patterns/SKILL.md +0 -0
  231. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/fastapi-service-patterns/references/api-versioning.md +0 -0
  232. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/fastapi-service-patterns/references/app-factory-and-lifespan.md +0 -0
  233. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/fastapi-service-patterns/references/custom-route-and-middleware.md +0 -0
  234. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/fastapi-service-patterns/references/dependency-injection.md +0 -0
  235. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/fastapi-service-patterns/references/model-and-serialization-patterns.md +0 -0
  236. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/fastapi-service-patterns/references/repo-evidence.md +0 -0
  237. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/file-export-and-reporting/README.md +0 -0
  238. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/file-export-and-reporting/SKILL.md +0 -0
  239. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/file-export-and-reporting/references/excel-generation.md +0 -0
  240. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/file-export-and-reporting/references/repo-evidence.md +0 -0
  241. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/file-export-and-reporting/references/streaming-and-downloads.md +0 -0
  242. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/frontend-repo-architecture/README.md +0 -0
  243. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/frontend-repo-architecture/SKILL.md +0 -0
  244. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/frontend-repo-architecture/references/api-layer-and-types.md +0 -0
  245. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/frontend-repo-architecture/references/divergences.md +0 -0
  246. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/frontend-repo-architecture/references/repo-evidence.md +0 -0
  247. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/frontend-repo-architecture/references/structure-and-state.md +0 -0
  248. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/frontend-repo-architecture/references/testing-patterns.md +0 -0
  249. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
  250. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/gcp-cloud-run-github-actions/README.md +0 -0
  251. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/gcp-cloud-run-github-actions/SKILL.md +0 -0
  252. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/gcp-cloud-run-github-actions/references/cloud-run-deploy.md +0 -0
  253. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/gcp-cloud-run-github-actions/references/repo-evidence.md +0 -0
  254. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/gcp-cloud-run-github-actions/references/workflow-structure.md +0 -0
  255. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/gcs-file-storage-patterns/README.md +0 -0
  256. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/gcs-file-storage-patterns/SKILL.md +0 -0
  257. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/gcs-file-storage-patterns/references/client-and-uploads.md +0 -0
  258. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/gcs-file-storage-patterns/references/repo-evidence.md +0 -0
  259. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/gcs-file-storage-patterns/references/signed-urls-and-reads.md +0 -0
  260. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
  261. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/grafana-dashboards-and-alerts/README.md +0 -0
  262. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/grafana-dashboards-and-alerts/SKILL.md +0 -0
  263. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/grafana-dashboards-and-alerts/references/dashboard-json-and-templating.md +0 -0
  264. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/grafana-dashboards-and-alerts/references/provisioning-and-organization.md +0 -0
  265. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/grafana-dashboards-and-alerts/references/red-metrics-queries.md +0 -0
  266. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/grafana-dashboards-and-alerts/references/repo-evidence.md +0 -0
  267. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/grafana-dashboards-and-alerts/references/unified-alerting.md +0 -0
  268. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/graphql-patterns/README.md +0 -0
  269. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/graphql-patterns/SKILL.md +0 -0
  270. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/graphql-patterns/references/apollo-client-frontend.md +0 -0
  271. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/graphql-patterns/references/apollo-client-setup.md +0 -0
  272. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/graphql-patterns/references/repo-evidence.md +0 -0
  273. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/graphql-patterns/references/strawberry-backend.md +0 -0
  274. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/graphql-patterns/references/when-to-use-graphql.md +0 -0
  275. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/idea-refine/SKILL.md +0 -0
  276. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/idea-refine/examples.md +0 -0
  277. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/idea-refine/frameworks.md +0 -0
  278. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/idea-refine/refinement-criteria.md +0 -0
  279. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
  280. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/incident-postmortem/SKILL.md +0 -0
  281. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/incremental-implementation/SKILL.md +0 -0
  282. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/interview-me/SKILL.md +0 -0
  283. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kafka-config-driven/README.md +0 -0
  284. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kafka-config-driven/SKILL.md +0 -0
  285. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kafka-config-driven/references/config-and-sasl-kerberos.md +0 -0
  286. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kafka-config-driven/references/consumer-producer-patterns.md +0 -0
  287. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kafka-config-driven/references/repo-evidence.md +0 -0
  288. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kafka-config-driven/references/troubleshooting-and-patterns.md +0 -0
  289. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kubectl-operations/README.md +0 -0
  290. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kubectl-operations/SKILL.md +0 -0
  291. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kubectl-operations/references/command-reference.md +0 -0
  292. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kubectl-operations/references/context-namespace-rbac.md +0 -0
  293. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kubectl-operations/references/debugging-playbooks.md +0 -0
  294. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kubectl-operations/references/output-formats-and-selectors.md +0 -0
  295. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kubectl-operations/references/repo-evidence.md +0 -0
  296. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kubernetes-workload-hardening/README.md +0 -0
  297. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kubernetes-workload-hardening/SKILL.md +0 -0
  298. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kubernetes-workload-hardening/references/networkpolicy-and-rbac.md +0 -0
  299. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kubernetes-workload-hardening/references/repo-evidence.md +0 -0
  300. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/kubernetes-workload-hardening/references/securitycontext-and-podsecurity.md +0 -0
  301. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/langfuse-llm-tracing/README.md +0 -0
  302. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/langfuse-llm-tracing/SKILL.md +0 -0
  303. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/langfuse-llm-tracing/references/langfuse-client-and-tracing.md +0 -0
  304. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/langfuse-llm-tracing/references/python-and-typescript.md +0 -0
  305. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/langfuse-llm-tracing/references/repo-evidence.md +0 -0
  306. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/load-testing/SKILL.md +0 -0
  307. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/manual-test/SKILL.md +0 -0
  308. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/modernization-and-migration/README.md +0 -0
  309. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/modernization-and-migration/SKILL.md +0 -0
  310. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/modernization-and-migration/references/migration-best-practices.md +0 -0
  311. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/modernization-and-migration/references/pydantic-v1-to-v2.md +0 -0
  312. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/modernization-and-migration/references/repo-evidence.md +0 -0
  313. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/modernization-and-migration/references/shared-internal-library.md +0 -0
  314. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/modernization-and-migration/references/sqlalchemy-14-to-20.md +0 -0
  315. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/multi-tenancy-patterns/README.md +0 -0
  316. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/multi-tenancy-patterns/SKILL.md +0 -0
  317. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/multi-tenancy-patterns/references/caching-patterns.md +0 -0
  318. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/multi-tenancy-patterns/references/isolation-strategies.md +0 -0
  319. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/multi-tenancy-patterns/references/repo-evidence.md +0 -0
  320. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/multi-tenancy-patterns/references/tenant-resolution.md +0 -0
  321. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/node-express-service/README.md +0 -0
  322. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/node-express-service/SKILL.md +0 -0
  323. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/node-express-service/references/app-factory-and-mode-dispatch.md +0 -0
  324. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/node-express-service/references/config-and-module-alias.md +0 -0
  325. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/node-express-service/references/middleware-patterns.md +0 -0
  326. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/node-express-service/references/repo-evidence.md +0 -0
  327. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/node-objection-knex/README.md +0 -0
  328. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/node-objection-knex/SKILL.md +0 -0
  329. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/node-objection-knex/references/migrations-and-validation.md +0 -0
  330. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/node-objection-knex/references/objection-model-and-knex.md +0 -0
  331. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/node-objection-knex/references/repo-evidence.md +0 -0
  332. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/notifications-and-messaging/README.md +0 -0
  333. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/notifications-and-messaging/SKILL.md +0 -0
  334. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/notifications-and-messaging/references/provider-abstraction.md +0 -0
  335. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/notifications-and-messaging/references/repo-evidence.md +0 -0
  336. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/notifications-and-messaging/references/templates-and-fallback.md +0 -0
  337. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/observability-and-logging/README.md +0 -0
  338. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/observability-and-logging/SKILL.md +0 -0
  339. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/observability-and-logging/references/health-and-readiness.md +0 -0
  340. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/observability-and-logging/references/logging-and-structlog.md +0 -0
  341. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/observability-and-logging/references/outbound-metrics-and-multi-mode.md +0 -0
  342. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/observability-and-logging/references/pii-redaction.md +0 -0
  343. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/observability-and-logging/references/repo-evidence.md +0 -0
  344. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/observability-and-logging/references/tracing-and-metrics.md +0 -0
  345. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/over-engineering-review/SKILL.md +0 -0
  346. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/performance-optimization/SKILL.md +0 -0
  347. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
  348. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/playwright-verification/SKILL.md +0 -0
  349. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/pydantic-schema-patterns/README.md +0 -0
  350. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/pydantic-schema-patterns/SKILL.md +0 -0
  351. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/pydantic-schema-patterns/references/repo-evidence.md +0 -0
  352. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/pydantic-schema-patterns/references/settings-and-validation.md +0 -0
  353. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/pydantic-schema-patterns/references/troubleshooting-and-common-errors.md +0 -0
  354. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/pydantic-schema-patterns/references/v1-vs-v2.md +0 -0
  355. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/python-dao-and-database/README.md +0 -0
  356. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/python-dao-and-database/SKILL.md +0 -0
  357. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/python-dao-and-database/references/advanced-query-patterns.md +0 -0
  358. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/python-dao-and-database/references/basedao-and-sessions.md +0 -0
  359. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/python-dao-and-database/references/mongodb-advanced.md +0 -0
  360. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/python-dao-and-database/references/other-db-mongodb.md +0 -0
  361. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/python-dao-and-database/references/repo-evidence.md +0 -0
  362. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/python-dao-and-database/references/sqlalchemy-1x-vs-2x.md +0 -0
  363. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/radix-tailwind-component-patterns/README.md +0 -0
  364. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/radix-tailwind-component-patterns/SKILL.md +0 -0
  365. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/radix-tailwind-component-patterns/references/radix-primitives-and-variants.md +0 -0
  366. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/radix-tailwind-component-patterns/references/repo-evidence.md +0 -0
  367. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/radix-tailwind-component-patterns/references/tailwind-theme-and-cn.md +0 -0
  368. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/react-hook-form-zod-patterns/README.md +0 -0
  369. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/react-hook-form-zod-patterns/SKILL.md +0 -0
  370. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/react-hook-form-zod-patterns/references/form-setup-and-zod.md +0 -0
  371. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/react-hook-form-zod-patterns/references/multi-step-and-modes.md +0 -0
  372. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/react-hook-form-zod-patterns/references/repo-evidence.md +0 -0
  373. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/redis-caching-patterns/README.md +0 -0
  374. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/redis-caching-patterns/SKILL.md +0 -0
  375. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/redis-caching-patterns/references/cache-manager-and-fallback.md +0 -0
  376. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/redis-caching-patterns/references/namespacing-and-invalidation.md +0 -0
  377. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/redis-caching-patterns/references/repo-evidence.md +0 -0
  378. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/refresh-docs/SKILL.md +0 -0
  379. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/remember/SKILL.md +0 -0
  380. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/scope/SKILL.md +0 -0
  381. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/scope/scope-template.md +0 -0
  382. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/sdlc/SKILL.md +0 -0
  383. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/security-verification/SKILL.md +0 -0
  384. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/shannon-ai-pentest/README.md +0 -0
  385. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/shannon-ai-pentest/SKILL.md +0 -0
  386. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/shannon-ai-pentest/references/operating-guide.md +0 -0
  387. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/shipping-and-launch/SKILL.md +0 -0
  388. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/simplification-debt/SKILL.md +0 -0
  389. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/smoke-test/SKILL.md +0 -0
  390. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/source-driven-development/SKILL.md +0 -0
  391. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/spec-driven-development/SKILL.md +0 -0
  392. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/sprint/SKILL.md +0 -0
  393. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/sprint/sprint-template.md +0 -0
  394. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/tanstack-react-query-patterns/README.md +0 -0
  395. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/tanstack-react-query-patterns/SKILL.md +0 -0
  396. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/tanstack-react-query-patterns/references/mutations-and-cache.md +0 -0
  397. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/tanstack-react-query-patterns/references/query-keys-and-hooks.md +0 -0
  398. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/tanstack-react-query-patterns/references/repo-evidence.md +0 -0
  399. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/task-tracker-sync/SKILL.md +0 -0
  400. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-config-driven/README.md +0 -0
  401. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-config-driven/SKILL.md +0 -0
  402. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-config-driven/references/config-and-retry-idempotency.md +0 -0
  403. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-config-driven/references/dag-dsl-interpreter.md +0 -0
  404. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-config-driven/references/repo-evidence.md +0 -0
  405. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-config-driven/references/schedule-registration.md +0 -0
  406. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-config-driven/references/schedules-and-cron.md +0 -0
  407. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-config-driven/references/worker-workflow-activity-patterns.md +0 -0
  408. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-developer/README.md +0 -0
  409. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-developer/SKILL.md +0 -0
  410. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-developer/references/cli.md +0 -0
  411. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-developer/references/determinism.md +0 -0
  412. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-developer/references/gotchas.md +0 -0
  413. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-developer/references/languages.md +0 -0
  414. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-developer/references/testing.md +0 -0
  415. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/temporal-developer/references/versioning.md +0 -0
  416. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/test-plan-review/SKILL.md +0 -0
  417. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/testing-conventions/README.md +0 -0
  418. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/testing-conventions/SKILL.md +0 -0
  419. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/testing-conventions/references/async-and-mocking.md +0 -0
  420. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/testing-conventions/references/coverage-gap-and-recommendations.md +0 -0
  421. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/testing-conventions/references/github-actions-test-orchestration.md +0 -0
  422. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/testing-conventions/references/pytest-and-fixtures.md +0 -0
  423. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/testing-conventions/references/pytest-asyncio-modes.md +0 -0
  424. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/testing-conventions/references/repo-evidence.md +0 -0
  425. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/testing-conventions/references/security-regression-tests.md +0 -0
  426. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/testing-conventions/references/vitest-frontend-testing.md +0 -0
  427. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/threat-model/SKILL.md +0 -0
  428. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/triage/SKILL.md +0 -0
  429. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/ui-ux-design/SKILL.md +0 -0
  430. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/unit-test/SKILL.md +0 -0
  431. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/using-agent-skills/SKILL.md +0 -0
  432. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/vitest-rtl-msw-patterns/README.md +0 -0
  433. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/vitest-rtl-msw-patterns/SKILL.md +0 -0
  434. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/vitest-rtl-msw-patterns/references/msw-and-contract-tests.md +0 -0
  435. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/vitest-rtl-msw-patterns/references/repo-evidence.md +0 -0
  436. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/vitest-rtl-msw-patterns/references/vitest-rtl-setup.md +0 -0
  437. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/zap-vapt-scanning/README.md +0 -0
  438. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/zap-vapt-scanning/SKILL.md +0 -0
  439. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/zap-vapt-scanning/references/operating-guide.md +0 -0
  440. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/zap-vapt-scanning/scripts/endpoints.example.txt +0 -0
  441. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/zap-vapt-scanning/scripts/requirements.txt +0 -0
  442. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/zap-vapt-scanning/scripts/zap_vapt.py +0 -0
  443. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/zustand-state-patterns/README.md +0 -0
  444. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/zustand-state-patterns/SKILL.md +0 -0
  445. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/zustand-state-patterns/references/async-polling-and-persistence.md +0 -0
  446. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/zustand-state-patterns/references/repo-evidence.md +0 -0
  447. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/skills/zustand-state-patterns/references/store-structure-and-selectors.md +0 -0
  448. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/src/claude_kit/__main__.py +0 -0
  449. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/src/claude_kit/catalog.py +0 -0
  450. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/src/claude_kit/cli.py +0 -0
  451. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/src/claude_kit/hooks.py +0 -0
  452. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/src/claude_kit/models.py +0 -0
  453. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/src/claude_kit/pipeline.py +0 -0
  454. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/src/claude_kit/prompts.py +0 -0
  455. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/src/claude_kit/render.py +0 -0
  456. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/src/claude_kit/scaffold.py +0 -0
  457. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/src/claude_kit/upgrader.py +0 -0
  458. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/src/claude_kit/validator.py +0 -0
  459. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/CLAUDE.md +0 -0
  460. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/CLAUDE.stack.md.tmpl +0 -0
  461. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/CONTINUITY.template.md +0 -0
  462. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/README.claude-sdlc.md.tmpl +0 -0
  463. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/agent-memory/MEMORY.md +0 -0
  464. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/agent-memory/api/.gitkeep +0 -0
  465. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/agent-memory/architecture/.gitkeep +0 -0
  466. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/agent-memory/debugging/.gitkeep +0 -0
  467. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
  468. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/agent-memory/patterns/.gitkeep +0 -0
  469. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/agent-memory/performance/.gitkeep +0 -0
  470. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/artifacts/adr.md +0 -0
  471. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/artifacts/api-change-report.md +0 -0
  472. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/artifacts/change-proposal.md +0 -0
  473. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/artifacts/feature-spec.md +0 -0
  474. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/artifacts/release-plan.md +0 -0
  475. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/artifacts/runbook.md +0 -0
  476. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/artifacts/security-review.md +0 -0
  477. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/artifacts/test-plan.md +0 -0
  478. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/README.md +0 -0
  479. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/agents/data-workflow-agent.md +0 -0
  480. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/agents/founder-prototype-agent.md +0 -0
  481. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/agents/internal-tools-builder.md +0 -0
  482. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/agents/pm-copilot.md +0 -0
  483. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/agents/staff-pm-reviewer.md +0 -0
  484. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/agents/support-ticket-engineer.md +0 -0
  485. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/devops-and-release/README.md +0 -0
  486. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
  487. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/engineering-core/README.md +0 -0
  488. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
  489. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
  490. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
  491. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
  492. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
  493. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/product-to-code/README.md +0 -0
  494. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
  495. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/quality-and-review/README.md +0 -0
  496. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
  497. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/security-and-compliance/README.md +0 -0
  498. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
  499. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/rules/ai-working-agreement.md +0 -0
  500. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/rules/ambiguity-resolution.md +0 -0
  501. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
  502. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/rules/compliance-policy.md +0 -0
  503. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
  504. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/rules/pii-policy.md +0 -0
  505. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/rules/production-data-policy.md +0 -0
  506. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
  507. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/rules/prototype-boundaries.md +0 -0
  508. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/rules/secrets-policy.md +0 -0
  509. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
  510. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
  511. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
  512. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
  513. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
  514. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/skills/review-scope/SKILL.md +0 -0
  515. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/skills/review-sprint/SKILL.md +0 -0
  516. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/skills/review-sprint-plan/SKILL.md +0 -0
  517. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/org/skills/review-ux-flow/SKILL.md +0 -0
  518. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/settings.json +0 -0
  519. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/backend/go/net-http/rules/go-patterns.md +0 -0
  520. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
  521. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
  522. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
  523. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
  524. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
  525. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
  526. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
  527. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
  528. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
  529. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/frontend/react/rules/design-system-compliance.md +0 -0
  530. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/frontend/react/rules/mobile-design-guidelines.md +0 -0
  531. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/frontend/react/rules/react-patterns.md +0 -0
  532. {claude_code_kit-0.37.0 → claude_code_kit-0.39.0}/templates/stacks/frontend/react/rules/ui-design-system.md +0 -0
  533. {claude_code_kit-0.37.0 → claude_code_kit-0.39.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.37.0",
13
+ "version": "0.39.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.37.0",
3
+ "version": "0.39.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,46 @@ 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.39.0] — 2026-06-26
8
+
9
+ **Supply-chain defense** (first of four adoptions from the MIT [`athola/claude-night-market`](https://github.com/athola/claude-night-market);
10
+ re-derived stack-agnostic, nothing vendored). Closes the pre-install gap between "should we add a dep"
11
+ (§2a.5 / `library-review`) and "are our installed deps vulnerable" (`dependency-scanner`).
12
+
13
+ - **`skills/dependency-verification/`** (new core skill) — pre-install verification that a package
14
+ **name** actually exists in its registry (PyPI/npm/crates.io/…) and isn't a typosquat/slopsquat,
15
+ before any install command or manifest edit. Defends against LLM-hallucinated package names
16
+ (~5–22% of model-suggested packages don't exist; the recurring names get pre-registered with
17
+ malware). Three states — exists / nonexistent / unverified — and **never fails closed on a network
18
+ error**. Cross-linked into the supply-chain layer chain (§2a.5 → library-review → this → install →
19
+ dependency-scanner).
20
+ - **`agents/dependency-scanner.md`** gains a **Supply-Chain Integrity mode** (post-resolve):
21
+ lockfile/hash integrity, artifact + lifecycle-script scanning, known-bad-versions cross-check, and
22
+ provenance signals — beyond the existing CVE audit.
23
+ - **`skills/security-and-hardening`** + **`skills/library-review`** updated to point at the new layers.
24
+ - Counts: **98 → 99** total skills (**52 → 53** core; stack-collection unchanged at 46).
25
+
26
+ ## [0.38.0] — 2026-06-26
27
+
28
+ **New `library-review` core skill + a property-based-testing note** (two genuinely-new ideas
29
+ cherry-picked, stack-agnostic, from the MIT [`wdm0006/python-skills`](https://github.com/wdm0006/python-skills);
30
+ the rest of that collection was skipped as redundant with existing core/collection skills).
31
+
32
+ - **`skills/library-review/`** (core — SKILL.md only, stack-agnostic) — a structured **pre-add
33
+ dependency-adoption evaluation**: need & fit, alternatives (stdlib/native/existing dep),
34
+ maintenance & bus factor, license compatibility, security/supply-chain history, transitive weight,
35
+ lock-in/exit cost, and a documented adopt/reject decision. Re-cast (health-signal dimensions
36
+ adapted from the MIT upstream's `reviewing-python-libraries`) as an *adoption* gate. Reuse-first:
37
+ cross-linked to and explicitly bounded against `mandatory-workflow.md` §2a.5 (whether a dep is
38
+ needed at all), `over-engineering-review`, the `dependency-scanner` agent (audits *installed* deps —
39
+ this is its pre-add counterpart), and `code-review-and-quality` (whose 5-point Dependency
40
+ Discipline list now points here as its full form).
41
+ - **`test-driven-development`** gains a **Property-Based Testing** section (count-neutral edit):
42
+ what it is, when to reach for it, the round-trip/idempotence/invariant/metamorphic property shapes,
43
+ and one-per-language ecosystem pointers (Hypothesis · fast-check · jqwik · proptest · …).
44
+ - Counts: **97 → 98** total skills (**51 → 52** core; stack-collection unchanged at 46). No
45
+ `docs/stack-skills` row (core skills aren't listed there). Version bumped across the 5 parity files.
46
+
7
47
  ## [0.37.0] — 2026-06-26
8
48
 
9
49
  **New `temporal-developer` collection skill — Temporal *fundamentals*, language-agnostic** (re-derived
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-kit
3
- Version: 0.37.0
3
+ Version: 0.39.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
@@ -84,7 +84,7 @@ Quick start) for the full breakdown of any row.
84
84
  | 🔁 **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 |
85
85
  | 🤖 **Agent roster** | **28** tiered agents + per-database overlays + **6** org personas, led by an Orchestrator that never writes code |
86
86
  | 🔍 **Self-verification & review** | RARV green-Verify (real commands, not imagined), blind parallel review, and read-only risk classification |
87
- | 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **97** context-activated skills (51 core + 46 stack-collection) |
87
+ | 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **99** context-activated skills (53 core + 46 stack-collection) |
88
88
  | 🧱 **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 |
89
89
  | 🎚️ **Profiles, scopes & org** | **3** rigor profiles · **3** scopes · **5** autonomy levels · **7** org packs + **10** policy rules |
90
90
  | 🧠 **Memory & learning** | Working memory across context compaction + a cost-aware learnings loop (`capture_mode`) so the same mistake isn't repeated |
@@ -281,7 +281,7 @@ need.
281
281
  - **23 stack-agnostic core rules** in [`rules/`](rules/) — `mandatory-workflow`, `quality-gates`,
282
282
  `rarv-cycle`, `continuity`, plus eight agent-operation rules and `autonomy-levels` +
283
283
  `risk-classification` (see [`docs/agentic-patterns.md`](docs/agentic-patterns.md)).
284
- - **97 on-demand skills** in [`skills/`](skills/) (51 core + 46 stack-collection) — spec-driven dev, planning, TDD, debugging, code
284
+ - **99 on-demand skills** in [`skills/`](skills/) (53 core + 46 stack-collection) — spec-driven dev, planning, TDD, debugging, code
285
285
  review, threat modeling, and more — activated by context and led by the `sdlc` entrypoint.
286
286
  - **Profile-subset install** — each profile installs a strict subset of agents, skills, hooks, and
287
287
  rules (`lean ⊂ standard ⊂ enterprise`), from fast track to full audit.
@@ -437,7 +437,7 @@ owned gates, and the rule that **no gate passes on an unproven verdict**.
437
437
  | **[wshobson/agents](https://github.com/wshobson/agents)** & similar agent collections | Large libraries of individual subagent prompts you pick from | 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. |
438
438
  | **[GitHub spec-kit](https://github.com/github/spec-kit)** | A spec-driven workflow (constitution → spec → tasks → analyze) | The same coverage-gate idea (the `story-planner` 1f gate + `task-tracker-sync`) **absorbed into a broader** lifecycle that also covers review, security, build, test, release, and observability gates. Complementary, wider scope. |
439
439
  | **claude-flow / multi-agent runtimes** | Runtime orchestrators that *execute* swarms of agents | **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. |
440
- | **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | A **catalog-driven generator**: resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 97 skills, gates, and hooks, kept **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
440
+ | **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | A **catalog-driven generator**: resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 99 skills, gates, and hooks, kept **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
441
441
 
442
442
  **Choose claude-kit when** you want a consistent, reviewable, **gate-enforced** autonomous-SDLC setup
443
443
  that's the same across every repo and stack, installs in seconds, ships nothing you have to run, and
@@ -54,7 +54,7 @@ Quick start) for the full breakdown of any row.
54
54
  | 🔁 **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 |
55
55
  | 🤖 **Agent roster** | **28** tiered agents + per-database overlays + **6** org personas, led by an Orchestrator that never writes code |
56
56
  | 🔍 **Self-verification & review** | RARV green-Verify (real commands, not imagined), blind parallel review, and read-only risk classification |
57
- | 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **97** context-activated skills (51 core + 46 stack-collection) |
57
+ | 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **99** context-activated skills (53 core + 46 stack-collection) |
58
58
  | 🧱 **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 |
59
59
  | 🎚️ **Profiles, scopes & org** | **3** rigor profiles · **3** scopes · **5** autonomy levels · **7** org packs + **10** policy rules |
60
60
  | 🧠 **Memory & learning** | Working memory across context compaction + a cost-aware learnings loop (`capture_mode`) so the same mistake isn't repeated |
@@ -251,7 +251,7 @@ need.
251
251
  - **23 stack-agnostic core rules** in [`rules/`](rules/) — `mandatory-workflow`, `quality-gates`,
252
252
  `rarv-cycle`, `continuity`, plus eight agent-operation rules and `autonomy-levels` +
253
253
  `risk-classification` (see [`docs/agentic-patterns.md`](docs/agentic-patterns.md)).
254
- - **97 on-demand skills** in [`skills/`](skills/) (51 core + 46 stack-collection) — spec-driven dev, planning, TDD, debugging, code
254
+ - **99 on-demand skills** in [`skills/`](skills/) (53 core + 46 stack-collection) — spec-driven dev, planning, TDD, debugging, code
255
255
  review, threat modeling, and more — activated by context and led by the `sdlc` entrypoint.
256
256
  - **Profile-subset install** — each profile installs a strict subset of agents, skills, hooks, and
257
257
  rules (`lean ⊂ standard ⊂ enterprise`), from fast track to full audit.
@@ -407,7 +407,7 @@ owned gates, and the rule that **no gate passes on an unproven verdict**.
407
407
  | **[wshobson/agents](https://github.com/wshobson/agents)** & similar agent collections | Large libraries of individual subagent prompts you pick from | 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. |
408
408
  | **[GitHub spec-kit](https://github.com/github/spec-kit)** | A spec-driven workflow (constitution → spec → tasks → analyze) | The same coverage-gate idea (the `story-planner` 1f gate + `task-tracker-sync`) **absorbed into a broader** lifecycle that also covers review, security, build, test, release, and observability gates. Complementary, wider scope. |
409
409
  | **claude-flow / multi-agent runtimes** | Runtime orchestrators that *execute* swarms of agents | **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. |
410
- | **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | A **catalog-driven generator**: resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 97 skills, gates, and hooks, kept **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
410
+ | **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | A **catalog-driven generator**: resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 99 skills, gates, and hooks, kept **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
411
411
 
412
412
  **Choose claude-kit when** you want a consistent, reviewable, **gate-enforced** autonomous-SDLC setup
413
413
  that's the same across every repo and stack, installs in seconds, ships nothing you have to run, and
@@ -83,6 +83,29 @@ Backend deps: {N} · Frontend deps: {N} · Vulns: Critical {N} / High {N} / Medi
83
83
 
84
84
  Return counts by severity + the finding table to `security-reviewer`. If a CVE has no patch, recommend a workaround or replacement and mark it for an allowlist-with-review-date decision (route to the human via the Orchestrator). Log durable findings to `.claude/CONTINUITY.md`.
85
85
 
86
+ ## SUPPLY-CHAIN INTEGRITY MODE (beyond CVEs)
87
+
88
+ CVE scanning catches *known-vulnerable* versions; it does not catch a *compromised* or *impersonated*
89
+ package. When auditing for a supply-chain advisory, during incident response, or before a release, add
90
+ these checks (still report-only — never modify lockfiles):
91
+
92
+ - **Lockfile / hash integrity.** Confirm the lockfile pins integrity hashes and that resolved
93
+ artifacts match them (`pip`'s `--require-hashes`, `npm ci` against `package-lock.json`,
94
+ `cargo`'s `Cargo.lock`, `go.sum`). Flag lockfile drift (manifest and lockfile disagree) and any
95
+ dependency resolved from an unexpected source/registry.
96
+ - **Artifact scan.** Inspect what an install would actually run: post-install/lifecycle scripts
97
+ (`package.json` `postinstall`, `pyproject`/`setup.py` build hooks), and suspicious payload files
98
+ (e.g. `.pth` files that execute on interpreter start, obfuscated blobs). Report; don't execute.
99
+ - **Known-bad versions.** Cross-check resolved versions against a known-bad/compromised-version list
100
+ for the project's ecosystem (maintain the project's own list and the public advisory feeds). A
101
+ matched version is an **auto-Critical** finding.
102
+ - **Provenance signals.** Prefer packages with signed releases / 2FA-published maintainers; flag a
103
+ dependency that recently changed maintainer or publishing key.
104
+
105
+ This is the **post-resolve** half of the kit's supply-chain story; the **pre-install** half (verifying
106
+ a package *name* exists and isn't a typosquat/slopsquat, before it ever enters a lockfile) is the
107
+ `.claude/skills/dependency-verification` skill. Cite it; don't restate it.
108
+
86
109
  ## CADENCE MODE (whole-project maintenance pass)
87
110
 
88
111
  The same audit can be dispatched **standalone** — outside any one feature — as a recurring
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "claude-code-kit"
7
- version = "0.37.0"
7
+ version = "0.39.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"
@@ -280,6 +280,8 @@ Part of code review is dependency review:
280
280
 
281
281
  **Rule:** Prefer standard library and existing utilities over new dependencies. Every dependency is a liability.
282
282
 
283
+ For a full pre-add evaluation of a specific candidate (maintenance/bus-factor, license, supply-chain history, transitive weight, lock-in, adopt/reject decision), use the `library-review` skill — this 5-point list is its quick form.
284
+
283
285
  ## The Review Checklist
284
286
 
285
287
  ```markdown
@@ -0,0 +1,101 @@
1
+ ---
2
+ name: dependency-verification
3
+ description: Pre-install verification that a package NAME actually exists in its registry (PyPI/npm/crates.io/…) and is not a typosquat/slopsquat, before you run an install command or write it into a manifest. Defends against LLM-hallucinated package names — a measured 5–22% of model-suggested packages do not exist, and attackers pre-register the names that recur. Use before adding, installing, or recommending any dependency. Do NOT use to judge whether a real package is worth adopting (use library-review) or to audit ALREADY-installed dependencies for known CVEs (use the dependency-scanner agent) — this is the narrower "does this name even exist" check that runs first.
4
+ ---
5
+
6
+ # Dependency Verification (pre-install name check)
7
+
8
+ > A package name the model produced is a **claim**, not a fact. The registry is the fact. Verify
9
+ > before you install. Adapted (stack-agnostic) from the MIT-licensed
10
+ > [`athola/claude-night-market`](https://github.com/athola/claude-night-market) `dependency-verification` skill.
11
+
12
+ ## Why this exists
13
+
14
+ Code-generating models recommend packages that **do not exist** at a measured rate of ~5% (commercial
15
+ models) to ~22% (open models), and ~58% of the hallucinated names *recur* across reruns — so an
16
+ attacker can predict a commonly-hallucinated name, register the empty slot, and ship malware. This is
17
+ **"slopsquatting"** (the LLM-era cousin of typosquatting). A proof-of-concept package registered
18
+ against a frequently-hallucinated name drew tens of thousands of installs. The rate does *not* fall to
19
+ zero with a better model. The defense is cheap: **confirm the name exists in its registry before you
20
+ install or recommend it.**
21
+
22
+ ## When to use
23
+
24
+ Before any of:
25
+ - running an install command — `pip install`, `uv add`, `npm install`, `pnpm add`, `yarn add`,
26
+ `cargo add`, `go get`, `poetry add`, `gem install`, `composer require`, …
27
+ - writing a dependency into a manifest — `pyproject.toml`, `requirements.txt`, `package.json`,
28
+ `Cargo.toml`, `go.mod`, `Gemfile`, …
29
+ - **recommending a package to the user in prose** (a hallucinated recommendation is still a defect).
30
+
31
+ ## The two failure signals
32
+
33
+ A candidate fails verification on **either**:
34
+
35
+ 1. **Nonexistent** — the name is absent from its registry (e.g. HTTP 404). Likely a hallucination.
36
+ Do not install; find the correct name, or confirm the package was renamed/removed.
37
+ 2. **Typosquat / slopsquat** — the name is one or two edits from a popular package (`reqeusts` vs
38
+ `requests`, `python-dateutil` vs a look-alike). Either a typo or deliberate impersonation —
39
+ restate the exact name you intend and confirm before proceeding.
40
+
41
+ ## Three states (never fail closed on a network error)
42
+
43
+ | State | Registry result | Action |
44
+ |-------|-----------------|--------|
45
+ | **exists** | 200 / found | pass |
46
+ | **nonexistent** | 404 / not found | block — likely hallucination |
47
+ | **unverified** | timeout / rate-limit / offline / non-404 error | **warn only, never block** — don't fail closed on a network problem |
48
+
49
+ ## Verification procedure
50
+
51
+ 1. Extract the exact names the command or manifest edit would fetch (strip version specifiers/flags).
52
+ 2. Confirm existence in the ecosystem's registry. A common, well-known package needn't be checked;
53
+ verify anything unfamiliar, freshly-suggested, or near a popular name.
54
+ 3. For any name close to a popular package, restate the intended name and confirm.
55
+ 4. Capture the check as evidence (registry URL + HTTP status) when the install lands in a PR.
56
+
57
+ ### Registry existence endpoints
58
+
59
+ | Ecosystem | URL (`{name}` = package) | Exists / Absent |
60
+ |-----------|--------------------------|------------------|
61
+ | PyPI | `https://pypi.org/pypi/{name}/json` | 200 / 404 |
62
+ | npm | `https://registry.npmjs.org/{name}` | 200 / 404 |
63
+ | crates.io | `https://crates.io/api/v1/crates/{name}` | 200 / 404 |
64
+ | other | the ecosystem's registry/index API | found / not-found |
65
+
66
+ ```bash
67
+ # Prints the HTTP status: 200 = exists, 404 = does not. (PyPI shown; swap the URL per ecosystem.)
68
+ curl -s -o /dev/null -w '%{http_code}\n' "https://pypi.org/pypi/requests/json"
69
+ ```
70
+
71
+ ## A confidence signal, not a second gate
72
+
73
+ Once a name clears the two signals, real-world usage is a *softer* signal that the name is the
74
+ established one, not a freshly-registered impostor: GitHub dependents / code-search hits for the exact
75
+ name, repo stars + recent activity, download history (a popular-sounding name registered yesterday is
76
+ a red flag; a modest name with years of releases is reassuring). **Low usage never blocks on its own**
77
+ — new, niche, internal, and private packages are legitimately low-usage. Use it to build confidence
78
+ and disambiguate two similar names, then hand a *real* candidate to `library-review` for the full
79
+ adopt/reject evaluation.
80
+
81
+ ## Where this sits (the supply-chain layers)
82
+
83
+ ```
84
+ need a dep at all? → mandatory-workflow.md §2a.5 (Reuse & YAGNI gate)
85
+ which dep, is it healthy?→ library-review skill (adopt/reject evaluation)
86
+ does this NAME exist? → THIS skill (pre-install: hallucination/typosquat) ◄── you are here
87
+ install
88
+ installed deps: CVEs? → dependency-scanner agent (post-install CVE/outdated audit)
89
+ lockfile/artifact integrity? → dependency-scanner agent (supply-chain integrity mode)
90
+ ```
91
+
92
+ **Optional enforcement:** a `PreToolUse` hook on install commands can run this check automatically
93
+ (warn-by-default; block on nonexistent/typosquat when configured). The hook is a backstop — verify
94
+ deliberately when you add a dependency rather than waiting for the gate.
95
+
96
+ ## Exit criteria
97
+
98
+ - [ ] Every package in the install command / manifest edit is confirmed present in its registry, or the install is abandoned
99
+ - [ ] Any name within ~2 edits of a popular package is restated and confirmed before install
100
+ - [ ] A name that couldn't be verified online is reported as *unverified* and not silently installed
101
+ - [ ] For PR-bound installs, the registry check is captured as evidence
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: library-review
3
+ description: Structured pre-add evaluation of a candidate third-party dependency before you adopt it—need & fit, alternatives (stdlib/native/existing dep), maintenance & bus factor, adoption signals, license compatibility, security & supply-chain history, install weight & transitive deps, lock-in/exit cost, and a documented adopt/reject decision. Stack-agnostic (pip, npm, cargo, go modules, maven, gems, …). Use when proposing or choosing between new libraries, or when mandatory-workflow §2a.5 rung 5 ("can an existing dependency do it?") points at pulling in a new one. Do NOT use to decide whether you need a dependency at all (use the §2a.5 reuse/YAGNI gate + over-engineering-review) or to audit ALREADY-installed dependencies for CVEs (use the dependency-scanner agent).
4
+ ---
5
+
6
+ # Library Review (pre-add dependency evaluation)
7
+
8
+ > Health-signal dimensions adapted (stack-agnostic, re-cast as an *adoption* decision) from the
9
+ > MIT-licensed [`wdm0006/python-skills`](https://github.com/wdm0006/python-skills)
10
+ > `reviewing-python-libraries` skill (© Will McGinnis). That skill audits a library's *own* quality
11
+ > for publishing; this one turns the same signals into a **"should we take on this dependency?"** gate.
12
+
13
+ ## What this is (and is not)
14
+
15
+ Adding a dependency is a long-lived liability: it ships its bugs, its CVEs, its license, its
16
+ maintainer's availability, and its transitive tree into your project, and removing it later is rarely
17
+ free. This skill is the **structured evaluation you run before adopting a specific candidate** — or
18
+ when choosing between two or three.
19
+
20
+ It is deliberately scoped, and it composes with three things already in the kit — use those first /
21
+ alongside, don't duplicate them:
22
+
23
+ - **Do we even need a new dependency?** That is the **§2a.5 Reuse & YAGNI Gate**
24
+ (`.claude/rules/mandatory-workflow.md`) and the `over-engineering-review` skill — walk the ladder
25
+ (need it at all? → in the codebase? → stdlib? → native platform? → an *existing* dependency?) and
26
+ only reach this skill once a *new* dependency is genuinely on the table.
27
+ - **Auditing dependencies you have ALREADY installed** for known CVEs / outdated versions is the
28
+ `dependency-scanner` agent. This skill is its **pre-add counterpart** — it runs *before* the
29
+ dependency is in the lockfile.
30
+ - The 5-point "Before adding any dependency" list in `code-review-and-quality` is the quick form;
31
+ this skill is its full expansion.
32
+
33
+ ## When to use
34
+
35
+ - A new third-party dependency is being proposed (by you or in review)
36
+ - Choosing between 2–3 candidate libraries for the same need
37
+ - §2a.5 rung 5 surfaced a *new* dependency as the cheapest option
38
+ - A dependency upgrade crosses a major version, changes its license, or changes maintainership
39
+
40
+ **When NOT to use:** deciding *whether* you need a dependency (→ §2a.5 / `over-engineering-review`);
41
+ scanning installed deps for CVEs (→ `dependency-scanner`); reviewing your *own* code (→
42
+ `code-review-and-quality`).
43
+
44
+ ## Evaluation dimensions
45
+
46
+ Score each; a single hard failure (incompatible license, unpatched critical CVE, abandoned) is
47
+ disqualifying regardless of the rest.
48
+
49
+ | Dimension | What to check | Disqualifier |
50
+ |-----------|---------------|--------------|
51
+ | **Need & fit** | Does it solve the *actual* problem, not a superset? How much of its API will you really use? | You'd use 5% of a large lib for one function |
52
+ | **Alternatives** | stdlib / native platform feature / an already-installed dep / ~20 lines of your own | A cheaper rung of §2a.5 satisfies it |
53
+ | **Maintenance & bus factor** | Recent commits, release cadence, issue/PR responsiveness, number of active maintainers, is it archived/deprecated? | Abandoned (no commits ~1yr), sole unresponsive maintainer, archived |
54
+ | **Adoption & trust** | Real-world usage; downloads/dependents as *weak* signals (not popularity contests); who else relies on it | Effectively unused / no track record for critical use |
55
+ | **License** | Compatible with *your* project's license and distribution model. Copyleft (GPL/AGPL) vs permissive (MIT/BSD/Apache); transitive licenses too. A copyleft dep in a permissive project may mean *document, don't vendor* | Incompatible / missing license |
56
+ | **Security & supply chain** | CVE/advisory history *and how fast they're patched*; signed/2FA'd releases; typosquat/name-confusion check; provenance | Unpatched critical CVE; suspicious provenance |
57
+ | **Weight & transitive deps** | Install/bundle/binary size; count and quality of transitive deps (each is its own liability); platform/runtime support | Huge transitive blast radius for a small need |
58
+ | **API fit & lock-in** | Idiomatic for your stack? Type stubs/typings? How deeply would it thread through your code — i.e. exit cost? | Pervasive lock-in with no seam to swap it |
59
+ | **Operational fit** | Compatible version range with your runtime/other deps; maintenance burden of pinning/upgrading | Conflicts with existing pinned deps |
60
+
61
+ ## Red flags 🚩 / Green flags ✅
62
+
63
+ **🚩** No tests · no license · last release long ago · single unresponsive maintainer · exact-pins
64
+ everything (fragile) · heavy transitive tree for a tiny need · unpatched advisories · you'd vendor
65
+ just one helper from it.
66
+
67
+ **✅** Active, regular releases · clear changelog + semver · permissive compatible license · security
68
+ scanning / signed releases · small focused surface · typings available · several reputable dependents.
69
+
70
+ ## The decision
71
+
72
+ Conclude explicitly — never let a dependency slip in undecided:
73
+
74
+ 1. **Adopt** — passes every dimension; pin sensibly and move on.
75
+ 2. **Adopt behind a seam** — acceptable but with real lock-in/risk → wrap it behind a thin interface
76
+ so it can be swapped, and note the exit path.
77
+ 3. **Reject** — a disqualifier fires, or a cheaper §2a.5 rung wins → record what you'll do instead.
78
+
79
+ **Adding a dependency needs user approval** (per §2a.5 rung 5 / mandatory-workflow 2a). Record the
80
+ decision and its rationale where future readers will find it — an ADR via `documentation-and-adrs`
81
+ for a consequential one, or at minimum a line in the PR / change proposal. A rejected candidate is
82
+ worth recording too, so the question isn't re-litigated.
83
+
84
+ ## Quick checklist
85
+
86
+ ```
87
+ - [ ] §2a.5 walked first — a new dependency is genuinely the cheapest rung
88
+ - [ ] Need & fit: solves the real problem; we use a meaningful share of it
89
+ - [ ] No cheaper alternative (stdlib / native / existing dep / a few lines)
90
+ - [ ] Actively maintained; bus factor > 1; not archived/deprecated
91
+ - [ ] License compatible with the project (incl. transitive)
92
+ - [ ] No unpatched critical/high CVEs; releases are patched promptly
93
+ - [ ] Transitive-dep weight acceptable for the value gained
94
+ - [ ] Lock-in understood; seam added if exit cost is high
95
+ - [ ] User approval obtained; decision + rationale recorded
96
+ ```
97
+
98
+ ## Related
99
+
100
+ - `.claude/rules/mandatory-workflow.md` (§2a.5 Reuse & YAGNI Gate) — the gate that decides *whether* a dep is needed
101
+ - `over-engineering-review` — reactive twin of §2a.5; stdlib/native/yagni lenses
102
+ - `dependency-verification` — the *pre-install* name check (does this package name even exist / is it a typosquat) that runs before this evaluation
103
+ - `dependency-scanner` agent — audits *already-installed* deps for CVEs + lockfile/artifact integrity (this skill's post-add counterpart)
104
+ - `code-review-and-quality` (Dependency Discipline) — the quick 5-point form of this evaluation
105
+ - `documentation-and-adrs` — record a consequential adopt/reject as an ADR
@@ -322,6 +322,12 @@ def validate_upload(content_type: str, size: int) -> None:
322
322
 
323
323
  ## Triaging Dependency Audit Results
324
324
 
325
+ > **Supply-chain layers.** A CVE audit catches *known-vulnerable* versions — it does not catch a
326
+ > *hallucinated*, *typosquatted*, or *compromised* package. Pair it with the `dependency-verification`
327
+ > skill (pre-install: confirm the package name exists and isn't a typosquat/slopsquat) and the
328
+ > `dependency-scanner` agent's supply-chain integrity mode (post-resolve: lockfile-hash + artifact
329
+ > scanning + known-bad versions). Pre-install name check → install → CVE + integrity audit.
330
+
325
331
  Not every finding is an emergency. Decision tree:
326
332
 
327
333
  ```
@@ -171,6 +171,35 @@ Is it a critical user flow that must work end-to-end?
171
171
  → E2E test (large) — limit these to critical paths
172
172
  ```
173
173
 
174
+ ## Property-Based Testing
175
+
176
+ Example-based tests (everything above) check the cases *you* thought of. **Property-based testing**
177
+ checks a *property* that must hold for **all** inputs, by generating hundreds of randomized cases —
178
+ including the boundary and adversarial inputs you'd never enumerate by hand — and shrinking any
179
+ failure to a minimal reproducer. It complements, never replaces, example-based TDD: keep your
180
+ hand-written cases as living documentation, and add properties where the input space is large and a
181
+ general invariant exists.
182
+
183
+ **Reach for it when** the input space is wide (parsers, serializers, numeric/data transforms,
184
+ collection logic, state machines) and you can state a rule that should *always* be true.
185
+
186
+ Common property shapes:
187
+
188
+ | Property | The invariant | Example |
189
+ |----------|---------------|---------|
190
+ | **Round-trip** | `decode(encode(x)) == x` | serialize→deserialize, parse→format, compress→decompress |
191
+ | **Idempotence** | `f(f(x)) == f(x)` | normalize, dedupe, sort, saturating clamp |
192
+ | **Invariant / oracle** | a cheaper or known-correct implementation agrees | optimized vs naive; sorted output is a permutation of input and ordered |
193
+ | **Metamorphic** | a transformed input changes the output predictably | `sort(reverse(xs)) == sort(xs)`; adding an item grows the count by one |
194
+
195
+ The point isn't more assertions — it's letting the generator *find the input that breaks your
196
+ mental model*. When it shrinks to a tiny failing case, that case becomes a permanent example-based
197
+ regression test (the Prove-It Pattern).
198
+
199
+ Ecosystem (one per language; the project's own runner/conventions live in `testing-conventions`):
200
+ **Python** → Hypothesis · **JS/TS** → fast-check · **Java/Kotlin** → jqwik · **Rust** → proptest ·
201
+ **Go** → built-in `testing/quick` or rapid · **Haskell/Scala** → QuickCheck/ScalaCheck.
202
+
174
203
  ## Writing Good Tests
175
204
 
176
205
  ### Test State, Not Interactions
@@ -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.37.0"
10
+ __version__ = "0.39.0"