claude-code-kit 0.7.1__tar.gz → 0.9.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 (224) hide show
  1. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/.claude-plugin/marketplace.json +1 -1
  2. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/.claude-plugin/plugin.json +1 -1
  3. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/CHANGELOG.md +74 -0
  4. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/PKG-INFO +5 -4
  5. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/README.md +4 -3
  6. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/orchestrator.md +24 -0
  7. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/story-planner.md +3 -1
  8. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/catalog/profiles.yaml +4 -1
  9. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/docs/architecture.md +3 -2
  10. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/hooks/hooks.json +2 -1
  11. claude_code_kit-0.9.0/hooks/scripts/load-autonomy.sh +21 -0
  12. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/pyproject.toml +1 -1
  13. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/documentation.md +4 -0
  14. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/evals.md +21 -0
  15. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/mandatory-workflow.md +25 -5
  16. claude_code_kit-0.9.0/skills/over-engineering-review/SKILL.md +99 -0
  17. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/planning-and-task-breakdown/SKILL.md +6 -0
  18. claude_code_kit-0.9.0/skills/simplification-debt/SKILL.md +71 -0
  19. claude_code_kit-0.9.0/skills/task-tracker-sync/SKILL.md +72 -0
  20. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/src/claude_kit/__init__.py +1 -1
  21. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/src/claude_kit/hooks.py +6 -0
  22. claude_code_kit-0.9.0/templates/artifacts/feature-spec.md +44 -0
  23. claude_code_kit-0.7.1/templates/artifacts/feature-spec.md +0 -29
  24. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/.gitignore +0 -0
  25. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/CLAUDE.md +0 -0
  26. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/CONTRIBUTING.md +0 -0
  27. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/LICENSE +0 -0
  28. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/acceptance-reviewer.md +0 -0
  29. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/auditor.md +0 -0
  30. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/dependency-scanner.md +0 -0
  31. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/developer.md +0 -0
  32. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/devils-advocate.md +0 -0
  33. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/devops-engineer.md +0 -0
  34. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/e2e-tester.md +0 -0
  35. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/em-reviewer.md +0 -0
  36. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/incident-responder.md +0 -0
  37. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/merge-reviewer.md +0 -0
  38. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/observability-engineer.md +0 -0
  39. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/owasp-reviewer.md +0 -0
  40. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/policy-validator.md +0 -0
  41. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/pr-raiser.md +0 -0
  42. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/risk-classifier.md +0 -0
  43. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/sdlc-code-reviewer.md +0 -0
  44. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/secret-scanner.md +0 -0
  45. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/security-reviewer.md +0 -0
  46. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/senior-backend-dev.md +0 -0
  47. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/senior-frontend-dev.md +0 -0
  48. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/senior-tester.md +0 -0
  49. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/spec-doc-writer.md +0 -0
  50. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/technical-architect.md +0 -0
  51. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/tester.md +0 -0
  52. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/ui-designer.md +0 -0
  53. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/agents/unit-tester.md +0 -0
  54. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/catalog/mcp.yaml +0 -0
  55. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/catalog/org.yaml +0 -0
  56. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/catalog/stacks.yaml +0 -0
  57. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/commands/init.md +0 -0
  58. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/commands/sdlc.md +0 -0
  59. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/commands/status.md +0 -0
  60. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/docs/agentic-patterns.md +0 -0
  61. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/docs/agents.md +0 -0
  62. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/docs/org-capabilities.md +0 -0
  63. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/hooks/scripts/audit-log.sh +0 -0
  64. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/hooks/scripts/guard-secrets.sh +0 -0
  65. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/hooks/scripts/lint-fix.sh +0 -0
  66. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/hooks/scripts/load-continuity.sh +0 -0
  67. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/hooks/scripts/load-learnings.sh +0 -0
  68. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/hooks/scripts/type-check.sh +0 -0
  69. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/hooks/scripts/validate-frontmatter.sh +0 -0
  70. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/hooks/scripts/validate-settings.sh +0 -0
  71. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/hooks/scripts/warn-large-edits.sh +0 -0
  72. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/hooks/scripts/warn-missing-tests.sh +0 -0
  73. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
  74. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/hooks/scripts/warn-shared-modules.sh +0 -0
  75. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/agent-guardrails.md +0 -0
  76. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/agent-memory.md +0 -0
  77. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/agent-resilience.md +0 -0
  78. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/autonomy-levels.md +0 -0
  79. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/code-organization.md +0 -0
  80. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/continuity.md +0 -0
  81. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/design-patterns.md +0 -0
  82. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/devops-observability.md +0 -0
  83. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/frontend-best-practices.md +0 -0
  84. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/goal-setting-and-monitoring.md +0 -0
  85. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/human-in-the-loop.md +0 -0
  86. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/linting-and-formatting.md +0 -0
  87. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/model-tiers.md +0 -0
  88. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/quality-gates.md +0 -0
  89. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/rarv-cycle.md +0 -0
  90. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/reasoning-techniques.md +0 -0
  91. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/responsive-and-accessibility.md +0 -0
  92. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/risk-classification.md +0 -0
  93. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/testing.md +0 -0
  94. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/rules/tool-design.md +0 -0
  95. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/scripts/init.sh +0 -0
  96. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/_references/accessibility-checklist.md +0 -0
  97. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/_references/orchestration-patterns.md +0 -0
  98. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/_references/performance-checklist.md +0 -0
  99. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/_references/security-checklist.md +0 -0
  100. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/_references/testing-patterns.md +0 -0
  101. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/accessibility-review/SKILL.md +0 -0
  102. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/api-and-interface-design/SKILL.md +0 -0
  103. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/api-integration/SKILL.md +0 -0
  104. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/archive-sprint/SKILL.md +0 -0
  105. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/backlog/SKILL.md +0 -0
  106. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/backlog/item-template.md +0 -0
  107. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
  108. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
  109. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/code-review-and-quality/SKILL.md +0 -0
  110. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/code-simplification/SKILL.md +0 -0
  111. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/component-design/SKILL.md +0 -0
  112. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/consolidate-learnings/SKILL.md +0 -0
  113. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/context-engineering/SKILL.md +0 -0
  114. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
  115. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/decision/SKILL.md +0 -0
  116. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/decision/adr-template.md +0 -0
  117. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/deprecation-and-migration/SKILL.md +0 -0
  118. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/documentation-and-adrs/SKILL.md +0 -0
  119. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/doubt-driven-development/SKILL.md +0 -0
  120. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/execute/SKILL.md +0 -0
  121. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
  122. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
  123. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/idea-refine/SKILL.md +0 -0
  124. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/idea-refine/examples.md +0 -0
  125. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/idea-refine/frameworks.md +0 -0
  126. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/idea-refine/refinement-criteria.md +0 -0
  127. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
  128. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/incident-postmortem/SKILL.md +0 -0
  129. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/incremental-implementation/SKILL.md +0 -0
  130. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/interview-me/SKILL.md +0 -0
  131. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/load-testing/SKILL.md +0 -0
  132. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/manual-test/SKILL.md +0 -0
  133. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/performance-optimization/SKILL.md +0 -0
  134. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/playwright-verification/SKILL.md +0 -0
  135. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/refresh-docs/SKILL.md +0 -0
  136. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/remember/SKILL.md +0 -0
  137. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/scope/SKILL.md +0 -0
  138. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/scope/scope-template.md +0 -0
  139. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/sdlc/SKILL.md +0 -0
  140. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/security-and-hardening/SKILL.md +0 -0
  141. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/security-verification/SKILL.md +0 -0
  142. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/shipping-and-launch/SKILL.md +0 -0
  143. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/smoke-test/SKILL.md +0 -0
  144. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/source-driven-development/SKILL.md +0 -0
  145. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/spec-driven-development/SKILL.md +0 -0
  146. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/sprint/SKILL.md +0 -0
  147. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/sprint/sprint-template.md +0 -0
  148. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/test-driven-development/SKILL.md +0 -0
  149. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/threat-model/SKILL.md +0 -0
  150. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/triage/SKILL.md +0 -0
  151. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/ui-ux-design/SKILL.md +0 -0
  152. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/unit-test/SKILL.md +0 -0
  153. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/skills/using-agent-skills/SKILL.md +0 -0
  154. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/src/claude_kit/__main__.py +0 -0
  155. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/src/claude_kit/catalog.py +0 -0
  156. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/src/claude_kit/cli.py +0 -0
  157. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/src/claude_kit/models.py +0 -0
  158. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/src/claude_kit/prompts.py +0 -0
  159. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/src/claude_kit/render.py +0 -0
  160. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/src/claude_kit/scaffold.py +0 -0
  161. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/src/claude_kit/upgrader.py +0 -0
  162. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/src/claude_kit/validator.py +0 -0
  163. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/CLAUDE.md +0 -0
  164. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/CLAUDE.stack.md.tmpl +0 -0
  165. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/CONTINUITY.template.md +0 -0
  166. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/README.claude-sdlc.md.tmpl +0 -0
  167. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/agent-memory/MEMORY.md +0 -0
  168. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/agent-memory/api/.gitkeep +0 -0
  169. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/agent-memory/architecture/.gitkeep +0 -0
  170. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/agent-memory/debugging/.gitkeep +0 -0
  171. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
  172. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/agent-memory/patterns/.gitkeep +0 -0
  173. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/agent-memory/performance/.gitkeep +0 -0
  174. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/artifacts/adr.md +0 -0
  175. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/artifacts/release-plan.md +0 -0
  176. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/artifacts/runbook.md +0 -0
  177. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/artifacts/security-review.md +0 -0
  178. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/artifacts/test-plan.md +0 -0
  179. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/README.md +0 -0
  180. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/agents/data-workflow-agent.md +0 -0
  181. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/agents/founder-prototype-agent.md +0 -0
  182. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/agents/internal-tools-builder.md +0 -0
  183. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/agents/pm-copilot.md +0 -0
  184. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/agents/support-ticket-engineer.md +0 -0
  185. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/devops-and-release/README.md +0 -0
  186. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
  187. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/engineering-core/README.md +0 -0
  188. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
  189. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
  190. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
  191. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
  192. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
  193. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/product-to-code/README.md +0 -0
  194. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
  195. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/quality-and-review/README.md +0 -0
  196. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
  197. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/security-and-compliance/README.md +0 -0
  198. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
  199. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/rules/ai-working-agreement.md +0 -0
  200. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/rules/ambiguity-resolution.md +0 -0
  201. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
  202. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/rules/compliance-policy.md +0 -0
  203. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
  204. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/rules/pii-policy.md +0 -0
  205. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/rules/production-data-policy.md +0 -0
  206. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
  207. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/rules/prototype-boundaries.md +0 -0
  208. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/rules/secrets-policy.md +0 -0
  209. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
  210. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
  211. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
  212. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
  213. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
  214. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/settings.json +0 -0
  215. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
  216. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
  217. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
  218. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
  219. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
  220. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
  221. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
  222. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
  223. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
  224. {claude_code_kit-0.7.1 → claude_code_kit-0.9.0}/templates/stacks/frontend/react/rules/react-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.7.1",
13
+ "version": "0.9.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.7.1",
3
+ "version": "0.9.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,80 @@ 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.9.0] — 2026-06-15
8
+
9
+ Distils a field review of GitHub's [spec-kit](https://github.com/github/spec-kit) (Spec-Driven
10
+ Development). An adversarial map→verify pass cross-checked spec-kit's seven distinctive features
11
+ against claude-kit's existing spec-driven machinery; most were already covered (the `/constitution`
12
+ artifact by `CLAUDE.md` "Project-specific rules" + the org `ai-working-agreement`; `/clarify` by
13
+ `interview-me`; `/checklist` by `em-reviewer` + the spec-driven reframe + workflow §1b). Per golden
14
+ rule #1 (reuse, don't duplicate), those were **not** re-implemented. The genuine gaps were a
15
+ **built-but-unwired capability** and a **missing mechanism** — both addressed without new spec
16
+ machinery, no application code, and no Docker.
17
+
18
+ ### Added
19
+ - **`skills/task-tracker-sync`** (`standard`+): a thin, **tracker-agnostic** skill that mirrors an
20
+ existing task/story breakdown into the project's configured issue tracker (GitHub / Linear / Jira
21
+ via whichever MCP is set up), one issue per task, dependencies carried across, idempotent
22
+ (match-then-update, never blind-create). This implements spec-kit's `/taskstoissues` as the real
23
+ mechanism behind what was previously only a permission — `story-planner` said tasks *may* be
24
+ created, but nothing did it. It syncs a breakdown; it does not create one.
25
+
26
+ ### Changed
27
+ - **Wired the orphaned `story-planner` agent into the pipeline as a coverage gate** — the headline
28
+ reuse. `story-planner` already decomposes an approved spec into ordered stories and verifies that
29
+ *every acceptance criterion maps to ≥1 story* (gaps and scope creep flagged), but it appeared in
30
+ neither `rules/mandatory-workflow.md` nor `agents/orchestrator.md`. It is now **stage 1f — Story
31
+ Breakdown & Coverage Gate**, between EM approval (1e) and the Developer (2a): implementation cannot
32
+ start until acceptance-criterion coverage is complete. This is spec-kit's tasks→analyze→implement
33
+ discipline, fulfilled with an existing component instead of a new one. Flow diagrams, the gating
34
+ table, and the orchestrator pipeline/spawn-reference/state-tracking were updated to match.
35
+ - **`templates/artifacts/feature-spec.md`** now gives requirements stable ids (R1, R2 …) nesting
36
+ their Given/When/Then acceptance criteria, and adds an explicit **Assumptions** section — aligning
37
+ the artifact with the spec shape `mandatory-workflow.md` §1c already mandates and making the new
38
+ coverage gate concrete (stories and tests trace back to R-ids).
39
+ - `agents/story-planner.md` and `skills/planning-and-task-breakdown` now point at `task-tracker-sync`
40
+ for pushing a plan to a tracker.
41
+
42
+ ## [0.8.0] — 2026-06-15
43
+
44
+ Adds a **minimalism / anti-over-engineering** layer distilled from a field review of the
45
+ [ponytail](https://github.com/DietrichGebert/ponytail) plugin. Most of ponytail's philosophy (YAGNI,
46
+ stdlib-first, surgical diffs) was already enforced by `templates/CLAUDE.md` "Simplicity First",
47
+ `skills/code-simplification`, and `rules/rarv-cycle`, so — per golden rule #1 (reuse, don't duplicate)
48
+ — only the genuinely-missing *mechanisms* were added. No application code, no Docker; new components
49
+ are wired through the catalog.
50
+
51
+ ### Added
52
+ - **`skills/over-engineering-review`** (`standard`+): a complexity-**only**, report-**only** scan that
53
+ returns a terse delete-list (`delete:/stdlib:/native:/yagni:/shrink:` tags, each naming the
54
+ replacement) over a diff or a whole repo, ending with `net: -N lines possible` or `Lean already.
55
+ Ship.`. Complements the multi-axis `code-review-and-quality` (it isolates the complexity axis) and
56
+ stops short of the behavior-preserving refactor that `code-simplification` performs. Never flags the
57
+ kit's required test or the safety carve-outs.
58
+ - **`skills/simplification-debt`** (`standard`+): harvests deliberately-deferred shortcuts
59
+ (`TODO(TICKET)`, `FIXME`, and inline `shortcut: ceiling — upgrade` markers) into one ledger grouped
60
+ by file, and flags any marker that names **no upgrade trigger** as a silent-rot risk. Report-only;
61
+ persists to a file only when asked.
62
+ - **`load-autonomy` hook** (`SessionStart`, `standard`+): surfaces the repo's active autonomy level
63
+ (read from the install snapshot) into context each session, so `rules/autonomy-levels.md` is visible
64
+ and persistent rather than purely instructional. Degrades to a no-op without `jq`. Registered in the
65
+ hook registry and the plugin `hooks/hooks.json`.
66
+
67
+ ### Changed
68
+ - **`rules/evals.md`** gains section 6: run repeated trials and report the **median of N**, and
69
+ **separate measurement metrics** (record-and-pass: LOC, cost, latency) **from gate metrics**
70
+ (execute-and-fail: run the output, assert it) — with the ponytail benchmark cited as a worked example.
71
+ - **`rules/documentation.md`** now blesses an inline upgrade-path shortcut marker
72
+ (`# shortcut: ceiling — upgrade path`) as an alternative to a ticketed `TODO`, and points at the
73
+ `simplification-debt` skill that harvests them.
74
+ - **CI now publishes on merge to `main`, gated by a version check.** `publish.yml` also triggers on
75
+ every push to `main` (in addition to version tags, releases, and manual dispatch). A `version-check`
76
+ job compares `pyproject.toml`'s version against PyPI and only builds/publishes when the version is
77
+ new; an unchanged version is skipped cleanly (PyPI versions are immutable). The publisher also passes
78
+ `skip-existing: true` as a race guard. Net effect: bump the version in a PR, merge it, and the
79
+ release ships automatically — no manual tag required.
80
+
7
81
  ## [0.7.1] — 2026-06-09
8
82
 
9
83
  A parity fix for the no-pip fallback scaffolder so the plugin's `/claude-kit:init` command works
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-kit
3
- Version: 0.7.1
3
+ Version: 0.9.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
@@ -198,9 +198,10 @@ See [`docs/architecture.md`](docs/architecture.md) for the full diagrams.
198
198
  ```mermaid
199
199
  flowchart TD
200
200
  REQ(["/sdlc request"]) --> CLS{"Classify"}
201
- CLS -->|"feature"| SPEC["Spec & Dev Docs → Story Planner"]
201
+ CLS -->|"feature"| SPEC["Spec & Dev Docs"]
202
202
  SPEC --> EM{{"Gate: EM approved"}}
203
- EM -->|"pass"| LANES["Parallel lanes:<br/>Senior Dev Architect → Developer → Code Review"]
203
+ EM -->|"pass"| STORY["Story breakdown + coverage gate<br/>story-planner"]
204
+ STORY --> LANES["Parallel lanes:<br/>Senior Dev → Architect → Developer → Code Review"]
204
205
  LANES --> MR{{"Gate: Merge Reviewer"}}
205
206
  MR --> TEST["Unit · E2E · Integration + Senior verification"]
206
207
  TEST --> TCG{{"Gate: Test coverage<br/>+ Devil's Advocate"}}
@@ -231,7 +232,7 @@ your chosen DB, and **org persona agents** added only in organization scope. See
231
232
  |-------|------|
232
233
  | `orchestrator` | Pipeline controller — decomposes, delegates, runs lanes in parallel, gates progression (never writes code) |
233
234
  | `spec-doc-writer` | Turns requirements into a spec + developer documentation in one pass |
234
- | `story-planner` | Decomposes an approved spec into ordered, parallelizable stories |
235
+ | `story-planner` | Decomposes an approved spec into ordered, parallelizable stories; verifies every acceptance criterion maps to a story (workflow gate 1f) |
235
236
  | `ui-designer` | Drafts and self-reviews UI/UX design specs |
236
237
  | `senior-backend-dev` · `senior-frontend-dev` | Senior review of a work stream's spec (the two-lane example) |
237
238
  | `technical-architect` | Cross-system architecture, scalability, integration review |
@@ -171,9 +171,10 @@ See [`docs/architecture.md`](docs/architecture.md) for the full diagrams.
171
171
  ```mermaid
172
172
  flowchart TD
173
173
  REQ(["/sdlc request"]) --> CLS{"Classify"}
174
- CLS -->|"feature"| SPEC["Spec & Dev Docs → Story Planner"]
174
+ CLS -->|"feature"| SPEC["Spec & Dev Docs"]
175
175
  SPEC --> EM{{"Gate: EM approved"}}
176
- EM -->|"pass"| LANES["Parallel lanes:<br/>Senior Dev Architect → Developer → Code Review"]
176
+ EM -->|"pass"| STORY["Story breakdown + coverage gate<br/>story-planner"]
177
+ STORY --> LANES["Parallel lanes:<br/>Senior Dev → Architect → Developer → Code Review"]
177
178
  LANES --> MR{{"Gate: Merge Reviewer"}}
178
179
  MR --> TEST["Unit · E2E · Integration + Senior verification"]
179
180
  TEST --> TCG{{"Gate: Test coverage<br/>+ Devil's Advocate"}}
@@ -204,7 +205,7 @@ your chosen DB, and **org persona agents** added only in organization scope. See
204
205
  |-------|------|
205
206
  | `orchestrator` | Pipeline controller — decomposes, delegates, runs lanes in parallel, gates progression (never writes code) |
206
207
  | `spec-doc-writer` | Turns requirements into a spec + developer documentation in one pass |
207
- | `story-planner` | Decomposes an approved spec into ordered, parallelizable stories |
208
+ | `story-planner` | Decomposes an approved spec into ordered, parallelizable stories; verifies every acceptance criterion maps to a story (workflow gate 1f) |
208
209
  | `ui-designer` | Drafts and self-reviews UI/UX design specs |
209
210
  | `senior-backend-dev` · `senior-frontend-dev` | Senior review of a work stream's spec (the two-lane example) |
210
211
  | `technical-architect` | Cross-system architecture, scalability, integration review |
@@ -79,6 +79,9 @@ Human PRD
79
79
  [MR1] Merge Reviewer ──── verifies spec consistency across lanes
80
80
 
81
81
 
82
+ [SP] Story Planner ───── decomposes spec into ordered stories + verifies every
83
+ │ acceptance criterion maps to a story (coverage gate)
84
+
82
85
  ┌─────── FORK POINT 2 (implementation) ───────────────────────┐
83
86
  │ │
84
87
  │ LANE A — FRONTEND LANE B — BACKEND │
@@ -139,6 +142,7 @@ Done
139
142
  ```
140
143
  Spec-Doc Writer → [UI Designer if UI]
141
144
  → Senior Dev → Technical Architect → EM
145
+ → Story Planner (coverage gate)
142
146
  → Developer → SDLC Code Reviewer → Unit Tests
143
147
  → Tester (full) → Senior Tester (full)
144
148
  → PR Raiser
@@ -240,6 +244,24 @@ For full-stack work, **spawn these lanes in parallel**:
240
244
 
241
245
  ---
242
246
 
247
+ ### Stage SP: Story Breakdown & Coverage Gate (after the spec is approved + consistent)
248
+
249
+ The bridge between an approved spec and implementation: decompose, then prove coverage before any
250
+ code is written.
251
+
252
+ - **Spawn**: `story-planner` with the approved spec (+ design spec and architecture notes, if any).
253
+ - It decomposes the spec into the smallest independently-shippable stories, orders them with an
254
+ acyclic `blockedBy`/`blocks` graph, identifies the immediately-startable parallel set per lane,
255
+ and builds a traceability map of **every acceptance criterion → ≥1 story**.
256
+ - **Gate**: every acceptance criterion is covered (no **gap**), no story maps to no criterion (no
257
+ **scope creep**), the graph is acyclic, and the parallel set is genuinely unblocked. A gap or
258
+ scope-creep finding routes back to the **Spec Writer** (fix the spec) — never silently into a
259
+ lane. The story breakdown then drives lane assignment at Fork Point 2.
260
+ - For **single-stack** work (Mode A), this runs after EM approval and before the Developer; there
261
+ is no merge-reviewer, so the Story Planner runs directly on the EM-approved spec.
262
+
263
+ ---
264
+
243
265
  ### FORK POINT 2: Implementation (Mode B only)
244
266
 
245
267
  #### Lane A (Frontend Implementation):
@@ -438,6 +460,7 @@ PIPELINE: [FORK 1] Lane A: Tech Architect (iteration 1/3) | Lane B: Sr BE Dev Re
438
460
  PIPELINE: [FORK 1] Lane A: EM Review (in progress) | Lane B: Tech Architect (in progress)
439
461
  PIPELINE: [FORK 1] Lane A: DONE ✓ | Lane B: EM Review (in progress)
440
462
  PIPELINE: [JOIN 1] Merge Reviewer (verifying spec consistency)
463
+ PIPELINE: [SP] Story Planner — acceptance-criterion coverage verified ✓
441
464
  PIPELINE: [FORK 2] Lane A: FE Developer (in progress) | Lane B: BE Developer (in progress)
442
465
  PIPELINE: [FORK 2] Lane A: FE Code Review (iteration 2/5) | Lane B: BE Unit Tests (running)
443
466
  PIPELINE: [FORK 2] Lane A: FE Unit Tests (running) | Lane B: DONE ✓
@@ -478,6 +501,7 @@ PIPELINE: DEFECT LOOP (cycle 1/2) - Backend lane re-entered, re-test API lane on
478
501
  | 3c-FE | `em-reviewer` | EM review of frontend | Yes — Lane A |
479
502
  | 3c-BE | `em-reviewer` | EM review of backend | Yes — Lane B |
480
503
  | JOIN | `merge-reviewer` | Verifies spec consistency | No — gate |
504
+ | SP | `story-planner` | Decomposes spec → ordered stories + acceptance-criterion coverage gate | No — gate |
481
505
  | 4a-FE | `developer` (FE mode) | Frontend implementation | Yes — Lane A |
482
506
  | 4a-BE | `developer` (BE mode) | Backend implementation | Yes — Lane B |
483
507
  | 4b-FE | `sdlc-code-reviewer` | Frontend code review | Yes — Lane A |
@@ -35,7 +35,9 @@ A story breakdown (write it where the spec lives, or to `.claude/state/` for the
35
35
  5. **Traceability** — every acceptance criterion in the spec maps to at least one story; flag any
36
36
  criterion with no story (a gap) and any story with no criterion (scope creep).
37
37
 
38
- When the task tracker is in use, you may create the corresponding tasks with their dependencies.
38
+ When a task tracker is configured, mirror the stories to it (one issue per story, dependencies
39
+ carried across) using the `task-tracker-sync` skill (`.claude/skills/task-tracker-sync/SKILL.md`) —
40
+ it is tracker-agnostic (GitHub / Linear / Jira) and idempotent. Sync after the coverage gate passes.
39
41
 
40
42
  ## Constraints
41
43
 
@@ -79,8 +79,11 @@ profiles:
79
79
  - incident-postmortem
80
80
  - threat-model
81
81
  - accessibility-review
82
+ - over-engineering-review
83
+ - simplification-debt
84
+ - task-tracker-sync
82
85
  gates: [spec-complete, em-approved, code-review, build-green, test-coverage, security-clear]
83
- hooks: [load-continuity, load-learnings, skill-routing, learning-detection, guard-rm-rf, guard-push-main, protect-secrets, guard-commit-secrets, warn-shared-modules, lint-fix, type-check]
86
+ hooks: [load-continuity, load-learnings, load-autonomy, skill-routing, learning-detection, guard-rm-rf, guard-push-main, protect-secrets, guard-commit-secrets, warn-shared-modules, lint-fix, type-check]
84
87
 
85
88
  enterprise:
86
89
  label: "Enterprise — adds DevOps, Observability, full audit + acceptance"
@@ -87,10 +87,11 @@ independent, and enforces a quality gate between phases. **Only the active profi
87
87
  flowchart TD
88
88
  REQ(["/sdlc request"]) --> CLS{"Classify:<br/>bug · feature · fast-track"}
89
89
 
90
- CLS -->|"feature"| SPEC["1. Spec & Dev Docs → Story Planner<br/>spec-doc-writer · story-planner (+ ui-designer if UI)"]
90
+ CLS -->|"feature"| SPEC["1. Spec & Dev Docs<br/>spec-doc-writer (+ ui-designer if UI)"]
91
91
  SPEC --> EM{{"Gate: EM approved<br/>em-reviewer"}}
92
92
 
93
- EM -->|"pass"| FORK["Fork independent work streams"]
93
+ EM -->|"pass"| STORY["2. Story breakdown + coverage gate<br/>story-planner: every acceptance criterion → a story"]
94
+ STORY --> FORK["Fork independent work streams"]
94
95
  subgraph LANES["Parallel lanes (canonical example: backend + frontend)"]
95
96
  direction LR
96
97
  L1["Senior Dev → Tech Architect → Developer → Code Reviewer"]
@@ -4,7 +4,8 @@
4
4
  "matcher": "",
5
5
  "hooks": [
6
6
  { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/load-continuity.sh\"" },
7
- { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/load-learnings.sh\"" }
7
+ { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/load-learnings.sh\"" },
8
+ { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/load-autonomy.sh\"" }
8
9
  ]
9
10
  }
10
11
  ],
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env bash
2
+ # SessionStart hook: surface the repo's active autonomy level so every session operates within it
3
+ # instead of forgetting the dial. The level is chosen at install time and recorded in the config
4
+ # snapshot; this just makes it visible each session. See .claude/rules/autonomy-levels.md.
5
+ #
6
+ # Degrades to a no-op when jq isn't present or no level is recorded (never blocks startup).
7
+
8
+ ROOT="${CLAUDE_PROJECT_DIR:-$PWD}"
9
+ OPTS="$ROOT/.claude/config/init-options.json"
10
+
11
+ [ -f "$OPTS" ] || exit 0
12
+ command -v jq >/dev/null 2>&1 || exit 0
13
+
14
+ LEVEL=$(jq -r '.selection.autonomy // empty' "$OPTS" 2>/dev/null)
15
+ [ -n "$LEVEL" ] || exit 0
16
+
17
+ echo "## Active autonomy level: $LEVEL"
18
+ echo
19
+ echo "Operate within the \`$LEVEL\` autonomy level for this repo: it bounds how much you may do before a human acts. See .claude/rules/autonomy-levels.md for what this level permits and what still needs human sign-off."
20
+
21
+ exit 0
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "claude-code-kit"
7
- version = "0.7.1"
7
+ version = "0.9.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"
@@ -260,6 +260,10 @@ class UserCreate(BaseModel):
260
260
  - **Performance decisions**: `# Eager-load to prevent N+1 on the list page`
261
261
  - **Security decisions**: `# Rate limit to 5 req/min to prevent credential stuffing`
262
262
  - **TODO with ticket**: `# TODO(PROJ-123): Replace with proper RBAC once permissions service is built`
263
+ - **Deliberate shortcut with an upgrade path**: name the ceiling and the trigger inline, as an
264
+ alternative to an external ticket: `# shortcut: global lock — per-account locks if throughput matters`.
265
+ A deferral with no trigger is the kind that silently rots; the `simplification-debt` skill harvests
266
+ these markers into a ledger and flags any that name no upgrade path.
263
267
 
264
268
  ### Do NOT Comment
265
269
  - What the code does when it's obvious from the code itself
@@ -47,6 +47,27 @@ the one that matches how the feature is actually used.
47
47
  (`.claude/rules/quality-gates.md`).
48
48
  - **Capability** — pushes the frontier; tracks progress on hard cases you don't pass yet.
49
49
 
50
+ ## 6. Run repeated trials, and split measurement from gate
51
+
52
+ A single run of a non-deterministic feature tells you almost nothing. Two practices keep the numbers
53
+ honest:
54
+
55
+ - **Repeat and aggregate.** Run each case **N times** (commonly 5–10) and report the **median**, not
56
+ the mean — the median is robust to the occasional wild outlier a model produces. Report N alongside
57
+ the result; a "90%" from one run and from twenty runs are not the same claim.
58
+ - **Separate metrics that *measure* from metrics that *gate*.** A **measurement** metric records a
59
+ number and always passes (lines of code, token cost, latency, output length) — it's there to track a
60
+ trend, not to block. A **gate** metric actually exercises the output and **fails** when it breaks
61
+ (run the generated code, assert the result, check the file state). Don't let a measurement masquerade
62
+ as a gate: a solution that scores beautifully on "fewer lines" but doesn't run must still **fail**,
63
+ because the correctness gate executed it. Wire only gate metrics into `.claude/rules/quality-gates.md`;
64
+ keep measurements as dashboards.
65
+
66
+ > Worked example: the [ponytail](https://github.com/DietrichGebert/ponytail) benchmark runs 3 arms ×
67
+ > 3 models × 5 tasks at 10 runs each (median reported), with a line-count *measurement* that always
68
+ > passes beside a *correctness gate* that spawns the runtime to actually execute the generated code.
69
+ > A concrete instance of this section's two practices.
70
+
50
71
  ## Rules
51
72
 
52
73
  1. **No prompt/rule/tool/model change ships without an eval run** that covers the affected behavior.
@@ -107,13 +107,13 @@ handled by a dedicated agent in `.claude/agents/`.
107
107
  ```
108
108
  Phase 1 — Planning (Stages 0-3) ║ Phase 2 — Development (4-5) ║ Phase 3 — Testing & Delivery (6-7)
109
109
  [0] Orchestrator receives request ║ [4] Developer writes code ║ [6a] Unit Tester ─┐
110
- 1a→1b→1c→1d→1e ───────────────────╬──► 2a→2b→2c→2d ────────────────╬──► [6b] E2E Tester ─┤ (parallel)
110
+ 1a→1b→1c→1d→1e→1f ─────────────────╬──► 2a→2b→2c→2d ────────────────╬──► [6b] E2E Tester ─┤ (parallel)
111
111
  Understand→Clarify→Spec→Dev docs ║ Read→Implement→Quality gate ║ 3a→3b→3c→3d
112
- → EM review ║ → Code review ║ → Security → DevOps/Obs → PR → Human
112
+ → EM review → Story breakdown ║ → Code review ║ → Security → DevOps/Obs → PR → Human
113
113
  ```
114
114
 
115
115
  **Pipeline rules:**
116
- - No code is written until Phase 1 is complete (EM approval required).
116
+ - No code is written until Phase 1 is complete (EM approval + story-coverage gate required).
117
117
  - No testing starts until Phase 2 code review passes.
118
118
  - No PR is created until all tests pass (unit + E2E).
119
119
  - No task is marked done until the user has reviewed and accepted.
@@ -151,7 +151,25 @@ table (each requirement → implementation approach → files).
151
151
  A skeptical Engineering Manager reviews the dev docs for completeness, quality (simplest
152
152
  approach, no over/under-engineering), non-functional concerns, and architecture fit.
153
153
  Feedback loops with the Dev Doc Writer, **max 3 iterations**, then escalate.
154
- **Gate:** EM signals `APPROVED`. Development CANNOT start without it.
154
+ **Gate:** EM signals `APPROVED`. The story breakdown CANNOT start without it.
155
+
156
+ ## 1f — Story Breakdown & Coverage Gate `[Story Planner]`
157
+ With the EM-approved spec, the **Story Planner** decomposes it into the smallest set of
158
+ independently shippable stories, ordered by dependency, and identifies which can run in parallel
159
+ (per lane). It builds a **traceability map**: every acceptance criterion → at least one story.
160
+
161
+ This is the spec↔stories coverage check *before* any code is written — the gate that catches an
162
+ acceptance criterion no story covers (a **gap**) and a story that maps to no criterion (**scope
163
+ creep**), so both are fixed on paper rather than discovered mid-implementation. A gap or
164
+ scope-creep finding routes back to the Spec Writer (fix the spec), never silently into the code.
165
+
166
+ **Output:** a story breakdown (written where the spec lives, or to `.claude/state/`) with stable
167
+ story ids, the criteria each satisfies, an acyclic `blockedBy`/`blocks` dependency graph, and the
168
+ immediately-startable parallel set. When a task tracker is configured, the stories can be mirrored
169
+ to it — see `.claude/skills/task-tracker-sync/SKILL.md`.
170
+ **Gate:** every acceptance criterion is covered by ≥1 story (no gaps), no story lacks a criterion
171
+ (no scope creep), the graph is acyclic, and the parallel set is genuinely unblocked. Implementation
172
+ CANNOT start until coverage is complete.
155
173
 
156
174
  ---
157
175
 
@@ -270,6 +288,7 @@ B1 understand → B2 failing test → B3 root cause → B4 fix → B5 quality ga
270
288
  ```
271
289
  Phase 1: 1a Understand [Orchestrator] → 1b Clarify → 1c Spec [Spec Writer]
272
290
  → 1d Dev docs [Dev Doc Writer] → 1e EM review [EM Reviewer, max 3]
291
+ → 1f Story breakdown + coverage gate [Story Planner]
273
292
  Phase 2: 2a Read code [Developer] → 2b Implement → 2c Code review [Code Reviewer, max 5] → 2d Impact check
274
293
  Phase 3: 3a Unit tests ─┐ 3b E2E tests ─┘ (parallel)
275
294
  → 3b.5 Test-coverage gate (blind review + Devil's Advocate)
@@ -282,7 +301,8 @@ Phase 3: 3a Unit tests ─┐ 3b E2E tests ─┘ (parallel)
282
301
  |------|-----------------|
283
302
  | Requirements clarified (1b) | Spec Writer starts |
284
303
  | Spec approved by user (1c) | Dev Doc Writer starts |
285
- | EM `APPROVED` (1e) | Developer starts coding |
304
+ | EM `APPROVED` (1e) | Story Planner starts |
305
+ | Story coverage complete — every criterion mapped, no scope creep (1f) | Developer starts coding |
286
306
  | Code Reviewer `APPROVED` (2c) | Testing starts |
287
307
  | Both testers pass (3a+3b) | Test-coverage gate |
288
308
  | Test-coverage PASS/CONFIRMED (3b.5) | Security review |
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: over-engineering-review
3
+ description: Scans code for over-engineering ONLY and returns a terse delete-list — what to cut and what replaces it — without applying any change. Use when the user asks "what can we delete", "is this over-engineered", "find the bloat", "lean review", "trim this", or wants a complexity-only pass over a diff or a whole repo. Complements (does not replace) the multi-axis code-review-and-quality skill, and stops short of the refactoring that code-simplification performs.
4
+ ---
5
+
6
+ # Over-Engineering Review
7
+
8
+ > A single-lens scan inspired by the [ponytail](https://github.com/DietrichGebert/ponytail) plugin's
9
+ > review/audit commands. Adapted as a stack-agnostic, report-only skill. It is deliberately **narrow**:
10
+ > it hunts complexity and nothing else.
11
+
12
+ ## What this is (and is not)
13
+
14
+ - **This skill:** one lens — over-engineering. Output is a **delete-list**: one line per finding,
15
+ naming what to cut and the leaner replacement. It **reports; it does not edit**.
16
+ - **Not `code-review-and-quality`:** that is the full multi-axis gate (correctness, security,
17
+ performance, architecture, readability) you run before merge. Use it for the real review. Use *this*
18
+ when you want the complexity axis alone, in a scannable form, with no other noise.
19
+ - **Not `code-simplification`:** that skill *applies* the refactor and preserves behavior step by step.
20
+ This skill produces the list; hand the list to `code-simplification` (or a developer) to execute.
21
+
22
+ ## When to use
23
+
24
+ - "What can we delete from this?" / "Is this over-engineered?" / "Find the bloat."
25
+ - A pre-merge lean pass on a diff, before the full review.
26
+ - A periodic whole-repo audit for accreted complexity.
27
+
28
+ ## Scope
29
+
30
+ - **Diff mode (default):** scan the current change (`git diff`, staged, or a PR). Prefix findings with
31
+ the line; for multi-file diffs prefix with `file:line`.
32
+ - **Repo mode:** scan the whole tree. Rank findings biggest-cut-first.
33
+
34
+ State which mode you ran in one line at the top.
35
+
36
+ ## The five tags
37
+
38
+ Every finding carries exactly one tag and names its replacement:
39
+
40
+ - `delete:` — dead code, unused flexibility, a speculative feature. Replacement: nothing.
41
+ - `stdlib:` — a hand-rolled thing the language's standard library already ships. Name the function.
42
+ - `native:` — a dependency or code doing what the platform already does (a built-in input type, a CSS
43
+ feature, a DB constraint, a framework primitive). Name the feature.
44
+ - `yagni:` — an abstraction with one implementation, a config nobody sets, a layer with one caller,
45
+ a factory with one product, a wrapper that only delegates.
46
+ - `shrink:` — same logic, fewer lines. Show the shorter form.
47
+
48
+ ## What to hunt (repo mode checklist)
49
+
50
+ Dependencies the stdlib or platform already ships · single-implementation interfaces · factories with
51
+ one product · wrappers that only delegate · modules exporting one thing · dead flags and config ·
52
+ hand-rolled stdlib · speculative "for later" scaffolding.
53
+
54
+ ## Output format
55
+
56
+ One line per finding. Diff mode:
57
+
58
+ ```
59
+ L<line>: <tag> <what>. <replacement>.
60
+ file:L<line>: <tag> <what>. <replacement>. # multi-file
61
+ ```
62
+
63
+ Repo mode, ranked biggest-cut-first:
64
+
65
+ ```
66
+ <tag> <what to cut>. <replacement>. [path]
67
+ ```
68
+
69
+ End with the only metric that matters:
70
+
71
+ - diff mode: `net: -<N> lines possible.`
72
+ - repo mode: `net: -<N> lines, -<M> deps possible.`
73
+
74
+ If there is nothing worth cutting, say `Lean already. Ship.` and stop. Do not invent findings to look
75
+ thorough — a clean report is a valid report.
76
+
77
+ ### Examples (stack-neutral)
78
+
79
+ ```
80
+ L12-38: stdlib: 27-line e-mail validator. An "@"/structure check is one line; real validation is the confirmation step.
81
+ L4: native: a date-picker dependency for one field. The platform's built-in date input, 0 deps.
82
+ repo/store.*:L88: yagni: AbstractRepository with one implementation. Inline it until a second exists. [src/store]
83
+ L52-71: delete: retry wrapper around an idempotent local call. Nothing replaces it.
84
+ L30-44: shrink: manual loop building a map. The stdlib zip/dict constructor, 1 line.
85
+ net: -120 lines, -1 dep possible.
86
+ ```
87
+
88
+ ## Boundaries (do not over-cut)
89
+
90
+ - **Complexity only.** Correctness bugs, security holes, and performance go to a normal review pass
91
+ (`code-review-and-quality`) — not this one. If you spot one, note it in a single line under a
92
+ `# out of scope:` heading; don't fold it into the delete-list.
93
+ - **Never flag the required check.** This kit mandates a runnable test/verification for non-trivial
94
+ logic (`.claude/rules/testing.md`, `quality-gates.md`). The smallest test that proves the logic is
95
+ **not** bloat — never list it for deletion.
96
+ - **Never flag the carve-outs.** Input validation at trust boundaries, error handling that prevents
97
+ data loss, security controls, and accessibility are not over-engineering. Leave them.
98
+ - **Report only.** This skill lists findings and applies nothing. Approving and executing the cuts is a
99
+ separate, deliberate step (`code-simplification` for behavior-preserving edits).
@@ -193,6 +193,12 @@ When multiple agents or sessions are available:
193
193
  - **Must be sequential:** Database migrations, shared state changes, dependency chains
194
194
  - **Needs coordination:** Features that share an API contract (define the contract first, then parallelize)
195
195
 
196
+ ## Pushing the plan to a tracker
197
+
198
+ Once the breakdown is approved and you want it tracked, the `task-tracker-sync` skill mirrors it into
199
+ the project's configured issue tracker (GitHub / Linear / Jira) — one issue per task, dependencies
200
+ preserved, idempotent. It syncs an existing breakdown; it does not create one.
201
+
196
202
  ## Common Rationalizations
197
203
 
198
204
  | Rationalization | Reality |
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: simplification-debt
3
+ description: Harvests deliberately-deferred shortcuts from the codebase into one debt ledger, so "later" does not quietly become "never". Greps for TODO/FIXME/HACK markers and inline upgrade-path notes, groups them by file, and flags any shortcut that names no upgrade trigger as a silent-rot risk. Use when the user says "what did we defer", "list the shortcuts", "tech-debt ledger", "what's marked to do later", or "simplification debt". Reports only — changes nothing unless asked to persist the ledger.
4
+ ---
5
+
6
+ # Simplification Debt
7
+
8
+ > Inspired by the [ponytail](https://github.com/DietrichGebert/ponytail) plugin's debt-harvest idea.
9
+ > A deliberate shortcut is fine — an *untracked* one rots. This skill collects them into one place so a
10
+ > deferral stays visible until someone revisits it.
11
+
12
+ ## The convention it harvests
13
+
14
+ A deliberate shortcut should record two things at the point it's taken: its **ceiling** (the limit it
15
+ hits) and its **upgrade path** (the trigger to revisit). claude-kit recognizes two equivalent forms
16
+ (see `.claude/rules/documentation.md`):
17
+
18
+ - **Ticketed:** `TODO(PROJ-123): naive O(n²) scan; switch to an index if the list grows.`
19
+ - **Inline upgrade path:** `# shortcut: global lock — per-account locks if throughput matters.`
20
+
21
+ Both are legitimate. A shortcut with **no** trigger ("TODO: fix later") is the one that rots.
22
+
23
+ ## Scan
24
+
25
+ Grep the repo for shortcut markers, skipping vendored and build output (`node_modules`, `.git`,
26
+ `dist`, `build`, `vendor`, `target`, etc.). The pattern is language-neutral — markers live in comments,
27
+ so match common comment prefixes (`#`, `//`, `--`, `;`, `<!--`):
28
+
29
+ ```
30
+ grep -rniE '(#|//|--|;|<!--)[[:space:]]*(TODO|FIXME|HACK|XXX|shortcut|ponytail):' . \
31
+ --exclude-dir={.git,node_modules,dist,build,vendor,target,.venv}
32
+ ```
33
+
34
+ Add your stack's comment prefix if it differs. Each hit is one ledger row. Matching on the comment
35
+ prefix keeps prose that merely *mentions* the convention out of the ledger.
36
+
37
+ ## Output
38
+
39
+ One row per marker, grouped by file:
40
+
41
+ ```
42
+ <file>:<line> — <what was simplified>. ceiling: <the limit named>. upgrade: <the trigger to revisit>.
43
+ ```
44
+
45
+ Pull the ceiling and trigger straight from the comment when the `<ceiling>, <upgrade>` form is used.
46
+ Want an owner per row? add `git blame -L<line>,<line> <file>`.
47
+
48
+ **Flag the rot risk:** any marker that names no upgrade path or trigger gets a `no-trigger` tag — those
49
+ are the deferrals that silently become permanent.
50
+
51
+ End with a one-line tally:
52
+
53
+ ```
54
+ <N> markers, <M> with no trigger.
55
+ ```
56
+
57
+ Nothing found: `No deferred shortcuts. Clean ledger.`
58
+
59
+ ## Persisting (only if asked)
60
+
61
+ By default this reports to the conversation and changes nothing. If the user wants it tracked, write the
62
+ ledger to a file they choose (e.g. `SIMPLIFICATION-DEBT.md` at the repo root, or an entry under the
63
+ artifacts dir). Don't create the file unprompted.
64
+
65
+ ## Boundaries
66
+
67
+ - **Reads and reports only.** It never edits code or removes markers.
68
+ - **Not a linter.** It surfaces *intentional* shortcuts to keep them honest; it does not judge code it
69
+ wasn't told about.
70
+ - Pairs with `over-engineering-review` (find complexity to cut now) and `code-simplification` (perform
71
+ the cut). This skill is about the shortcuts you *chose* to leave behind.