claude-code-kit 0.10.0__tar.gz → 0.11.2__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.10.0 → claude_code_kit-0.11.2}/.claude-plugin/marketplace.json +1 -1
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/.claude-plugin/plugin.json +1 -1
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/CHANGELOG.md +143 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/PKG-INFO +1 -1
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/catalog/mcp.yaml +11 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/catalog/profiles.yaml +1 -1
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/hooks.json +1 -0
- claude_code_kit-0.11.2/hooks/scripts/guard-destructive-git.sh +39 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/pyproject.toml +1 -1
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/testing.md +10 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/code-review-and-quality/SKILL.md +16 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/__init__.py +1 -1
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/hooks.py +6 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/.gitignore +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/CLAUDE.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/CONTRIBUTING.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/LICENSE +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/README.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/acceptance-reviewer.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/auditor.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/dependency-scanner.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/developer.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/devils-advocate.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/devops-engineer.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/e2e-tester.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/em-reviewer.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/incident-responder.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/merge-reviewer.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/observability-engineer.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/orchestrator.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/owasp-reviewer.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/policy-validator.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/pr-raiser.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/risk-classifier.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/sdlc-code-reviewer.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/secret-scanner.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/security-reviewer.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/senior-backend-dev.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/senior-frontend-dev.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/senior-tester.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/spec-doc-writer.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/story-planner.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/technical-architect.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/tester.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/ui-designer.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/agents/unit-tester.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/catalog/org.yaml +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/catalog/stacks.yaml +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/commands/init.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/commands/sdlc.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/commands/status.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/docs/agentic-patterns.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/docs/agents.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/docs/architecture.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/docs/org-capabilities.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/audit-log.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/guard-secrets.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/lint-fix.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/load-autonomy.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/load-continuity.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/load-learnings.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/type-check.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/validate-frontmatter.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/validate-settings.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/warn-large-edits.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/warn-llm-io.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/warn-missing-tests.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/warn-sensitive-files.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/hooks/scripts/warn-shared-modules.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/agent-guardrails.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/agent-memory.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/agent-resilience.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/autonomy-levels.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/code-organization.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/continuity.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/design-patterns.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/devops-observability.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/documentation.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/evals.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/frontend-best-practices.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/goal-setting-and-monitoring.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/human-in-the-loop.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/linting-and-formatting.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/mandatory-workflow.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/model-tiers.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/quality-gates.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/rarv-cycle.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/reasoning-techniques.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/responsive-and-accessibility.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/risk-classification.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/rules/tool-design.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/scripts/init.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/_references/accessibility-checklist.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/_references/orchestration-patterns.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/_references/performance-checklist.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/_references/security-checklist.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/_references/testing-patterns.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/accessibility-review/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/api-and-interface-design/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/api-integration/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/archive-sprint/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/backlog/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/backlog/item-template.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/browser-testing-with-devtools/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/ci-cd-and-automation/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/code-simplification/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/component-design/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/consolidate-learnings/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/context-engineering/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/debugging-and-error-recovery/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/decision/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/decision/adr-template.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/deprecation-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/documentation-and-adrs/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/doubt-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/execute/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/frontend-ui-engineering/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/git-workflow-and-versioning/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/idea-refine/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/idea-refine/examples.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/idea-refine/frameworks.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/idea-refine/refinement-criteria.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/idea-refine/scripts/idea-refine.sh +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/incident-postmortem/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/incremental-implementation/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/interview-me/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/load-testing/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/manual-test/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/over-engineering-review/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/performance-optimization/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/planning-and-task-breakdown/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/playwright-verification/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/refresh-docs/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/remember/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/scope/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/scope/scope-template.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/sdlc/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/security-and-hardening/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/security-verification/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/shipping-and-launch/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/simplification-debt/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/smoke-test/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/source-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/spec-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/sprint/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/sprint/sprint-template.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/task-tracker-sync/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/test-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/threat-model/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/triage/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/ui-ux-design/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/unit-test/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/using-agent-skills/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/__main__.py +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/catalog.py +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/cli.py +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/models.py +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/prompts.py +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/render.py +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/scaffold.py +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/upgrader.py +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/src/claude_kit/validator.py +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/CLAUDE.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/CLAUDE.stack.md.tmpl +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/CONTINUITY.template.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/README.claude-sdlc.md.tmpl +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/MEMORY.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/api/.gitkeep +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/architecture/.gitkeep +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/debugging/.gitkeep +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/gotchas/.gitkeep +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/patterns/.gitkeep +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/agent-memory/performance/.gitkeep +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/artifacts/adr.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/artifacts/feature-spec.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/artifacts/release-plan.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/artifacts/runbook.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/artifacts/security-review.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/artifacts/test-plan.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/README.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/agents/data-workflow-agent.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/agents/founder-prototype-agent.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/agents/internal-tools-builder.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/agents/pm-copilot.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/agents/support-ticket-engineer.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/devops-and-release/README.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/devops-and-release/pack.yaml +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/engineering-core/README.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/engineering-core/pack.yaml +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/non-engineer-builder/README.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/onboarding-and-docs/README.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/product-to-code/README.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/product-to-code/pack.yaml +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/quality-and-review/README.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/quality-and-review/pack.yaml +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/security-and-compliance/README.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/ai-working-agreement.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/ambiguity-resolution.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/branch-and-pr-policy.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/compliance-policy.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/non-engineer-safe-coding.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/pii-policy.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/production-data-policy.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/prompt-to-task-conversion.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/prototype-boundaries.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/rules/secrets-policy.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/settings.json +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
- {claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/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.11.2",
|
|
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.11.2",
|
|
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,149 @@ 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.11.2] — 2026-06-15
|
|
8
|
+
|
|
9
|
+
A field review of **thirteen** more external collections — marketplaces, awesome-lists, subagent
|
|
10
|
+
packs, and hook/config repos — run through the same adversarial map→verify pass against the actual
|
|
11
|
+
kit files. Most are *distribution channels* (no copyable content) or *stack-specific* role packs that
|
|
12
|
+
would violate the agnostic core. Crucially, grounding the strongest candidates against the real hook
|
|
13
|
+
registry showed the kit **already** ships destructive-command blocking (`guard-rm-rf`,
|
|
14
|
+
`guard-push-main`), secret protection (`protect-secrets`, `guard-commit-secrets`), and skill
|
|
15
|
+
auto-routing (`skill-routing`) — refuting the headline ideas. Exactly **one** genuine gap survived.
|
|
16
|
+
Reviewed: [anthropics/claude-plugins-official](https://github.com/anthropics/claude-code) ·
|
|
17
|
+
claude-plugins-community · [hesreallyhim/awesome-claude-code](https://github.com/hesreallyhim/awesome-claude-code) ·
|
|
18
|
+
ccplugins/awesome-claude-code-plugins · rohitg00/awesome-claude-code-toolkit ·
|
|
19
|
+
[VoltAgent/awesome-claude-code-subagents](https://github.com/VoltAgent/awesome-claude-code-subagents) ·
|
|
20
|
+
[0xfurai/claude-code-subagents](https://github.com/0xfurai/claude-code-subagents) ·
|
|
21
|
+
[disler/claude-code-hooks-mastery](https://github.com/disler/claude-code-hooks-mastery) ·
|
|
22
|
+
yurukusa/claude-code-hooks (cc-safe-setup) · alirezarezvani/claude-skills ·
|
|
23
|
+
eddiemessiah/config-claude-code · ChrisWiles/claude-code-showcase.
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
- **`hooks/scripts/guard-destructive-git.sh`** + the `guard-destructive-git` hook (PreToolUse·Bash,
|
|
27
|
+
`standard`→`enterprise`; absent in `lean`). A hard **block** (exit 2) for the git commands that
|
|
28
|
+
irreversibly destroy *uncommitted* work — `git reset --hard`, `git clean -f`, and worktree-wide
|
|
29
|
+
discards (`git checkout/restore .`) — each message pointing at the reversible alternative
|
|
30
|
+
(`git stash`). This completes the `guard-rm-rf` / `guard-push-main` destructive-command family with
|
|
31
|
+
the single most common irreversible agent mistake: nuking its own output. A *warn* would be theatre
|
|
32
|
+
here (the command would still run and the work would be gone), so this is a guard, consistent with
|
|
33
|
+
`guard-rm-rf`. Scope is deliberately git-only and conservative — no false positives on
|
|
34
|
+
`git clean -n`, branch checkouts, or single-file restores; fail-open without `jq`. (+2 tests, 78.)
|
|
35
|
+
|
|
36
|
+
### Not adopted (deliberately, per the assessment)
|
|
37
|
+
- **Marketplaces** (anthropics official/community) — Apache-2.0 *distribution* manifests, not content;
|
|
38
|
+
claude-kit already ships its own `.claude-plugin/marketplace.json`. Nothing to copy.
|
|
39
|
+
- **Awesome-lists** (hesreallyhim, ccplugins, rohitg00) — curated discovery indexes; no installable
|
|
40
|
+
components of their own.
|
|
41
|
+
- **Subagent packs** (VoltAgent 154+, 0xfurai 100+; MIT) — overwhelmingly language/framework
|
|
42
|
+
specialists (violate the stack-agnostic core) or roles the kit already has; `api-designer`→
|
|
43
|
+
`technical-architect`/`api-and-interface-design`, `chaos-engineer`→`incident-responder`+`load-testing`,
|
|
44
|
+
`penetration-tester`→`security-reviewer`/`owasp-reviewer`/`threat-model`, `product-manager`→ the org
|
|
45
|
+
`pm-copilot` persona + `interview-me`/`idea-refine`. No genuine stack-agnostic SDLC role gap.
|
|
46
|
+
- **disler/claude-code-hooks-mastery** (no licence) — its destructive-command guard and skill-suggestion
|
|
47
|
+
ideas are already covered (`guard-rm-rf`/`guard-push-main`, `skill-routing`); lifecycle hooks
|
|
48
|
+
(SessionEnd/PreCompact continuity persistence) are covered by the continuity rule + `load-continuity`
|
|
49
|
+
+ the SessionStart:compact reload. The one residual — git work-loss blocking — became the adoption above.
|
|
50
|
+
- **yurukusa/cc-safe-setup** (MIT) — its **database-wipe** guard (`migrate reset`/`drop database`) was
|
|
51
|
+
considered and **rejected as over-reach**: DB resets are legitimate in local dev and a hook can't tell
|
|
52
|
+
dev from prod, so a block would break normal workflows and a warn would be theatre. DB risk stays
|
|
53
|
+
governed by `risk-classification.md` (production-data/migrations → high/restricted) + `warn-sensitive-files`
|
|
54
|
+
on migration edits.
|
|
55
|
+
- **alirezarezvani/claude-skills** — a codebase-onboarding skill duplicates `context-engineering` +
|
|
56
|
+
`source-driven-development` (+ the org `repo-onboarding` skill).
|
|
57
|
+
- **eddiemessiah/config-claude-code, ChrisWiles/claude-code-showcase** (MIT) — personal config
|
|
58
|
+
collections; the transferable ideas (tool-budget hygiene → `agent-guardrails`§3/`tool-design`/
|
|
59
|
+
`context-engineering`; skill auto-suggestion → `skill-routing`; scheduled-maintenance CI → out of
|
|
60
|
+
scope for a config-only kit, covered by `ci-cd-and-automation`/`devops-engineer`) are already covered.
|
|
61
|
+
|
|
62
|
+
## [0.11.1] — 2026-06-15
|
|
63
|
+
|
|
64
|
+
A field review of **seven** external projects, each run through the same adversarial map→verify pass
|
|
65
|
+
(read the source *and* the actual kit files; adopt only genuine, non-duplicative, config-only,
|
|
66
|
+
stack-agnostic, IP-safe gaps). The result is deliberately tiny: across all seven, exactly **one** real
|
|
67
|
+
gap survived — everything else is already covered, runtime-only, stack-specific, out of SDLC scope, or
|
|
68
|
+
IP-unsafe to copy. Reviewed: [obra/superpowers](https://github.com/obra/superpowers),
|
|
69
|
+
[wshobson/agents](https://github.com/wshobson/agents),
|
|
70
|
+
[anthropics/skills](https://github.com/anthropics/skills),
|
|
71
|
+
[karpathy/autoresearch](https://github.com/karpathy/autoresearch),
|
|
72
|
+
[browser-use](https://github.com/browser-use/browser-use),
|
|
73
|
+
[x1xhlol/system-prompts-and-models-of-ai-tools](https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools),
|
|
74
|
+
and [langgenius/dify](https://github.com/langgenius/dify).
|
|
75
|
+
|
|
76
|
+
### Changed
|
|
77
|
+
- **`rules/testing.md`** — the "Async/Event-Loop Systems" guidance gains a **condition-based waiting**
|
|
78
|
+
rule (distilled from superpowers' `condition-based-waiting`, MIT, re-expressed in original,
|
|
79
|
+
stack-agnostic words): never wait on a fixed delay/sleep, poll for the observable condition instead
|
|
80
|
+
(framework waiter or a small `wait_for(condition, timeout)`), and avoid the three flakiness traps
|
|
81
|
+
(no timeout, interval too tight, stale reads). The section previously only said "mock I/O, use
|
|
82
|
+
async/await" — it never addressed timing-dependent test flakiness.
|
|
83
|
+
|
|
84
|
+
### Not adopted (deliberately, per the assessment)
|
|
85
|
+
- **superpowers** — 14 skills, ~all duplicate existing kit skills (TDD, `systematic-debugging`→
|
|
86
|
+
`debugging-and-error-recovery`, `brainstorming`→`idea-refine`/`doubt-driven-development`/`interview-me`,
|
|
87
|
+
`writing-plans`→`planning-and-task-breakdown`, `executing-plans`→`execute`, `requesting`/`receiving-code-review`→
|
|
88
|
+
`code-review-and-quality`, `using-git-worktrees`/`finishing-a-development-branch`→`git-workflow-and-versioning`/
|
|
89
|
+
`shipping-and-launch`/`pr-raiser`, `verification-before-completion`→`rarv-cycle`+`mandatory-workflow`,
|
|
90
|
+
`dispatching-parallel-agents`→`orchestrator`, `writing-skills`→`using-agent-skills`). Its
|
|
91
|
+
`testing-anti-patterns` was refuted as a near-duplicate of the TDD skill's existing anti-pattern table.
|
|
92
|
+
- **wshobson/agents** — almost entirely language/framework specialists (violate the stack-agnostic core)
|
|
93
|
+
or roles the kit already has (`code-reviewer`, `security-auditor`, `incident-responder`,
|
|
94
|
+
`observability-engineer`, `performance-engineer`, `debugger`, `docs-architect`, `architect-reviewer`,
|
|
95
|
+
database/devops roles), plus out-of-SDLC-scope domains (SEO, business, data-science). No general gap.
|
|
96
|
+
- **anthropics/skills** — document skills are source-available (not open) and out of scope; the example
|
|
97
|
+
skills are out of scope (art/design/comms) or duplicative (`skill-creator`→`using-agent-skills`,
|
|
98
|
+
`frontend-design`→`frontend-ui-engineering`). The `SKILL.md` `name`+`description` convention is already followed.
|
|
99
|
+
- **karpathy/autoresearch** — the closed-loop / single-metric / fixed-budget principles are covered by
|
|
100
|
+
`evals` + `goal-setting-and-monitoring`; the ML-training loop itself is stack-specific. "Iterate the
|
|
101
|
+
instructions, not the code" is what the kit already *is* (config-only).
|
|
102
|
+
- **browser-use** — a runtime library; browser automation is already covered by the opt-in `playwright`
|
|
103
|
+
MCP entry + `browser-testing-with-devtools`/`playwright-verification`. Its "treat DOM/console/network
|
|
104
|
+
as untrusted" guidance is already a verbatim "Security Boundaries" section in `browser-testing-with-devtools`.
|
|
105
|
+
- **x1xhlol/system-prompts** — GPL-3.0 archive of prompts extracted from proprietary tools (double IP
|
|
106
|
+
hazard: copyleft + unresolved vendor rights). Its generic principles (plan-first, tool discipline,
|
|
107
|
+
minimal diffs, verification, concise comms, refusal/secret-safety) are already in `reasoning-techniques`,
|
|
108
|
+
`tool-design`, `mandatory-workflow`, `agent-guardrails`, `human-in-the-loop`, and `code-review-and-quality`.
|
|
109
|
+
Nothing was copied.
|
|
110
|
+
- **langgenius/dify** — a runtime platform (Apache-2.0 *with additional conditions*); its principles
|
|
111
|
+
(ReAct/function-calling agents, inspectable workflow steps, RAG stages, prompt-management feedback)
|
|
112
|
+
are covered by `reasoning-techniques`, `tool-design`, `context-engineering`, `evals`, and `devops-observability`.
|
|
113
|
+
|
|
114
|
+
## [0.11.0] — 2026-06-15
|
|
115
|
+
|
|
116
|
+
Distils a field review of [repowise](https://github.com/repowise-dev/repowise) (a runtime
|
|
117
|
+
codebase-intelligence engine: dependency graph, git analytics, LLM wiki, code-health biomarkers,
|
|
118
|
+
change-risk, dead code). An adversarial map→verify pass over six candidates found that repowise is
|
|
119
|
+
overwhelmingly a **runtime product** whose config-equivalents claude-kit already ships — so the
|
|
120
|
+
honest, reuse-first result is small: one genuine kit-owned methodology gap and one sanctioned,
|
|
121
|
+
opt-in external-tool reference. No application code, no Docker, nothing bundled.
|
|
122
|
+
|
|
123
|
+
### Added
|
|
124
|
+
- **`catalog/mcp.yaml`** gains an **opt-in** `repowise` MCP server (codebase intelligence: hotspots,
|
|
125
|
+
change-risk, co-change coupling, dead code). It is **only** written into `.mcp.json` when explicitly
|
|
126
|
+
selected at init — the kit *references* repowise, never bundles it. The label flags that it is
|
|
127
|
+
**AGPL-3.0** and requires installing it separately (`pip install repowise`) and indexing the repo
|
|
128
|
+
once (`repowise init`); the repo path is supplied via the `${REPOWISE_PROJECT_ROOT}` env placeholder
|
|
129
|
+
(same pattern as postgres's `${DATABASE_URL}`), so this is pure catalog data with no resolver change.
|
|
130
|
+
|
|
131
|
+
### Changed
|
|
132
|
+
- **`skills/code-review-and-quality`** gains a **"Where to Focus: Change Hotspots & Coupling"** section:
|
|
133
|
+
a tool-agnostic, `git log`-only technique for spending review attention where defects cluster —
|
|
134
|
+
churn × complexity hotspots, co-change coupling (hidden dependencies), and single-owner/bus-factor
|
|
135
|
+
files. It notes that a codebase-intelligence MCP (e.g. the optional repowise server) provides the
|
|
136
|
+
same signals precomputed via `get_risk`/`get_health`, but always as **advisory input, never a
|
|
137
|
+
blocking gate**. A matching checklist item was added.
|
|
138
|
+
|
|
139
|
+
### Not done (deliberately, per the assessment)
|
|
140
|
+
- repowise's engine itself — dependency graph, dashboard (`repowise serve`), deterministic PR bot,
|
|
141
|
+
LLM wiki/RAG, the 25 code-health biomarkers — is runtime and **cannot** be config. Its
|
|
142
|
+
config-equivalents already exist and were **not** duplicated: dead-code hygiene
|
|
143
|
+
(`over-engineering-review` / `code-simplification` / `code-review-and-quality` / `mandatory-workflow`),
|
|
144
|
+
noisy-output compression a.k.a. "distill" (`tool-design` rule + `context-engineering` skill),
|
|
145
|
+
read-an-overview-first (`context-engineering` / `source-driven-development`), ADRs
|
|
146
|
+
(`documentation-and-adrs`), commit provenance (`git-workflow-and-versioning`), and auto-generated
|
|
147
|
+
project instructions (`templates/CLAUDE.md`). No new rule/agent/skill/gate (the hotspot technique is
|
|
148
|
+
advisory, so it enriches a profile-gated skill rather than becoming a mandatory rule).
|
|
149
|
+
|
|
7
150
|
## [0.10.0] — 2026-06-15
|
|
8
151
|
|
|
9
152
|
Adds **LLM / AI application-security** guidance distilled from a field review of
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-code-kit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.2
|
|
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
|
|
@@ -52,3 +52,14 @@ servers:
|
|
|
52
52
|
config:
|
|
53
53
|
type: http
|
|
54
54
|
url: "https://mcp.context7.com/mcp"
|
|
55
|
+
# Repowise (github.com/repowise-dev/repowise) — optional codebase-intelligence engine exposing an
|
|
56
|
+
# MCP server: deterministic hotspots (churn × complexity), change-risk, co-change coupling, dead
|
|
57
|
+
# code, and a dependency graph. NOT bundled (claude-kit only references it): it is AGPL-3.0, so
|
|
58
|
+
# install it separately (`pip install repowise`) and index the repo once (`repowise init`) before
|
|
59
|
+
# first use. Point it at the repo via the env var below (e.g. `export REPOWISE_PROJECT_ROOT=$(pwd)`).
|
|
60
|
+
repowise:
|
|
61
|
+
label: "Repowise codebase intelligence (AGPL-3.0; needs `pip install repowise` + `repowise init`)"
|
|
62
|
+
config:
|
|
63
|
+
type: stdio
|
|
64
|
+
command: repowise
|
|
65
|
+
args: ["mcp", "${REPOWISE_PROJECT_ROOT}", "--transport", "stdio"]
|
|
@@ -83,7 +83,7 @@ profiles:
|
|
|
83
83
|
- simplification-debt
|
|
84
84
|
- task-tracker-sync
|
|
85
85
|
gates: [spec-complete, em-approved, code-review, build-green, test-coverage, security-clear]
|
|
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, warn-llm-io, lint-fix, type-check]
|
|
86
|
+
hooks: [load-continuity, load-learnings, load-autonomy, skill-routing, learning-detection, guard-rm-rf, guard-push-main, guard-destructive-git, protect-secrets, guard-commit-secrets, warn-shared-modules, warn-llm-io, lint-fix, type-check]
|
|
87
87
|
|
|
88
88
|
enterprise:
|
|
89
89
|
label: "Enterprise — adds DevOps, Observability, full audit + acceptance"
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"hooks": [
|
|
31
31
|
{ "type": "command", "command": "CMD=$(jq -r '.tool_input.command'); if echo \"$CMD\" | grep -qE 'rm[[:space:]]+-[^[:space:]]*r[^[:space:]]*f'; then echo 'BLOCKED: rm -rf is disabled by claude-kit. Move to trash or delete specific paths explicitly.' >&2; exit 2; fi" },
|
|
32
32
|
{ "type": "command", "command": "CMD=$(jq -r '.tool_input.command'); if echo \"$CMD\" | grep -qE 'git[[:space:]]+push.*[[:space:]:](main|master)([[:space:]]|$)'; then echo 'BLOCKED: refusing to push to main/master — use a feature branch and a PR.' >&2; exit 2; fi" },
|
|
33
|
+
{ "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/guard-destructive-git.sh\"" },
|
|
33
34
|
{ "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/scripts/guard-secrets.sh\"" }
|
|
34
35
|
]
|
|
35
36
|
},
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# PreToolUse(Bash): BLOCK git commands that irreversibly destroy *uncommitted* work —
|
|
3
|
+
# `git reset --hard`, `git clean -f`, and worktree-wide discards (`git checkout/restore .`).
|
|
4
|
+
#
|
|
5
|
+
# Why a guard (block, exit 2) and not a warn: a PreToolUse advisory here would be theatre — the
|
|
6
|
+
# command would still run and the work would already be gone. So this guard refuses and points at
|
|
7
|
+
# the reversible alternative (`git stash`), exactly like guard-rm-rf points at trash. It completes
|
|
8
|
+
# the guard-rm-rf / guard-push-main destructive-command family with the single most common
|
|
9
|
+
# irreversible agent mistake: nuking its own uncommitted output.
|
|
10
|
+
#
|
|
11
|
+
# Scope is deliberately git-only and conservative — no false positives on `git clean -n` (dry run),
|
|
12
|
+
# plain branch checkouts, or single-file restores. Database wipes (`migrate reset`, `drop database`)
|
|
13
|
+
# stay OUT on purpose: they are legitimate in local dev, so blocking them would be over-reach; they
|
|
14
|
+
# are governed by .claude/rules/risk-classification.md and warn-sensitive-files on migration edits.
|
|
15
|
+
#
|
|
16
|
+
# Degrades to a no-op (fail-open) without jq.
|
|
17
|
+
command -v jq >/dev/null 2>&1 || exit 0
|
|
18
|
+
CMD="$(jq -r '.tool_input.command // empty' 2>/dev/null || true)"
|
|
19
|
+
[ -z "$CMD" ] && exit 0
|
|
20
|
+
|
|
21
|
+
# 1. reset --hard : discards all uncommitted tracked changes
|
|
22
|
+
if printf '%s' "$CMD" | grep -qE 'git[[:space:]]+reset[[:space:]].*--hard'; then
|
|
23
|
+
echo "BLOCKED: 'git reset --hard' discards uncommitted work irreversibly. Run 'git stash' to set it aside (recoverable via 'git stash list'), or 'git stash && git stash drop' to discard deliberately." >&2
|
|
24
|
+
exit 2
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
# 2. clean -f / --force : permanently deletes untracked files
|
|
28
|
+
if printf '%s' "$CMD" | grep -qE 'git[[:space:]]+clean[[:space:]].*(-[a-zA-Z]*f|--force)'; then
|
|
29
|
+
echo "BLOCKED: 'git clean -f' permanently deletes untracked files. Preview with 'git clean -n' first; to keep them, 'git stash -u'." >&2
|
|
30
|
+
exit 2
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
# 3. checkout/restore of the whole worktree ('.') : discards every unstaged change at once
|
|
34
|
+
if printf '%s' "$CMD" | grep -qE 'git[[:space:]]+(checkout|restore)[[:space:]]+(.*[[:space:]])?\.([[:space:]]|$)'; then
|
|
35
|
+
echo "BLOCKED: 'git checkout/restore .' discards every unstaged change in the worktree. Run 'git stash' first to keep a recoverable copy (restore a single file by naming it instead of '.')." >&2
|
|
36
|
+
exit 2
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
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
|
+
version = "0.11.2"
|
|
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"
|
|
@@ -383,6 +383,16 @@ For systems with async I/O or event loops (Node.js, Python asyncio, Go goroutine
|
|
|
383
383
|
- Mock all I/O operations (database, HTTP, file system)
|
|
384
384
|
- Use the test framework's async support (`async/await` in tests)
|
|
385
385
|
- Never use blocking I/O in tests for async systems — mock it or use async equivalents
|
|
386
|
+
- **Wait on conditions, never on the clock.** A fixed delay ("sleep" to let the async work finish)
|
|
387
|
+
is the single biggest source of flaky tests — too short and it fails under load, too long and it
|
|
388
|
+
drags out the whole suite. Instead, **poll for the observable condition you actually care about**
|
|
389
|
+
(the value, state, or side effect) and continue the instant it holds:
|
|
390
|
+
- Use your framework's condition waiter — e.g. `waitFor` / `expect.poll` (JS), `Awaitility` (JVM),
|
|
391
|
+
`tenacity` or a polling fixture (Python), `Eventually` (Go) — or a small generic
|
|
392
|
+
`wait_for(condition, timeout)` that re-checks the live value on a short interval.
|
|
393
|
+
- Three mistakes that quietly re-introduce flakiness: (1) **no timeout** — the test hangs forever
|
|
394
|
+
instead of failing; (2) **interval too tight** — a busy-loop that pegs the CPU; (3) **stale
|
|
395
|
+
reads** — re-evaluate the live value on every poll, never assert against a snapshot captured once.
|
|
386
396
|
|
|
387
397
|
### Multi-Tenant/Authorization Systems
|
|
388
398
|
|
|
@@ -80,6 +80,21 @@ For detailed profiling and optimization, see `performance-optimization`. Does th
|
|
|
80
80
|
- Any missing pagination on list endpoints?
|
|
81
81
|
- Any large objects created in hot paths?
|
|
82
82
|
|
|
83
|
+
## Where to Focus: Change Hotspots & Coupling
|
|
84
|
+
|
|
85
|
+
You can't give every line equal attention — on a large change or an unfamiliar codebase, spend the most scrutiny where defects actually cluster. The project's own git history surfaces this for free, no special tooling required:
|
|
86
|
+
|
|
87
|
+
- **Hotspots (churn × complexity).** Files that change *often* **and** are *large/complex* carry the most risk. List the frequently-changed files and weight review toward the complex ones among them — a rarely-touched file is usually stable, while a hotspot edited in *this* change deserves extra correctness and test scrutiny.
|
|
88
|
+
```bash
|
|
89
|
+
# Most-churned files over the last 6 months — pair the top hits with their size/complexity
|
|
90
|
+
git log --since="6 months ago" --name-only --pretty=format: | sort | uniq -c | sort -rn | head -20
|
|
91
|
+
```
|
|
92
|
+
Use the project's own complexity tooling if it has one; file size is only a rough proxy for complexity.
|
|
93
|
+
- **Co-change coupling (hidden dependencies).** Files historically committed together often share an implicit contract. If this change touches one side of a known pair but not the other, ask whether the coupled file also needs updating — `git log` on a changed file reveals what usually moves with it.
|
|
94
|
+
- **Single-owner / bus-factor files.** Code with one dominant author has had fewer eyes. Treat changes there with extra care and prefer a second reviewer.
|
|
95
|
+
|
|
96
|
+
These are deterministic signals an agent can derive from `git log` alone. If a codebase-intelligence MCP server is configured (e.g. the optional **repowise** server in the catalog), its `get_risk` / `get_health` tools surface the same hotspot, coupling, and change-risk signals precomputed — use them when available, but treat the output as **advisory input to your judgment, never a blocking gate**.
|
|
97
|
+
|
|
83
98
|
## Change Sizing
|
|
84
99
|
|
|
85
100
|
Small, focused changes are easier to review, faster to merge, and safer to deploy. Target these sizes:
|
|
@@ -272,6 +287,7 @@ Part of code review is dependency review:
|
|
|
272
287
|
|
|
273
288
|
### Context
|
|
274
289
|
- [ ] I understand what this change does and why
|
|
290
|
+
- [ ] For a large/unfamiliar change, I focused review on the riskiest files (hotspots, coupled files)
|
|
275
291
|
|
|
276
292
|
### Correctness
|
|
277
293
|
- [ ] Change matches spec/task requirements
|
|
@@ -118,6 +118,12 @@ HOOK_REGISTRY: dict[str, dict[str, Any]] = {
|
|
|
118
118
|
"entry": {"type": "command", "command": _PUSH_GUARD},
|
|
119
119
|
"script": None,
|
|
120
120
|
},
|
|
121
|
+
"guard-destructive-git": {
|
|
122
|
+
"event": "PreToolUse",
|
|
123
|
+
"matcher": "Bash",
|
|
124
|
+
"entry": _script_entry("guard-destructive-git.sh"),
|
|
125
|
+
"script": "guard-destructive-git.sh",
|
|
126
|
+
},
|
|
121
127
|
"protect-secrets": {
|
|
122
128
|
"event": "PreToolUse",
|
|
123
129
|
"matcher": "Read",
|
|
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
|
|
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
|
{claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/_references/accessibility-checklist.md
RENAMED
|
File without changes
|
{claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/_references/orchestration-patterns.md
RENAMED
|
File without changes
|
{claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/_references/performance-checklist.md
RENAMED
|
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
|
{claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/browser-testing-with-devtools/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{claude_code_kit-0.10.0 → claude_code_kit-0.11.2}/skills/debugging-and-error-recovery/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|