claude-code-kit 0.36.0__tar.gz → 0.38.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 (532) hide show
  1. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/.claude-plugin/marketplace.json +1 -1
  2. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/.claude-plugin/plugin.json +1 -1
  3. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/CHANGELOG.md +41 -0
  4. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/PKG-INFO +4 -4
  5. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/README.md +3 -3
  6. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/docs/stack-skills/README.md +2 -1
  7. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/pyproject.toml +1 -1
  8. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/code-review-and-quality/SKILL.md +2 -0
  9. claude_code_kit-0.38.0/skills/library-review/SKILL.md +104 -0
  10. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/temporal-config-driven/README.md +8 -0
  11. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/temporal-config-driven/SKILL.md +7 -1
  12. claude_code_kit-0.38.0/skills/temporal-developer/README.md +38 -0
  13. claude_code_kit-0.38.0/skills/temporal-developer/SKILL.md +94 -0
  14. claude_code_kit-0.38.0/skills/temporal-developer/references/cli.md +63 -0
  15. claude_code_kit-0.38.0/skills/temporal-developer/references/determinism.md +72 -0
  16. claude_code_kit-0.38.0/skills/temporal-developer/references/gotchas.md +69 -0
  17. claude_code_kit-0.38.0/skills/temporal-developer/references/languages.md +110 -0
  18. claude_code_kit-0.38.0/skills/temporal-developer/references/testing.md +80 -0
  19. claude_code_kit-0.38.0/skills/temporal-developer/references/versioning.md +82 -0
  20. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/test-driven-development/SKILL.md +29 -0
  21. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/src/claude_kit/__init__.py +1 -1
  22. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/.gitignore +0 -0
  23. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/CLAUDE.md +0 -0
  24. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/CONTRIBUTING.md +0 -0
  25. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/LICENSE +0 -0
  26. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/acceptance-reviewer.md +0 -0
  27. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/auditor.md +0 -0
  28. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/dependency-scanner.md +0 -0
  29. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/developer.md +0 -0
  30. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/devils-advocate.md +0 -0
  31. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/devops-engineer.md +0 -0
  32. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/e2e-tester.md +0 -0
  33. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/em-reviewer.md +0 -0
  34. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/incident-responder.md +0 -0
  35. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/merge-reviewer.md +0 -0
  36. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/observability-engineer.md +0 -0
  37. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/orchestrator.md +0 -0
  38. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/owasp-reviewer.md +0 -0
  39. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/policy-validator.md +0 -0
  40. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/pr-raiser.md +0 -0
  41. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/risk-classifier.md +0 -0
  42. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/sdlc-code-reviewer.md +0 -0
  43. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/secret-scanner.md +0 -0
  44. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/security-reviewer.md +0 -0
  45. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/senior-backend-dev.md +0 -0
  46. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/senior-frontend-dev.md +0 -0
  47. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/senior-tester.md +0 -0
  48. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/spec-doc-writer.md +0 -0
  49. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/story-planner.md +0 -0
  50. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/technical-architect.md +0 -0
  51. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/tester.md +0 -0
  52. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/ui-designer.md +0 -0
  53. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/agents/unit-tester.md +0 -0
  54. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/catalog/capture.yaml +0 -0
  55. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/catalog/mcp.yaml +0 -0
  56. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/catalog/org.yaml +0 -0
  57. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/catalog/profiles.yaml +0 -0
  58. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/catalog/stacks.yaml +0 -0
  59. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/commands/abort.md +0 -0
  60. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/commands/init.md +0 -0
  61. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/commands/sdlc.md +0 -0
  62. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/commands/status.md +0 -0
  63. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/docs/agentic-patterns.md +0 -0
  64. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/docs/agents.md +0 -0
  65. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/docs/architecture.md +0 -0
  66. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/docs/capture-a-real-run.md +0 -0
  67. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/docs/coverage-audit.md +0 -0
  68. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/docs/eval-harness.md +0 -0
  69. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/docs/org-capabilities.md +0 -0
  70. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/docs/stack-skills/GAP-ANALYSIS.md +0 -0
  71. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/docs/stack-skills/REPO-INVENTORY.md +0 -0
  72. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/hooks.json +0 -0
  73. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/audit-log.sh +0 -0
  74. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/capture-learnings.sh +0 -0
  75. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/guard-destructive-git.sh +0 -0
  76. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/guard-kubectl-delete.sh +0 -0
  77. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/guard-secrets.sh +0 -0
  78. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/lint-fix.sh +0 -0
  79. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/load-autonomy.sh +0 -0
  80. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/load-continuity.sh +0 -0
  81. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/load-learnings.sh +0 -0
  82. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/type-check.sh +0 -0
  83. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/validate-frontmatter.sh +0 -0
  84. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/validate-settings.sh +0 -0
  85. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/warn-large-edits.sh +0 -0
  86. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/warn-llm-io.sh +0 -0
  87. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/warn-missing-tests.sh +0 -0
  88. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
  89. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/hooks/scripts/warn-shared-modules.sh +0 -0
  90. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/agent-guardrails.md +0 -0
  91. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/agent-memory.md +0 -0
  92. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/agent-resilience.md +0 -0
  93. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/autonomy-levels.md +0 -0
  94. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/code-organization.md +0 -0
  95. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/continuity.md +0 -0
  96. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/design-patterns.md +0 -0
  97. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/devops-observability.md +0 -0
  98. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/documentation.md +0 -0
  99. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/evals.md +0 -0
  100. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/frontend-best-practices.md +0 -0
  101. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/goal-setting-and-monitoring.md +0 -0
  102. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/human-in-the-loop.md +0 -0
  103. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/linting-and-formatting.md +0 -0
  104. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/mandatory-workflow.md +0 -0
  105. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/model-tiers.md +0 -0
  106. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/quality-gates.md +0 -0
  107. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/rarv-cycle.md +0 -0
  108. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/reasoning-techniques.md +0 -0
  109. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/responsive-and-accessibility.md +0 -0
  110. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/risk-classification.md +0 -0
  111. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/testing.md +0 -0
  112. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/rules/tool-design.md +0 -0
  113. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/scripts/capture-sdlc-run.sh +0 -0
  114. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/scripts/check_docs_consistency.py +0 -0
  115. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/scripts/gen_hooks.py +0 -0
  116. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/scripts/init.sh +0 -0
  117. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/_references/accessibility-checklist.md +0 -0
  118. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/_references/orchestration-patterns.md +0 -0
  119. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/_references/performance-checklist.md +0 -0
  120. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/_references/security-checklist.md +0 -0
  121. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/_references/testing-patterns.md +0 -0
  122. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/accessibility-review/SKILL.md +0 -0
  123. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/alembic-migrations/README.md +0 -0
  124. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/alembic-migrations/SKILL.md +0 -0
  125. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/alembic-migrations/references/alembic-setup-and-env.md +0 -0
  126. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/alembic-migrations/references/async-and-multitenant-migrations.md +0 -0
  127. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/alembic-migrations/references/repo-evidence.md +0 -0
  128. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/alembic-migrations/references/troubleshooting-and-debugging.md +0 -0
  129. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/alembic-migrations/references/writing-migrations.md +0 -0
  130. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/anthropic-vertex-integration/README.md +0 -0
  131. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/anthropic-vertex-integration/SKILL.md +0 -0
  132. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/anthropic-vertex-integration/references/generate-helpers-and-retry.md +0 -0
  133. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/anthropic-vertex-integration/references/repo-evidence.md +0 -0
  134. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/anthropic-vertex-integration/references/vertex-client-and-auth.md +0 -0
  135. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/api-and-interface-design/SKILL.md +0 -0
  136. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/api-integration/SKILL.md +0 -0
  137. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/api-pagination-filtering-sorting/README.md +0 -0
  138. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/api-pagination-filtering-sorting/SKILL.md +0 -0
  139. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/api-pagination-filtering-sorting/references/query-params-conventions.md +0 -0
  140. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/api-pagination-filtering-sorting/references/repo-evidence.md +0 -0
  141. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/api-pagination-filtering-sorting/references/response-metadata.md +0 -0
  142. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/archive-sprint/SKILL.md +0 -0
  143. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/async-python-patterns/README.md +0 -0
  144. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/async-python-patterns/SKILL.md +0 -0
  145. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/async-python-patterns/references/async-boundaries.md +0 -0
  146. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/async-python-patterns/references/lifecycle-and-gather.md +0 -0
  147. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/async-python-patterns/references/repo-evidence.md +0 -0
  148. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/auth-and-rbac/README.md +0 -0
  149. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/auth-and-rbac/SKILL.md +0 -0
  150. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/auth-and-rbac/references/auth-dependencies.md +0 -0
  151. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/auth-and-rbac/references/rbac-and-permissions.md +0 -0
  152. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/auth-and-rbac/references/repo-evidence.md +0 -0
  153. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/auth-and-rbac/references/security-hardening.md +0 -0
  154. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/auth-and-rbac/references/tokens-and-hashing.md +0 -0
  155. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/backend-repo-architecture/README.md +0 -0
  156. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/backend-repo-architecture/SKILL.md +0 -0
  157. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/backend-repo-architecture/references/deployment-patterns.md +0 -0
  158. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/backend-repo-architecture/references/entrypoint-and-config.md +0 -0
  159. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/backend-repo-architecture/references/repo-evidence.md +0 -0
  160. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/backend-repo-architecture/references/structure-patterns.md +0 -0
  161. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/backend-repo-architecture/references/troubleshooting.md +0 -0
  162. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/backlog/SKILL.md +0 -0
  163. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/backlog/item-template.md +0 -0
  164. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
  165. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/bug-hunt/SKILL.md +0 -0
  166. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
  167. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/code-simplification/SKILL.md +0 -0
  168. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/component-design/SKILL.md +0 -0
  169. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/configargparse-yaml-env-layering/README.md +0 -0
  170. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/configargparse-yaml-env-layering/SKILL.md +0 -0
  171. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/configargparse-yaml-env-layering/references/config-layering-anatomy.md +0 -0
  172. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/configargparse-yaml-env-layering/references/mode-dispatch-and-precedence.md +0 -0
  173. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/configargparse-yaml-env-layering/references/repo-evidence.md +0 -0
  174. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/consolidate-learnings/SKILL.md +0 -0
  175. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/containerization-and-deployment/README.md +0 -0
  176. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/containerization-and-deployment/SKILL.md +0 -0
  177. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/containerization-and-deployment/references/deployment-and-secrets.md +0 -0
  178. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/containerization-and-deployment/references/dockerfile-and-compose.md +0 -0
  179. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/containerization-and-deployment/references/entrypoint-and-modes.md +0 -0
  180. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/containerization-and-deployment/references/kerberos-kinit-bootstrap.md +0 -0
  181. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/containerization-and-deployment/references/makefile-dev-workflow.md +0 -0
  182. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/containerization-and-deployment/references/repo-evidence.md +0 -0
  183. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/context-engineering/SKILL.md +0 -0
  184. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/cron-and-scheduled-jobs/README.md +0 -0
  185. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/cron-and-scheduled-jobs/SKILL.md +0 -0
  186. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/cron-and-scheduled-jobs/references/choosing-and-operations.md +0 -0
  187. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/cron-and-scheduled-jobs/references/kubernetes-cronjob.md +0 -0
  188. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/cron-and-scheduled-jobs/references/repo-evidence.md +0 -0
  189. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/cron-and-scheduled-jobs/references/temporal-schedules.md +0 -0
  190. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/data-engineering-bigquery-gcs/README.md +0 -0
  191. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/data-engineering-bigquery-gcs/SKILL.md +0 -0
  192. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/data-engineering-bigquery-gcs/references/bigquery-advanced-patterns.md +0 -0
  193. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/data-engineering-bigquery-gcs/references/bigquery-gcs-io.md +0 -0
  194. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/data-engineering-bigquery-gcs/references/medallion-architecture.md +0 -0
  195. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/data-engineering-bigquery-gcs/references/repo-evidence.md +0 -0
  196. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/data-engineering-bigquery-gcs/references/temp-table-merge-pattern.md +0 -0
  197. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
  198. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/decision/SKILL.md +0 -0
  199. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/decision/adr-template.md +0 -0
  200. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/deprecation-and-migration/SKILL.md +0 -0
  201. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/design-patterns-and-conventions/README.md +0 -0
  202. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/design-patterns-and-conventions/SKILL.md +0 -0
  203. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/design-patterns-and-conventions/references/anti-patterns.md +0 -0
  204. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/design-patterns-and-conventions/references/naming-and-layout.md +0 -0
  205. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/design-patterns-and-conventions/references/patterns-catalog.md +0 -0
  206. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/design-patterns-and-conventions/references/repo-evidence.md +0 -0
  207. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/design-patterns-and-conventions/references/testing-patterns.md +0 -0
  208. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/design-patterns-and-conventions/references/troubleshooting.md +0 -0
  209. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/docker-compose/README.md +0 -0
  210. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/docker-compose/SKILL.md +0 -0
  211. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/docker-compose/references/compose-services-and-healthchecks.md +0 -0
  212. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/docker-compose/references/dev-vs-prod-variants.md +0 -0
  213. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/docker-compose/references/repo-evidence.md +0 -0
  214. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/docker-shared/README.md +0 -0
  215. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/docker-shared/SKILL.md +0 -0
  216. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/docker-shared/references/dockerignore-and-build-secrets.md +0 -0
  217. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/docker-shared/references/repo-evidence.md +0 -0
  218. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/docker-shared/references/shared-base-images.md +0 -0
  219. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/docker-shared/references/shared-compose-fragments.md +0 -0
  220. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/dockerfile-backend/README.md +0 -0
  221. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/dockerfile-backend/SKILL.md +0 -0
  222. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/dockerfile-backend/references/backend-dockerfile-anatomy.md +0 -0
  223. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/dockerfile-backend/references/repo-evidence.md +0 -0
  224. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/dockerfile-backend/references/system-deps-and-caching.md +0 -0
  225. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/dockerfile-frontend/README.md +0 -0
  226. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/dockerfile-frontend/SKILL.md +0 -0
  227. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/dockerfile-frontend/references/build-args-and-nginx.md +0 -0
  228. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/dockerfile-frontend/references/frontend-dockerfile-anatomy.md +0 -0
  229. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/dockerfile-frontend/references/repo-evidence.md +0 -0
  230. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/documentation-and-adrs/SKILL.md +0 -0
  231. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/doubt-driven-development/SKILL.md +0 -0
  232. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/edge-to-service-trust-boundary/README.md +0 -0
  233. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/edge-to-service-trust-boundary/SKILL.md +0 -0
  234. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/edge-to-service-trust-boundary/references/repo-evidence.md +0 -0
  235. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/edge-to-service-trust-boundary/references/trust-contract.md +0 -0
  236. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/execute/SKILL.md +0 -0
  237. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/fastapi-service-patterns/README.md +0 -0
  238. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/fastapi-service-patterns/SKILL.md +0 -0
  239. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/fastapi-service-patterns/references/api-versioning.md +0 -0
  240. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/fastapi-service-patterns/references/app-factory-and-lifespan.md +0 -0
  241. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/fastapi-service-patterns/references/custom-route-and-middleware.md +0 -0
  242. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/fastapi-service-patterns/references/dependency-injection.md +0 -0
  243. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/fastapi-service-patterns/references/model-and-serialization-patterns.md +0 -0
  244. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/fastapi-service-patterns/references/repo-evidence.md +0 -0
  245. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/file-export-and-reporting/README.md +0 -0
  246. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/file-export-and-reporting/SKILL.md +0 -0
  247. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/file-export-and-reporting/references/excel-generation.md +0 -0
  248. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/file-export-and-reporting/references/repo-evidence.md +0 -0
  249. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/file-export-and-reporting/references/streaming-and-downloads.md +0 -0
  250. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/frontend-repo-architecture/README.md +0 -0
  251. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/frontend-repo-architecture/SKILL.md +0 -0
  252. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/frontend-repo-architecture/references/api-layer-and-types.md +0 -0
  253. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/frontend-repo-architecture/references/divergences.md +0 -0
  254. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/frontend-repo-architecture/references/repo-evidence.md +0 -0
  255. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/frontend-repo-architecture/references/structure-and-state.md +0 -0
  256. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/frontend-repo-architecture/references/testing-patterns.md +0 -0
  257. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
  258. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/gcp-cloud-run-github-actions/README.md +0 -0
  259. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/gcp-cloud-run-github-actions/SKILL.md +0 -0
  260. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/gcp-cloud-run-github-actions/references/cloud-run-deploy.md +0 -0
  261. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/gcp-cloud-run-github-actions/references/repo-evidence.md +0 -0
  262. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/gcp-cloud-run-github-actions/references/workflow-structure.md +0 -0
  263. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/gcs-file-storage-patterns/README.md +0 -0
  264. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/gcs-file-storage-patterns/SKILL.md +0 -0
  265. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/gcs-file-storage-patterns/references/client-and-uploads.md +0 -0
  266. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/gcs-file-storage-patterns/references/repo-evidence.md +0 -0
  267. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/gcs-file-storage-patterns/references/signed-urls-and-reads.md +0 -0
  268. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
  269. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/grafana-dashboards-and-alerts/README.md +0 -0
  270. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/grafana-dashboards-and-alerts/SKILL.md +0 -0
  271. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/grafana-dashboards-and-alerts/references/dashboard-json-and-templating.md +0 -0
  272. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/grafana-dashboards-and-alerts/references/provisioning-and-organization.md +0 -0
  273. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/grafana-dashboards-and-alerts/references/red-metrics-queries.md +0 -0
  274. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/grafana-dashboards-and-alerts/references/repo-evidence.md +0 -0
  275. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/grafana-dashboards-and-alerts/references/unified-alerting.md +0 -0
  276. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/graphql-patterns/README.md +0 -0
  277. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/graphql-patterns/SKILL.md +0 -0
  278. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/graphql-patterns/references/apollo-client-frontend.md +0 -0
  279. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/graphql-patterns/references/apollo-client-setup.md +0 -0
  280. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/graphql-patterns/references/repo-evidence.md +0 -0
  281. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/graphql-patterns/references/strawberry-backend.md +0 -0
  282. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/graphql-patterns/references/when-to-use-graphql.md +0 -0
  283. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/idea-refine/SKILL.md +0 -0
  284. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/idea-refine/examples.md +0 -0
  285. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/idea-refine/frameworks.md +0 -0
  286. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/idea-refine/refinement-criteria.md +0 -0
  287. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
  288. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/incident-postmortem/SKILL.md +0 -0
  289. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/incremental-implementation/SKILL.md +0 -0
  290. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/interview-me/SKILL.md +0 -0
  291. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kafka-config-driven/README.md +0 -0
  292. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kafka-config-driven/SKILL.md +0 -0
  293. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kafka-config-driven/references/config-and-sasl-kerberos.md +0 -0
  294. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kafka-config-driven/references/consumer-producer-patterns.md +0 -0
  295. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kafka-config-driven/references/repo-evidence.md +0 -0
  296. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kafka-config-driven/references/troubleshooting-and-patterns.md +0 -0
  297. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kubectl-operations/README.md +0 -0
  298. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kubectl-operations/SKILL.md +0 -0
  299. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kubectl-operations/references/command-reference.md +0 -0
  300. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kubectl-operations/references/context-namespace-rbac.md +0 -0
  301. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kubectl-operations/references/debugging-playbooks.md +0 -0
  302. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kubectl-operations/references/output-formats-and-selectors.md +0 -0
  303. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kubectl-operations/references/repo-evidence.md +0 -0
  304. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kubernetes-workload-hardening/README.md +0 -0
  305. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kubernetes-workload-hardening/SKILL.md +0 -0
  306. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kubernetes-workload-hardening/references/networkpolicy-and-rbac.md +0 -0
  307. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kubernetes-workload-hardening/references/repo-evidence.md +0 -0
  308. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/kubernetes-workload-hardening/references/securitycontext-and-podsecurity.md +0 -0
  309. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/langfuse-llm-tracing/README.md +0 -0
  310. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/langfuse-llm-tracing/SKILL.md +0 -0
  311. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/langfuse-llm-tracing/references/langfuse-client-and-tracing.md +0 -0
  312. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/langfuse-llm-tracing/references/python-and-typescript.md +0 -0
  313. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/langfuse-llm-tracing/references/repo-evidence.md +0 -0
  314. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/load-testing/SKILL.md +0 -0
  315. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/manual-test/SKILL.md +0 -0
  316. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/modernization-and-migration/README.md +0 -0
  317. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/modernization-and-migration/SKILL.md +0 -0
  318. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/modernization-and-migration/references/migration-best-practices.md +0 -0
  319. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/modernization-and-migration/references/pydantic-v1-to-v2.md +0 -0
  320. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/modernization-and-migration/references/repo-evidence.md +0 -0
  321. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/modernization-and-migration/references/shared-internal-library.md +0 -0
  322. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/modernization-and-migration/references/sqlalchemy-14-to-20.md +0 -0
  323. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/multi-tenancy-patterns/README.md +0 -0
  324. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/multi-tenancy-patterns/SKILL.md +0 -0
  325. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/multi-tenancy-patterns/references/caching-patterns.md +0 -0
  326. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/multi-tenancy-patterns/references/isolation-strategies.md +0 -0
  327. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/multi-tenancy-patterns/references/repo-evidence.md +0 -0
  328. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/multi-tenancy-patterns/references/tenant-resolution.md +0 -0
  329. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/node-express-service/README.md +0 -0
  330. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/node-express-service/SKILL.md +0 -0
  331. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/node-express-service/references/app-factory-and-mode-dispatch.md +0 -0
  332. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/node-express-service/references/config-and-module-alias.md +0 -0
  333. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/node-express-service/references/middleware-patterns.md +0 -0
  334. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/node-express-service/references/repo-evidence.md +0 -0
  335. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/node-objection-knex/README.md +0 -0
  336. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/node-objection-knex/SKILL.md +0 -0
  337. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/node-objection-knex/references/migrations-and-validation.md +0 -0
  338. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/node-objection-knex/references/objection-model-and-knex.md +0 -0
  339. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/node-objection-knex/references/repo-evidence.md +0 -0
  340. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/notifications-and-messaging/README.md +0 -0
  341. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/notifications-and-messaging/SKILL.md +0 -0
  342. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/notifications-and-messaging/references/provider-abstraction.md +0 -0
  343. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/notifications-and-messaging/references/repo-evidence.md +0 -0
  344. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/notifications-and-messaging/references/templates-and-fallback.md +0 -0
  345. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/observability-and-logging/README.md +0 -0
  346. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/observability-and-logging/SKILL.md +0 -0
  347. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/observability-and-logging/references/health-and-readiness.md +0 -0
  348. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/observability-and-logging/references/logging-and-structlog.md +0 -0
  349. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/observability-and-logging/references/outbound-metrics-and-multi-mode.md +0 -0
  350. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/observability-and-logging/references/pii-redaction.md +0 -0
  351. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/observability-and-logging/references/repo-evidence.md +0 -0
  352. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/observability-and-logging/references/tracing-and-metrics.md +0 -0
  353. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/over-engineering-review/SKILL.md +0 -0
  354. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/performance-optimization/SKILL.md +0 -0
  355. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
  356. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/playwright-verification/SKILL.md +0 -0
  357. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/pydantic-schema-patterns/README.md +0 -0
  358. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/pydantic-schema-patterns/SKILL.md +0 -0
  359. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/pydantic-schema-patterns/references/repo-evidence.md +0 -0
  360. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/pydantic-schema-patterns/references/settings-and-validation.md +0 -0
  361. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/pydantic-schema-patterns/references/troubleshooting-and-common-errors.md +0 -0
  362. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/pydantic-schema-patterns/references/v1-vs-v2.md +0 -0
  363. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/python-dao-and-database/README.md +0 -0
  364. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/python-dao-and-database/SKILL.md +0 -0
  365. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/python-dao-and-database/references/advanced-query-patterns.md +0 -0
  366. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/python-dao-and-database/references/basedao-and-sessions.md +0 -0
  367. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/python-dao-and-database/references/mongodb-advanced.md +0 -0
  368. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/python-dao-and-database/references/other-db-mongodb.md +0 -0
  369. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/python-dao-and-database/references/repo-evidence.md +0 -0
  370. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/python-dao-and-database/references/sqlalchemy-1x-vs-2x.md +0 -0
  371. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/radix-tailwind-component-patterns/README.md +0 -0
  372. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/radix-tailwind-component-patterns/SKILL.md +0 -0
  373. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/radix-tailwind-component-patterns/references/radix-primitives-and-variants.md +0 -0
  374. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/radix-tailwind-component-patterns/references/repo-evidence.md +0 -0
  375. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/radix-tailwind-component-patterns/references/tailwind-theme-and-cn.md +0 -0
  376. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/react-hook-form-zod-patterns/README.md +0 -0
  377. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/react-hook-form-zod-patterns/SKILL.md +0 -0
  378. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/react-hook-form-zod-patterns/references/form-setup-and-zod.md +0 -0
  379. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/react-hook-form-zod-patterns/references/multi-step-and-modes.md +0 -0
  380. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/react-hook-form-zod-patterns/references/repo-evidence.md +0 -0
  381. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/redis-caching-patterns/README.md +0 -0
  382. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/redis-caching-patterns/SKILL.md +0 -0
  383. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/redis-caching-patterns/references/cache-manager-and-fallback.md +0 -0
  384. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/redis-caching-patterns/references/namespacing-and-invalidation.md +0 -0
  385. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/redis-caching-patterns/references/repo-evidence.md +0 -0
  386. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/refresh-docs/SKILL.md +0 -0
  387. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/remember/SKILL.md +0 -0
  388. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/scope/SKILL.md +0 -0
  389. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/scope/scope-template.md +0 -0
  390. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/sdlc/SKILL.md +0 -0
  391. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/security-and-hardening/SKILL.md +0 -0
  392. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/security-verification/SKILL.md +0 -0
  393. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/shannon-ai-pentest/README.md +0 -0
  394. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/shannon-ai-pentest/SKILL.md +0 -0
  395. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/shannon-ai-pentest/references/operating-guide.md +0 -0
  396. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/shipping-and-launch/SKILL.md +0 -0
  397. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/simplification-debt/SKILL.md +0 -0
  398. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/smoke-test/SKILL.md +0 -0
  399. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/source-driven-development/SKILL.md +0 -0
  400. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/spec-driven-development/SKILL.md +0 -0
  401. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/sprint/SKILL.md +0 -0
  402. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/sprint/sprint-template.md +0 -0
  403. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/tanstack-react-query-patterns/README.md +0 -0
  404. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/tanstack-react-query-patterns/SKILL.md +0 -0
  405. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/tanstack-react-query-patterns/references/mutations-and-cache.md +0 -0
  406. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/tanstack-react-query-patterns/references/query-keys-and-hooks.md +0 -0
  407. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/tanstack-react-query-patterns/references/repo-evidence.md +0 -0
  408. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/task-tracker-sync/SKILL.md +0 -0
  409. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/temporal-config-driven/references/config-and-retry-idempotency.md +0 -0
  410. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/temporal-config-driven/references/dag-dsl-interpreter.md +0 -0
  411. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/temporal-config-driven/references/repo-evidence.md +0 -0
  412. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/temporal-config-driven/references/schedule-registration.md +0 -0
  413. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/temporal-config-driven/references/schedules-and-cron.md +0 -0
  414. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/temporal-config-driven/references/worker-workflow-activity-patterns.md +0 -0
  415. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/test-plan-review/SKILL.md +0 -0
  416. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/testing-conventions/README.md +0 -0
  417. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/testing-conventions/SKILL.md +0 -0
  418. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/testing-conventions/references/async-and-mocking.md +0 -0
  419. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/testing-conventions/references/coverage-gap-and-recommendations.md +0 -0
  420. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/testing-conventions/references/github-actions-test-orchestration.md +0 -0
  421. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/testing-conventions/references/pytest-and-fixtures.md +0 -0
  422. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/testing-conventions/references/pytest-asyncio-modes.md +0 -0
  423. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/testing-conventions/references/repo-evidence.md +0 -0
  424. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/testing-conventions/references/security-regression-tests.md +0 -0
  425. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/testing-conventions/references/vitest-frontend-testing.md +0 -0
  426. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/threat-model/SKILL.md +0 -0
  427. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/triage/SKILL.md +0 -0
  428. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/ui-ux-design/SKILL.md +0 -0
  429. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/unit-test/SKILL.md +0 -0
  430. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/using-agent-skills/SKILL.md +0 -0
  431. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/vitest-rtl-msw-patterns/README.md +0 -0
  432. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/vitest-rtl-msw-patterns/SKILL.md +0 -0
  433. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/vitest-rtl-msw-patterns/references/msw-and-contract-tests.md +0 -0
  434. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/vitest-rtl-msw-patterns/references/repo-evidence.md +0 -0
  435. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/vitest-rtl-msw-patterns/references/vitest-rtl-setup.md +0 -0
  436. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/zap-vapt-scanning/README.md +0 -0
  437. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/zap-vapt-scanning/SKILL.md +0 -0
  438. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/zap-vapt-scanning/references/operating-guide.md +0 -0
  439. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/zap-vapt-scanning/scripts/endpoints.example.txt +0 -0
  440. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/zap-vapt-scanning/scripts/requirements.txt +0 -0
  441. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/zap-vapt-scanning/scripts/zap_vapt.py +0 -0
  442. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/zustand-state-patterns/README.md +0 -0
  443. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/zustand-state-patterns/SKILL.md +0 -0
  444. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/zustand-state-patterns/references/async-polling-and-persistence.md +0 -0
  445. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/zustand-state-patterns/references/repo-evidence.md +0 -0
  446. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/skills/zustand-state-patterns/references/store-structure-and-selectors.md +0 -0
  447. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/src/claude_kit/__main__.py +0 -0
  448. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/src/claude_kit/catalog.py +0 -0
  449. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/src/claude_kit/cli.py +0 -0
  450. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/src/claude_kit/hooks.py +0 -0
  451. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/src/claude_kit/models.py +0 -0
  452. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/src/claude_kit/pipeline.py +0 -0
  453. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/src/claude_kit/prompts.py +0 -0
  454. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/src/claude_kit/render.py +0 -0
  455. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/src/claude_kit/scaffold.py +0 -0
  456. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/src/claude_kit/upgrader.py +0 -0
  457. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/src/claude_kit/validator.py +0 -0
  458. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/CLAUDE.md +0 -0
  459. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/CLAUDE.stack.md.tmpl +0 -0
  460. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/CONTINUITY.template.md +0 -0
  461. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/README.claude-sdlc.md.tmpl +0 -0
  462. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/agent-memory/MEMORY.md +0 -0
  463. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/agent-memory/api/.gitkeep +0 -0
  464. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/agent-memory/architecture/.gitkeep +0 -0
  465. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/agent-memory/debugging/.gitkeep +0 -0
  466. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
  467. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/agent-memory/patterns/.gitkeep +0 -0
  468. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/agent-memory/performance/.gitkeep +0 -0
  469. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/artifacts/adr.md +0 -0
  470. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/artifacts/api-change-report.md +0 -0
  471. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/artifacts/change-proposal.md +0 -0
  472. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/artifacts/feature-spec.md +0 -0
  473. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/artifacts/release-plan.md +0 -0
  474. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/artifacts/runbook.md +0 -0
  475. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/artifacts/security-review.md +0 -0
  476. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/artifacts/test-plan.md +0 -0
  477. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/README.md +0 -0
  478. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/agents/data-workflow-agent.md +0 -0
  479. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/agents/founder-prototype-agent.md +0 -0
  480. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/agents/internal-tools-builder.md +0 -0
  481. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/agents/pm-copilot.md +0 -0
  482. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/agents/staff-pm-reviewer.md +0 -0
  483. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/agents/support-ticket-engineer.md +0 -0
  484. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/devops-and-release/README.md +0 -0
  485. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
  486. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/engineering-core/README.md +0 -0
  487. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
  488. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
  489. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
  490. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
  491. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
  492. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/product-to-code/README.md +0 -0
  493. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
  494. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/quality-and-review/README.md +0 -0
  495. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
  496. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/security-and-compliance/README.md +0 -0
  497. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
  498. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/rules/ai-working-agreement.md +0 -0
  499. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/rules/ambiguity-resolution.md +0 -0
  500. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
  501. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/rules/compliance-policy.md +0 -0
  502. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
  503. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/rules/pii-policy.md +0 -0
  504. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/rules/production-data-policy.md +0 -0
  505. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
  506. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/rules/prototype-boundaries.md +0 -0
  507. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/rules/secrets-policy.md +0 -0
  508. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
  509. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
  510. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
  511. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
  512. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
  513. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/skills/review-scope/SKILL.md +0 -0
  514. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/skills/review-sprint/SKILL.md +0 -0
  515. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/skills/review-sprint-plan/SKILL.md +0 -0
  516. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/org/skills/review-ux-flow/SKILL.md +0 -0
  517. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/settings.json +0 -0
  518. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/backend/go/net-http/rules/go-patterns.md +0 -0
  519. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
  520. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
  521. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
  522. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
  523. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
  524. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
  525. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
  526. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
  527. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
  528. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/frontend/react/rules/design-system-compliance.md +0 -0
  529. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/frontend/react/rules/mobile-design-guidelines.md +0 -0
  530. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/frontend/react/rules/react-patterns.md +0 -0
  531. {claude_code_kit-0.36.0 → claude_code_kit-0.38.0}/templates/stacks/frontend/react/rules/ui-design-system.md +0 -0
  532. {claude_code_kit-0.36.0 → claude_code_kit-0.38.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.36.0",
13
+ "version": "0.38.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.36.0",
3
+ "version": "0.38.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,47 @@ 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.38.0] — 2026-06-26
8
+
9
+ **New `library-review` core skill + a property-based-testing note** (two genuinely-new ideas
10
+ cherry-picked, stack-agnostic, from the MIT [`wdm0006/python-skills`](https://github.com/wdm0006/python-skills);
11
+ the rest of that collection was skipped as redundant with existing core/collection skills).
12
+
13
+ - **`skills/library-review/`** (core — SKILL.md only, stack-agnostic) — a structured **pre-add
14
+ dependency-adoption evaluation**: need & fit, alternatives (stdlib/native/existing dep),
15
+ maintenance & bus factor, license compatibility, security/supply-chain history, transitive weight,
16
+ lock-in/exit cost, and a documented adopt/reject decision. Re-cast (health-signal dimensions
17
+ adapted from the MIT upstream's `reviewing-python-libraries`) as an *adoption* gate. Reuse-first:
18
+ cross-linked to and explicitly bounded against `mandatory-workflow.md` §2a.5 (whether a dep is
19
+ needed at all), `over-engineering-review`, the `dependency-scanner` agent (audits *installed* deps —
20
+ this is its pre-add counterpart), and `code-review-and-quality` (whose 5-point Dependency
21
+ Discipline list now points here as its full form).
22
+ - **`test-driven-development`** gains a **Property-Based Testing** section (count-neutral edit):
23
+ what it is, when to reach for it, the round-trip/idempotence/invariant/metamorphic property shapes,
24
+ and one-per-language ecosystem pointers (Hypothesis · fast-check · jqwik · proptest · …).
25
+ - Counts: **97 → 98** total skills (**51 → 52** core; stack-collection unchanged at 46). No
26
+ `docs/stack-skills` row (core skills aren't listed there). Version bumped across the 5 parity files.
27
+
28
+ ## [0.37.0] — 2026-06-26
29
+
30
+ **New `temporal-developer` collection skill — Temporal *fundamentals*, language-agnostic** (re-derived
31
+ concisely from the official MIT [`temporalio/skill-temporal-developer`](https://github.com/temporalio/skill-temporal-developer);
32
+ nothing vendored, cross-checked against https://docs.temporal.io). Complements — does **not** duplicate —
33
+ the existing `temporal-config-driven` skill (which stays scoped to this kit's config-driven worker-map /
34
+ DAG-as-data architecture and *assumes* these fundamentals).
35
+
36
+ - **`skills/temporal-developer/`** (SKILL.md + README.md with MIT provenance) covers the durable-execution
37
+ model, **why workflows must be deterministic** (history replay → Command/Event matching), the
38
+ workflow/activity/worker split, Query vs Signal vs Update, and six compact references:
39
+ `determinism.md`, `versioning.md` (patching · workflow-type · worker/Build-ID versioning),
40
+ `testing.md` (local/time-skipping env, activity mocking, replay tests), `gotchas.md`,
41
+ `cli.md` (`temporal server start-dev` + the `workflow start/execute/signal/query/update` dev loop),
42
+ and `languages.md` (Python/Go/TypeScript starters + pointer to upstream Java/.NET/Ruby/Rust depth).
43
+ - **Auto-trigger boundary** wired both ways: each skill's `description` carries an explicit
44
+ `Do NOT use … → use <sibling>` clause, with reciprocal pointers in both SKILL.md/README.md bodies.
45
+ - Counts: **96 → 97** total skills (**45 → 46** stack-collection; core unchanged at 51), plus a new
46
+ `docs/stack-skills` catalog row. No catalog/stack/hook/agent changes (Temporal is a skill, not a stack axis).
47
+
7
48
  ## [0.36.0] — 2026-06-25
8
49
 
9
50
  **Rule-presentation + context-hygiene polish** (patterns adopted from Karpathy-skills, addyosmani/agent-skills,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-kit
3
- Version: 0.36.0
3
+ Version: 0.38.0
4
4
  Summary: Cookiecutter-style scaffolder for an autonomous Claude Code SDLC configuration (no app code, no Docker). Asks ordered questions and installs CLAUDE.md + .claude/ (rules, the chosen profile's agents/skills, hooks, artifact templates) + optional .mcp.json; run /sdlc to drive spec → review → build → test → security → ship through profile-aware quality gates, working memory, and a self-improving learnings loop.
5
5
  Project-URL: Homepage, https://github.com/ajyadav013/claude-kit
6
6
  Project-URL: Repository, https://github.com/ajyadav013/claude-kit
@@ -84,7 +84,7 @@ Quick start) for the full breakdown of any row.
84
84
  | 🔁 **Pipeline & quality gates** | Gate-enforced progression (zero open Critical/High/Medium to advance), per-profile gate sets, a fast-track for small changes, and an anti-sycophancy `devils-advocate` pass |
85
85
  | 🤖 **Agent roster** | **28** tiered agents + per-database overlays + **6** org personas, led by an Orchestrator that never writes code |
86
86
  | 🔍 **Self-verification & review** | RARV green-Verify (real commands, not imagined), blind parallel review, and read-only risk classification |
87
- | 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **96** context-activated skills (51 core + 45 stack-collection) |
87
+ | 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **98** context-activated skills (52 core + 46 stack-collection) |
88
88
  | 🧱 **Stacks & overlays** | Stack-agnostic core + **10** overlay rule sets (React · FastAPI · Go · Postgres · Mongo) wired to your exact commands, incl. a full React design system |
89
89
  | 🎚️ **Profiles, scopes & org** | **3** rigor profiles · **3** scopes · **5** autonomy levels · **7** org packs + **10** policy rules |
90
90
  | 🧠 **Memory & learning** | Working memory across context compaction + a cost-aware learnings loop (`capture_mode`) so the same mistake isn't repeated |
@@ -281,7 +281,7 @@ need.
281
281
  - **23 stack-agnostic core rules** in [`rules/`](rules/) — `mandatory-workflow`, `quality-gates`,
282
282
  `rarv-cycle`, `continuity`, plus eight agent-operation rules and `autonomy-levels` +
283
283
  `risk-classification` (see [`docs/agentic-patterns.md`](docs/agentic-patterns.md)).
284
- - **96 on-demand skills** in [`skills/`](skills/) (51 core + 45 stack-collection) — spec-driven dev, planning, TDD, debugging, code
284
+ - **98 on-demand skills** in [`skills/`](skills/) (52 core + 46 stack-collection) — spec-driven dev, planning, TDD, debugging, code
285
285
  review, threat modeling, and more — activated by context and led by the `sdlc` entrypoint.
286
286
  - **Profile-subset install** — each profile installs a strict subset of agents, skills, hooks, and
287
287
  rules (`lean ⊂ standard ⊂ enterprise`), from fast track to full audit.
@@ -437,7 +437,7 @@ owned gates, and the rule that **no gate passes on an unproven verdict**.
437
437
  | **[wshobson/agents](https://github.com/wshobson/agents)** & similar agent collections | Large libraries of individual subagent prompts you pick from | A **smaller, opinionated set wired into a sequenced pipeline with owned quality gates** — agents aren't a menu, they're stages that hand off and block on each other. Adopt-by-reuse, not by accumulation. |
438
438
  | **[GitHub spec-kit](https://github.com/github/spec-kit)** | A spec-driven workflow (constitution → spec → tasks → analyze) | The same coverage-gate idea (the `story-planner` 1f gate + `task-tracker-sync`) **absorbed into a broader** lifecycle that also covers review, security, build, test, release, and observability gates. Complementary, wider scope. |
439
439
  | **claude-flow / multi-agent runtimes** | Runtime orchestrators that *execute* swarms of agents | **Portable configuration**, not a running process — the orchestration is described in rules the host (Claude Code) executes. No daemon, no lock-in, no app code. |
440
- | **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | A **catalog-driven generator**: resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 96 skills, gates, and hooks, kept **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
440
+ | **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | A **catalog-driven generator**: resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 98 skills, gates, and hooks, kept **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
441
441
 
442
442
  **Choose claude-kit when** you want a consistent, reviewable, **gate-enforced** autonomous-SDLC setup
443
443
  that's the same across every repo and stack, installs in seconds, ships nothing you have to run, and
@@ -54,7 +54,7 @@ Quick start) for the full breakdown of any row.
54
54
  | 🔁 **Pipeline & quality gates** | Gate-enforced progression (zero open Critical/High/Medium to advance), per-profile gate sets, a fast-track for small changes, and an anti-sycophancy `devils-advocate` pass |
55
55
  | 🤖 **Agent roster** | **28** tiered agents + per-database overlays + **6** org personas, led by an Orchestrator that never writes code |
56
56
  | 🔍 **Self-verification & review** | RARV green-Verify (real commands, not imagined), blind parallel review, and read-only risk classification |
57
- | 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **96** context-activated skills (51 core + 45 stack-collection) |
57
+ | 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **98** context-activated skills (52 core + 46 stack-collection) |
58
58
  | 🧱 **Stacks & overlays** | Stack-agnostic core + **10** overlay rule sets (React · FastAPI · Go · Postgres · Mongo) wired to your exact commands, incl. a full React design system |
59
59
  | 🎚️ **Profiles, scopes & org** | **3** rigor profiles · **3** scopes · **5** autonomy levels · **7** org packs + **10** policy rules |
60
60
  | 🧠 **Memory & learning** | Working memory across context compaction + a cost-aware learnings loop (`capture_mode`) so the same mistake isn't repeated |
@@ -251,7 +251,7 @@ need.
251
251
  - **23 stack-agnostic core rules** in [`rules/`](rules/) — `mandatory-workflow`, `quality-gates`,
252
252
  `rarv-cycle`, `continuity`, plus eight agent-operation rules and `autonomy-levels` +
253
253
  `risk-classification` (see [`docs/agentic-patterns.md`](docs/agentic-patterns.md)).
254
- - **96 on-demand skills** in [`skills/`](skills/) (51 core + 45 stack-collection) — spec-driven dev, planning, TDD, debugging, code
254
+ - **98 on-demand skills** in [`skills/`](skills/) (52 core + 46 stack-collection) — spec-driven dev, planning, TDD, debugging, code
255
255
  review, threat modeling, and more — activated by context and led by the `sdlc` entrypoint.
256
256
  - **Profile-subset install** — each profile installs a strict subset of agents, skills, hooks, and
257
257
  rules (`lean ⊂ standard ⊂ enterprise`), from fast track to full audit.
@@ -407,7 +407,7 @@ owned gates, and the rule that **no gate passes on an unproven verdict**.
407
407
  | **[wshobson/agents](https://github.com/wshobson/agents)** & similar agent collections | Large libraries of individual subagent prompts you pick from | A **smaller, opinionated set wired into a sequenced pipeline with owned quality gates** — agents aren't a menu, they're stages that hand off and block on each other. Adopt-by-reuse, not by accumulation. |
408
408
  | **[GitHub spec-kit](https://github.com/github/spec-kit)** | A spec-driven workflow (constitution → spec → tasks → analyze) | The same coverage-gate idea (the `story-planner` 1f gate + `task-tracker-sync`) **absorbed into a broader** lifecycle that also covers review, security, build, test, release, and observability gates. Complementary, wider scope. |
409
409
  | **claude-flow / multi-agent runtimes** | Runtime orchestrators that *execute* swarms of agents | **Portable configuration**, not a running process — the orchestration is described in rules the host (Claude Code) executes. No daemon, no lock-in, no app code. |
410
- | **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | A **catalog-driven generator**: resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 96 skills, gates, and hooks, kept **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
410
+ | **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | A **catalog-driven generator**: resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 98 skills, gates, and hooks, kept **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
411
411
 
412
412
  **Choose claude-kit when** you want a consistent, reviewable, **gate-enforced** autonomous-SDLC setup
413
413
  that's the same across every repo and stack, installs in seconds, ships nothing you have to run, and
@@ -1,6 +1,6 @@
1
1
  # Production Engineering Skills Collection
2
2
 
3
- These forty-five Claude Code skills encode production-proven engineering conventions derived from real-world Python/FastAPI, Node/Express, and React services. Each skill was extracted from analyzing patterns across multiple production backend and frontend services, capturing canonical patterns for FastAPI microservices, async Python, Kafka/Temporal integration, multi-tenancy, database access, layered configuration, Redis caching, GCS file handling, LLM integration (Vertex AI / Langfuse), Node/Express services, React frontends (state, data-fetching, forms, design systems, testing), observability (including Grafana dashboards & unified alerting), authentication, containerization (with granular Dockerfile/compose deep-dives), testing, data pipelines, security scanning (OWASP ZAP VAPT/DAST and autonomous AI pentesting), security architecture (edge-to-service signed-identity trust boundary, Kubernetes workload hardening), scheduled & recurring jobs (Kubernetes CronJob + Temporal Schedule), kubectl day-2 operations, and modernization strategies. Use them to align new projects with established patterns, audit existing services, or onboard engineers to modern Python, Node, and React development practices.
3
+ These forty-six Claude Code skills encode production-proven engineering conventions derived from real-world Python/FastAPI, Node/Express, and React services. Each skill was extracted from analyzing patterns across multiple production backend and frontend services, capturing canonical patterns for FastAPI microservices, async Python, Kafka/Temporal integration, multi-tenancy, database access, layered configuration, Redis caching, GCS file handling, LLM integration (Vertex AI / Langfuse), Node/Express services, React frontends (state, data-fetching, forms, design systems, testing), observability (including Grafana dashboards & unified alerting), authentication, containerization (with granular Dockerfile/compose deep-dives), testing, data pipelines, security scanning (OWASP ZAP VAPT/DAST and autonomous AI pentesting), security architecture (edge-to-service signed-identity trust boundary, Kubernetes workload hardening), scheduled & recurring jobs (Kubernetes CronJob + Temporal Schedule), kubectl day-2 operations, and modernization strategies. Use them to align new projects with established patterns, audit existing services, or onboard engineers to modern Python, Node, and React development practices.
4
4
 
5
5
  > **Where these live in this repo:** the skill folders are under [`skills/`](../../skills/) (auto-discovered by the claude-kit plugin). The links below point there.
6
6
 
@@ -15,6 +15,7 @@ These forty-five Claude Code skills encode production-proven engineering convent
15
15
  | **async-python-patterns** | Async Python best practices — asyncio coordination (gather/wait_for/TaskGroup), cancellation handling, resource lifecycle, connection pool management, structured concurrency | [SKILL.md](../../skills/async-python-patterns/SKILL.md) |
16
16
  | **kafka-config-driven** | Config-driven Kafka producer/consumer infrastructure — JSON DSL topic/consumer config, message handling abstraction, aiokafka vs confluent_kafka, GSSAPI/SASL_SSL auth | [SKILL.md](../../skills/kafka-config-driven/SKILL.md) |
17
17
  | **temporal-config-driven** | Config-driven Temporal workflow/activity orchestration — JSON DSL workflow registry, worker launcher, schedule/cron management, RetryPolicy patterns | [SKILL.md](../../skills/temporal-config-driven/SKILL.md) |
18
+ | **temporal-developer** | Temporal *fundamentals* (language-agnostic; complement to temporal-config-driven) — durable execution, why workflows must be deterministic (history replay), signals/queries/updates, safe versioning of running workflows (patching/worker versioning), testing (time-skipping/replay), gotchas, the `temporal` CLI dev loop, + Python/Go/TS starters; re-derived from the MIT temporalio/skill-temporal-developer | [SKILL.md](../../skills/temporal-developer/SKILL.md) |
18
19
  | **frontend-repo-architecture** | React + Vite + TypeScript frontend structure — three organizational models (module-scoped, feature-sliced, GraphQL-based), API layer strategies, hand-written types, state management | [SKILL.md](../../skills/frontend-repo-architecture/SKILL.md) |
19
20
  | **design-patterns-and-conventions** | Design conventions across repos — naming (classes/files/routes), error handling (ResponseData envelope), config hierarchy, logging structured-log patterns, code organization | [SKILL.md](../../skills/design-patterns-and-conventions/SKILL.md) |
20
21
  | **multi-tenancy-patterns** | Multi-tenant isolation strategies — tenant resolution (header/JWT/session), Postgres RLS, multi-pool databases, lazy connectors, data-layer org_id tenancy | [SKILL.md](../../skills/multi-tenancy-patterns/SKILL.md) |
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "claude-code-kit"
7
- version = "0.36.0"
7
+ version = "0.38.0"
8
8
  description = "Cookiecutter-style scaffolder for an autonomous Claude Code SDLC configuration (no app code, no Docker). Asks ordered questions and installs CLAUDE.md + .claude/ (rules, the chosen profile's agents/skills, hooks, artifact templates) + optional .mcp.json; run /sdlc to drive spec → review → build → test → security → ship through profile-aware quality gates, working memory, and a self-improving learnings loop."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -280,6 +280,8 @@ Part of code review is dependency review:
280
280
 
281
281
  **Rule:** Prefer standard library and existing utilities over new dependencies. Every dependency is a liability.
282
282
 
283
+ For a full pre-add evaluation of a specific candidate (maintenance/bus-factor, license, supply-chain history, transitive weight, lock-in, adopt/reject decision), use the `library-review` skill — this 5-point list is its quick form.
284
+
283
285
  ## The Review Checklist
284
286
 
285
287
  ```markdown
@@ -0,0 +1,104 @@
1
+ ---
2
+ name: library-review
3
+ description: Structured pre-add evaluation of a candidate third-party dependency before you adopt it—need & fit, alternatives (stdlib/native/existing dep), maintenance & bus factor, adoption signals, license compatibility, security & supply-chain history, install weight & transitive deps, lock-in/exit cost, and a documented adopt/reject decision. Stack-agnostic (pip, npm, cargo, go modules, maven, gems, …). Use when proposing or choosing between new libraries, or when mandatory-workflow §2a.5 rung 5 ("can an existing dependency do it?") points at pulling in a new one. Do NOT use to decide whether you need a dependency at all (use the §2a.5 reuse/YAGNI gate + over-engineering-review) or to audit ALREADY-installed dependencies for CVEs (use the dependency-scanner agent).
4
+ ---
5
+
6
+ # Library Review (pre-add dependency evaluation)
7
+
8
+ > Health-signal dimensions adapted (stack-agnostic, re-cast as an *adoption* decision) from the
9
+ > MIT-licensed [`wdm0006/python-skills`](https://github.com/wdm0006/python-skills)
10
+ > `reviewing-python-libraries` skill (© Will McGinnis). That skill audits a library's *own* quality
11
+ > for publishing; this one turns the same signals into a **"should we take on this dependency?"** gate.
12
+
13
+ ## What this is (and is not)
14
+
15
+ Adding a dependency is a long-lived liability: it ships its bugs, its CVEs, its license, its
16
+ maintainer's availability, and its transitive tree into your project, and removing it later is rarely
17
+ free. This skill is the **structured evaluation you run before adopting a specific candidate** — or
18
+ when choosing between two or three.
19
+
20
+ It is deliberately scoped, and it composes with three things already in the kit — use those first /
21
+ alongside, don't duplicate them:
22
+
23
+ - **Do we even need a new dependency?** That is the **§2a.5 Reuse & YAGNI Gate**
24
+ (`.claude/rules/mandatory-workflow.md`) and the `over-engineering-review` skill — walk the ladder
25
+ (need it at all? → in the codebase? → stdlib? → native platform? → an *existing* dependency?) and
26
+ only reach this skill once a *new* dependency is genuinely on the table.
27
+ - **Auditing dependencies you have ALREADY installed** for known CVEs / outdated versions is the
28
+ `dependency-scanner` agent. This skill is its **pre-add counterpart** — it runs *before* the
29
+ dependency is in the lockfile.
30
+ - The 5-point "Before adding any dependency" list in `code-review-and-quality` is the quick form;
31
+ this skill is its full expansion.
32
+
33
+ ## When to use
34
+
35
+ - A new third-party dependency is being proposed (by you or in review)
36
+ - Choosing between 2–3 candidate libraries for the same need
37
+ - §2a.5 rung 5 surfaced a *new* dependency as the cheapest option
38
+ - A dependency upgrade crosses a major version, changes its license, or changes maintainership
39
+
40
+ **When NOT to use:** deciding *whether* you need a dependency (→ §2a.5 / `over-engineering-review`);
41
+ scanning installed deps for CVEs (→ `dependency-scanner`); reviewing your *own* code (→
42
+ `code-review-and-quality`).
43
+
44
+ ## Evaluation dimensions
45
+
46
+ Score each; a single hard failure (incompatible license, unpatched critical CVE, abandoned) is
47
+ disqualifying regardless of the rest.
48
+
49
+ | Dimension | What to check | Disqualifier |
50
+ |-----------|---------------|--------------|
51
+ | **Need & fit** | Does it solve the *actual* problem, not a superset? How much of its API will you really use? | You'd use 5% of a large lib for one function |
52
+ | **Alternatives** | stdlib / native platform feature / an already-installed dep / ~20 lines of your own | A cheaper rung of §2a.5 satisfies it |
53
+ | **Maintenance & bus factor** | Recent commits, release cadence, issue/PR responsiveness, number of active maintainers, is it archived/deprecated? | Abandoned (no commits ~1yr), sole unresponsive maintainer, archived |
54
+ | **Adoption & trust** | Real-world usage; downloads/dependents as *weak* signals (not popularity contests); who else relies on it | Effectively unused / no track record for critical use |
55
+ | **License** | Compatible with *your* project's license and distribution model. Copyleft (GPL/AGPL) vs permissive (MIT/BSD/Apache); transitive licenses too. A copyleft dep in a permissive project may mean *document, don't vendor* | Incompatible / missing license |
56
+ | **Security & supply chain** | CVE/advisory history *and how fast they're patched*; signed/2FA'd releases; typosquat/name-confusion check; provenance | Unpatched critical CVE; suspicious provenance |
57
+ | **Weight & transitive deps** | Install/bundle/binary size; count and quality of transitive deps (each is its own liability); platform/runtime support | Huge transitive blast radius for a small need |
58
+ | **API fit & lock-in** | Idiomatic for your stack? Type stubs/typings? How deeply would it thread through your code — i.e. exit cost? | Pervasive lock-in with no seam to swap it |
59
+ | **Operational fit** | Compatible version range with your runtime/other deps; maintenance burden of pinning/upgrading | Conflicts with existing pinned deps |
60
+
61
+ ## Red flags 🚩 / Green flags ✅
62
+
63
+ **🚩** No tests · no license · last release long ago · single unresponsive maintainer · exact-pins
64
+ everything (fragile) · heavy transitive tree for a tiny need · unpatched advisories · you'd vendor
65
+ just one helper from it.
66
+
67
+ **✅** Active, regular releases · clear changelog + semver · permissive compatible license · security
68
+ scanning / signed releases · small focused surface · typings available · several reputable dependents.
69
+
70
+ ## The decision
71
+
72
+ Conclude explicitly — never let a dependency slip in undecided:
73
+
74
+ 1. **Adopt** — passes every dimension; pin sensibly and move on.
75
+ 2. **Adopt behind a seam** — acceptable but with real lock-in/risk → wrap it behind a thin interface
76
+ so it can be swapped, and note the exit path.
77
+ 3. **Reject** — a disqualifier fires, or a cheaper §2a.5 rung wins → record what you'll do instead.
78
+
79
+ **Adding a dependency needs user approval** (per §2a.5 rung 5 / mandatory-workflow 2a). Record the
80
+ decision and its rationale where future readers will find it — an ADR via `documentation-and-adrs`
81
+ for a consequential one, or at minimum a line in the PR / change proposal. A rejected candidate is
82
+ worth recording too, so the question isn't re-litigated.
83
+
84
+ ## Quick checklist
85
+
86
+ ```
87
+ - [ ] §2a.5 walked first — a new dependency is genuinely the cheapest rung
88
+ - [ ] Need & fit: solves the real problem; we use a meaningful share of it
89
+ - [ ] No cheaper alternative (stdlib / native / existing dep / a few lines)
90
+ - [ ] Actively maintained; bus factor > 1; not archived/deprecated
91
+ - [ ] License compatible with the project (incl. transitive)
92
+ - [ ] No unpatched critical/high CVEs; releases are patched promptly
93
+ - [ ] Transitive-dep weight acceptable for the value gained
94
+ - [ ] Lock-in understood; seam added if exit cost is high
95
+ - [ ] User approval obtained; decision + rationale recorded
96
+ ```
97
+
98
+ ## Related
99
+
100
+ - `.claude/rules/mandatory-workflow.md` (§2a.5 Reuse & YAGNI Gate) — the gate that decides *whether* a dep is needed
101
+ - `over-engineering-review` — reactive twin of §2a.5; stdlib/native/yagni lenses
102
+ - `dependency-scanner` agent — audits *already-installed* deps for CVEs (this skill's post-add counterpart)
103
+ - `code-review-and-quality` (Dependency Discipline) — the quick 5-point form of this evaluation
104
+ - `documentation-and-adrs` — record a consequential adopt/reject as an ADR
@@ -11,6 +11,14 @@ Temporal workflow orchestration patterns derived from real-world production Pyth
11
11
  - **Dynamic worker generation** for matrix-based workers (e.g., file_type × business_unit)
12
12
  - **Graceful shutdown** patterns (SIGTERM/SIGINT handling in worker processes)
13
13
 
14
+ ## Related skill
15
+
16
+ For Temporal **fundamentals** — durable execution, why workflows must be deterministic (history
17
+ replay), safely changing running workflows (patching/worker versioning), testing
18
+ (time-skipping/replay), signals/queries/updates, and non-Python SDKs — use the complementary
19
+ **`temporal-developer`** skill. This skill assumes those fundamentals and focuses on the
20
+ config-driven worker-map / DAG-as-data architecture.
21
+
14
22
  ## Source provenance
15
23
 
16
24
  Derived from real-world production Python/FastAPI services implementing Temporal orchestration at scale.
@@ -1,12 +1,18 @@
1
1
  ---
2
2
  name: temporal-config-driven
3
- description: Encodes Temporal workflow orchestration patterns derived from production Python/FastAPI services—config-driven worker maps, workflow/activity definitions, retry policies, idempotency via activity_id, cron-based schedules, and DAG-based config-as-data orchestration. Use when implementing or debugging Temporal workflows, workers, activities, retries, schedules, or config-driven orchestration engines. Use when setting up worker bootstrap with graceful shutdown, or when building DAG-based config-as-data orchestration systems.
3
+ description: Encodes Temporal workflow orchestration patterns derived from production Python/FastAPI services—config-driven worker maps, workflow/activity definitions, retry policies, idempotency via activity_id, cron-based schedules, and DAG-based config-as-data orchestration. Use when implementing or debugging this kit's config-driven Temporal architecture (WORKER_MODE_CONFIG_MAP, _execute_dag/NODE_TYPE_MAP, schedule registration), worker bootstrap with graceful shutdown, or DAG-based config-as-data orchestration systems. Do NOT use for Temporal fundamentals (determinism/history replay, safe versioning of running workflows, testing, signals/queries/updates) or non-Python SDKs—use temporal-developer for those.
4
4
  ---
5
5
 
6
6
  # temporal-config-driven
7
7
 
8
8
  Temporal workflow orchestration using config-driven worker maps and DAG-based execution.
9
9
 
10
+ > **Fundamentals live elsewhere.** This skill is the *config-driven architecture* layer and assumes
11
+ > you already understand durable execution. For Temporal **fundamentals** — why workflows must be
12
+ > deterministic (history replay), safely versioning running workflows, testing (time-skipping/replay),
13
+ > signals/queries/updates, and non-Python SDKs — use the **`temporal-developer`** skill. They are
14
+ > complementary.
15
+
10
16
  ## When to use
11
17
 
12
18
  - Implementing Temporal workers with mode-based configuration (WORKER_MODE_CONFIG_MAP)
@@ -0,0 +1,38 @@
1
+ # temporal-developer
2
+
3
+ Temporal **fundamentals** for durable execution, language-agnostic: the workflow/activity/worker
4
+ split, why workflows must be deterministic (history replay), signals/queries/updates, child
5
+ workflows, saga, continue-as-new, retry/timeout/cancellation, safe versioning of running workflows,
6
+ testing, and the `temporal` CLI dev loop.
7
+
8
+ This is the conceptual layer *underneath* a Temporal codebase. It is **complementary** to this kit's
9
+ `temporal-config-driven` skill, which encodes a specific config-driven worker-map / DAG-as-data
10
+ architecture and assumes these fundamentals. See each skill's `description` for the auto-trigger
11
+ boundary.
12
+
13
+ ## Source provenance
14
+
15
+ Re-derived **concisely, in claude-kit's own idiom** from the official, MIT-licensed
16
+ [`temporalio/skill-temporal-developer`](https://github.com/temporalio/skill-temporal-developer)
17
+ (© Temporal Technologies Inc., MIT License). **Nothing is vendored** — the upstream reference files
18
+ were read for grounding and the concepts paraphrased into compact notes, with cross-checks against
19
+ the public Temporal docs (https://docs.temporal.io).
20
+
21
+ The upstream skill is the **authority** and carries the full per-language depth (Python, TypeScript,
22
+ Go, Java, .NET, Ruby, Rust) plus integrations and ops material. These notes deliberately stay lean
23
+ and point back to it; when the two disagree, trust upstream.
24
+
25
+ ## How to apply
26
+
27
+ 1. **Read `SKILL.md`** for the durable-execution model and the workflow/activity/worker rules — the
28
+ ideas every Temporal codebase depends on.
29
+ 2. **Hit a non-determinism / command-mismatch error?** Go straight to
30
+ [`references/determinism.md`](references/determinism.md).
31
+ 3. **Changing a workflow with in-flight executions?** Use
32
+ [`references/versioning.md`](references/versioning.md) before you touch the Command sequence.
33
+ 4. **Writing tests?** Use [`references/testing.md`](references/testing.md) (time-skipping env, replay
34
+ tests, activity mocking).
35
+ 5. **Need the full per-language API?** Use [`references/languages.md`](references/languages.md) for
36
+ compact starters, then follow the upstream link for your SDK.
37
+ 6. **For this kit's config-driven worker maps / DAG interpreter / cron schedules**, use the sibling
38
+ `temporal-config-driven` skill instead.
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: temporal-developer
3
+ description: Temporal fundamentals for durable execution across languages (Python, Go, TypeScript, Java, .NET, Ruby, Rust)—the workflow/activity/worker split, why workflows must be deterministic (history replay), signals/queries/updates, child workflows, saga/compensation, continue-as-new, timers, retry policies, cancellation/heartbeating, safe versioning of running workflows (patching, worker versioning), testing (time-skipping, replay tests, activity mocking), and the temporal CLI dev loop. Use when building or debugging Temporal workflows/activities/workers, fixing non-determinism errors, or deciding how to change running workflows safely. Do NOT use for this kit's config-driven worker-map / DAG-as-data orchestration engine (WORKER_MODE_CONFIG_MAP, _execute_dag, NODE_TYPE_MAP, schedule registration)—use temporal-config-driven for that.
4
+ ---
5
+
6
+ # temporal-developer
7
+
8
+ Temporal **fundamentals**: how durable execution actually works, and the rules you must follow to
9
+ build correct workflows in any Temporal SDK. This is the conceptual layer underneath any
10
+ Temporal codebase — read it before writing workflow code, and reach for it when a workflow throws a
11
+ non-determinism error or you need to change code that running workflows depend on.
12
+
13
+ > **Sibling boundary.** `temporal-config-driven` covers *this kit's* specific config-driven
14
+ > architecture (mode→worker maps, the DAG-as-data interpreter, idempotency-via-`activity_id`,
15
+ > cron schedule registration). It **assumes** the fundamentals below. If you are wiring
16
+ > `WORKER_MODE_CONFIG_MAP`, `_execute_dag`, or `register_schedules`, use that skill. If you are
17
+ > learning *why workflows replay*, fixing determinism, versioning a live workflow, or working in a
18
+ > non-Python SDK, use **this** one. They are complementary, not duplicates.
19
+
20
+ ## When to use
21
+
22
+ - Building your first workflow / activity / worker, or onboarding a new SDK language
23
+ - A workflow raised a **non-determinism / command-mismatch error** (see `references/determinism.md`)
24
+ - You need to change a workflow that has **in-flight executions** without breaking them (`references/versioning.md`)
25
+ - Writing tests for workflows — time-skipping, replay tests, activity mocking (`references/testing.md`)
26
+ - Choosing between **Signal, Query, and Update**, or adding child workflows / saga / continue-as-new
27
+ - Setting retry policies, timeouts, cancellation + heartbeating correctly
28
+ - Driving workflows from the `temporal` CLI during the dev loop (`references/cli.md`)
29
+
30
+ ## The durable-execution model (the one idea everything rests on)
31
+
32
+ A Temporal **Workflow** is ordinary code whose execution is made *durable*: it survives process
33
+ crashes, deploys, and machine loss, and can sleep for months. It achieves this not by checkpointing
34
+ memory but by **replaying code against an Event History**.
35
+
36
+ ```
37
+ Workflow code runs ──> emits Commands ──> Server records them as Events (the History)
38
+ Worker dies / cache evicts / long timer fires
39
+ Worker re-runs the SAME code from the top ──> for each Command, the SDK matches it to the
40
+ recorded Event and feeds back the stored result ──> state is reconstructed, execution continues
41
+ ```
42
+
43
+ Three consequences fall directly out of replay — internalize these:
44
+
45
+ 1. **Workflow code must be deterministic.** Same inputs + same history ⇒ identical sequence of
46
+ Commands, every replay. Wall-clock time, `random`, UUIDs, env vars, file/network I/O, and
47
+ unordered map iteration all break this. → `references/determinism.md`.
48
+ 2. **All non-determinism and all side effects belong in Activities.** An **Activity** is a plain
49
+ function that runs *once*, outside replay, with at-least-once execution, automatic retries, and
50
+ timeouts. Workflows *orchestrate*; Activities *do the I/O*. Because activities can run more than
51
+ once, they must be **idempotent** (use an idempotency key).
52
+ 3. **Changing workflow code can break replay.** New code that emits a different Command sequence than
53
+ the recorded history fails open executions. Use **patching** or **worker versioning** to change
54
+ live workflows safely. → `references/versioning.md`.
55
+
56
+ ### Workflow vs Activity vs Worker
57
+
58
+ | Piece | What it is | Rules |
59
+ |-------|-----------|-------|
60
+ | **Workflow** | Orchestration logic; deterministic; replayed | No I/O, no clock/random/UUID except SDK-safe variants; only orchestrate |
61
+ | **Activity** | A unit of real work (I/O, compute); runs once per attempt | Must be idempotent; gets retries + timeouts; heartbeat if long-running |
62
+ | **Worker** | Process that polls a **task queue** and runs your workflow + activity code | All workers on a queue must run *identical* code (else replay mismatch) |
63
+
64
+ ### Talking to a running workflow — Query vs Signal vs Update
65
+
66
+ | Operation | Modifies state? | Returns a result? | May block? | Use for |
67
+ |-----------|-----------------|-------------------|-----------|---------|
68
+ | **Query** | No | Yes | No | Read current state (read-only — never mutate) |
69
+ | **Signal** | Yes | No | Yes | Fire-and-forget input/mutation |
70
+ | **Update** | Yes | Yes | Yes | A mutation that must return a result |
71
+
72
+ > Mnemonic: **Query to peek, Signal to push, Update to pop.** Queries and update *validators* are
73
+ > strictly read-only — mutating in them is non-deterministic on replay.
74
+
75
+ ## References
76
+
77
+ - [determinism.md](references/determinism.md) — replay mechanics, what workflow code may/may not do, SDK protection levels, recovery
78
+ - [versioning.md](references/versioning.md) — patching API, workflow-type versioning, worker (Build ID) versioning; when *not* to patch
79
+ - [testing.md](references/testing.md) — local/time-skipping environment, activity mocking, signal/query/update tests, replay tests
80
+ - [gotchas.md](references/gotchas.md) — the highest-leverage cross-language anti-patterns and their fixes
81
+ - [cli.md](references/cli.md) — `temporal server start-dev` + `workflow start/execute/signal/query/update` dev loop
82
+ - [languages.md](references/languages.md) — compact Python/Go/TypeScript starters + pointer to upstream per-language depth (Java/.NET/Ruby/Rust + AI integrations)
83
+
84
+ ## Upstream (authoritative, full 7-language depth)
85
+
86
+ These references are **re-derived concisely** in this kit's idiom from the official, MIT-licensed
87
+ **`temporalio/skill-temporal-developer`**. For exhaustive per-language guides (Python · TypeScript ·
88
+ Go · Java · .NET · Ruby · Rust), integrations (OpenAI Agents SDK, Google ADK, …), and ops-grade
89
+ material, go to the source — it is the authority and is kept current by Temporal:
90
+
91
+ - Repo: https://github.com/temporalio/skill-temporal-developer
92
+ - Docs: https://docs.temporal.io
93
+
94
+ When upstream and these notes disagree, trust upstream and update this skill.
@@ -0,0 +1,63 @@
1
+ # `temporal` CLI — the developer dev loop
2
+
3
+ The same commands work against the dev server, a self-hosted cluster, or Temporal Cloud — only the
4
+ connection descriptor changes. **Always pass `--output json`** so output is parseable.
5
+
6
+ ## Dev server
7
+
8
+ ```bash
9
+ temporal server start-dev # in-memory, single process — DEV ONLY
10
+ temporal server start-dev --db-filename temporal.db # persist state across restarts
11
+ ```
12
+
13
+ Loses all state on restart unless `--db-filename` is set; never use it for production. Default
14
+ frontend address is `localhost:7233`; the Web UI is served too (default `localhost:8233`).
15
+
16
+ ## Start vs execute
17
+
18
+ ```bash
19
+ # Start asynchronously — returns Workflow ID + Run ID immediately
20
+ temporal workflow start --output json \
21
+ --type YourWorkflow --task-queue YourTaskQueue \
22
+ --workflow-id YourId --input '{"k": "v"}'
23
+
24
+ # Start AND block until completion — streams progress; non-zero exit = failed/cancelled/timed out
25
+ temporal workflow execute --output json \
26
+ --type YourWorkflow --task-queue YourTaskQueue --input '{"k": "v"}'
27
+ ```
28
+
29
+ `--type` and `--task-queue` are required; `--workflow-id` is optional (server generates a UUID).
30
+ `execute` is ideal for one-shot smoke tests in the dev loop. Useful start flags: `--id-reuse-policy`
31
+ (`AllowDuplicate` | `AllowDuplicateFailedOnly` | `RejectDuplicate` | `TerminateIfRunning`),
32
+ `--id-conflict-policy` (`Fail` | `UseExisting` | `TerminateExisting`), `--execution-timeout` /
33
+ `--run-timeout`, `--search-attribute KEY=VALUE`, `--cron` (legacy — prefer `temporal schedule create`).
34
+
35
+ ## Interacting with a running workflow
36
+
37
+ ```bash
38
+ # Signal (fire-and-forget mutation)
39
+ temporal workflow signal --output json -w YourId --name YourSignal --input '{"k":"v"}'
40
+
41
+ # Query (read-only; works on running AND completed workflows)
42
+ temporal workflow query --output json -w YourId --name YourQuery
43
+
44
+ # Update is a COMMAND GROUP, not one command:
45
+ temporal workflow update execute -w YourId --name YourUpdate --input '{"k":"v"}' # start + wait for result
46
+ temporal workflow update start -w YourId --name YourUpdate --wait-for-stage accepted # start + wait for accept
47
+ temporal workflow update result -w YourId --update-id YourUpdateId # fetch a prior update's result
48
+ temporal workflow update describe -w YourId --update-id YourUpdateId # status
49
+ ```
50
+
51
+ Gotchas: `--wait-for-stage` on `update start` only accepts `accepted`; `update` alone does nothing.
52
+
53
+ ## Inspecting & dev-only lifecycle
54
+
55
+ ```bash
56
+ temporal workflow show --output json -w YourId # full Event History (save for replay tests)
57
+ temporal workflow list --output json --query '<visibility query>'
58
+ temporal workflow terminate -w YourId # DEV ONLY — kill a stale execution
59
+ ```
60
+
61
+ `workflow show --output json` is how you capture a history to feed a **replay test** (`testing.md`).
62
+ For bulk operations (`--query` batch signal/terminate), schedules, and ops tooling, see the upstream
63
+ `skill-temporal-developer` references and `skill-temporal-ops`.
@@ -0,0 +1,72 @@
1
+ # Determinism (why workflows replay, and the rules that follow)
2
+
3
+ Workflows are durable because Workers **re-execute the workflow code from the top** to rebuild state
4
+ — after a crash, a cache eviction, or when a long timer fires. Instead of re-running side effects,
5
+ the SDK matches each operation your code emits (a **Command**) against the recorded **Event History**
6
+ and feeds back the stored result.
7
+
8
+ ```
9
+ First run: code → Commands → Server stores Events
10
+ Replay: code runs again → Commands compared to stored Events
11
+ match → reuse stored result, continue
12
+ differ → NondeterminismError (workflow blocks until code is fixed)
13
+ ```
14
+
15
+ Every orchestration operation maps Command → Event, e.g.:
16
+
17
+ | Workflow code | Command | Event |
18
+ |-------------------|-------------------------------|--------------------------------|
19
+ | Execute activity | `ScheduleActivityTask` | `ActivityTaskScheduled` |
20
+ | Sleep / timer | `StartTimer` | `TimerStarted` |
21
+ | Child workflow | `StartChildWorkflowExecution` | `ChildWorkflowExecutionStarted`|
22
+ | Complete workflow | `CompleteWorkflowExecution` | `WorkflowExecutionCompleted` |
23
+
24
+ If replayed code emits a *different* Command than history recorded (or in a different order), replay
25
+ fails. Classic trap: branching on wall-clock time — `if now().hour < 12` takes one branch at first
26
+ run and the other on replay, producing a different `ScheduleActivityTask`.
27
+
28
+ ## Sources of non-determinism (keep all of these OUT of workflow code)
29
+
30
+ - **Time**: `now()`, `time.time()`, `Date.now()`
31
+ - **Randomness / IDs**: `random()`, `Math.random()`, `uuid4()`
32
+ - **External state**: files, env vars, DBs, HTTP/network calls
33
+ - **Unordered iteration**: map/dict/set iteration order (language-dependent)
34
+ - **Concurrency/threads**: races that change ordering or outcome
35
+
36
+ ## The central rule
37
+
38
+ **Put non-determinism and side effects in Activities.** An Activity runs *once per attempt* outside
39
+ replay, with durable recorded results, automatic retries, and timeouts. The workflow only
40
+ orchestrates. For a few common cases the SDK gives you replay-safe variants to use *inside* the
41
+ workflow instead of an activity — durable time, sleep, UUID, random, and a replay-aware logger
42
+ (e.g. `workflow.now()`, `workflow.sleep()`, `workflow.uuid4()`, `workflow.logger`; names vary by
43
+ SDK). Everything else → an activity.
44
+
45
+ ## How much the SDK protects you (varies by language)
46
+
47
+ - **Python** — sandbox intercepts and aborts many non-deterministic calls *at runtime*, early.
48
+ - **TypeScript** — isolated V8 sandbox; auto-replaces common sources with deterministic variants.
49
+ - **Java / Go / .NET** — **no sandbox**; determinism is by convention (`Workflow.*` / `workflow.*`
50
+ safe APIs). Violations usually surface only at *replay*. Optional static analyzers exist
51
+ (`temporal-workflowcheck` for Java, `workflowcheck` for Go).
52
+ - **Ruby** — runtime illegal-call tracing on the workflow fiber + a durable fiber scheduler.
53
+ - **Rust** — runtime detection for external async wake sources; use SDK primitives (`ctx.timer()`,
54
+ the SDK `select!`), avoid synchronous non-determinism by convention.
55
+
56
+ Regardless of SDK, **it is your responsibility** to keep workflow code deterministic. Don't rely on
57
+ the sandbox catching everything — write replay tests (`testing.md`).
58
+
59
+ ## Recovery
60
+
61
+ - **Accidental non-determinism introduced by a code change** → revert workflow code to match history,
62
+ restart the worker; the workflow auto-recovers.
63
+ - **Intentional logic change on running workflows** → use the **Patching API** or terminate-and-restart
64
+ (`versioning.md`). Never just "edit and redeploy" a workflow with open executions.
65
+
66
+ ## Best practices
67
+
68
+ 1. Use SDK-provided safe variants for time / random / UUID / logging.
69
+ 2. Move *all* I/O to activities; the workflow only orchestrates.
70
+ 3. Write **replay tests** before deploying workflow changes.
71
+ 4. Use **patching** for intentional changes to in-flight workflows.
72
+ 5. Keep workflows small and focused — complexity is where non-determinism hides.