claude-code-kit 0.24.0__tar.gz → 0.25.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.25.0}/.claude-plugin/marketplace.json +1 -1
  2. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/.claude-plugin/plugin.json +1 -1
  3. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/CHANGELOG.md +25 -2
  4. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/PKG-INFO +26 -2
  5. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/README.md +25 -1
  6. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/docs/coverage-audit.md +2 -2
  7. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/pyproject.toml +1 -1
  8. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/references/alembic-setup-and-env.md +3 -3
  9. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/references/repo-evidence.md +2 -2
  10. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/references/writing-migrations.md +6 -6
  11. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/api-pagination-filtering-sorting/README.md +1 -1
  12. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/api-pagination-filtering-sorting/SKILL.md +10 -10
  13. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/api-pagination-filtering-sorting/references/query-params-conventions.md +9 -9
  14. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/api-pagination-filtering-sorting/references/repo-evidence.md +47 -47
  15. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/references/deployment-and-secrets.md +1 -1
  16. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/README.md +1 -1
  17. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/SKILL.md +20 -20
  18. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/references/bigquery-gcs-io.md +1 -1
  19. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/references/medallion-architecture.md +21 -21
  20. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/references/repo-evidence.md +11 -11
  21. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/references/naming-and-layout.md +2 -2
  22. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/references/patterns-catalog.md +1 -1
  23. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/references/api-versioning.md +1 -1
  24. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/SKILL.md +3 -3
  25. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/references/api-layer-and-types.md +12 -12
  26. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/references/divergences.md +5 -5
  27. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/references/repo-evidence.md +19 -18
  28. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/references/structure-and-state.md +48 -48
  29. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/references/testing-patterns.md +4 -4
  30. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/gcp-cloud-run-github-actions/references/repo-evidence.md +1 -1
  31. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/README.md +3 -3
  32. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/SKILL.md +19 -19
  33. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/references/repo-evidence.md +32 -31
  34. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/references/strawberry-backend.md +49 -47
  35. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/references/when-to-use-graphql.md +10 -10
  36. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kafka-config-driven/references/consumer-producer-patterns.md +1 -1
  37. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kafka-config-driven/references/repo-evidence.md +1 -1
  38. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/manual-test/SKILL.md +2 -2
  39. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/multi-tenancy-patterns/SKILL.md +1 -1
  40. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/multi-tenancy-patterns/references/isolation-strategies.md +6 -6
  41. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/multi-tenancy-patterns/references/repo-evidence.md +10 -10
  42. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/SKILL.md +7 -7
  43. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/references/outbound-metrics-and-multi-mode.md +1 -1
  44. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/references/repo-evidence.md +5 -5
  45. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/references/tracing-and-metrics.md +2 -2
  46. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/references/mongodb-advanced.md +1 -1
  47. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/references/other-db-mongodb.md +10 -10
  48. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/references/repo-evidence.md +5 -5
  49. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/tanstack-react-query-patterns/SKILL.md +1 -1
  50. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/tanstack-react-query-patterns/references/repo-evidence.md +55 -55
  51. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/testing-conventions/SKILL.md +6 -6
  52. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/async-and-mocking.md +6 -6
  53. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/coverage-gap-and-recommendations.md +27 -27
  54. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/pytest-asyncio-modes.md +4 -4
  55. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/repo-evidence.md +10 -10
  56. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/vitest-frontend-testing.md +2 -2
  57. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/zustand-state-patterns/README.md +2 -2
  58. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/zustand-state-patterns/SKILL.md +46 -46
  59. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/zustand-state-patterns/references/async-polling-and-persistence.md +49 -49
  60. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/zustand-state-patterns/references/repo-evidence.md +79 -77
  61. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/zustand-state-patterns/references/store-structure-and-selectors.md +26 -26
  62. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/src/claude_kit/__init__.py +1 -1
  63. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/.gitignore +0 -0
  64. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/CLAUDE.md +0 -0
  65. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/CONTRIBUTING.md +0 -0
  66. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/LICENSE +0 -0
  67. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/acceptance-reviewer.md +0 -0
  68. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/auditor.md +0 -0
  69. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/dependency-scanner.md +0 -0
  70. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/developer.md +0 -0
  71. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/devils-advocate.md +0 -0
  72. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/devops-engineer.md +0 -0
  73. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/e2e-tester.md +0 -0
  74. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/em-reviewer.md +0 -0
  75. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/incident-responder.md +0 -0
  76. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/merge-reviewer.md +0 -0
  77. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/observability-engineer.md +0 -0
  78. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/orchestrator.md +0 -0
  79. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/owasp-reviewer.md +0 -0
  80. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/policy-validator.md +0 -0
  81. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/pr-raiser.md +0 -0
  82. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/risk-classifier.md +0 -0
  83. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/sdlc-code-reviewer.md +0 -0
  84. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/secret-scanner.md +0 -0
  85. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/security-reviewer.md +0 -0
  86. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/senior-backend-dev.md +0 -0
  87. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/senior-frontend-dev.md +0 -0
  88. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/senior-tester.md +0 -0
  89. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/spec-doc-writer.md +0 -0
  90. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/story-planner.md +0 -0
  91. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/technical-architect.md +0 -0
  92. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/tester.md +0 -0
  93. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/ui-designer.md +0 -0
  94. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/agents/unit-tester.md +0 -0
  95. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/catalog/capture.yaml +0 -0
  96. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/catalog/mcp.yaml +0 -0
  97. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/catalog/org.yaml +0 -0
  98. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/catalog/profiles.yaml +0 -0
  99. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/catalog/stacks.yaml +0 -0
  100. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/commands/abort.md +0 -0
  101. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/commands/init.md +0 -0
  102. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/commands/sdlc.md +0 -0
  103. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/commands/status.md +0 -0
  104. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/docs/agentic-patterns.md +0 -0
  105. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/docs/agents.md +0 -0
  106. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/docs/architecture.md +0 -0
  107. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/docs/eval-harness.md +0 -0
  108. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/docs/org-capabilities.md +0 -0
  109. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/docs/stack-skills/GAP-ANALYSIS.md +0 -0
  110. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/docs/stack-skills/README.md +0 -0
  111. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/docs/stack-skills/REPO-INVENTORY.md +0 -0
  112. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/hooks.json +0 -0
  113. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/audit-log.sh +0 -0
  114. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/capture-learnings.sh +0 -0
  115. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/guard-destructive-git.sh +0 -0
  116. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/guard-kubectl-delete.sh +0 -0
  117. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/guard-secrets.sh +0 -0
  118. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/lint-fix.sh +0 -0
  119. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/load-autonomy.sh +0 -0
  120. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/load-continuity.sh +0 -0
  121. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/load-learnings.sh +0 -0
  122. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/type-check.sh +0 -0
  123. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/validate-frontmatter.sh +0 -0
  124. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/validate-settings.sh +0 -0
  125. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/warn-large-edits.sh +0 -0
  126. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/warn-llm-io.sh +0 -0
  127. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/warn-missing-tests.sh +0 -0
  128. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
  129. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/hooks/scripts/warn-shared-modules.sh +0 -0
  130. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/agent-guardrails.md +0 -0
  131. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/agent-memory.md +0 -0
  132. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/agent-resilience.md +0 -0
  133. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/autonomy-levels.md +0 -0
  134. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/code-organization.md +0 -0
  135. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/continuity.md +0 -0
  136. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/design-patterns.md +0 -0
  137. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/devops-observability.md +0 -0
  138. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/documentation.md +0 -0
  139. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/evals.md +0 -0
  140. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/frontend-best-practices.md +0 -0
  141. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/goal-setting-and-monitoring.md +0 -0
  142. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/human-in-the-loop.md +0 -0
  143. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/linting-and-formatting.md +0 -0
  144. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/mandatory-workflow.md +0 -0
  145. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/model-tiers.md +0 -0
  146. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/quality-gates.md +0 -0
  147. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/rarv-cycle.md +0 -0
  148. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/reasoning-techniques.md +0 -0
  149. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/responsive-and-accessibility.md +0 -0
  150. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/risk-classification.md +0 -0
  151. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/testing.md +0 -0
  152. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/rules/tool-design.md +0 -0
  153. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/scripts/check_docs_consistency.py +0 -0
  154. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/scripts/gen_hooks.py +0 -0
  155. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/scripts/init.sh +0 -0
  156. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/_references/accessibility-checklist.md +0 -0
  157. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/_references/orchestration-patterns.md +0 -0
  158. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/_references/performance-checklist.md +0 -0
  159. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/_references/security-checklist.md +0 -0
  160. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/_references/testing-patterns.md +0 -0
  161. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/accessibility-review/SKILL.md +0 -0
  162. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/README.md +0 -0
  163. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/SKILL.md +0 -0
  164. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/references/async-and-multitenant-migrations.md +0 -0
  165. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/references/troubleshooting-and-debugging.md +0 -0
  166. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/anthropic-vertex-integration/README.md +0 -0
  167. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/anthropic-vertex-integration/SKILL.md +0 -0
  168. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/anthropic-vertex-integration/references/generate-helpers-and-retry.md +0 -0
  169. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/anthropic-vertex-integration/references/repo-evidence.md +0 -0
  170. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/anthropic-vertex-integration/references/vertex-client-and-auth.md +0 -0
  171. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/api-and-interface-design/SKILL.md +0 -0
  172. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/api-integration/SKILL.md +0 -0
  173. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/api-pagination-filtering-sorting/references/response-metadata.md +0 -0
  174. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/archive-sprint/SKILL.md +0 -0
  175. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/async-python-patterns/README.md +0 -0
  176. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/async-python-patterns/SKILL.md +0 -0
  177. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/async-python-patterns/references/async-boundaries.md +0 -0
  178. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/async-python-patterns/references/lifecycle-and-gather.md +0 -0
  179. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/async-python-patterns/references/repo-evidence.md +0 -0
  180. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/README.md +0 -0
  181. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/SKILL.md +0 -0
  182. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/references/auth-dependencies.md +0 -0
  183. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/references/rbac-and-permissions.md +0 -0
  184. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/references/repo-evidence.md +0 -0
  185. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/references/security-hardening.md +0 -0
  186. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/references/tokens-and-hashing.md +0 -0
  187. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/README.md +0 -0
  188. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/SKILL.md +0 -0
  189. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/references/deployment-patterns.md +0 -0
  190. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/references/entrypoint-and-config.md +0 -0
  191. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/references/repo-evidence.md +0 -0
  192. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/references/structure-patterns.md +0 -0
  193. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/references/troubleshooting.md +0 -0
  194. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/backlog/SKILL.md +0 -0
  195. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/backlog/item-template.md +0 -0
  196. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
  197. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/bug-hunt/SKILL.md +0 -0
  198. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
  199. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/code-review-and-quality/SKILL.md +0 -0
  200. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/code-simplification/SKILL.md +0 -0
  201. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/component-design/SKILL.md +0 -0
  202. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/configargparse-yaml-env-layering/README.md +0 -0
  203. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/configargparse-yaml-env-layering/SKILL.md +0 -0
  204. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/configargparse-yaml-env-layering/references/config-layering-anatomy.md +0 -0
  205. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/configargparse-yaml-env-layering/references/mode-dispatch-and-precedence.md +0 -0
  206. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/configargparse-yaml-env-layering/references/repo-evidence.md +0 -0
  207. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/consolidate-learnings/SKILL.md +0 -0
  208. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/README.md +0 -0
  209. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/SKILL.md +0 -0
  210. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/references/dockerfile-and-compose.md +0 -0
  211. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/references/entrypoint-and-modes.md +0 -0
  212. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/references/kerberos-kinit-bootstrap.md +0 -0
  213. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/references/makefile-dev-workflow.md +0 -0
  214. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/references/repo-evidence.md +0 -0
  215. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/context-engineering/SKILL.md +0 -0
  216. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/cron-and-scheduled-jobs/README.md +0 -0
  217. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/cron-and-scheduled-jobs/SKILL.md +0 -0
  218. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/cron-and-scheduled-jobs/references/choosing-and-operations.md +0 -0
  219. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/cron-and-scheduled-jobs/references/kubernetes-cronjob.md +0 -0
  220. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/cron-and-scheduled-jobs/references/repo-evidence.md +0 -0
  221. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/cron-and-scheduled-jobs/references/temporal-schedules.md +0 -0
  222. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/references/bigquery-advanced-patterns.md +0 -0
  223. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/references/temp-table-merge-pattern.md +0 -0
  224. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
  225. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/decision/SKILL.md +0 -0
  226. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/decision/adr-template.md +0 -0
  227. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/deprecation-and-migration/SKILL.md +0 -0
  228. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/README.md +0 -0
  229. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/SKILL.md +0 -0
  230. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/references/anti-patterns.md +0 -0
  231. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/references/repo-evidence.md +0 -0
  232. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/references/testing-patterns.md +0 -0
  233. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/references/troubleshooting.md +0 -0
  234. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/docker-compose/README.md +0 -0
  235. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/docker-compose/SKILL.md +0 -0
  236. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/docker-compose/references/compose-services-and-healthchecks.md +0 -0
  237. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/docker-compose/references/dev-vs-prod-variants.md +0 -0
  238. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/docker-compose/references/repo-evidence.md +0 -0
  239. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/docker-shared/README.md +0 -0
  240. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/docker-shared/SKILL.md +0 -0
  241. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/docker-shared/references/dockerignore-and-build-secrets.md +0 -0
  242. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/docker-shared/references/repo-evidence.md +0 -0
  243. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/docker-shared/references/shared-base-images.md +0 -0
  244. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/docker-shared/references/shared-compose-fragments.md +0 -0
  245. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/dockerfile-backend/README.md +0 -0
  246. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/dockerfile-backend/SKILL.md +0 -0
  247. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/dockerfile-backend/references/backend-dockerfile-anatomy.md +0 -0
  248. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/dockerfile-backend/references/repo-evidence.md +0 -0
  249. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/dockerfile-backend/references/system-deps-and-caching.md +0 -0
  250. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/dockerfile-frontend/README.md +0 -0
  251. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/dockerfile-frontend/SKILL.md +0 -0
  252. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/dockerfile-frontend/references/build-args-and-nginx.md +0 -0
  253. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/dockerfile-frontend/references/frontend-dockerfile-anatomy.md +0 -0
  254. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/dockerfile-frontend/references/repo-evidence.md +0 -0
  255. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/documentation-and-adrs/SKILL.md +0 -0
  256. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/doubt-driven-development/SKILL.md +0 -0
  257. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/edge-to-service-trust-boundary/README.md +0 -0
  258. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/edge-to-service-trust-boundary/SKILL.md +0 -0
  259. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/edge-to-service-trust-boundary/references/repo-evidence.md +0 -0
  260. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/edge-to-service-trust-boundary/references/trust-contract.md +0 -0
  261. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/execute/SKILL.md +0 -0
  262. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/README.md +0 -0
  263. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/SKILL.md +0 -0
  264. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/references/app-factory-and-lifespan.md +0 -0
  265. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/references/custom-route-and-middleware.md +0 -0
  266. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/references/dependency-injection.md +0 -0
  267. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/references/model-and-serialization-patterns.md +0 -0
  268. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/references/repo-evidence.md +0 -0
  269. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/file-export-and-reporting/README.md +0 -0
  270. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/file-export-and-reporting/SKILL.md +0 -0
  271. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/file-export-and-reporting/references/excel-generation.md +0 -0
  272. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/file-export-and-reporting/references/repo-evidence.md +0 -0
  273. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/file-export-and-reporting/references/streaming-and-downloads.md +0 -0
  274. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/README.md +0 -0
  275. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
  276. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/gcp-cloud-run-github-actions/README.md +0 -0
  277. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/gcp-cloud-run-github-actions/SKILL.md +0 -0
  278. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/gcp-cloud-run-github-actions/references/cloud-run-deploy.md +0 -0
  279. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/gcp-cloud-run-github-actions/references/workflow-structure.md +0 -0
  280. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/gcs-file-storage-patterns/README.md +0 -0
  281. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/gcs-file-storage-patterns/SKILL.md +0 -0
  282. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/gcs-file-storage-patterns/references/client-and-uploads.md +0 -0
  283. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/gcs-file-storage-patterns/references/repo-evidence.md +0 -0
  284. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/gcs-file-storage-patterns/references/signed-urls-and-reads.md +0 -0
  285. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
  286. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/README.md +0 -0
  287. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/SKILL.md +0 -0
  288. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/references/dashboard-json-and-templating.md +0 -0
  289. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/references/provisioning-and-organization.md +0 -0
  290. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/references/red-metrics-queries.md +0 -0
  291. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/references/repo-evidence.md +0 -0
  292. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/references/unified-alerting.md +0 -0
  293. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/references/apollo-client-frontend.md +0 -0
  294. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/references/apollo-client-setup.md +0 -0
  295. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/idea-refine/SKILL.md +0 -0
  296. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/idea-refine/examples.md +0 -0
  297. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/idea-refine/frameworks.md +0 -0
  298. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/idea-refine/refinement-criteria.md +0 -0
  299. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
  300. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/incident-postmortem/SKILL.md +0 -0
  301. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/incremental-implementation/SKILL.md +0 -0
  302. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/interview-me/SKILL.md +0 -0
  303. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kafka-config-driven/README.md +0 -0
  304. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kafka-config-driven/SKILL.md +0 -0
  305. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kafka-config-driven/references/config-and-sasl-kerberos.md +0 -0
  306. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kafka-config-driven/references/troubleshooting-and-patterns.md +0 -0
  307. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/README.md +0 -0
  308. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/SKILL.md +0 -0
  309. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/references/command-reference.md +0 -0
  310. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/references/context-namespace-rbac.md +0 -0
  311. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/references/debugging-playbooks.md +0 -0
  312. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/references/output-formats-and-selectors.md +0 -0
  313. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/references/repo-evidence.md +0 -0
  314. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kubernetes-workload-hardening/README.md +0 -0
  315. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kubernetes-workload-hardening/SKILL.md +0 -0
  316. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kubernetes-workload-hardening/references/networkpolicy-and-rbac.md +0 -0
  317. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kubernetes-workload-hardening/references/repo-evidence.md +0 -0
  318. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/kubernetes-workload-hardening/references/securitycontext-and-podsecurity.md +0 -0
  319. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/langfuse-llm-tracing/README.md +0 -0
  320. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/langfuse-llm-tracing/SKILL.md +0 -0
  321. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/langfuse-llm-tracing/references/langfuse-client-and-tracing.md +0 -0
  322. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/langfuse-llm-tracing/references/python-and-typescript.md +0 -0
  323. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/langfuse-llm-tracing/references/repo-evidence.md +0 -0
  324. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/load-testing/SKILL.md +0 -0
  325. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/README.md +0 -0
  326. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/SKILL.md +0 -0
  327. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/references/migration-best-practices.md +0 -0
  328. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/references/pydantic-v1-to-v2.md +0 -0
  329. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/references/repo-evidence.md +0 -0
  330. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/references/shared-internal-library.md +0 -0
  331. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/references/sqlalchemy-14-to-20.md +0 -0
  332. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/multi-tenancy-patterns/README.md +0 -0
  333. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/multi-tenancy-patterns/references/caching-patterns.md +0 -0
  334. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/multi-tenancy-patterns/references/tenant-resolution.md +0 -0
  335. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/node-express-service/README.md +0 -0
  336. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/node-express-service/SKILL.md +0 -0
  337. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/node-express-service/references/app-factory-and-mode-dispatch.md +0 -0
  338. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/node-express-service/references/config-and-module-alias.md +0 -0
  339. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/node-express-service/references/middleware-patterns.md +0 -0
  340. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/node-express-service/references/repo-evidence.md +0 -0
  341. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/node-objection-knex/README.md +0 -0
  342. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/node-objection-knex/SKILL.md +0 -0
  343. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/node-objection-knex/references/migrations-and-validation.md +0 -0
  344. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/node-objection-knex/references/objection-model-and-knex.md +0 -0
  345. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/node-objection-knex/references/repo-evidence.md +0 -0
  346. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/notifications-and-messaging/README.md +0 -0
  347. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/notifications-and-messaging/SKILL.md +0 -0
  348. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/notifications-and-messaging/references/provider-abstraction.md +0 -0
  349. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/notifications-and-messaging/references/repo-evidence.md +0 -0
  350. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/notifications-and-messaging/references/templates-and-fallback.md +0 -0
  351. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/README.md +0 -0
  352. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/references/health-and-readiness.md +0 -0
  353. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/references/logging-and-structlog.md +0 -0
  354. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/references/pii-redaction.md +0 -0
  355. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/over-engineering-review/SKILL.md +0 -0
  356. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/performance-optimization/SKILL.md +0 -0
  357. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
  358. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/playwright-verification/SKILL.md +0 -0
  359. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/pydantic-schema-patterns/README.md +0 -0
  360. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/pydantic-schema-patterns/SKILL.md +0 -0
  361. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/pydantic-schema-patterns/references/repo-evidence.md +0 -0
  362. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/pydantic-schema-patterns/references/settings-and-validation.md +0 -0
  363. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/pydantic-schema-patterns/references/troubleshooting-and-common-errors.md +0 -0
  364. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/pydantic-schema-patterns/references/v1-vs-v2.md +0 -0
  365. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/README.md +0 -0
  366. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/SKILL.md +0 -0
  367. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/references/advanced-query-patterns.md +0 -0
  368. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/references/basedao-and-sessions.md +0 -0
  369. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/references/sqlalchemy-1x-vs-2x.md +0 -0
  370. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/radix-tailwind-component-patterns/README.md +0 -0
  371. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/radix-tailwind-component-patterns/SKILL.md +0 -0
  372. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/radix-tailwind-component-patterns/references/radix-primitives-and-variants.md +0 -0
  373. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/radix-tailwind-component-patterns/references/repo-evidence.md +0 -0
  374. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/radix-tailwind-component-patterns/references/tailwind-theme-and-cn.md +0 -0
  375. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/react-hook-form-zod-patterns/README.md +0 -0
  376. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/react-hook-form-zod-patterns/SKILL.md +0 -0
  377. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/react-hook-form-zod-patterns/references/form-setup-and-zod.md +0 -0
  378. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/react-hook-form-zod-patterns/references/multi-step-and-modes.md +0 -0
  379. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/react-hook-form-zod-patterns/references/repo-evidence.md +0 -0
  380. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/redis-caching-patterns/README.md +0 -0
  381. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/redis-caching-patterns/SKILL.md +0 -0
  382. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/redis-caching-patterns/references/cache-manager-and-fallback.md +0 -0
  383. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/redis-caching-patterns/references/namespacing-and-invalidation.md +0 -0
  384. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/redis-caching-patterns/references/repo-evidence.md +0 -0
  385. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/refresh-docs/SKILL.md +0 -0
  386. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/remember/SKILL.md +0 -0
  387. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/scope/SKILL.md +0 -0
  388. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/scope/scope-template.md +0 -0
  389. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/sdlc/SKILL.md +0 -0
  390. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/security-and-hardening/SKILL.md +0 -0
  391. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/security-verification/SKILL.md +0 -0
  392. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/shannon-ai-pentest/README.md +0 -0
  393. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/shannon-ai-pentest/SKILL.md +0 -0
  394. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/shannon-ai-pentest/references/operating-guide.md +0 -0
  395. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/shipping-and-launch/SKILL.md +0 -0
  396. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/simplification-debt/SKILL.md +0 -0
  397. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/smoke-test/SKILL.md +0 -0
  398. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/source-driven-development/SKILL.md +0 -0
  399. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/spec-driven-development/SKILL.md +0 -0
  400. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/sprint/SKILL.md +0 -0
  401. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/sprint/sprint-template.md +0 -0
  402. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/tanstack-react-query-patterns/README.md +0 -0
  403. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/tanstack-react-query-patterns/references/mutations-and-cache.md +0 -0
  404. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/tanstack-react-query-patterns/references/query-keys-and-hooks.md +0 -0
  405. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/task-tracker-sync/SKILL.md +0 -0
  406. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/README.md +0 -0
  407. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/SKILL.md +0 -0
  408. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/references/config-and-retry-idempotency.md +0 -0
  409. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/references/dag-dsl-interpreter.md +0 -0
  410. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/references/repo-evidence.md +0 -0
  411. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/references/schedule-registration.md +0 -0
  412. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/references/schedules-and-cron.md +0 -0
  413. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/references/worker-workflow-activity-patterns.md +0 -0
  414. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/test-driven-development/SKILL.md +0 -0
  415. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/test-plan-review/SKILL.md +0 -0
  416. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/testing-conventions/README.md +0 -0
  417. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/github-actions-test-orchestration.md +0 -0
  418. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/pytest-and-fixtures.md +0 -0
  419. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/security-regression-tests.md +0 -0
  420. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/threat-model/SKILL.md +0 -0
  421. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/triage/SKILL.md +0 -0
  422. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/ui-ux-design/SKILL.md +0 -0
  423. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/unit-test/SKILL.md +0 -0
  424. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/using-agent-skills/SKILL.md +0 -0
  425. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/vitest-rtl-msw-patterns/README.md +0 -0
  426. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/vitest-rtl-msw-patterns/SKILL.md +0 -0
  427. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/vitest-rtl-msw-patterns/references/msw-and-contract-tests.md +0 -0
  428. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/vitest-rtl-msw-patterns/references/repo-evidence.md +0 -0
  429. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/vitest-rtl-msw-patterns/references/vitest-rtl-setup.md +0 -0
  430. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/zap-vapt-scanning/README.md +0 -0
  431. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/zap-vapt-scanning/SKILL.md +0 -0
  432. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/zap-vapt-scanning/references/operating-guide.md +0 -0
  433. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/zap-vapt-scanning/scripts/endpoints.example.txt +0 -0
  434. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/zap-vapt-scanning/scripts/requirements.txt +0 -0
  435. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/skills/zap-vapt-scanning/scripts/zap_vapt.py +0 -0
  436. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/src/claude_kit/__main__.py +0 -0
  437. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/src/claude_kit/catalog.py +0 -0
  438. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/src/claude_kit/cli.py +0 -0
  439. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/src/claude_kit/hooks.py +0 -0
  440. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/src/claude_kit/models.py +0 -0
  441. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/src/claude_kit/pipeline.py +0 -0
  442. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/src/claude_kit/prompts.py +0 -0
  443. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/src/claude_kit/render.py +0 -0
  444. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/src/claude_kit/scaffold.py +0 -0
  445. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/src/claude_kit/upgrader.py +0 -0
  446. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/src/claude_kit/validator.py +0 -0
  447. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/CLAUDE.md +0 -0
  448. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/CLAUDE.stack.md.tmpl +0 -0
  449. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/CONTINUITY.template.md +0 -0
  450. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/README.claude-sdlc.md.tmpl +0 -0
  451. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/agent-memory/MEMORY.md +0 -0
  452. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/agent-memory/api/.gitkeep +0 -0
  453. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/agent-memory/architecture/.gitkeep +0 -0
  454. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/agent-memory/debugging/.gitkeep +0 -0
  455. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
  456. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/agent-memory/patterns/.gitkeep +0 -0
  457. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/agent-memory/performance/.gitkeep +0 -0
  458. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/artifacts/adr.md +0 -0
  459. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/artifacts/api-change-report.md +0 -0
  460. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/artifacts/feature-spec.md +0 -0
  461. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/artifacts/release-plan.md +0 -0
  462. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/artifacts/runbook.md +0 -0
  463. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/artifacts/security-review.md +0 -0
  464. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/artifacts/test-plan.md +0 -0
  465. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/README.md +0 -0
  466. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/agents/data-workflow-agent.md +0 -0
  467. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/agents/founder-prototype-agent.md +0 -0
  468. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/agents/internal-tools-builder.md +0 -0
  469. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/agents/pm-copilot.md +0 -0
  470. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/agents/staff-pm-reviewer.md +0 -0
  471. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/agents/support-ticket-engineer.md +0 -0
  472. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/devops-and-release/README.md +0 -0
  473. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
  474. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/engineering-core/README.md +0 -0
  475. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
  476. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
  477. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
  478. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
  479. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
  480. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/product-to-code/README.md +0 -0
  481. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
  482. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/quality-and-review/README.md +0 -0
  483. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
  484. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/security-and-compliance/README.md +0 -0
  485. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
  486. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/rules/ai-working-agreement.md +0 -0
  487. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/rules/ambiguity-resolution.md +0 -0
  488. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
  489. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/rules/compliance-policy.md +0 -0
  490. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
  491. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/rules/pii-policy.md +0 -0
  492. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/rules/production-data-policy.md +0 -0
  493. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
  494. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/rules/prototype-boundaries.md +0 -0
  495. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/rules/secrets-policy.md +0 -0
  496. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
  497. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
  498. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
  499. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
  500. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
  501. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/skills/review-scope/SKILL.md +0 -0
  502. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/skills/review-sprint/SKILL.md +0 -0
  503. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/skills/review-sprint-plan/SKILL.md +0 -0
  504. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/org/skills/review-ux-flow/SKILL.md +0 -0
  505. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/settings.json +0 -0
  506. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/backend/go/net-http/rules/go-patterns.md +0 -0
  507. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
  508. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
  509. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
  510. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
  511. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
  512. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
  513. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
  514. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
  515. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
  516. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/frontend/react/rules/design-system-compliance.md +0 -0
  517. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/frontend/react/rules/mobile-design-guidelines.md +0 -0
  518. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/frontend/react/rules/react-patterns.md +0 -0
  519. {claude_code_kit-0.24.0 → claude_code_kit-0.25.0}/templates/stacks/frontend/react/rules/ui-design-system.md +0 -0
  520. {claude_code_kit-0.24.0 → claude_code_kit-0.25.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.25.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.25.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,29 @@ 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.25.0] — 2026-06-24
8
+
9
+ **PR4 of the phased hardening review: supply-chain provenance, an explicit trust model, and a full
10
+ genericization pass so the public repo carries only neutral examples.**
11
+
12
+ ### Added
13
+ - **PEP 740 build attestations re-enabled** in `publish.yml`. They were temporarily disabled while
14
+ Sigstore's Rekor transparency log was returning HTTP 502s at upload time; Sigstore has since been
15
+ healthy (verified via status.sigstore.dev — all services online, no incidents), so releases are
16
+ signed again for supply-chain provenance.
17
+ - **A "Security & trust model" section** in `README.md` (with a nav link) stating plainly that the
18
+ guard hooks are convenience, not a hardened boundary; that most quality gates are agent protocols
19
+ rather than mechanical enforcement; and that MCP servers are third-party code — surfacing
20
+ `SECURITY.md`'s posture where users decide to rely on the kit.
21
+
22
+ ### Changed
23
+ - **Genericization pass** — removed residual internal / company-specific identifiers so the published
24
+ repo carries only neutral examples. Genericized the 0.15.0 adoption narrative in `CHANGELOG.md` and
25
+ `docs/coverage-audit.md`; renamed test functions and replaced an internal-token blocklist with a
26
+ positive neutralization check in `tests/test_scaffold.py`; and neutralized the skills-collection
27
+ reference docs (example feature / module / variable names, domain-specific jargon, and a
28
+ region-specific registry host) into generic equivalents. Examples-only — no behavior change.
29
+
7
30
  ## [0.24.0] — 2026-06-24
8
31
 
9
32
  **PR3 of the phased hardening review: deeper validation, a deterministic pipeline CLI, an MCP
@@ -532,7 +555,7 @@ values (→ `#______` placeholders, matching the existing `design-system-complia
532
555
 
533
556
  ## [0.15.0] — 2026-06-16
534
557
 
535
- **Adopt the Fynd Agentic Engineering personas & skills** (an internal Claude Code plugin marketplace —
558
+ **Adopt a set of internal engineering personas & skills** (a private Claude Code plugin marketplace —
536
559
  11 agents + 29 skills across 7 plugins: engineer, designer, pm, context-gen, staff-em, staff-sdet,
537
560
  staff-pm). Those plugins are excellent but heavily **stack-bound** (FastAPI/SQLAlchemy/Pydantic/React/
538
561
  Tailwind/Radix/Zod/Temporal/Kafka/Langfuse, against an internal `.ai/` doc convention). Mirroring all
@@ -546,7 +569,7 @@ nothing), **18 extend** (a real delta folded into the nearest existing component
546
569
  layer), **1 adopt-core** (genuinely new + stack-agnostic). Net: **2 new core skills, ~10 surgical core
547
570
  extends, 1 new React overlay rule + FastAPI/React overlay enrichments, 5 new org components** — zero
548
571
  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
572
+ text copied; every source-internal reference (internal doc conventions, internal field/service names, numeric
550
573
  heuristics) stripped or genericized.
551
574
 
552
575
  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.25.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
 
@@ -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.25.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"
@@ -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
 
@@ -30,9 +30,9 @@ class ForecastQuery(BaseModel):
30
30
  ### Limit/offset style
31
31
 
32
32
  ```python
33
- # app/anr/models.py
34
- class ReplenishmentQueryParams(BaseModel):
35
- """Query parameters for replenishment data list."""
33
+ # app/inventory/models.py
34
+ class InventoryQueryParams(BaseModel):
35
+ """Query parameters for inventory data list."""
36
36
 
37
37
  # Pagination
38
38
  limit: int = Field(default=100, ge=1, le=1000, description="Maximum records to return")
@@ -92,10 +92,10 @@ class ForecastResponse(BaseModel):
92
92
  ### Limit/offset response
93
93
 
94
94
  ```python
95
- # app/anr/models.py
96
- class ReplenishmentListData(BaseModel):
97
- """Response data for replenishment list."""
98
- data: List[ReplenishmentRecord] = Field(default_factory=list, description="List of records")
95
+ # app/inventory/models.py
96
+ class InventoryListData(BaseModel):
97
+ """Response data for inventory list."""
98
+ data: List[InventoryRecord] = Field(default_factory=list, description="List of records")
99
99
  total_records: int = Field(0, description="Total number of records")
100
100
  page: int = Field(1, description="Current page number")
101
101
  page_size: int = Field(100, description="Records per page")
@@ -108,8 +108,8 @@ class ReplenishmentListData(BaseModel):
108
108
 
109
109
  ```python
110
110
  # app/home/router.py
111
- @router.get("/detailed_sku_view")
112
- async def get_detailed_sku_view(
111
+ @router.get("/detailed_item_view")
112
+ async def get_detailed_item_view(
113
113
  # Pagination
114
114
  page: int = Query(1, ge=1, description="Page number (1-indexed)"),
115
115
  page_size: int = Query(20, ge=1, le=100, description="Items per page (max 100)"),
@@ -117,7 +117,7 @@ async def get_detailed_sku_view(
117
117
  # Sorting
118
118
  sort_by: str = Query(
119
119
  "doh",
120
- description="Column to sort by: site, category, subcategory, article, doh, stock, sales, cost"
120
+ description="Column to sort by: site, category, subcategory, item, doh, stock, sales, cost"
121
121
  ),
122
122
  sort_order: str = Query(
123
123
  "DESC",
@@ -130,22 +130,22 @@ async def get_detailed_sku_view(
130
130
  subcategory: Optional[str] = Query(None, description="Subcategory/Class ID"),
131
131
 
132
132
  # Search
133
- search: Optional[str] = Query(None, description="Search text across site, category, article"),
133
+ search: Optional[str] = Query(None, description="Search text across site, category, item"),
134
134
 
135
135
  # Multi-value filters (comma-separated)
136
- articles: Optional[str] = Query(None, description="Comma-separated article codes"),
136
+ items: Optional[str] = Query(None, description="Comma-separated item codes"),
137
137
  stores: Optional[str] = Query(None, description="Comma-separated store IDs"),
138
138
 
139
139
  service = Depends(get_service),
140
140
  ):
141
141
  """
142
- Get detailed SKU view with pagination and sorting.
142
+ Get detailed item view with pagination and sorting.
143
143
 
144
144
  **Usage Examples:**
145
145
  ```
146
- GET /detailed_sku_view?sort_by=stock&sort_order=DESC
147
- GET /detailed_sku_view?articles=SKU-001,SKU-002,SKU-003
148
- GET /detailed_sku_view?category=BEVERAGES&stores=6217,6220&sort_by=cost&sort_order=ASC
146
+ GET /detailed_item_view?sort_by=stock&sort_order=DESC
147
+ GET /detailed_item_view?items=ITEM-001,ITEM-002,ITEM-003
148
+ GET /detailed_item_view?category=BEVERAGES&stores=6217,6220&sort_by=cost&sort_order=ASC
149
149
  ```
150
150
  """
151
151
  # Service call omitted
@@ -155,15 +155,15 @@ async def get_detailed_sku_view(
155
155
  ### Limit/offset with multi-value filters
156
156
 
157
157
  ```python
158
- # app/anr/redistribution/router.py
158
+ # app/inventory/distribution/router.py
159
159
  DEFAULT_PAGE = 1
160
160
  DEFAULT_PAGE_SIZE = 20
161
161
  MAX_PAGE_SIZE = 1000
162
162
 
163
- @router.get("/redistribution")
164
- async def get_redistribution_data(
163
+ @router.get("/distribution")
164
+ async def get_distribution_data(
165
165
  # Search
166
- search: Optional[str] = Query(None, description="Search text across order_id, location_id, article_id"),
166
+ search: Optional[str] = Query(None, description="Search text across order_id, location_id, item_id"),
167
167
 
168
168
  # Sorting
169
169
  sort_by: str = Query("created_at", description="Field to sort by"),
@@ -185,7 +185,7 @@ async def get_redistribution_data(
185
185
  service = Depends(get_service),
186
186
  ):
187
187
  """
188
- Get redistribution data with filtering, search, sorting, and pagination.
188
+ Get distribution data with filtering, search, sorting, and pagination.
189
189
 
190
190
  **Pagination:**
191
191
  - page: Page number (1-indexed, default: 1)
@@ -263,13 +263,13 @@ class ForecastQueryBuilder:
263
263
 
264
264
  ```python
265
265
  # app/home/query_builder.py
266
- class SKUQueryBuilder:
266
+ class ItemQueryBuilder:
267
267
  def _get_sort_column(self, sort_by: str) -> str:
268
268
  """Map sort_by parameter to actual column name."""
269
269
  sort_mapping = {
270
270
  "site": "store_name",
271
271
  "category": "category_description",
272
- "article": "article_id",
272
+ "item": "item_id",
273
273
  "doh": "days_on_hand",
274
274
  "stock": "total_stock",
275
275
  "sales": "sales_90d",
@@ -282,7 +282,7 @@ class SKUQueryBuilder:
282
282
  ### Multi-value filter building
283
283
 
284
284
  ```python
285
- # app/anr/redistribution/query_builder.py
285
+ # app/inventory/distribution/query_builder.py
286
286
  def _build_filters(self, query_params) -> str:
287
287
  """Build filter clauses."""
288
288
  clauses = []
@@ -310,8 +310,8 @@ def _build_search_filter(self, search: Optional[str]) -> str:
310
310
  search_param = self._add_param(f"%{search}%")
311
311
  return f"""
312
312
  AND (
313
- LOWER(article_id) LIKE LOWER({search_param})
314
- OR LOWER(article_description) LIKE LOWER({search_param})
313
+ LOWER(item_id) LIKE LOWER({search_param})
314
+ OR LOWER(item_description) LIKE LOWER({search_param})
315
315
  OR LOWER(order_id) LIKE LOWER({search_param})
316
316
  OR LOWER(store_id) LIKE LOWER({search_param})
317
317
  )
@@ -332,7 +332,7 @@ def build_count_query(self, filters: Dict[str, str]) -> Tuple[str, List[Any]]:
332
332
  search_where = self._build_search_filter(filters)
333
333
 
334
334
  query = f"""
335
- SELECT COUNT(DISTINCT CONCAT(site_id, '-', article_id)) as total
335
+ SELECT COUNT(DISTINCT CONCAT(site_id, '-', item_id)) as total
336
336
  FROM {self.schema}.{self.table}
337
337
  WHERE 1=1
338
338
  {site_where}
@@ -347,8 +347,8 @@ def build_count_query(self, filters: Dict[str, str]) -> Tuple[str, List[Any]]:
347
347
  ### Fetch list with count
348
348
 
349
349
  ```python
350
- # app/anr/redistribution/repository.py
351
- class RedistributionRepository:
350
+ # app/inventory/distribution/repository.py
351
+ class DistributionRepository:
352
352
  async def fetch_list(
353
353
  self,
354
354
  query_params: QueryParams
@@ -415,23 +415,23 @@ class ForecastService:
415
415
  ### Limit/offset style
416
416
 
417
417
  ```python
418
- # app/anr/redistribution/service.py
419
- class RedistributionService:
420
- async def get_redistribution_list(
418
+ # app/inventory/distribution/service.py
419
+ class DistributionService:
420
+ async def get_distribution_list(
421
421
  self,
422
422
  query_params: QueryParams
423
- ) -> RedistributionListData:
424
- """Get redistribution data list with pagination."""
423
+ ) -> DistributionListData:
424
+ """Get distribution data list with pagination."""
425
425
  records_data, total_count = await self.repository.fetch_list(query_params)
426
426
 
427
427
  # Convert to Pydantic models
428
- records = [ReplenishmentRecord(**r) for r in records_data]
428
+ records = [InventoryRecord(**r) for r in records_data]
429
429
 
430
430
  # Calculate pagination metadata
431
431
  page = (query_params.offset // query_params.limit) + 1
432
432
  has_next = (query_params.offset + query_params.limit) < total_count
433
433
 
434
- return RedistributionListData(
434
+ return DistributionListData(
435
435
  data=records,
436
436
  total_records=total_count,
437
437
  page=page,
@@ -445,9 +445,9 @@ class RedistributionService:
445
445
  ### Sort configuration
446
446
 
447
447
  ```python
448
- # app/anr/redistribution/config.py
449
- class RedistributionConfig:
450
- """Configuration for redistribution module."""
448
+ # app/inventory/distribution/config.py
449
+ class DistributionConfig:
450
+ """Configuration for distribution module."""
451
451
 
452
452
  default_sort_by: str = "created_at"
453
453
 
@@ -456,7 +456,7 @@ class RedistributionConfig:
456
456
  "updated_at": "updated_at",
457
457
  "order_id": "order_id",
458
458
  "store_id": "store_id",
459
- "article_id": "article_id",
459
+ "item_id": "item_id",
460
460
  "quantity": "quantity",
461
461
  "status": "status",
462
462
  }
@@ -483,10 +483,10 @@ DEFAULT_SORT_ORDER = "desc"
483
483
  These patterns appear across multiple services:
484
484
 
485
485
  - `app/models.py` — Pydantic query and response models
486
- - `app/<domain>/models.py` — Domain-specific models
487
- - `app/<domain>/router.py` — FastAPI route handlers with Query() params
488
- - `app/<domain>/service.py` — Service layer with pagination metadata construction
489
- - `app/<domain>/repository.py` — Repository layer with fetch_list returning (records, count)
490
- - `app/<domain>/query_builder.py` — QueryBuilder class with build_data_query and build_count_query
491
- - `app/<domain>/config.py` — Configuration for sort mappings and defaults
492
- - `app/<domain>/constants.py` — Constants for pagination defaults and limits
486
+ - `app/inventory/models.py` — Domain-specific models
487
+ - `app/inventory/router.py` — FastAPI route handlers with Query() params
488
+ - `app/inventory/service.py` — Service layer with pagination metadata construction
489
+ - `app/inventory/repository.py` — Repository layer with fetch_list returning (records, count)
490
+ - `app/inventory/query_builder.py` — QueryBuilder class with build_data_query and build_count_query
491
+ - `app/inventory/config.py` — Configuration for sort mappings and defaults
492
+ - `app/inventory/constants.py` — Constants for pagination defaults and limits
@@ -33,7 +33,7 @@ jobs:
33
33
  project_id: ${{ vars.GCP_PROJECT_ID }}
34
34
 
35
35
  - name: Configure Docker
36
- run: gcloud auth configure-docker asia.gcr.io --quiet
36
+ run: gcloud auth configure-docker gcr.io --quiet
37
37
 
38
38
  - name: Check if image exists
39
39
  id: check-image
@@ -24,7 +24,7 @@ Derived from real-world production Python/FastAPI services implementing data pip
24
24
 
25
25
  ## How to apply
26
26
 
27
- 1. **For medallion architecture**: Create three BigQuery datasets (`da_bronze`, `da_silver`, `da_gold`). Bronze ingests raw CDC with deduplication; Silver cleans and joins; Gold aggregates.
27
+ 1. **For medallion architecture**: Create three BigQuery datasets (`bronze`, `silver`, `gold`). Bronze ingests raw CDC with deduplication; Silver cleans and joins; Gold aggregates.
28
28
  2. **For BigQuery schemas**: Always partition by date column (`metric_date`, `event_date`). Cluster by high-cardinality dimensions used in filters (`org_id`, `site`). Use the `TimePartitioning` Python API for programmatic table creation, or `PARTITION BY` in SQLX/Dataform.
29
29
  3. **For incremental sync jobs**: Use temp table + MERGE pattern — load (from GCS via `load_table_from_uri`, or in-memory via `load_table_from_dataframe`) → temp table with `WRITE_TRUNCATE`, MERGE temp → main with timestamp check, track MAX(timestamp), cleanup temp.
30
30
  4. **For user-supplied query values**: Always use parameterized queries (`QueryJobConfig` + `ScalarQueryParameter`/`ArrayQueryParameter`); never f-string interpolate input into SQL.