claude-code-kit 0.24.0__tar.gz → 0.26.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (520) hide show
  1. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/.claude-plugin/marketplace.json +1 -1
  2. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/.claude-plugin/plugin.json +1 -1
  3. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/CHANGELOG.md +60 -2
  4. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/PKG-INFO +26 -2
  5. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/README.md +25 -1
  6. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/docs/coverage-audit.md +2 -2
  7. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/hooks.json +11 -2
  8. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/guard-secrets.sh +1 -1
  9. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/pyproject.toml +1 -1
  10. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/continuity.md +4 -0
  11. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/scripts/check_docs_consistency.py +34 -19
  12. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/scripts/init.sh +4 -2
  13. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/alembic-migrations/references/alembic-setup-and-env.md +3 -3
  14. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/alembic-migrations/references/repo-evidence.md +2 -2
  15. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/alembic-migrations/references/writing-migrations.md +6 -6
  16. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/api-pagination-filtering-sorting/README.md +1 -1
  17. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/api-pagination-filtering-sorting/SKILL.md +10 -10
  18. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/api-pagination-filtering-sorting/references/query-params-conventions.md +9 -9
  19. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/api-pagination-filtering-sorting/references/repo-evidence.md +47 -47
  20. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/containerization-and-deployment/references/deployment-and-secrets.md +1 -1
  21. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/data-engineering-bigquery-gcs/README.md +1 -1
  22. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/data-engineering-bigquery-gcs/SKILL.md +20 -20
  23. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/data-engineering-bigquery-gcs/references/bigquery-gcs-io.md +1 -1
  24. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/data-engineering-bigquery-gcs/references/medallion-architecture.md +21 -21
  25. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/data-engineering-bigquery-gcs/references/repo-evidence.md +11 -11
  26. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/design-patterns-and-conventions/references/naming-and-layout.md +2 -2
  27. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/design-patterns-and-conventions/references/patterns-catalog.md +1 -1
  28. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/fastapi-service-patterns/references/api-versioning.md +1 -1
  29. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/frontend-repo-architecture/SKILL.md +3 -3
  30. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/frontend-repo-architecture/references/api-layer-and-types.md +12 -12
  31. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/frontend-repo-architecture/references/divergences.md +5 -5
  32. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/frontend-repo-architecture/references/repo-evidence.md +19 -18
  33. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/frontend-repo-architecture/references/structure-and-state.md +48 -48
  34. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/frontend-repo-architecture/references/testing-patterns.md +4 -4
  35. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/gcp-cloud-run-github-actions/references/repo-evidence.md +1 -1
  36. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/graphql-patterns/README.md +3 -3
  37. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/graphql-patterns/SKILL.md +19 -19
  38. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/graphql-patterns/references/repo-evidence.md +32 -31
  39. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/graphql-patterns/references/strawberry-backend.md +49 -47
  40. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/graphql-patterns/references/when-to-use-graphql.md +10 -10
  41. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kafka-config-driven/references/consumer-producer-patterns.md +1 -1
  42. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kafka-config-driven/references/repo-evidence.md +1 -1
  43. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/manual-test/SKILL.md +2 -2
  44. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/multi-tenancy-patterns/SKILL.md +1 -1
  45. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/multi-tenancy-patterns/references/isolation-strategies.md +6 -6
  46. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/multi-tenancy-patterns/references/repo-evidence.md +10 -10
  47. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/observability-and-logging/SKILL.md +7 -7
  48. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/observability-and-logging/references/outbound-metrics-and-multi-mode.md +1 -1
  49. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/observability-and-logging/references/repo-evidence.md +5 -5
  50. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/observability-and-logging/references/tracing-and-metrics.md +2 -2
  51. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/python-dao-and-database/references/mongodb-advanced.md +1 -1
  52. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/python-dao-and-database/references/other-db-mongodb.md +10 -10
  53. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/python-dao-and-database/references/repo-evidence.md +5 -5
  54. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/tanstack-react-query-patterns/SKILL.md +1 -1
  55. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/tanstack-react-query-patterns/references/repo-evidence.md +55 -55
  56. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/testing-conventions/SKILL.md +6 -6
  57. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/testing-conventions/references/async-and-mocking.md +6 -6
  58. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/testing-conventions/references/coverage-gap-and-recommendations.md +27 -27
  59. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/testing-conventions/references/pytest-asyncio-modes.md +4 -4
  60. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/testing-conventions/references/repo-evidence.md +10 -10
  61. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/testing-conventions/references/vitest-frontend-testing.md +2 -2
  62. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/zustand-state-patterns/README.md +2 -2
  63. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/zustand-state-patterns/SKILL.md +46 -46
  64. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/zustand-state-patterns/references/async-polling-and-persistence.md +49 -49
  65. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/zustand-state-patterns/references/repo-evidence.md +79 -77
  66. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/zustand-state-patterns/references/store-structure-and-selectors.md +26 -26
  67. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/src/claude_kit/__init__.py +1 -1
  68. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/src/claude_kit/cli.py +20 -2
  69. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/src/claude_kit/hooks.py +4 -3
  70. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/src/claude_kit/pipeline.py +82 -3
  71. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/settings.json +2 -2
  72. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/.gitignore +0 -0
  73. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/CLAUDE.md +0 -0
  74. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/CONTRIBUTING.md +0 -0
  75. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/LICENSE +0 -0
  76. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/acceptance-reviewer.md +0 -0
  77. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/auditor.md +0 -0
  78. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/dependency-scanner.md +0 -0
  79. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/developer.md +0 -0
  80. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/devils-advocate.md +0 -0
  81. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/devops-engineer.md +0 -0
  82. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/e2e-tester.md +0 -0
  83. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/em-reviewer.md +0 -0
  84. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/incident-responder.md +0 -0
  85. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/merge-reviewer.md +0 -0
  86. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/observability-engineer.md +0 -0
  87. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/orchestrator.md +0 -0
  88. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/owasp-reviewer.md +0 -0
  89. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/policy-validator.md +0 -0
  90. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/pr-raiser.md +0 -0
  91. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/risk-classifier.md +0 -0
  92. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/sdlc-code-reviewer.md +0 -0
  93. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/secret-scanner.md +0 -0
  94. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/security-reviewer.md +0 -0
  95. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/senior-backend-dev.md +0 -0
  96. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/senior-frontend-dev.md +0 -0
  97. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/senior-tester.md +0 -0
  98. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/spec-doc-writer.md +0 -0
  99. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/story-planner.md +0 -0
  100. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/technical-architect.md +0 -0
  101. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/tester.md +0 -0
  102. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/ui-designer.md +0 -0
  103. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/agents/unit-tester.md +0 -0
  104. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/catalog/capture.yaml +0 -0
  105. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/catalog/mcp.yaml +0 -0
  106. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/catalog/org.yaml +0 -0
  107. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/catalog/profiles.yaml +0 -0
  108. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/catalog/stacks.yaml +0 -0
  109. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/commands/abort.md +0 -0
  110. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/commands/init.md +0 -0
  111. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/commands/sdlc.md +0 -0
  112. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/commands/status.md +0 -0
  113. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/docs/agentic-patterns.md +0 -0
  114. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/docs/agents.md +0 -0
  115. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/docs/architecture.md +0 -0
  116. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/docs/eval-harness.md +0 -0
  117. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/docs/org-capabilities.md +0 -0
  118. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/docs/stack-skills/GAP-ANALYSIS.md +0 -0
  119. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/docs/stack-skills/README.md +0 -0
  120. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/docs/stack-skills/REPO-INVENTORY.md +0 -0
  121. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/audit-log.sh +0 -0
  122. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/capture-learnings.sh +0 -0
  123. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/guard-destructive-git.sh +0 -0
  124. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/guard-kubectl-delete.sh +0 -0
  125. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/lint-fix.sh +0 -0
  126. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/load-autonomy.sh +0 -0
  127. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/load-continuity.sh +0 -0
  128. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/load-learnings.sh +0 -0
  129. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/type-check.sh +0 -0
  130. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/validate-frontmatter.sh +0 -0
  131. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/validate-settings.sh +0 -0
  132. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/warn-large-edits.sh +0 -0
  133. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/warn-llm-io.sh +0 -0
  134. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/warn-missing-tests.sh +0 -0
  135. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
  136. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/hooks/scripts/warn-shared-modules.sh +0 -0
  137. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/agent-guardrails.md +0 -0
  138. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/agent-memory.md +0 -0
  139. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/agent-resilience.md +0 -0
  140. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/autonomy-levels.md +0 -0
  141. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/code-organization.md +0 -0
  142. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/design-patterns.md +0 -0
  143. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/devops-observability.md +0 -0
  144. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/documentation.md +0 -0
  145. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/evals.md +0 -0
  146. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/frontend-best-practices.md +0 -0
  147. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/goal-setting-and-monitoring.md +0 -0
  148. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/human-in-the-loop.md +0 -0
  149. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/linting-and-formatting.md +0 -0
  150. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/mandatory-workflow.md +0 -0
  151. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/model-tiers.md +0 -0
  152. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/quality-gates.md +0 -0
  153. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/rarv-cycle.md +0 -0
  154. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/reasoning-techniques.md +0 -0
  155. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/responsive-and-accessibility.md +0 -0
  156. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/risk-classification.md +0 -0
  157. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/testing.md +0 -0
  158. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/rules/tool-design.md +0 -0
  159. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/scripts/gen_hooks.py +0 -0
  160. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/_references/accessibility-checklist.md +0 -0
  161. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/_references/orchestration-patterns.md +0 -0
  162. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/_references/performance-checklist.md +0 -0
  163. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/_references/security-checklist.md +0 -0
  164. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/_references/testing-patterns.md +0 -0
  165. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/accessibility-review/SKILL.md +0 -0
  166. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/alembic-migrations/README.md +0 -0
  167. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/alembic-migrations/SKILL.md +0 -0
  168. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/alembic-migrations/references/async-and-multitenant-migrations.md +0 -0
  169. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/alembic-migrations/references/troubleshooting-and-debugging.md +0 -0
  170. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/anthropic-vertex-integration/README.md +0 -0
  171. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/anthropic-vertex-integration/SKILL.md +0 -0
  172. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/anthropic-vertex-integration/references/generate-helpers-and-retry.md +0 -0
  173. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/anthropic-vertex-integration/references/repo-evidence.md +0 -0
  174. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/anthropic-vertex-integration/references/vertex-client-and-auth.md +0 -0
  175. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/api-and-interface-design/SKILL.md +0 -0
  176. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/api-integration/SKILL.md +0 -0
  177. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/api-pagination-filtering-sorting/references/response-metadata.md +0 -0
  178. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/archive-sprint/SKILL.md +0 -0
  179. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/async-python-patterns/README.md +0 -0
  180. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/async-python-patterns/SKILL.md +0 -0
  181. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/async-python-patterns/references/async-boundaries.md +0 -0
  182. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/async-python-patterns/references/lifecycle-and-gather.md +0 -0
  183. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/async-python-patterns/references/repo-evidence.md +0 -0
  184. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/auth-and-rbac/README.md +0 -0
  185. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/auth-and-rbac/SKILL.md +0 -0
  186. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/auth-and-rbac/references/auth-dependencies.md +0 -0
  187. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/auth-and-rbac/references/rbac-and-permissions.md +0 -0
  188. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/auth-and-rbac/references/repo-evidence.md +0 -0
  189. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/auth-and-rbac/references/security-hardening.md +0 -0
  190. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/auth-and-rbac/references/tokens-and-hashing.md +0 -0
  191. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/backend-repo-architecture/README.md +0 -0
  192. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/backend-repo-architecture/SKILL.md +0 -0
  193. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/backend-repo-architecture/references/deployment-patterns.md +0 -0
  194. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/backend-repo-architecture/references/entrypoint-and-config.md +0 -0
  195. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/backend-repo-architecture/references/repo-evidence.md +0 -0
  196. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/backend-repo-architecture/references/structure-patterns.md +0 -0
  197. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/backend-repo-architecture/references/troubleshooting.md +0 -0
  198. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/backlog/SKILL.md +0 -0
  199. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/backlog/item-template.md +0 -0
  200. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
  201. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/bug-hunt/SKILL.md +0 -0
  202. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
  203. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/code-review-and-quality/SKILL.md +0 -0
  204. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/code-simplification/SKILL.md +0 -0
  205. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/component-design/SKILL.md +0 -0
  206. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/configargparse-yaml-env-layering/README.md +0 -0
  207. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/configargparse-yaml-env-layering/SKILL.md +0 -0
  208. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/configargparse-yaml-env-layering/references/config-layering-anatomy.md +0 -0
  209. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/configargparse-yaml-env-layering/references/mode-dispatch-and-precedence.md +0 -0
  210. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/configargparse-yaml-env-layering/references/repo-evidence.md +0 -0
  211. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/consolidate-learnings/SKILL.md +0 -0
  212. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/containerization-and-deployment/README.md +0 -0
  213. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/containerization-and-deployment/SKILL.md +0 -0
  214. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/containerization-and-deployment/references/dockerfile-and-compose.md +0 -0
  215. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/containerization-and-deployment/references/entrypoint-and-modes.md +0 -0
  216. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/containerization-and-deployment/references/kerberos-kinit-bootstrap.md +0 -0
  217. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/containerization-and-deployment/references/makefile-dev-workflow.md +0 -0
  218. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/containerization-and-deployment/references/repo-evidence.md +0 -0
  219. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/context-engineering/SKILL.md +0 -0
  220. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/cron-and-scheduled-jobs/README.md +0 -0
  221. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/cron-and-scheduled-jobs/SKILL.md +0 -0
  222. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/cron-and-scheduled-jobs/references/choosing-and-operations.md +0 -0
  223. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/cron-and-scheduled-jobs/references/kubernetes-cronjob.md +0 -0
  224. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/cron-and-scheduled-jobs/references/repo-evidence.md +0 -0
  225. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/cron-and-scheduled-jobs/references/temporal-schedules.md +0 -0
  226. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/data-engineering-bigquery-gcs/references/bigquery-advanced-patterns.md +0 -0
  227. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/data-engineering-bigquery-gcs/references/temp-table-merge-pattern.md +0 -0
  228. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
  229. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/decision/SKILL.md +0 -0
  230. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/decision/adr-template.md +0 -0
  231. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/deprecation-and-migration/SKILL.md +0 -0
  232. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/design-patterns-and-conventions/README.md +0 -0
  233. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/design-patterns-and-conventions/SKILL.md +0 -0
  234. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/design-patterns-and-conventions/references/anti-patterns.md +0 -0
  235. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/design-patterns-and-conventions/references/repo-evidence.md +0 -0
  236. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/design-patterns-and-conventions/references/testing-patterns.md +0 -0
  237. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/design-patterns-and-conventions/references/troubleshooting.md +0 -0
  238. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/docker-compose/README.md +0 -0
  239. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/docker-compose/SKILL.md +0 -0
  240. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/docker-compose/references/compose-services-and-healthchecks.md +0 -0
  241. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/docker-compose/references/dev-vs-prod-variants.md +0 -0
  242. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/docker-compose/references/repo-evidence.md +0 -0
  243. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/docker-shared/README.md +0 -0
  244. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/docker-shared/SKILL.md +0 -0
  245. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/docker-shared/references/dockerignore-and-build-secrets.md +0 -0
  246. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/docker-shared/references/repo-evidence.md +0 -0
  247. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/docker-shared/references/shared-base-images.md +0 -0
  248. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/docker-shared/references/shared-compose-fragments.md +0 -0
  249. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/dockerfile-backend/README.md +0 -0
  250. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/dockerfile-backend/SKILL.md +0 -0
  251. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/dockerfile-backend/references/backend-dockerfile-anatomy.md +0 -0
  252. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/dockerfile-backend/references/repo-evidence.md +0 -0
  253. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/dockerfile-backend/references/system-deps-and-caching.md +0 -0
  254. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/dockerfile-frontend/README.md +0 -0
  255. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/dockerfile-frontend/SKILL.md +0 -0
  256. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/dockerfile-frontend/references/build-args-and-nginx.md +0 -0
  257. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/dockerfile-frontend/references/frontend-dockerfile-anatomy.md +0 -0
  258. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/dockerfile-frontend/references/repo-evidence.md +0 -0
  259. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/documentation-and-adrs/SKILL.md +0 -0
  260. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/doubt-driven-development/SKILL.md +0 -0
  261. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/edge-to-service-trust-boundary/README.md +0 -0
  262. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/edge-to-service-trust-boundary/SKILL.md +0 -0
  263. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/edge-to-service-trust-boundary/references/repo-evidence.md +0 -0
  264. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/edge-to-service-trust-boundary/references/trust-contract.md +0 -0
  265. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/execute/SKILL.md +0 -0
  266. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/fastapi-service-patterns/README.md +0 -0
  267. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/fastapi-service-patterns/SKILL.md +0 -0
  268. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/fastapi-service-patterns/references/app-factory-and-lifespan.md +0 -0
  269. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/fastapi-service-patterns/references/custom-route-and-middleware.md +0 -0
  270. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/fastapi-service-patterns/references/dependency-injection.md +0 -0
  271. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/fastapi-service-patterns/references/model-and-serialization-patterns.md +0 -0
  272. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/fastapi-service-patterns/references/repo-evidence.md +0 -0
  273. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/file-export-and-reporting/README.md +0 -0
  274. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/file-export-and-reporting/SKILL.md +0 -0
  275. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/file-export-and-reporting/references/excel-generation.md +0 -0
  276. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/file-export-and-reporting/references/repo-evidence.md +0 -0
  277. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/file-export-and-reporting/references/streaming-and-downloads.md +0 -0
  278. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/frontend-repo-architecture/README.md +0 -0
  279. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
  280. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/gcp-cloud-run-github-actions/README.md +0 -0
  281. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/gcp-cloud-run-github-actions/SKILL.md +0 -0
  282. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/gcp-cloud-run-github-actions/references/cloud-run-deploy.md +0 -0
  283. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/gcp-cloud-run-github-actions/references/workflow-structure.md +0 -0
  284. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/gcs-file-storage-patterns/README.md +0 -0
  285. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/gcs-file-storage-patterns/SKILL.md +0 -0
  286. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/gcs-file-storage-patterns/references/client-and-uploads.md +0 -0
  287. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/gcs-file-storage-patterns/references/repo-evidence.md +0 -0
  288. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/gcs-file-storage-patterns/references/signed-urls-and-reads.md +0 -0
  289. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
  290. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/grafana-dashboards-and-alerts/README.md +0 -0
  291. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/grafana-dashboards-and-alerts/SKILL.md +0 -0
  292. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/grafana-dashboards-and-alerts/references/dashboard-json-and-templating.md +0 -0
  293. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/grafana-dashboards-and-alerts/references/provisioning-and-organization.md +0 -0
  294. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/grafana-dashboards-and-alerts/references/red-metrics-queries.md +0 -0
  295. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/grafana-dashboards-and-alerts/references/repo-evidence.md +0 -0
  296. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/grafana-dashboards-and-alerts/references/unified-alerting.md +0 -0
  297. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/graphql-patterns/references/apollo-client-frontend.md +0 -0
  298. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/graphql-patterns/references/apollo-client-setup.md +0 -0
  299. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/idea-refine/SKILL.md +0 -0
  300. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/idea-refine/examples.md +0 -0
  301. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/idea-refine/frameworks.md +0 -0
  302. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/idea-refine/refinement-criteria.md +0 -0
  303. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
  304. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/incident-postmortem/SKILL.md +0 -0
  305. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/incremental-implementation/SKILL.md +0 -0
  306. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/interview-me/SKILL.md +0 -0
  307. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kafka-config-driven/README.md +0 -0
  308. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kafka-config-driven/SKILL.md +0 -0
  309. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kafka-config-driven/references/config-and-sasl-kerberos.md +0 -0
  310. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kafka-config-driven/references/troubleshooting-and-patterns.md +0 -0
  311. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kubectl-operations/README.md +0 -0
  312. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kubectl-operations/SKILL.md +0 -0
  313. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kubectl-operations/references/command-reference.md +0 -0
  314. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kubectl-operations/references/context-namespace-rbac.md +0 -0
  315. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kubectl-operations/references/debugging-playbooks.md +0 -0
  316. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kubectl-operations/references/output-formats-and-selectors.md +0 -0
  317. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kubectl-operations/references/repo-evidence.md +0 -0
  318. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kubernetes-workload-hardening/README.md +0 -0
  319. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kubernetes-workload-hardening/SKILL.md +0 -0
  320. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kubernetes-workload-hardening/references/networkpolicy-and-rbac.md +0 -0
  321. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kubernetes-workload-hardening/references/repo-evidence.md +0 -0
  322. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/kubernetes-workload-hardening/references/securitycontext-and-podsecurity.md +0 -0
  323. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/langfuse-llm-tracing/README.md +0 -0
  324. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/langfuse-llm-tracing/SKILL.md +0 -0
  325. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/langfuse-llm-tracing/references/langfuse-client-and-tracing.md +0 -0
  326. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/langfuse-llm-tracing/references/python-and-typescript.md +0 -0
  327. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/langfuse-llm-tracing/references/repo-evidence.md +0 -0
  328. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/load-testing/SKILL.md +0 -0
  329. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/modernization-and-migration/README.md +0 -0
  330. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/modernization-and-migration/SKILL.md +0 -0
  331. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/modernization-and-migration/references/migration-best-practices.md +0 -0
  332. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/modernization-and-migration/references/pydantic-v1-to-v2.md +0 -0
  333. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/modernization-and-migration/references/repo-evidence.md +0 -0
  334. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/modernization-and-migration/references/shared-internal-library.md +0 -0
  335. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/modernization-and-migration/references/sqlalchemy-14-to-20.md +0 -0
  336. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/multi-tenancy-patterns/README.md +0 -0
  337. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/multi-tenancy-patterns/references/caching-patterns.md +0 -0
  338. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/multi-tenancy-patterns/references/tenant-resolution.md +0 -0
  339. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/node-express-service/README.md +0 -0
  340. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/node-express-service/SKILL.md +0 -0
  341. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/node-express-service/references/app-factory-and-mode-dispatch.md +0 -0
  342. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/node-express-service/references/config-and-module-alias.md +0 -0
  343. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/node-express-service/references/middleware-patterns.md +0 -0
  344. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/node-express-service/references/repo-evidence.md +0 -0
  345. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/node-objection-knex/README.md +0 -0
  346. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/node-objection-knex/SKILL.md +0 -0
  347. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/node-objection-knex/references/migrations-and-validation.md +0 -0
  348. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/node-objection-knex/references/objection-model-and-knex.md +0 -0
  349. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/node-objection-knex/references/repo-evidence.md +0 -0
  350. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/notifications-and-messaging/README.md +0 -0
  351. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/notifications-and-messaging/SKILL.md +0 -0
  352. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/notifications-and-messaging/references/provider-abstraction.md +0 -0
  353. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/notifications-and-messaging/references/repo-evidence.md +0 -0
  354. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/notifications-and-messaging/references/templates-and-fallback.md +0 -0
  355. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/observability-and-logging/README.md +0 -0
  356. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/observability-and-logging/references/health-and-readiness.md +0 -0
  357. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/observability-and-logging/references/logging-and-structlog.md +0 -0
  358. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/observability-and-logging/references/pii-redaction.md +0 -0
  359. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/over-engineering-review/SKILL.md +0 -0
  360. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/performance-optimization/SKILL.md +0 -0
  361. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
  362. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/playwright-verification/SKILL.md +0 -0
  363. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/pydantic-schema-patterns/README.md +0 -0
  364. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/pydantic-schema-patterns/SKILL.md +0 -0
  365. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/pydantic-schema-patterns/references/repo-evidence.md +0 -0
  366. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/pydantic-schema-patterns/references/settings-and-validation.md +0 -0
  367. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/pydantic-schema-patterns/references/troubleshooting-and-common-errors.md +0 -0
  368. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/pydantic-schema-patterns/references/v1-vs-v2.md +0 -0
  369. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/python-dao-and-database/README.md +0 -0
  370. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/python-dao-and-database/SKILL.md +0 -0
  371. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/python-dao-and-database/references/advanced-query-patterns.md +0 -0
  372. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/python-dao-and-database/references/basedao-and-sessions.md +0 -0
  373. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/python-dao-and-database/references/sqlalchemy-1x-vs-2x.md +0 -0
  374. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/radix-tailwind-component-patterns/README.md +0 -0
  375. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/radix-tailwind-component-patterns/SKILL.md +0 -0
  376. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/radix-tailwind-component-patterns/references/radix-primitives-and-variants.md +0 -0
  377. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/radix-tailwind-component-patterns/references/repo-evidence.md +0 -0
  378. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/radix-tailwind-component-patterns/references/tailwind-theme-and-cn.md +0 -0
  379. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/react-hook-form-zod-patterns/README.md +0 -0
  380. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/react-hook-form-zod-patterns/SKILL.md +0 -0
  381. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/react-hook-form-zod-patterns/references/form-setup-and-zod.md +0 -0
  382. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/react-hook-form-zod-patterns/references/multi-step-and-modes.md +0 -0
  383. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/react-hook-form-zod-patterns/references/repo-evidence.md +0 -0
  384. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/redis-caching-patterns/README.md +0 -0
  385. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/redis-caching-patterns/SKILL.md +0 -0
  386. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/redis-caching-patterns/references/cache-manager-and-fallback.md +0 -0
  387. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/redis-caching-patterns/references/namespacing-and-invalidation.md +0 -0
  388. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/redis-caching-patterns/references/repo-evidence.md +0 -0
  389. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/refresh-docs/SKILL.md +0 -0
  390. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/remember/SKILL.md +0 -0
  391. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/scope/SKILL.md +0 -0
  392. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/scope/scope-template.md +0 -0
  393. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/sdlc/SKILL.md +0 -0
  394. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/security-and-hardening/SKILL.md +0 -0
  395. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/security-verification/SKILL.md +0 -0
  396. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/shannon-ai-pentest/README.md +0 -0
  397. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/shannon-ai-pentest/SKILL.md +0 -0
  398. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/shannon-ai-pentest/references/operating-guide.md +0 -0
  399. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/shipping-and-launch/SKILL.md +0 -0
  400. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/simplification-debt/SKILL.md +0 -0
  401. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/smoke-test/SKILL.md +0 -0
  402. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/source-driven-development/SKILL.md +0 -0
  403. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/spec-driven-development/SKILL.md +0 -0
  404. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/sprint/SKILL.md +0 -0
  405. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/sprint/sprint-template.md +0 -0
  406. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/tanstack-react-query-patterns/README.md +0 -0
  407. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/tanstack-react-query-patterns/references/mutations-and-cache.md +0 -0
  408. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/tanstack-react-query-patterns/references/query-keys-and-hooks.md +0 -0
  409. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/task-tracker-sync/SKILL.md +0 -0
  410. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/temporal-config-driven/README.md +0 -0
  411. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/temporal-config-driven/SKILL.md +0 -0
  412. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/temporal-config-driven/references/config-and-retry-idempotency.md +0 -0
  413. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/temporal-config-driven/references/dag-dsl-interpreter.md +0 -0
  414. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/temporal-config-driven/references/repo-evidence.md +0 -0
  415. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/temporal-config-driven/references/schedule-registration.md +0 -0
  416. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/temporal-config-driven/references/schedules-and-cron.md +0 -0
  417. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/temporal-config-driven/references/worker-workflow-activity-patterns.md +0 -0
  418. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/test-driven-development/SKILL.md +0 -0
  419. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/test-plan-review/SKILL.md +0 -0
  420. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/testing-conventions/README.md +0 -0
  421. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/testing-conventions/references/github-actions-test-orchestration.md +0 -0
  422. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/testing-conventions/references/pytest-and-fixtures.md +0 -0
  423. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/testing-conventions/references/security-regression-tests.md +0 -0
  424. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/threat-model/SKILL.md +0 -0
  425. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/triage/SKILL.md +0 -0
  426. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/ui-ux-design/SKILL.md +0 -0
  427. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/unit-test/SKILL.md +0 -0
  428. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/using-agent-skills/SKILL.md +0 -0
  429. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/vitest-rtl-msw-patterns/README.md +0 -0
  430. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/vitest-rtl-msw-patterns/SKILL.md +0 -0
  431. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/vitest-rtl-msw-patterns/references/msw-and-contract-tests.md +0 -0
  432. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/vitest-rtl-msw-patterns/references/repo-evidence.md +0 -0
  433. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/vitest-rtl-msw-patterns/references/vitest-rtl-setup.md +0 -0
  434. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/zap-vapt-scanning/README.md +0 -0
  435. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/zap-vapt-scanning/SKILL.md +0 -0
  436. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/zap-vapt-scanning/references/operating-guide.md +0 -0
  437. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/zap-vapt-scanning/scripts/endpoints.example.txt +0 -0
  438. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/zap-vapt-scanning/scripts/requirements.txt +0 -0
  439. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/skills/zap-vapt-scanning/scripts/zap_vapt.py +0 -0
  440. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/src/claude_kit/__main__.py +0 -0
  441. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/src/claude_kit/catalog.py +0 -0
  442. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/src/claude_kit/models.py +0 -0
  443. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/src/claude_kit/prompts.py +0 -0
  444. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/src/claude_kit/render.py +0 -0
  445. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/src/claude_kit/scaffold.py +0 -0
  446. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/src/claude_kit/upgrader.py +0 -0
  447. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/src/claude_kit/validator.py +0 -0
  448. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/CLAUDE.md +0 -0
  449. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/CLAUDE.stack.md.tmpl +0 -0
  450. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/CONTINUITY.template.md +0 -0
  451. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/README.claude-sdlc.md.tmpl +0 -0
  452. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/agent-memory/MEMORY.md +0 -0
  453. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/agent-memory/api/.gitkeep +0 -0
  454. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/agent-memory/architecture/.gitkeep +0 -0
  455. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/agent-memory/debugging/.gitkeep +0 -0
  456. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
  457. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/agent-memory/patterns/.gitkeep +0 -0
  458. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/agent-memory/performance/.gitkeep +0 -0
  459. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/artifacts/adr.md +0 -0
  460. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/artifacts/api-change-report.md +0 -0
  461. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/artifacts/feature-spec.md +0 -0
  462. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/artifacts/release-plan.md +0 -0
  463. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/artifacts/runbook.md +0 -0
  464. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/artifacts/security-review.md +0 -0
  465. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/artifacts/test-plan.md +0 -0
  466. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/README.md +0 -0
  467. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/agents/data-workflow-agent.md +0 -0
  468. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/agents/founder-prototype-agent.md +0 -0
  469. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/agents/internal-tools-builder.md +0 -0
  470. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/agents/pm-copilot.md +0 -0
  471. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/agents/staff-pm-reviewer.md +0 -0
  472. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/agents/support-ticket-engineer.md +0 -0
  473. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/devops-and-release/README.md +0 -0
  474. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
  475. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/engineering-core/README.md +0 -0
  476. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
  477. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
  478. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
  479. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
  480. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
  481. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/product-to-code/README.md +0 -0
  482. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
  483. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/quality-and-review/README.md +0 -0
  484. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
  485. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/security-and-compliance/README.md +0 -0
  486. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
  487. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/rules/ai-working-agreement.md +0 -0
  488. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/rules/ambiguity-resolution.md +0 -0
  489. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
  490. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/rules/compliance-policy.md +0 -0
  491. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
  492. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/rules/pii-policy.md +0 -0
  493. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/rules/production-data-policy.md +0 -0
  494. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
  495. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/rules/prototype-boundaries.md +0 -0
  496. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/rules/secrets-policy.md +0 -0
  497. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
  498. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
  499. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
  500. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
  501. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
  502. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/skills/review-scope/SKILL.md +0 -0
  503. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/skills/review-sprint/SKILL.md +0 -0
  504. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/skills/review-sprint-plan/SKILL.md +0 -0
  505. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/org/skills/review-ux-flow/SKILL.md +0 -0
  506. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/backend/go/net-http/rules/go-patterns.md +0 -0
  507. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
  508. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
  509. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
  510. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
  511. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
  512. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
  513. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
  514. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
  515. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
  516. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/frontend/react/rules/design-system-compliance.md +0 -0
  517. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/frontend/react/rules/mobile-design-guidelines.md +0 -0
  518. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/frontend/react/rules/react-patterns.md +0 -0
  519. {claude_code_kit-0.24.0 → claude_code_kit-0.26.0}/templates/stacks/frontend/react/rules/ui-design-system.md +0 -0
  520. {claude_code_kit-0.24.0 → claude_code_kit-0.26.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.24.0",
13
+ "version": "0.26.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.24.0",
3
+ "version": "0.26.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,64 @@ 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.26.0] — 2026-06-24
8
+
9
+ **Post-hardening follow-up: two correctness/security fixes plus polish, all from a verified review
10
+ punch list.**
11
+
12
+ ### Added
13
+ - **Plugin now guards secret-file reads out of the box.** `protect-secrets` (PreToolUse/Read — blocks
14
+ reading `.env`/`.pem`/`.key`/`id_rsa`/credentials/…) was installed by the pip CLI (it's in the
15
+ `standard`/`all` profiles) but missing from the always-on plugin hook set, so plugin-only users had
16
+ no Read guard until they ran an init. It's now in `PLUGIN_HOOK_IDS`; `hooks/hooks.json` gains a
17
+ `PreToolUse`/`Read` group.
18
+ - **`.github/dependabot.yml`** for the `github-actions` ecosystem (weekly, grouped) so CI/publish
19
+ actions are kept current and SHA-pinned by Dependabot's PRs, with auditable tag comments.
20
+ `pypa/gh-action-pypi-publish` stays on `release/v1` (required for Trusted Publishing + attestations).
21
+
22
+ ### Changed
23
+ - **`pipeline close-gate` enforces the blocking-findings rule.** It now refuses to record a gate as
24
+ passed while any **critical/high/medium** findings are open (`rules/quality-gates.md`); low/cosmetic
25
+ still pass. A deliberate override requires `--force` **with** `--override-reason "<why>"`, recorded
26
+ under `gate_overrides[gate]` for human review.
27
+ - **`pipeline validate` re-checks gate evidence.** When a gate is recorded passed and has a
28
+ `gate_evidence` path, validate now fails if that file no longer exists on disk, and surfaces any
29
+ force-closed gate. Lenient on the upgrade path (no evidence map → silent; partial map → warn).
30
+ - **Inline hook guards quiet their `jq` calls** (`2>/dev/null || true`) so malformed/missing hook JSON
31
+ can't spam stderr — matching the script-backed guards; `guard-secrets.sh` aligned for consistency.
32
+
33
+ ### Fixed
34
+ - **Docs consistency checker catches duplicate gate tables.** `check_docs_consistency.py` previously
35
+ keyed profile gate rows in a dict, so a second (possibly stale) table could silently overwrite an
36
+ earlier one; it now collects every occurrence, flags duplicates, and requires each to match
37
+ `profiles.yaml`.
38
+ - **Stale comments in `scripts/init.sh`** corrected: it's described as the degraded, no-resolution
39
+ fallback (the pip CLI is the catalog-driven/upgrade-safe installer), and existing files are noted as
40
+ written to `*.claude-kit` sidecars (not `*.example`).
41
+
42
+ ## [0.25.0] — 2026-06-24
43
+
44
+ **PR4 of the phased hardening review: supply-chain provenance, an explicit trust model, and a full
45
+ genericization pass so the public repo carries only neutral examples.**
46
+
47
+ ### Added
48
+ - **PEP 740 build attestations re-enabled** in `publish.yml`. They were temporarily disabled while
49
+ Sigstore's Rekor transparency log was returning HTTP 502s at upload time; Sigstore has since been
50
+ healthy (verified via status.sigstore.dev — all services online, no incidents), so releases are
51
+ signed again for supply-chain provenance.
52
+ - **A "Security & trust model" section** in `README.md` (with a nav link) stating plainly that the
53
+ guard hooks are convenience, not a hardened boundary; that most quality gates are agent protocols
54
+ rather than mechanical enforcement; and that MCP servers are third-party code — surfacing
55
+ `SECURITY.md`'s posture where users decide to rely on the kit.
56
+
57
+ ### Changed
58
+ - **Genericization pass** — removed residual internal / company-specific identifiers so the published
59
+ repo carries only neutral examples. Genericized the 0.15.0 adoption narrative in `CHANGELOG.md` and
60
+ `docs/coverage-audit.md`; renamed test functions and replaced an internal-token blocklist with a
61
+ positive neutralization check in `tests/test_scaffold.py`; and neutralized the skills-collection
62
+ reference docs (example feature / module / variable names, domain-specific jargon, and a
63
+ region-specific registry host) into generic equivalents. Examples-only — no behavior change.
64
+
7
65
  ## [0.24.0] — 2026-06-24
8
66
 
9
67
  **PR3 of the phased hardening review: deeper validation, a deterministic pipeline CLI, an MCP
@@ -532,7 +590,7 @@ values (→ `#______` placeholders, matching the existing `design-system-complia
532
590
 
533
591
  ## [0.15.0] — 2026-06-16
534
592
 
535
- **Adopt the Fynd Agentic Engineering personas & skills** (an internal Claude Code plugin marketplace —
593
+ **Adopt a set of internal engineering personas & skills** (a private Claude Code plugin marketplace —
536
594
  11 agents + 29 skills across 7 plugins: engineer, designer, pm, context-gen, staff-em, staff-sdet,
537
595
  staff-pm). Those plugins are excellent but heavily **stack-bound** (FastAPI/SQLAlchemy/Pydantic/React/
538
596
  Tailwind/Radix/Zod/Temporal/Kafka/Langfuse, against an internal `.ai/` doc convention). Mirroring all
@@ -546,7 +604,7 @@ nothing), **18 extend** (a real delta folded into the nearest existing component
546
604
  layer), **1 adopt-core** (genuinely new + stack-agnostic). Net: **2 new core skills, ~10 surgical core
547
605
  extends, 1 new React overlay rule + FastAPI/React overlay enrichments, 5 new org components** — zero
548
606
  stack leakage into core, zero diluting duplicates. IP boundary: technique-and-structure only, no source
549
- text copied; every Fynd-internal reference (the `.ai/` naming, internal field/service names, numeric
607
+ text copied; every source-internal reference (internal doc conventions, internal field/service names, numeric
550
608
  heuristics) stripped or genericized.
551
609
 
552
610
  Three deliberate decisions: **(1)** Temporal/Kafka/Langfuse are **not** added as selectable stacks —
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-kit
3
- Version: 0.24.0
3
+ Version: 0.26.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
@@ -44,7 +44,7 @@ with a quality gate between every phase. **No application code. No Docker. Confi
44
44
  [![CI](https://github.com/ajyadav013/claude-kit/actions/workflows/ci.yml/badge.svg)](https://github.com/ajyadav013/claude-kit/actions/workflows/ci.yml)
45
45
  [![Changelog](https://img.shields.io/badge/changelog-md-blue.svg)](CHANGELOG.md)
46
46
 
47
- ✨ [Features](#features) · 🚀 [Quick start](#quick-start) · 🧭 [How it works](#how-it-works) · 🔁 [The pipeline](#the-pipeline) · 🧪 [Example](examples/) · 🌱 [What we adopted](#influences--what-we-adopted) · 🤖 [Agents](#the-agents) · 🧩 [Catalog](#catalog--extensibility) · 🛠️ [CLI](#cli-reference) · 📖 [Agent guide](docs/agents.md)
47
+ ✨ [Features](#features) · 🚀 [Quick start](#quick-start) · 🧭 [How it works](#how-it-works) · 🔁 [The pipeline](#the-pipeline) · 🧪 [Example](examples/) · 🌱 [What we adopted](#influences--what-we-adopted) · 🤖 [Agents](#the-agents) · 🧩 [Catalog](#catalog--extensibility) · 🛠️ [CLI](#cli-reference) · 🔒 [Security](#security--trust-model) · 📖 [Agent guide](docs/agents.md)
48
48
 
49
49
  </div>
50
50
 
@@ -668,6 +668,30 @@ hints.
668
668
 
669
669
  ---
670
670
 
671
+ ## Security & trust model
672
+
673
+ claude-kit installs **configuration only** — no application code, no Docker, nothing that runs as a
674
+ service. It never executes your code; it lays down rules, agents, skills, gates, and hook scripts that
675
+ **Claude Code** then follows. Three honest caveats are worth understanding before you rely on it:
676
+
677
+ - **The guard hooks are convenience, not a hardened boundary.** Scripts like `guard-secrets`,
678
+ `guard-destructive-git`, and the `warn-*` advisories raise the cost of a mistake — they do **not**
679
+ sandbox the agent or guarantee prevention. They need a POSIX shell + `jq` and **silently no-op**
680
+ without them (e.g. on Windows outside WSL/Git Bash). Treat them as seatbelts, not walls.
681
+ - **Most quality gates are agent protocols, not mechanical enforcement.** The pipeline's gates
682
+ (`spec-complete`, `code-review`, `security-clear`, …) are disciplines Claude is instructed to follow
683
+ and self-verify; only the hook scripts are deterministic, host-enforced checks. A capable model can
684
+ still be wrong or skip a step — keep a human in the loop for anything that matters.
685
+ - **MCP servers are third-party code.** Each fragment runs an external package (pinned to an exact
686
+ version) or a hosted endpoint that claude-kit references but does **not** vendor or audit. Review a
687
+ server's source and license before enabling it.
688
+
689
+ Releases are published to PyPI via OIDC **Trusted Publishing** (no long-lived API token) with **PEP 740
690
+ build attestations** for supply-chain provenance. Report vulnerabilities privately — see
691
+ [`SECURITY.md`](SECURITY.md) for the full scope and reporting process.
692
+
693
+ ---
694
+
671
695
  ## Project structure
672
696
 
673
697
  <details>
@@ -14,7 +14,7 @@ with a quality gate between every phase. **No application code. No Docker. Confi
14
14
  [![CI](https://github.com/ajyadav013/claude-kit/actions/workflows/ci.yml/badge.svg)](https://github.com/ajyadav013/claude-kit/actions/workflows/ci.yml)
15
15
  [![Changelog](https://img.shields.io/badge/changelog-md-blue.svg)](CHANGELOG.md)
16
16
 
17
- ✨ [Features](#features) · 🚀 [Quick start](#quick-start) · 🧭 [How it works](#how-it-works) · 🔁 [The pipeline](#the-pipeline) · 🧪 [Example](examples/) · 🌱 [What we adopted](#influences--what-we-adopted) · 🤖 [Agents](#the-agents) · 🧩 [Catalog](#catalog--extensibility) · 🛠️ [CLI](#cli-reference) · 📖 [Agent guide](docs/agents.md)
17
+ ✨ [Features](#features) · 🚀 [Quick start](#quick-start) · 🧭 [How it works](#how-it-works) · 🔁 [The pipeline](#the-pipeline) · 🧪 [Example](examples/) · 🌱 [What we adopted](#influences--what-we-adopted) · 🤖 [Agents](#the-agents) · 🧩 [Catalog](#catalog--extensibility) · 🛠️ [CLI](#cli-reference) · 🔒 [Security](#security--trust-model) · 📖 [Agent guide](docs/agents.md)
18
18
 
19
19
  </div>
20
20
 
@@ -638,6 +638,30 @@ hints.
638
638
 
639
639
  ---
640
640
 
641
+ ## Security & trust model
642
+
643
+ claude-kit installs **configuration only** — no application code, no Docker, nothing that runs as a
644
+ service. It never executes your code; it lays down rules, agents, skills, gates, and hook scripts that
645
+ **Claude Code** then follows. Three honest caveats are worth understanding before you rely on it:
646
+
647
+ - **The guard hooks are convenience, not a hardened boundary.** Scripts like `guard-secrets`,
648
+ `guard-destructive-git`, and the `warn-*` advisories raise the cost of a mistake — they do **not**
649
+ sandbox the agent or guarantee prevention. They need a POSIX shell + `jq` and **silently no-op**
650
+ without them (e.g. on Windows outside WSL/Git Bash). Treat them as seatbelts, not walls.
651
+ - **Most quality gates are agent protocols, not mechanical enforcement.** The pipeline's gates
652
+ (`spec-complete`, `code-review`, `security-clear`, …) are disciplines Claude is instructed to follow
653
+ and self-verify; only the hook scripts are deterministic, host-enforced checks. A capable model can
654
+ still be wrong or skip a step — keep a human in the loop for anything that matters.
655
+ - **MCP servers are third-party code.** Each fragment runs an external package (pinned to an exact
656
+ version) or a hosted endpoint that claude-kit references but does **not** vendor or audit. Review a
657
+ server's source and license before enabling it.
658
+
659
+ Releases are published to PyPI via OIDC **Trusted Publishing** (no long-lived API token) with **PEP 740
660
+ build attestations** for supply-chain provenance. Report vulnerabilities privately — see
661
+ [`SECURITY.md`](SECURITY.md) for the full scope and reporting process.
662
+
663
+ ---
664
+
641
665
  ## Project structure
642
666
 
643
667
  <details>
@@ -51,9 +51,9 @@ The pattern matches the rest of the kit: a *discipline* is a RULE (always-on gui
51
51
  spec/EM gate exists at all. P0-2 is the exception that strengthens *every* gate by making a fabricated
52
52
  verdict auto-Critical, without adding a token.
53
53
 
54
- ## Fynd adoption disciplines (as of 0.15.0)
54
+ ## Internal-toolkit adoption disciplines (as of 0.15.0)
55
55
 
56
- The Fynd persona/skill adoption (CHANGELOG 0.15.0) added capabilities reuse-first. Consistent with the
56
+ The internal persona/skill adoption (CHANGELOG 0.15.0) added capabilities reuse-first. Consistent with the
57
57
  posture above, it added **no new gate tokens** — the new capabilities are SKILLs, OVERLAY rules, or
58
58
  checklists that ride *inside existing* review gates. Enforcement class of each:
59
59
 
@@ -29,11 +29,11 @@
29
29
  "hooks": [
30
30
  {
31
31
  "type": "command",
32
- "command": "command -v jq >/dev/null 2>&1 || exit 0; CMD=$(jq -r '.tool_input.command'); if echo \"$CMD\" | grep -qE 'rm[[:space:]]+-[^[:space:]]*r[^[:space:]]*f'; then echo 'BLOCKED: rm -rf is disabled by claude-kit. Move to trash or delete specific paths explicitly.' >&2; exit 2; fi"
32
+ "command": "command -v jq >/dev/null 2>&1 || exit 0; CMD=$(jq -r '.tool_input.command' 2>/dev/null || true); if echo \"$CMD\" | grep -qE 'rm[[:space:]]+-[^[:space:]]*r[^[:space:]]*f'; then echo 'BLOCKED: rm -rf is disabled by claude-kit. Move to trash or delete specific paths explicitly.' >&2; exit 2; fi"
33
33
  },
34
34
  {
35
35
  "type": "command",
36
- "command": "command -v jq >/dev/null 2>&1 || exit 0; CMD=$(jq -r '.tool_input.command'); if echo \"$CMD\" | grep -qE 'git[[:space:]]+push.*[[:space:]:](main|master)([[:space:]]|$)'; then echo 'BLOCKED: refusing to push to main/master — use a feature branch and a PR.' >&2; exit 2; fi"
36
+ "command": "command -v jq >/dev/null 2>&1 || exit 0; CMD=$(jq -r '.tool_input.command' 2>/dev/null || true); if echo \"$CMD\" | grep -qE 'git[[:space:]]+push.*[[:space:]:](main|master)([[:space:]]|$)'; then echo 'BLOCKED: refusing to push to main/master — use a feature branch and a PR.' >&2; exit 2; fi"
37
37
  },
38
38
  {
39
39
  "type": "command",
@@ -49,6 +49,15 @@
49
49
  }
50
50
  ]
51
51
  },
52
+ {
53
+ "matcher": "Read",
54
+ "hooks": [
55
+ {
56
+ "type": "command",
57
+ "command": "command -v jq >/dev/null 2>&1 || exit 0; FP=$(jq -r '.tool_input.file_path // empty' 2>/dev/null || true); if echo \"$FP\" | grep -qE '(^|/)\\.env$|\\.pem$|\\.key$|(^|/)id_rsa|(^|/)id_ed25519|(^|/)credentials(\\.json)?$|\\.p12$'; then echo 'BLOCKED: refusing to read a secrets file. Use .env.example or a secret manager.' >&2; exit 2; fi"
58
+ }
59
+ ]
60
+ },
52
61
  {
53
62
  "matcher": "Edit|Write",
54
63
  "hooks": [
@@ -3,7 +3,7 @@
3
3
  # Pairs with the secret-scanner agent and the protect-secrets read-guard — this is the automatic,
4
4
  # every-commit guardrail. Degrades to a no-op when not a git commit or git/jq is unavailable.
5
5
  command -v jq >/dev/null 2>&1 || exit 0
6
- CMD=$(jq -r '.tool_input.command // empty' 2>/dev/null)
6
+ CMD=$(jq -r '.tool_input.command // empty' 2>/dev/null || true)
7
7
  echo "$CMD" | grep -qE 'git[[:space:]]+commit' || exit 0
8
8
  cd "${CLAUDE_PROJECT_DIR:-.}" 2>/dev/null || exit 0
9
9
  command -v git >/dev/null 2>&1 || exit 0
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "claude-code-kit"
7
- version = "0.24.0"
7
+ version = "0.26.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"
@@ -39,10 +39,14 @@ Schema (keep it small and truthful — omit a field rather than guess it):
39
39
  "lanes": { "<lane>": "not-started | in-progress | passed | failed" },
40
40
  "last_gate_passed": "<gate token, e.g. code-review>",
41
41
  "open_findings": { "critical": 0, "high": 0, "medium": 0 },
42
+ "gate_evidence": { "<gate token>": "<path to the evidence artifact>" },
43
+ "gate_overrides": { "<gate token>": "<why a blocking gate was force-closed>" },
42
44
  "next": "<the immediate next action>"
43
45
  }
44
46
  ```
45
47
 
48
+ A gate is PASS only when zero **critical/high/medium** findings remain open (low/cosmetic may pass with notes). `gate_evidence` records the artifact backing each passed gate; `gate_overrides` is written **only** when a gate is deliberately force-closed despite open blocking findings, so a reviewer (or `claude-kit pipeline validate`) can surface and re-examine it.
49
+
46
50
  **Resume by reloading, not by re-running.** On resume, read the snapshot as *context* to decide where to continue — then continue from there. Do **not** re-run setup that already ran, re-apply edits already committed, or re-open a gate already PASSed. Re-enter at the first gate *after* `last_gate_passed`, re-running only un-passed or defect-affected lanes. The snapshot records what was *true when written*, so the verify-before-trust check still applies (`.claude/rules/agent-memory.md`): if a "passed" gate's artifact is gone, treat it as not passed. If the snapshot is absent or unparseable, fall back to the freeform CONTINUITY state (back-compatible) and proceed.
47
51
 
48
52
  ## Concurrency
@@ -183,13 +183,17 @@ def _effective_gates() -> dict[str, set[str]]:
183
183
  return {name: resolve(name) for name in profiles}
184
184
 
185
185
 
186
- def _doc_gate_sets(relfile: str) -> dict[str, set[str]]:
187
- """Parse the lean/standard/enterprise gate rows from a doc's profile→gate table."""
188
- raw: dict[str, str] = {}
186
+ def _doc_gate_sets(relfile: str) -> dict[str, list[set[str]]]:
187
+ """Parse *every* lean/standard/enterprise gate row from a doc (one entry per table occurrence).
188
+
189
+ Returns a list of gate sets per profile rather than a single value, so a second (possibly stale)
190
+ gate table can't silently overwrite an earlier one — each occurrence is checked independently.
191
+ """
192
+ raw: dict[str, list[str]] = {}
189
193
  for line in _read(relfile).splitlines():
190
194
  m = re.match(r"\|\s*\*\*(lean|standard|enterprise)\*\*\s*\|(.+?)\|\s*$", line)
191
195
  if m:
192
- raw[m.group(1)] = m.group(2)
196
+ raw.setdefault(m.group(1), []).append(m.group(2))
193
197
 
194
198
  def tokens(cell: str) -> set[str]:
195
199
  return {
@@ -198,16 +202,18 @@ def _doc_gate_sets(relfile: str) -> dict[str, set[str]]:
198
202
  if t.strip().strip("*").strip("\\").strip()
199
203
  }
200
204
 
201
- def expand(profile: str) -> set[str]:
202
- cell = raw[profile]
205
+ def expand(cell: str) -> set[str]:
203
206
  if (
204
207
  "+" in cell
205
208
  ): # e.g. "standard + pipeline-green · observability-ready · acceptance"
206
209
  base, extra = cell.split("+", 1)
207
- return expand(base.strip().strip("*").lower()) | tokens(extra)
210
+ base_name = base.strip().strip("*").lower()
211
+ base_cells = raw.get(base_name)
212
+ base_gates = expand(base_cells[0]) if base_cells else set()
213
+ return base_gates | tokens(extra)
208
214
  return tokens(cell)
209
215
 
210
- return {p: expand(p) for p in raw}
216
+ return {p: [expand(c) for c in cells] for p, cells in raw.items()}
211
217
 
212
218
 
213
219
  def check_profile_gates() -> list[str]:
@@ -216,21 +222,30 @@ def check_profile_gates() -> list[str]:
216
222
  for relfile in ("README.md", "skills/sdlc/SKILL.md"):
217
223
  doc = _doc_gate_sets(relfile)
218
224
  for profile in ("lean", "standard", "enterprise"):
219
- if profile not in doc:
225
+ occurrences = doc.get(profile) or []
226
+ if not occurrences:
220
227
  errors.append(f"{relfile}: no gate row found for profile {profile!r}")
221
228
  continue
222
- if doc[profile] != effective[profile]:
223
- missing = effective[profile] - doc[profile]
224
- extra = doc[profile] - effective[profile]
225
- detail = []
226
- if missing:
227
- detail.append(f"missing {sorted(missing)}")
228
- if extra:
229
- detail.append(f"unexpected {sorted(extra)}")
229
+ if len(occurrences) > 1:
230
230
  errors.append(
231
- f"{relfile}: {profile} gate row disagrees with profiles.yaml "
232
- + "; ".join(detail)
231
+ f"{relfile}: {len(occurrences)} gate rows for profile {profile!r} "
232
+ "(duplicate gate table) — keep exactly one so a stale table can't hide "
233
+ "behind a correct one"
233
234
  )
235
+ for idx, gates in enumerate(occurrences):
236
+ if gates != effective[profile]:
237
+ missing = effective[profile] - gates
238
+ extra = gates - effective[profile]
239
+ detail = []
240
+ if missing:
241
+ detail.append(f"missing {sorted(missing)}")
242
+ if extra:
243
+ detail.append(f"unexpected {sorted(extra)}")
244
+ where = "" if len(occurrences) == 1 else f" (occurrence {idx + 1})"
245
+ errors.append(
246
+ f"{relfile}: {profile} gate row{where} disagrees with "
247
+ "profiles.yaml — " + "; ".join(detail)
248
+ )
234
249
  return errors
235
250
 
236
251
 
@@ -5,13 +5,15 @@
5
5
  # project's .claude/ directory and drops a generic CLAUDE.md at the project root.
6
6
  #
7
7
  # Used by the /claude-kit:init slash command (plugin) and runnable directly from a checkout.
8
- # The pip CLI (`claude-kit init`) performs the same scaffolding in Python.
8
+ # This is a degraded, no-resolution fallback: it copies the full payload as-is. The pip CLI
9
+ # (`claude-kit init`) is the recommended installer — it is catalog-driven (stack/profile/MCP
10
+ # resolution) and upgrade-safe (diff/upgrade), which this script does not do.
9
11
  #
10
12
  # Usage: init.sh [TARGET_DIR] [--defaults] [--force] [--minimal] [--no-hooks]
11
13
  # TARGET_DIR project to scaffold into (default: $CLAUDE_PROJECT_DIR or current dir)
12
14
  # --defaults accepted for parity with the pip CLI (`claude-kit init --defaults`); a no-op here
13
15
  # because this shell fallback is already non-interactive
14
- # --force overwrite existing CLAUDE.md / settings.json (otherwise written as *.example)
16
+ # --force overwrite existing CLAUDE.md / settings.json (otherwise written as *.claude-kit sidecars)
15
17
  # --minimal only CLAUDE.md + rules/ (skip agents, skills, hooks, memory)
16
18
  # --no-hooks skip installing hook scripts and settings.json
17
19
  set -euo pipefail
@@ -151,7 +151,7 @@ from app.database import Base
151
151
  from config.settings import settings
152
152
 
153
153
  # Import all models (wildcard imports)
154
- from app.articles.models import *
154
+ from app.items.models import *
155
155
  from app.units.models import *
156
156
  # ... (40+ wildcard imports)
157
157
 
@@ -183,8 +183,8 @@ from app.users.models import User
183
183
  from app.organizations.models import Organization
184
184
 
185
185
  # Wildcard imports (acceptable in env.py, used in multiple production services)
186
- from myapp.users.models import *
187
- from myapp.tenants.models import *
186
+ from app.users.models import *
187
+ from app.tenants.models import *
188
188
  ```
189
189
 
190
190
  **Critical**: If a model is not imported in `env.py`, Alembic won't detect it for autogenerate.
@@ -146,9 +146,9 @@ from app.database import Base
146
146
  from config.settings import settings
147
147
 
148
148
  # Wildcard model imports
149
- from app.articles.models import *
149
+ from app.items.models import *
150
150
  from app.units.models import *
151
- from app.bom.models import *
151
+ from app.catalog.models import *
152
152
  # ... 40+ wildcard imports
153
153
 
154
154
  # target_metadata
@@ -34,10 +34,10 @@ alembic/versions/
34
34
  ```
35
35
  alembic/versions/
36
36
  ├── 202407301751-ad610b2bab70_add_event_log_table.py
37
- ├── 202408011255-e848fe551d9b_add_coe_bom_mapping_tables.py
37
+ ├── 202408011255-e848fe551d9b_add_category_mapping_tables.py
38
38
  ├── 202408012159-c3f783a32f7c_add_username_to_event_log_table.py
39
- ├── 202408052213-943a94fc4f73_add_is_active_to_mapping_tebles.py
40
- ├── 202409031128-0fc8dde689fe_fabric_source_cluster.py
39
+ ├── 202408052213-943a94fc4f73_add_is_active_to_mapping_tables.py
40
+ ├── 202409031128-0fc8dde689fe_add_source_cluster.py
41
41
  └── ...
42
42
  ```
43
43
 
@@ -53,10 +53,10 @@ alembic/versions/
53
53
 
54
54
  ```
55
55
  migrations/versions/
56
- ├── 554395de0772_added_planograph_models.py
56
+ ├── 554395de0772_added_data_models.py
57
57
  ├── 9d07416cb3d0_modified_generated_file_model.py
58
- ├── cb876bd3ff47_added_watermakr_model.py
59
- └── d5885c4539c2_updated_watermark_table_to_include_.py
58
+ ├── cb876bd3ff47_added_watermark_model.py
59
+ └── d5885c4539c2_updated_watermark_table.py
60
60
  ```
61
61
 
62
62
  **Format**: `{auto_hash}_{description}.py` (default Alembic behavior)
@@ -18,7 +18,7 @@ This skill covers production-tested conventions for designing paginated, filtere
18
18
 
19
19
  ## Origin
20
20
 
21
- This skill derives from real production backend services handling inventory, forecasting, replenishment, and range planning data. It distills conventions observed across multiple services with large datasets (10k-1M+ records per tenant) requiring efficient pagination, multi-dimensional filtering, and flexible sorting.
21
+ This skill derives from real production backend services handling inventory, forecasting, and order data. It distills conventions observed across multiple services with large datasets (10k-1M+ records per tenant) requiring efficient pagination, multi-dimensional filtering, and flexible sorting.
22
22
 
23
23
  ## Relation to other skills
24
24
 
@@ -26,7 +26,7 @@ Standardize HTTP query parameter conventions and response metadata for paginated
26
26
 
27
27
  4. **Multi-value filters via FastAPI `Query`**: For filters that accept multiple values (e.g., `status`, `store_ids`, `segment_codes`), use `Optional[List[str]] = Query(None, description="...")`. The client sends `?status=pending&status=approved` or `?status[]=pending&status[]=approved` (FastAPI accepts both). In the query builder, translate to SQL `IN` clause or `ANY(ARRAY[...])`.
28
28
 
29
- 5. **Comma-separated multi-value filters**: Some endpoints accept comma-separated values in a single param (e.g., `?articles=SKU-001,SKU-002,SKU-003`). Use `Optional[str] = Query(None)` and split by comma in the service or repository layer before building SQL. This pattern is common for legacy APIs or when the client cannot send array query params.
29
+ 5. **Comma-separated multi-value filters**: Some endpoints accept comma-separated values in a single param (e.g., `?items=ITEM-001,ITEM-002,ITEM-003`). Use `Optional[str] = Query(None)` and split by comma in the service or repository layer before building SQL. This pattern is common for legacy APIs or when the client cannot send array query params.
30
30
 
31
31
  6. **Hierarchical filters**: Product or location hierarchies (e.g., segment → family → class → brick; zone → format → state → region → city → store) use separate query params for each level. Each is optional; when provided, it narrows results to that level. Example: `?segment=BEVERAGES&family=SOFT_DRINKS&class=COLA`. Query builder applies `WHERE` clauses for each non-null filter. Some services support both singular and plural param names (`?store=...` and `?stores=...`); prefer plural for multi-value, singular for single value.
32
32
 
@@ -36,9 +36,9 @@ Standardize HTTP query parameter conventions and response metadata for paginated
36
36
 
37
37
  9. **Repository layer pagination**: The repository fetches two results in parallel—`(records_data, total_count)`—via `asyncio.gather` or sequential calls. It executes the count query to get `total_count`, then executes the data query with `LIMIT/OFFSET`. Service layer constructs the response object with data + pagination metadata. For download endpoints (no pagination), omit `LIMIT/OFFSET` from the query.
38
38
 
39
- 10. **Search across multiple fields**: A single `search` query param applies a case-insensitive substring match across multiple columns. In SQL, use `WHERE (LOWER(field1) LIKE LOWER(:search) OR LOWER(field2) LIKE LOWER(:search) OR ...)` with param `%{search}%`. Some implementations use `ILIKE` (PostgreSQL) or full-text search. Common searchable fields: article codes, descriptions, store IDs, order IDs.
39
+ 10. **Search across multiple fields**: A single `search` query param applies a case-insensitive substring match across multiple columns. In SQL, use `WHERE (LOWER(field1) LIKE LOWER(:search) OR LOWER(field2) LIKE LOWER(:search) OR ...)` with param `%{search}%`. Some implementations use `ILIKE` (PostgreSQL) or full-text search. Common searchable fields: item codes, descriptions, store IDs, order IDs.
40
40
 
41
- 11. **Pydantic models for query params**: Define a `QueryParams` Pydantic model (e.g., `ReplenishmentQueryParams`, `ForecastQuery`) to encapsulate all filters, pagination, sorting, and search params. This separates route handler param extraction from business logic. The model can provide helper methods like `@property def limit(self)` to derive limit from `page_size` or compute `offset` from `page` and `page_size`.
41
+ 11. **Pydantic models for query params**: Define a `QueryParams` Pydantic model (e.g., `InventoryQueryParams`, `ForecastQuery`) to encapsulate all filters, pagination, sorting, and search params. This separates route handler param extraction from business logic. The model can provide helper methods like `@property def limit(self)` to derive limit from `page_size` or compute `offset` from `page` and `page_size`.
42
42
 
43
43
  12. **FastAPI route handler**: Extract query params via `Query()` for primitive types or depend on Pydantic model. Calculate `offset = (page - 1) * page_size` if needed. Call service layer with `query_params` object or individual params. Return response via `ResponseData.ok(data=..., pagination=...)` or a typed response model wrapping data + metadata.
44
44
 
@@ -175,8 +175,8 @@ class ItemQueryBuilder:
175
175
  search_param = self._add_param(f"%{search}%")
176
176
  return f"""
177
177
  AND (
178
- LOWER(article_id) LIKE LOWER({search_param})
179
- OR LOWER(article_description) LIKE LOWER({search_param})
178
+ LOWER(item_id) LIKE LOWER({search_param})
179
+ OR LOWER(item_description) LIKE LOWER({search_param})
180
180
  OR LOWER(store_id) LIKE LOWER({search_param})
181
181
  )
182
182
  """
@@ -186,7 +186,7 @@ class ItemQueryBuilder:
186
186
  sort_mapping = {
187
187
  "created_at": "created_at",
188
188
  "updated_at": "updated_at",
189
- "article": "article_id",
189
+ "item": "item_id",
190
190
  "store": "store_id",
191
191
  }
192
192
  column = sort_mapping.get(sort_by, "created_at")
@@ -284,7 +284,7 @@ async def list_items(
284
284
  sort_by: str = Query("created_at", description="Field to sort by"),
285
285
  sort_order: str = Query("desc", regex="^(asc|desc)$", description="Sort direction"),
286
286
  # Search
287
- search: Optional[str] = Query(None, description="Search across article, description, store"),
287
+ search: Optional[str] = Query(None, description="Search across item, description, store"),
288
288
  # Filters
289
289
  status: Optional[List[str]] = Query(None, description="Filter by status (multi-value)"),
290
290
  store_ids: Optional[List[str]] = Query(None, description="Filter by store IDs"),
@@ -301,7 +301,7 @@ async def list_items(
301
301
  - page_size: Records per page (1-100, default: 20)
302
302
 
303
303
  **Sorting:**
304
- - sort_by: Field to sort by (created_at, updated_at, article, store)
304
+ - sort_by: Field to sort by (created_at, updated_at, item, store)
305
305
  - sort_order: asc or desc (default: desc)
306
306
 
307
307
  **Filters:**
@@ -311,7 +311,7 @@ async def list_items(
311
311
  - family: Product family (hierarchical, requires segment)
312
312
 
313
313
  **Search:**
314
- - search: Substring match across article_id, article_description, store_id
314
+ - search: Substring match across item_id, item_description, store_id
315
315
  """
316
316
  query_params = QueryParams(
317
317
  page=page,
@@ -336,7 +336,7 @@ async def list_items(
336
336
  5. **Single-responsibility violation**: Query construction in route handlers; move SQL building to a dedicated QueryBuilder or repository method.
337
337
  6. **Zero-indexed `page` in user-facing APIs**: Users expect page 1 to be the first page; use 1-indexed `page` in API and convert to 0-indexed offset internally.
338
338
  7. **Hardcoding sort column names**: User sends `sort_by=doh` but SQL uses `days_on_hand`; maintain a sort mapping dict to translate user-facing names to column names.
339
- 8. **Ignoring case-sensitivity in search**: `WHERE article_id LIKE :search` is case-sensitive on some DBs; use `LOWER(...)` or `ILIKE` for case-insensitive search.
339
+ 8. **Ignoring case-sensitivity in search**: `WHERE item_id LIKE :search` is case-sensitive on some DBs; use `LOWER(...)` or `ILIKE` for case-insensitive search.
340
340
  9. **Fetching full result set then paginating in Python**: Always push `LIMIT/OFFSET` to SQL; paginating in-memory defeats the purpose and exhausts memory on large datasets.
341
341
  10. **Not validating `sort_order`**: Accepting arbitrary `sort_order` can inject ASC/DESC into SQL unsafely; use `regex="^(asc|desc)$"` or enum validation.
342
342
  11. **Returning inconsistent metadata field names**: `total` vs `total_records`, `limit` vs `page_size`, `next` vs `has_next`; standardize on one naming convention per service.
@@ -86,16 +86,16 @@ WHERE store_id = ANY($2)
86
86
  Legacy or client-constrained APIs:
87
87
 
88
88
  ```python
89
- articles: Optional[str] = Query(None, description="Comma-separated article codes")
89
+ items: Optional[str] = Query(None, description="Comma-separated item codes")
90
90
  ```
91
91
 
92
92
  Split in service/repository:
93
93
  ```python
94
- article_list = articles.split(',') if articles else []
95
- # Then use in SQL: WHERE article_id = ANY($1)
94
+ item_list = items.split(',') if items else []
95
+ # Then use in SQL: WHERE item_id = ANY($1)
96
96
  ```
97
97
 
98
- Example: `?articles=SKU-001,SKU-002,SKU-003`
98
+ Example: `?items=ITEM-001,ITEM-002,ITEM-003`
99
99
 
100
100
  ## Hierarchical filters
101
101
 
@@ -172,14 +172,14 @@ query = f"ORDER BY {column} {sort_order.upper()}"
172
172
  Single search param for multi-field substring matching:
173
173
 
174
174
  ```python
175
- search: Optional[str] = Query(None, description="Search text across article, description, store")
175
+ search: Optional[str] = Query(None, description="Search text across item, description, store")
176
176
  ```
177
177
 
178
178
  Translate to case-insensitive SQL:
179
179
  ```sql
180
180
  WHERE (
181
- LOWER(article_id) LIKE LOWER($1)
182
- OR LOWER(article_description) LIKE LOWER($1)
181
+ LOWER(item_id) LIKE LOWER($1)
182
+ OR LOWER(item_description) LIKE LOWER($1)
183
183
  OR LOWER(store_id) LIKE LOWER($1)
184
184
  )
185
185
  ```
@@ -189,8 +189,8 @@ Param value: `f"%{search}%"`
189
189
  Some implementations use PostgreSQL `ILIKE`:
190
190
  ```sql
191
191
  WHERE (
192
- article_id ILIKE $1
193
- OR article_description ILIKE $1
192
+ item_id ILIKE $1
193
+ OR item_description ILIKE $1
194
194
  )
195
195
  ```
196
196