claude-code-kit 0.8.0__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.
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/.claude-plugin/marketplace.json +1 -1
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/.claude-plugin/plugin.json +1 -1
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/CHANGELOG.md +35 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/PKG-INFO +5 -4
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/README.md +4 -3
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/orchestrator.md +24 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/story-planner.md +3 -1
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/catalog/profiles.yaml +1 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/docs/architecture.md +3 -2
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/pyproject.toml +1 -1
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/mandatory-workflow.md +25 -5
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/planning-and-task-breakdown/SKILL.md +6 -0
- claude_code_kit-0.9.0/skills/task-tracker-sync/SKILL.md +72 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/src/claude_kit/__init__.py +1 -1
- claude_code_kit-0.9.0/templates/artifacts/feature-spec.md +44 -0
- claude_code_kit-0.8.0/templates/artifacts/feature-spec.md +0 -29
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/.gitignore +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/CLAUDE.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/CONTRIBUTING.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/LICENSE +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/acceptance-reviewer.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/auditor.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/dependency-scanner.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/developer.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/devils-advocate.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/devops-engineer.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/e2e-tester.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/em-reviewer.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/incident-responder.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/merge-reviewer.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/observability-engineer.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/owasp-reviewer.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/policy-validator.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/pr-raiser.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/risk-classifier.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/sdlc-code-reviewer.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/secret-scanner.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/security-reviewer.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/senior-backend-dev.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/senior-frontend-dev.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/senior-tester.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/spec-doc-writer.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/technical-architect.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/tester.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/ui-designer.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/agents/unit-tester.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/catalog/mcp.yaml +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/catalog/org.yaml +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/catalog/stacks.yaml +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/commands/init.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/commands/sdlc.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/commands/status.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/docs/agentic-patterns.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/docs/agents.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/docs/org-capabilities.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/hooks.json +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/scripts/audit-log.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/scripts/guard-secrets.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/scripts/lint-fix.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/scripts/load-autonomy.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/scripts/load-continuity.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/scripts/load-learnings.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/scripts/type-check.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/scripts/validate-frontmatter.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/scripts/validate-settings.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/scripts/warn-large-edits.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/scripts/warn-missing-tests.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/hooks/scripts/warn-shared-modules.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/agent-guardrails.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/agent-memory.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/agent-resilience.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/autonomy-levels.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/code-organization.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/continuity.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/design-patterns.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/devops-observability.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/documentation.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/evals.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/frontend-best-practices.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/goal-setting-and-monitoring.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/human-in-the-loop.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/linting-and-formatting.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/model-tiers.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/quality-gates.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/rarv-cycle.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/reasoning-techniques.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/responsive-and-accessibility.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/risk-classification.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/testing.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/rules/tool-design.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/scripts/init.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/_references/accessibility-checklist.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/_references/orchestration-patterns.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/_references/performance-checklist.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/_references/security-checklist.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/_references/testing-patterns.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/accessibility-review/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/api-and-interface-design/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/api-integration/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/archive-sprint/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/backlog/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/backlog/item-template.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/code-review-and-quality/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/code-simplification/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/component-design/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/consolidate-learnings/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/context-engineering/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/decision/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/decision/adr-template.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/deprecation-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/documentation-and-adrs/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/doubt-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/execute/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/idea-refine/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/idea-refine/examples.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/idea-refine/frameworks.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/idea-refine/refinement-criteria.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/incident-postmortem/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/incremental-implementation/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/interview-me/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/load-testing/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/manual-test/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/over-engineering-review/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/performance-optimization/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/playwright-verification/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/refresh-docs/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/remember/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/scope/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/scope/scope-template.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/sdlc/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/security-and-hardening/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/security-verification/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/shipping-and-launch/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/simplification-debt/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/smoke-test/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/source-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/spec-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/sprint/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/sprint/sprint-template.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/test-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/threat-model/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/triage/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/ui-ux-design/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/unit-test/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/skills/using-agent-skills/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/src/claude_kit/__main__.py +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/src/claude_kit/catalog.py +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/src/claude_kit/cli.py +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/src/claude_kit/hooks.py +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/src/claude_kit/models.py +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/src/claude_kit/prompts.py +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/src/claude_kit/render.py +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/src/claude_kit/scaffold.py +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/src/claude_kit/upgrader.py +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/src/claude_kit/validator.py +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/CLAUDE.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/CLAUDE.stack.md.tmpl +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/CONTINUITY.template.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/README.claude-sdlc.md.tmpl +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/agent-memory/MEMORY.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/agent-memory/api/.gitkeep +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/agent-memory/architecture/.gitkeep +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/agent-memory/debugging/.gitkeep +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/agent-memory/patterns/.gitkeep +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/agent-memory/performance/.gitkeep +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/artifacts/adr.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/artifacts/release-plan.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/artifacts/runbook.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/artifacts/security-review.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/artifacts/test-plan.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/README.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/agents/data-workflow-agent.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/agents/founder-prototype-agent.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/agents/internal-tools-builder.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/agents/pm-copilot.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/agents/support-ticket-engineer.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/devops-and-release/README.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/engineering-core/README.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/product-to-code/README.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/quality-and-review/README.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/security-and-compliance/README.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/rules/ai-working-agreement.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/rules/ambiguity-resolution.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/rules/compliance-policy.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/rules/pii-policy.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/rules/production-data-policy.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/rules/prototype-boundaries.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/rules/secrets-policy.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/settings.json +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
- {claude_code_kit-0.8.0 → claude_code_kit-0.9.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
- {claude_code_kit-0.8.0 → 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.
|
|
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.
|
|
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,41 @@ 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
|
+
|
|
7
42
|
## [0.8.0] — 2026-06-15
|
|
8
43
|
|
|
9
44
|
Adds a **minimalism / anti-over-engineering** layer distilled from a field review of the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-code-kit
|
|
3
|
-
Version: 0.
|
|
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
|
|
201
|
+
CLS -->|"feature"| SPEC["Spec & Dev Docs"]
|
|
202
202
|
SPEC --> EM{{"Gate: EM approved"}}
|
|
203
|
-
EM -->|"pass"|
|
|
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
|
|
174
|
+
CLS -->|"feature"| SPEC["Spec & Dev Docs"]
|
|
175
175
|
SPEC --> EM{{"Gate: EM approved"}}
|
|
176
|
-
EM -->|"pass"|
|
|
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
|
|
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
|
|
|
@@ -81,6 +81,7 @@ profiles:
|
|
|
81
81
|
- accessibility-review
|
|
82
82
|
- over-engineering-review
|
|
83
83
|
- simplification-debt
|
|
84
|
+
- task-tracker-sync
|
|
84
85
|
gates: [spec-complete, em-approved, code-review, build-green, test-coverage, security-clear]
|
|
85
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]
|
|
86
87
|
|
|
@@ -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
|
|
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"|
|
|
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,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "claude-code-kit"
|
|
7
|
-
version = "0.
|
|
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"
|
|
@@ -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
|
|
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
|
|
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`.
|
|
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) |
|
|
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 |
|
|
@@ -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,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-tracker-sync
|
|
3
|
+
description: Mirrors an existing task or story breakdown into the project's issue tracker as issues, preserving dependencies. Use after planning/story breakdown when the user wants the plan pushed to GitHub / Linear / Jira (e.g. "create issues for these tasks", "sync the plan to the tracker"). Does not create the breakdown — it syncs one that already exists.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Task Tracker Sync
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Turn a finished plan into tracked work. Given a task or story breakdown that **already exists**
|
|
11
|
+
(from `planning-and-task-breakdown`, the `story-planner` agent, or a plan document), create one
|
|
12
|
+
issue per task in whatever issue tracker the project has configured, carrying the dependency graph
|
|
13
|
+
across so the tracker mirrors the plan instead of a flat dump of tickets.
|
|
14
|
+
|
|
15
|
+
This skill **consumes** a breakdown; it never invents one. If no plan exists yet, run
|
|
16
|
+
`planning-and-task-breakdown` (or the `story-planner` agent) first, then sync its output.
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
- A plan / story breakdown is approved and the user wants it in the tracker for execution.
|
|
21
|
+
- The user says "create issues for these tasks", "open tickets", "push this to Linear/Jira/GitHub".
|
|
22
|
+
- Stories from the workflow's stage 1f (Story Planner) need tracker counterparts before lanes start.
|
|
23
|
+
|
|
24
|
+
**When NOT to use:** there is no breakdown yet (plan first); a single throwaway task; or the user
|
|
25
|
+
only wants a local checklist, not tracker issues.
|
|
26
|
+
|
|
27
|
+
## Tracker-agnostic by design
|
|
28
|
+
|
|
29
|
+
claude-kit does not assume a tracker. Use whichever **issue-tracker MCP server** is configured for
|
|
30
|
+
the project (see `.mcp.json` / the catalog): GitHub, Linear, Jira, or another. Discover the
|
|
31
|
+
tracker's create/update tools at run time and use them — never hardcode one vendor's API.
|
|
32
|
+
|
|
33
|
+
If **no** tracker MCP is configured: stop and say so. Offer to (a) emit the issues as a Markdown
|
|
34
|
+
checklist the user can paste, or (b) wait until a tracker is set up. Do not fabricate issue URLs.
|
|
35
|
+
|
|
36
|
+
## The Sync Process
|
|
37
|
+
|
|
38
|
+
1. **Read the breakdown.** Load the plan/story file. For each task capture: title, body (the
|
|
39
|
+
description + acceptance criteria + verification steps + files-touched), a stable local id, and
|
|
40
|
+
its `blockedBy`/`blocks` dependencies. Reference the spec requirement ids (R1, R2…) in the body
|
|
41
|
+
so each issue traces back to the spec.
|
|
42
|
+
2. **Detect the tracker.** Identify the configured issue-tracker MCP and the fields it supports
|
|
43
|
+
(labels, milestones, parent/child, issue links / "blocks" relations).
|
|
44
|
+
3. **Reconcile before creating (idempotent).** Search the tracker for existing issues matching each
|
|
45
|
+
task (by a stable marker in the title or body, e.g. the story id). **Update** a match; **create**
|
|
46
|
+
only what's genuinely missing. Re-running the sync must not produce duplicates.
|
|
47
|
+
4. **Create issues** for the unmatched tasks: title, structured body, and any labels the project
|
|
48
|
+
uses. Record the new issue id/URL against the local task id.
|
|
49
|
+
5. **Wire dependencies.** Once every task has a tracker id, translate `blockedBy`/`blocks` into the
|
|
50
|
+
tracker's native relation (issue links, task lists, or parent/child). If the tracker can't express
|
|
51
|
+
a relation, note it in the issue body ("Blocked by #N") rather than dropping it.
|
|
52
|
+
6. **Report.** A table of local task id → issue URL → created|updated, plus any dependency links
|
|
53
|
+
made and anything that needs manual attention.
|
|
54
|
+
|
|
55
|
+
## Constraints
|
|
56
|
+
|
|
57
|
+
- **Confirm before writing.** Creating tracker issues is an outward-facing action — show the user
|
|
58
|
+
what will be created/updated and how many, and get a go-ahead before the first write, unless they
|
|
59
|
+
already said "just do it".
|
|
60
|
+
- **Idempotent.** Match-then-update; never blind-create. A second run is a no-op when nothing changed.
|
|
61
|
+
- **Faithful, not creative.** Sync the tasks as written. Don't reword acceptance criteria, split,
|
|
62
|
+
merge, or add tasks here — that's the planner's job. Round-trip changes through the plan, then
|
|
63
|
+
re-sync.
|
|
64
|
+
- **No secrets.** Never put credentials or tokens in issue bodies. Tracker auth comes from the MCP
|
|
65
|
+
server's configured env vars, not from anything you write.
|
|
66
|
+
|
|
67
|
+
## Verification
|
|
68
|
+
|
|
69
|
+
- [ ] Every task in the breakdown has exactly one corresponding tracker issue (no duplicates).
|
|
70
|
+
- [ ] Dependencies are represented in the tracker (native links) or explicitly noted in bodies.
|
|
71
|
+
- [ ] Each issue body traces to its spec requirement id(s) and lists acceptance criteria.
|
|
72
|
+
- [ ] A re-run reports all "updated"/"unchanged" — zero accidental new issues.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Feature spec: <name>
|
|
2
|
+
|
|
3
|
+
> Produced before implementation (see `.claude/rules/mandatory-workflow.md`). Keep it explicit
|
|
4
|
+
> enough to review. Give each requirement a stable id: the **Story Planner** (workflow stage 1f)
|
|
5
|
+
> maps every acceptance criterion below to an implementation story, so coverage gaps and scope
|
|
6
|
+
> creep are caught on paper, not mid-build.
|
|
7
|
+
|
|
8
|
+
## Problem / motivation
|
|
9
|
+
What user need or problem does this address? Why now?
|
|
10
|
+
|
|
11
|
+
## Goals / non-goals
|
|
12
|
+
- Goals:
|
|
13
|
+
- Non-goals:
|
|
14
|
+
|
|
15
|
+
## Requirements & acceptance criteria
|
|
16
|
+
Each requirement gets a stable id (R1, R2, …) so stories and tests can trace back to it. Every
|
|
17
|
+
requirement needs at least one acceptance criterion phrased as a checkable Given/When/Then.
|
|
18
|
+
|
|
19
|
+
- **R1** — <requirement>
|
|
20
|
+
- [ ] Given … when … then …
|
|
21
|
+
- **R2** — <requirement>
|
|
22
|
+
- [ ] Given … when … then …
|
|
23
|
+
|
|
24
|
+
## Assumptions
|
|
25
|
+
Defaults chosen where the request was silent — state them so they can be corrected *before* coding,
|
|
26
|
+
not discovered after. (Open, still-undecided questions belong under "Rollout / open questions", not
|
|
27
|
+
here; an assumption is a decision you are proceeding on unless told otherwise.)
|
|
28
|
+
|
|
29
|
+
- …
|
|
30
|
+
|
|
31
|
+
## Scope
|
|
32
|
+
Affected modules / files / surfaces. Independent work streams (e.g. backend lane, frontend lane).
|
|
33
|
+
|
|
34
|
+
## Design
|
|
35
|
+
Approach, data model / API contract changes, key decisions (link ADRs for significant ones).
|
|
36
|
+
|
|
37
|
+
## Risks & constraints
|
|
38
|
+
Deadline, compatibility, security, performance, compliance.
|
|
39
|
+
|
|
40
|
+
## Test plan (summary)
|
|
41
|
+
What unit / integration / e2e coverage proves each requirement's acceptance criteria (reference the
|
|
42
|
+
R-ids). Detail lives in test-plan.md.
|
|
43
|
+
|
|
44
|
+
## Rollout / open questions
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# Feature spec: <name>
|
|
2
|
-
|
|
3
|
-
> Produced before implementation (see `.claude/rules/mandatory-workflow.md`). Keep it explicit
|
|
4
|
-
> enough to review.
|
|
5
|
-
|
|
6
|
-
## Problem / motivation
|
|
7
|
-
What user need or problem does this address? Why now?
|
|
8
|
-
|
|
9
|
-
## Goals / non-goals
|
|
10
|
-
- Goals:
|
|
11
|
-
- Non-goals:
|
|
12
|
-
|
|
13
|
-
## Acceptance criteria
|
|
14
|
-
- [ ] Given … when … then …
|
|
15
|
-
- [ ] …
|
|
16
|
-
|
|
17
|
-
## Scope
|
|
18
|
-
Affected modules / files / surfaces. Independent work streams (e.g. backend lane, frontend lane).
|
|
19
|
-
|
|
20
|
-
## Design
|
|
21
|
-
Approach, data model / API contract changes, key decisions (link ADRs for significant ones).
|
|
22
|
-
|
|
23
|
-
## Risks & constraints
|
|
24
|
-
Deadline, compatibility, security, performance, compliance.
|
|
25
|
-
|
|
26
|
-
## Test plan (summary)
|
|
27
|
-
What unit / integration / e2e coverage proves the acceptance criteria. (Detail in test-plan.md.)
|
|
28
|
-
|
|
29
|
-
## Rollout / open questions
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|