claude-code-kit 0.26.1__tar.gz → 0.28.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.26.1 → claude_code_kit-0.28.0}/.claude-plugin/marketplace.json +1 -1
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/.claude-plugin/plugin.json +1 -1
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/CHANGELOG.md +45 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/PKG-INFO +19 -11
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/README.md +18 -10
- claude_code_kit-0.28.0/docs/capture-a-real-run.md +77 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/pyproject.toml +1 -1
- claude_code_kit-0.28.0/scripts/capture-sdlc-run.sh +161 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/scripts/check_docs_consistency.py +7 -2
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/src/claude_kit/__init__.py +1 -1
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/src/claude_kit/upgrader.py +8 -3
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/src/claude_kit/validator.py +50 -11
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/.gitignore +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/CLAUDE.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/CONTRIBUTING.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/LICENSE +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/acceptance-reviewer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/auditor.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/dependency-scanner.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/developer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/devils-advocate.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/devops-engineer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/e2e-tester.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/em-reviewer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/incident-responder.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/merge-reviewer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/observability-engineer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/orchestrator.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/owasp-reviewer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/policy-validator.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/pr-raiser.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/risk-classifier.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/sdlc-code-reviewer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/secret-scanner.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/security-reviewer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/senior-backend-dev.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/senior-frontend-dev.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/senior-tester.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/spec-doc-writer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/story-planner.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/technical-architect.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/tester.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/ui-designer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/agents/unit-tester.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/catalog/capture.yaml +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/catalog/mcp.yaml +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/catalog/org.yaml +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/catalog/profiles.yaml +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/catalog/stacks.yaml +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/commands/abort.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/commands/init.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/commands/sdlc.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/commands/status.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/docs/agentic-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/docs/agents.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/docs/architecture.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/docs/coverage-audit.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/docs/eval-harness.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/docs/org-capabilities.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/docs/stack-skills/GAP-ANALYSIS.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/docs/stack-skills/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/docs/stack-skills/REPO-INVENTORY.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/hooks.json +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/audit-log.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/capture-learnings.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/guard-destructive-git.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/guard-kubectl-delete.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/guard-secrets.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/lint-fix.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/load-autonomy.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/load-continuity.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/load-learnings.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/type-check.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/validate-frontmatter.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/validate-settings.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/warn-large-edits.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/warn-llm-io.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/warn-missing-tests.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/hooks/scripts/warn-shared-modules.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/agent-guardrails.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/agent-memory.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/agent-resilience.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/autonomy-levels.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/code-organization.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/continuity.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/design-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/devops-observability.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/documentation.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/evals.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/frontend-best-practices.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/goal-setting-and-monitoring.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/human-in-the-loop.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/linting-and-formatting.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/mandatory-workflow.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/model-tiers.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/quality-gates.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/rarv-cycle.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/reasoning-techniques.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/responsive-and-accessibility.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/risk-classification.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/testing.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/rules/tool-design.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/scripts/gen_hooks.py +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/scripts/init.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/_references/accessibility-checklist.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/_references/orchestration-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/_references/performance-checklist.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/_references/security-checklist.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/_references/testing-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/accessibility-review/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/alembic-migrations/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/alembic-migrations/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/alembic-migrations/references/alembic-setup-and-env.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/alembic-migrations/references/async-and-multitenant-migrations.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/alembic-migrations/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/alembic-migrations/references/troubleshooting-and-debugging.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/alembic-migrations/references/writing-migrations.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/anthropic-vertex-integration/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/anthropic-vertex-integration/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/anthropic-vertex-integration/references/generate-helpers-and-retry.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/anthropic-vertex-integration/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/anthropic-vertex-integration/references/vertex-client-and-auth.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/api-and-interface-design/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/api-integration/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/api-pagination-filtering-sorting/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/api-pagination-filtering-sorting/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/api-pagination-filtering-sorting/references/query-params-conventions.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/api-pagination-filtering-sorting/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/api-pagination-filtering-sorting/references/response-metadata.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/archive-sprint/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/async-python-patterns/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/async-python-patterns/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/async-python-patterns/references/async-boundaries.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/async-python-patterns/references/lifecycle-and-gather.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/async-python-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/auth-and-rbac/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/auth-and-rbac/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/auth-and-rbac/references/auth-dependencies.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/auth-and-rbac/references/rbac-and-permissions.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/auth-and-rbac/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/auth-and-rbac/references/security-hardening.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/auth-and-rbac/references/tokens-and-hashing.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/backend-repo-architecture/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/backend-repo-architecture/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/backend-repo-architecture/references/deployment-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/backend-repo-architecture/references/entrypoint-and-config.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/backend-repo-architecture/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/backend-repo-architecture/references/structure-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/backend-repo-architecture/references/troubleshooting.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/backlog/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/backlog/item-template.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/bug-hunt/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/code-review-and-quality/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/code-simplification/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/component-design/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/configargparse-yaml-env-layering/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/configargparse-yaml-env-layering/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/configargparse-yaml-env-layering/references/config-layering-anatomy.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/configargparse-yaml-env-layering/references/mode-dispatch-and-precedence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/configargparse-yaml-env-layering/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/consolidate-learnings/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/containerization-and-deployment/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/containerization-and-deployment/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/containerization-and-deployment/references/deployment-and-secrets.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/containerization-and-deployment/references/dockerfile-and-compose.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/containerization-and-deployment/references/entrypoint-and-modes.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/containerization-and-deployment/references/kerberos-kinit-bootstrap.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/containerization-and-deployment/references/makefile-dev-workflow.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/containerization-and-deployment/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/context-engineering/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/cron-and-scheduled-jobs/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/cron-and-scheduled-jobs/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/cron-and-scheduled-jobs/references/choosing-and-operations.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/cron-and-scheduled-jobs/references/kubernetes-cronjob.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/cron-and-scheduled-jobs/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/cron-and-scheduled-jobs/references/temporal-schedules.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/data-engineering-bigquery-gcs/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/data-engineering-bigquery-gcs/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/data-engineering-bigquery-gcs/references/bigquery-advanced-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/data-engineering-bigquery-gcs/references/bigquery-gcs-io.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/data-engineering-bigquery-gcs/references/medallion-architecture.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/data-engineering-bigquery-gcs/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/data-engineering-bigquery-gcs/references/temp-table-merge-pattern.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/decision/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/decision/adr-template.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/deprecation-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/design-patterns-and-conventions/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/design-patterns-and-conventions/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/design-patterns-and-conventions/references/anti-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/design-patterns-and-conventions/references/naming-and-layout.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/design-patterns-and-conventions/references/patterns-catalog.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/design-patterns-and-conventions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/design-patterns-and-conventions/references/testing-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/design-patterns-and-conventions/references/troubleshooting.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/docker-compose/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/docker-compose/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/docker-compose/references/compose-services-and-healthchecks.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/docker-compose/references/dev-vs-prod-variants.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/docker-compose/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/docker-shared/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/docker-shared/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/docker-shared/references/dockerignore-and-build-secrets.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/docker-shared/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/docker-shared/references/shared-base-images.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/docker-shared/references/shared-compose-fragments.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/dockerfile-backend/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/dockerfile-backend/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/dockerfile-backend/references/backend-dockerfile-anatomy.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/dockerfile-backend/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/dockerfile-backend/references/system-deps-and-caching.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/dockerfile-frontend/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/dockerfile-frontend/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/dockerfile-frontend/references/build-args-and-nginx.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/dockerfile-frontend/references/frontend-dockerfile-anatomy.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/dockerfile-frontend/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/documentation-and-adrs/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/doubt-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/edge-to-service-trust-boundary/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/edge-to-service-trust-boundary/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/edge-to-service-trust-boundary/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/edge-to-service-trust-boundary/references/trust-contract.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/execute/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/fastapi-service-patterns/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/fastapi-service-patterns/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/fastapi-service-patterns/references/api-versioning.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/fastapi-service-patterns/references/app-factory-and-lifespan.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/fastapi-service-patterns/references/custom-route-and-middleware.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/fastapi-service-patterns/references/dependency-injection.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/fastapi-service-patterns/references/model-and-serialization-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/fastapi-service-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/file-export-and-reporting/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/file-export-and-reporting/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/file-export-and-reporting/references/excel-generation.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/file-export-and-reporting/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/file-export-and-reporting/references/streaming-and-downloads.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/frontend-repo-architecture/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/frontend-repo-architecture/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/frontend-repo-architecture/references/api-layer-and-types.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/frontend-repo-architecture/references/divergences.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/frontend-repo-architecture/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/frontend-repo-architecture/references/structure-and-state.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/frontend-repo-architecture/references/testing-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/gcp-cloud-run-github-actions/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/gcp-cloud-run-github-actions/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/gcp-cloud-run-github-actions/references/cloud-run-deploy.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/gcp-cloud-run-github-actions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/gcp-cloud-run-github-actions/references/workflow-structure.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/gcs-file-storage-patterns/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/gcs-file-storage-patterns/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/gcs-file-storage-patterns/references/client-and-uploads.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/gcs-file-storage-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/gcs-file-storage-patterns/references/signed-urls-and-reads.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/grafana-dashboards-and-alerts/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/grafana-dashboards-and-alerts/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/grafana-dashboards-and-alerts/references/dashboard-json-and-templating.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/grafana-dashboards-and-alerts/references/provisioning-and-organization.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/grafana-dashboards-and-alerts/references/red-metrics-queries.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/grafana-dashboards-and-alerts/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/grafana-dashboards-and-alerts/references/unified-alerting.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/graphql-patterns/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/graphql-patterns/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/graphql-patterns/references/apollo-client-frontend.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/graphql-patterns/references/apollo-client-setup.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/graphql-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/graphql-patterns/references/strawberry-backend.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/graphql-patterns/references/when-to-use-graphql.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/idea-refine/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/idea-refine/examples.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/idea-refine/frameworks.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/idea-refine/refinement-criteria.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/incident-postmortem/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/incremental-implementation/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/interview-me/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kafka-config-driven/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kafka-config-driven/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kafka-config-driven/references/config-and-sasl-kerberos.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kafka-config-driven/references/consumer-producer-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kafka-config-driven/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kafka-config-driven/references/troubleshooting-and-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kubectl-operations/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kubectl-operations/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kubectl-operations/references/command-reference.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kubectl-operations/references/context-namespace-rbac.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kubectl-operations/references/debugging-playbooks.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kubectl-operations/references/output-formats-and-selectors.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kubectl-operations/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kubernetes-workload-hardening/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kubernetes-workload-hardening/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kubernetes-workload-hardening/references/networkpolicy-and-rbac.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kubernetes-workload-hardening/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/kubernetes-workload-hardening/references/securitycontext-and-podsecurity.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/langfuse-llm-tracing/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/langfuse-llm-tracing/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/langfuse-llm-tracing/references/langfuse-client-and-tracing.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/langfuse-llm-tracing/references/python-and-typescript.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/langfuse-llm-tracing/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/load-testing/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/manual-test/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/modernization-and-migration/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/modernization-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/modernization-and-migration/references/migration-best-practices.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/modernization-and-migration/references/pydantic-v1-to-v2.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/modernization-and-migration/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/modernization-and-migration/references/shared-internal-library.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/modernization-and-migration/references/sqlalchemy-14-to-20.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/multi-tenancy-patterns/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/multi-tenancy-patterns/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/multi-tenancy-patterns/references/caching-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/multi-tenancy-patterns/references/isolation-strategies.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/multi-tenancy-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/multi-tenancy-patterns/references/tenant-resolution.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/node-express-service/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/node-express-service/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/node-express-service/references/app-factory-and-mode-dispatch.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/node-express-service/references/config-and-module-alias.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/node-express-service/references/middleware-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/node-express-service/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/node-objection-knex/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/node-objection-knex/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/node-objection-knex/references/migrations-and-validation.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/node-objection-knex/references/objection-model-and-knex.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/node-objection-knex/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/notifications-and-messaging/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/notifications-and-messaging/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/notifications-and-messaging/references/provider-abstraction.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/notifications-and-messaging/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/notifications-and-messaging/references/templates-and-fallback.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/observability-and-logging/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/observability-and-logging/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/observability-and-logging/references/health-and-readiness.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/observability-and-logging/references/logging-and-structlog.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/observability-and-logging/references/outbound-metrics-and-multi-mode.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/observability-and-logging/references/pii-redaction.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/observability-and-logging/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/observability-and-logging/references/tracing-and-metrics.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/over-engineering-review/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/performance-optimization/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/playwright-verification/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/pydantic-schema-patterns/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/pydantic-schema-patterns/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/pydantic-schema-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/pydantic-schema-patterns/references/settings-and-validation.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/pydantic-schema-patterns/references/troubleshooting-and-common-errors.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/pydantic-schema-patterns/references/v1-vs-v2.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/python-dao-and-database/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/python-dao-and-database/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/python-dao-and-database/references/advanced-query-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/python-dao-and-database/references/basedao-and-sessions.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/python-dao-and-database/references/mongodb-advanced.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/python-dao-and-database/references/other-db-mongodb.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/python-dao-and-database/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/python-dao-and-database/references/sqlalchemy-1x-vs-2x.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/radix-tailwind-component-patterns/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/radix-tailwind-component-patterns/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/radix-tailwind-component-patterns/references/radix-primitives-and-variants.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/radix-tailwind-component-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/radix-tailwind-component-patterns/references/tailwind-theme-and-cn.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/react-hook-form-zod-patterns/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/react-hook-form-zod-patterns/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/react-hook-form-zod-patterns/references/form-setup-and-zod.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/react-hook-form-zod-patterns/references/multi-step-and-modes.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/react-hook-form-zod-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/redis-caching-patterns/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/redis-caching-patterns/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/redis-caching-patterns/references/cache-manager-and-fallback.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/redis-caching-patterns/references/namespacing-and-invalidation.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/redis-caching-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/refresh-docs/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/remember/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/scope/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/scope/scope-template.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/sdlc/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/security-and-hardening/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/security-verification/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/shannon-ai-pentest/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/shannon-ai-pentest/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/shannon-ai-pentest/references/operating-guide.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/shipping-and-launch/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/simplification-debt/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/smoke-test/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/source-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/spec-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/sprint/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/sprint/sprint-template.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/tanstack-react-query-patterns/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/tanstack-react-query-patterns/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/tanstack-react-query-patterns/references/mutations-and-cache.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/tanstack-react-query-patterns/references/query-keys-and-hooks.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/tanstack-react-query-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/task-tracker-sync/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/temporal-config-driven/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/temporal-config-driven/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/temporal-config-driven/references/config-and-retry-idempotency.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/temporal-config-driven/references/dag-dsl-interpreter.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/temporal-config-driven/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/temporal-config-driven/references/schedule-registration.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/temporal-config-driven/references/schedules-and-cron.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/temporal-config-driven/references/worker-workflow-activity-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/test-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/test-plan-review/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/testing-conventions/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/testing-conventions/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/testing-conventions/references/async-and-mocking.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/testing-conventions/references/coverage-gap-and-recommendations.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/testing-conventions/references/github-actions-test-orchestration.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/testing-conventions/references/pytest-and-fixtures.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/testing-conventions/references/pytest-asyncio-modes.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/testing-conventions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/testing-conventions/references/security-regression-tests.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/testing-conventions/references/vitest-frontend-testing.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/threat-model/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/triage/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/ui-ux-design/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/unit-test/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/using-agent-skills/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/vitest-rtl-msw-patterns/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/vitest-rtl-msw-patterns/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/vitest-rtl-msw-patterns/references/msw-and-contract-tests.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/vitest-rtl-msw-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/vitest-rtl-msw-patterns/references/vitest-rtl-setup.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/zap-vapt-scanning/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/zap-vapt-scanning/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/zap-vapt-scanning/references/operating-guide.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/zap-vapt-scanning/scripts/endpoints.example.txt +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/zap-vapt-scanning/scripts/requirements.txt +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/zap-vapt-scanning/scripts/zap_vapt.py +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/zustand-state-patterns/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/zustand-state-patterns/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/zustand-state-patterns/references/async-polling-and-persistence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/zustand-state-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/skills/zustand-state-patterns/references/store-structure-and-selectors.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/src/claude_kit/__main__.py +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/src/claude_kit/catalog.py +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/src/claude_kit/cli.py +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/src/claude_kit/hooks.py +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/src/claude_kit/models.py +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/src/claude_kit/pipeline.py +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/src/claude_kit/prompts.py +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/src/claude_kit/render.py +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/src/claude_kit/scaffold.py +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/CLAUDE.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/CLAUDE.stack.md.tmpl +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/CONTINUITY.template.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/README.claude-sdlc.md.tmpl +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/agent-memory/MEMORY.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/agent-memory/api/.gitkeep +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/agent-memory/architecture/.gitkeep +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/agent-memory/debugging/.gitkeep +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/agent-memory/patterns/.gitkeep +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/agent-memory/performance/.gitkeep +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/artifacts/adr.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/artifacts/api-change-report.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/artifacts/feature-spec.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/artifacts/release-plan.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/artifacts/runbook.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/artifacts/security-review.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/artifacts/test-plan.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/agents/data-workflow-agent.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/agents/founder-prototype-agent.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/agents/internal-tools-builder.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/agents/pm-copilot.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/agents/staff-pm-reviewer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/agents/support-ticket-engineer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/devops-and-release/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/engineering-core/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/product-to-code/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/quality-and-review/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/security-and-compliance/README.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/rules/ai-working-agreement.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/rules/ambiguity-resolution.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/rules/compliance-policy.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/rules/pii-policy.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/rules/production-data-policy.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/rules/prototype-boundaries.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/rules/secrets-policy.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/skills/review-scope/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/skills/review-sprint/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/skills/review-sprint-plan/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/org/skills/review-ux-flow/SKILL.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/settings.json +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/backend/go/net-http/rules/go-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/frontend/react/rules/design-system-compliance.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/frontend/react/rules/mobile-design-guidelines.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/frontend/react/rules/react-patterns.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/frontend/react/rules/ui-design-system.md +0 -0
- {claude_code_kit-0.26.1 → claude_code_kit-0.28.0}/templates/stacks/frontend/react/rules/ux-patterns.md +0 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"name": "claude-kit",
|
|
11
11
|
"source": "./",
|
|
12
12
|
"description": "Cookiecutter-style scaffolder for an autonomous Claude Code SDLC config (no app code, no Docker): install CLAUDE.md + .claude/ (rules, the profile's agents/skills, hooks, artifact templates) + optional .mcp.json, then run /sdlc to drive spec → review → build → test → security → ship through profile-aware quality gates, working memory, and a self-improving learnings loop.",
|
|
13
|
-
"version": "0.
|
|
13
|
+
"version": "0.28.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.28.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,51 @@ 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.28.0] — 2026-06-24
|
|
8
|
+
|
|
9
|
+
**Positioning & onboarding pass (docs): surface the anti-fabrication moat, compare against native
|
|
10
|
+
subagents, and ship a real-run capture harness. No behavior change.**
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- **`scripts/capture-sdlc-run.sh` + [`docs/capture-a-real-run.md`](docs/capture-a-real-run.md).** A
|
|
14
|
+
read-only helper that bundles one completed `/sdlc` run — the spec (`docs/specs/`), the gitignored
|
|
15
|
+
gate state (`.claude/state/pipeline-snapshot.json`), the verdict log (`.claude/CONTINUITY.md`), and
|
|
16
|
+
the diff vs your base branch — into one publishable folder. It runs a generic secret scan (lists
|
|
17
|
+
matching **file names only**, never values) and writes a manual `REDACTION-CHECKLIST.md`, so a real
|
|
18
|
+
run can become a worked example without hand-collecting files.
|
|
19
|
+
- **"Native Claude Code subagents / Agent Teams" comparison row** in the README — the alternative
|
|
20
|
+
every Claude Code user weighs first. Honest framing: native gives you the agents; claude-kit adds
|
|
21
|
+
the *governance* (sequenced pipeline, owned gates, evidence requirement, `devils-advocate`, resume).
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
- **The anti-fabrication evidence requirement is now the headline trust idea.** "How it works" leads
|
|
25
|
+
with *"Evidence or it didn't happen"* — every gate verdict must cite the command + captured output
|
|
26
|
+
(or `file:line`), and an invented/assumed/partial-output verdict is an auto-Critical finding
|
|
27
|
+
(`rules/quality-gates.md` §2.5). The top-of-README tagline now states gates pass only on real,
|
|
28
|
+
cited output. (The rule itself is unchanged; it was previously only implied via RARV.)
|
|
29
|
+
|
|
30
|
+
## [0.27.0] — 2026-06-24
|
|
31
|
+
|
|
32
|
+
**Objective fixes from a product review: honest skill counts (with a guard), drift-aware
|
|
33
|
+
`doctor`/`validate`, and a distinct corrupt-vs-missing manifest signal.**
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
- **`validate`/`doctor` now surface kit-owned drift.** They already verified that every tracked file
|
|
37
|
+
is *present*; they now also compare each kit/overlay file's live SHA-256 against the install
|
|
38
|
+
manifest and emit `N kit-owned file(s) modified since install … run claude-kit diff` (a WARN, never
|
|
39
|
+
a FAIL — edits to user-editable files are not flagged). The manifest data already existed; only
|
|
40
|
+
`diff`/`upgrade` consulted it before.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
- **Honest skill counts.** The README advertised "51 skills" — the count of *core* skills only, while
|
|
44
|
+
the repo ships **96** (51 stack-agnostic core + 45 stack-collection). All three occurrences now read
|
|
45
|
+
"96 … (51 core + 45 stack-collection)", and `check_docs_consistency.py` pins the headline total
|
|
46
|
+
**and** both halves to the filesystem so the number can't silently drift again.
|
|
47
|
+
- **Corrupt vs missing `init-options.json` are now distinct signals.** A missing manifest stays a WARN
|
|
48
|
+
("validate/upgrade limited"); a *corrupt* one is a FAIL ("unreadable … repair the JSON or re-run
|
|
49
|
+
`claude-kit init --force`") in `validate`, `doctor`, `diff`, and `upgrade` — matching how the kit
|
|
50
|
+
already reports a malformed `settings.json`/`.mcp.json`.
|
|
51
|
+
|
|
7
52
|
## [0.26.1] — 2026-06-24
|
|
8
53
|
|
|
9
54
|
**A second strict practical review (installed and exercised end-to-end) surfaced seven papercuts on
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-code-kit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.28.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
|
|
@@ -34,8 +34,9 @@ Description-Content-Type: text/markdown
|
|
|
34
34
|
|
|
35
35
|
**A Cookiecutter-style scaffolder for an autonomous SDLC (software-delivery lifecycle) inside [Claude Code](https://www.claude.com/product/claude-code).**
|
|
36
36
|
|
|
37
|
-
One command turns a one-line request into reviewed, tested, secured, shippable code —
|
|
38
|
-
|
|
37
|
+
One command turns a one-line request into reviewed, tested, secured, shippable code — with a
|
|
38
|
+
quality gate between every phase. Each gate passes only on *real, cited command output* — never an
|
|
39
|
+
assumed or fabricated "it works." **No application code. No Docker. Configuration only.**
|
|
39
40
|
|
|
40
41
|
[](https://pypi.org/project/claude-code-kit/)
|
|
41
42
|
[](https://pypi.org/project/claude-code-kit/)
|
|
@@ -81,7 +82,7 @@ Quick start) for the full breakdown of any row.
|
|
|
81
82
|
| 🔁 **Pipeline & quality gates** | Gate-enforced progression (zero open Critical/High/Medium to advance), per-profile gate sets, a fast-track for small changes, and an anti-sycophancy `devils-advocate` pass |
|
|
82
83
|
| 🤖 **Agent roster** | **28** tiered agents + per-database overlays + **6** org personas, led by an Orchestrator that never writes code |
|
|
83
84
|
| 🔍 **Self-verification & review** | RARV green-Verify (real commands, not imagined), blind parallel review, and read-only risk classification |
|
|
84
|
-
| 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **
|
|
85
|
+
| 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **96** context-activated skills (51 core + 45 stack-collection) |
|
|
85
86
|
| 🧱 **Stacks & overlays** | Stack-agnostic core + **10** overlay rule sets (React · FastAPI · Go · Postgres · Mongo) wired to your exact commands, incl. a full React design system |
|
|
86
87
|
| 🎚️ **Profiles, scopes & org** | **3** rigor profiles · **3** scopes · **5** autonomy levels · **7** org packs + **10** policy rules |
|
|
87
88
|
| 🧠 **Memory & learning** | Working memory across context compaction + a cost-aware learnings loop (`capture_mode`) so the same mistake isn't repeated |
|
|
@@ -258,7 +259,7 @@ need.
|
|
|
258
259
|
- **23 stack-agnostic core rules** in [`rules/`](rules/) — `mandatory-workflow`, `quality-gates`,
|
|
259
260
|
`rarv-cycle`, `continuity`, plus eight agent-operation rules and `autonomy-levels` +
|
|
260
261
|
`risk-classification` (see [`docs/agentic-patterns.md`](docs/agentic-patterns.md)).
|
|
261
|
-
- **
|
|
262
|
+
- **96 on-demand skills** in [`skills/`](skills/) (51 core + 45 stack-collection) — spec-driven dev, planning, TDD, debugging, code
|
|
262
263
|
review, threat modeling, and more — activated by context and led by the `sdlc` entrypoint.
|
|
263
264
|
- **Profile-subset install** — each profile installs a strict subset of agents, skills, hooks, and
|
|
264
265
|
rules (`lean ⊂ standard ⊂ enterprise`), from fast track to full audit.
|
|
@@ -381,14 +382,19 @@ flowchart LR
|
|
|
381
382
|
PROJ --> RUN(["/sdlc — autonomous SDLC active"])
|
|
382
383
|
```
|
|
383
384
|
|
|
384
|
-
|
|
385
|
+
Four ideas do the heavy lifting:
|
|
385
386
|
|
|
386
|
-
1. **
|
|
387
|
+
1. **Evidence or it didn't happen.** Every gate verdict — PASS or FAIL — must cite the command that
|
|
388
|
+
ran and its captured output (or the `file:line` it rests on). A verdict that's invented, assumed,
|
|
389
|
+
or read off still-running work is an **auto-Critical finding** — the same severity as a hardcoded
|
|
390
|
+
secret — and it fails every downstream gate that trusted it
|
|
391
|
+
([`quality-gates.md` §2.5](rules/quality-gates.md)).
|
|
392
|
+
2. **Quality gates with a shared severity model.** Every finding is classified
|
|
387
393
|
Critical / High / Medium / Low / Cosmetic. A gate passes **only** with zero Critical/High/Medium
|
|
388
394
|
open. No silent advancement.
|
|
389
|
-
|
|
395
|
+
3. **RARV self-check.** Every agent runs **R**eason → **A**ct → **R**eflect → **V**erify and must show
|
|
390
396
|
a *green Verify* (real commands run, not imagined) before handing off.
|
|
391
|
-
|
|
397
|
+
4. **Blind review + Devil's Advocate.** Parallel reviewers judge independently; a *unanimous* PASS is
|
|
392
398
|
treated as suspicious and triggers an adversarial `devils-advocate` pass before the gate may close —
|
|
393
399
|
an explicit guard against agents rubber-stamping each other.
|
|
394
400
|
|
|
@@ -428,7 +434,8 @@ is inert for non-API projects. Organization scope at `regulated` strictness adds
|
|
|
428
434
|
Code Reviewer → Tester → PR.
|
|
429
435
|
|
|
430
436
|
See [`examples/`](examples/) for a synthetic end-to-end walkthrough — request → spec → story breakdown
|
|
431
|
-
→ gate verdicts (with one defect-loop cycle) → sample PR diff.
|
|
437
|
+
→ gate verdicts (with one defect-loop cycle) → sample PR diff. To capture *your own* real run as a
|
|
438
|
+
publishable, redaction-scrubbed bundle, see [`docs/capture-a-real-run.md`](docs/capture-a-real-run.md).
|
|
432
439
|
|
|
433
440
|
---
|
|
434
441
|
|
|
@@ -493,10 +500,11 @@ It is **not** a runtime, an orchestration engine, or a code library. That framin
|
|
|
493
500
|
|
|
494
501
|
| Project | What it is | How claude-kit differs |
|
|
495
502
|
|---|---|---|
|
|
503
|
+
| **Native Claude Code subagents / Agent Teams** | Spawn parallel agents on demand; you define the workflow, gates, and verification yourself each time | claude-kit is the **opinionated layer on top** of exactly that capability: a fixed, sequenced pipeline with **owned quality gates** (block on any open Critical/High/Medium), an **evidence requirement** (no fabricated verdicts — `quality-gates.md` §2.5), a `devils-advocate` anti-rubber-stamp pass, and **structured resume** from `.claude/state/pipeline-snapshot.json`. Native gives you the agents; claude-kit gives you the governance. |
|
|
496
504
|
| **[wshobson/agents](https://github.com/wshobson/agents)** & similar agent collections | Large libraries of individual subagent prompts you pick from | claude-kit ships a **smaller, opinionated set wired into a sequenced pipeline with owned quality gates** — agents aren't a menu, they're stages that hand off and block on each other. Adopt-by-reuse, not by accumulation. |
|
|
497
505
|
| **[GitHub spec-kit](https://github.com/github/spec-kit)** | A spec-driven workflow (constitution → spec → tasks → analyze) | claude-kit **absorbed spec-kit's coverage-gate idea** (the `story-planner` 1f gate + `task-tracker-sync`) into a **broader** lifecycle that also covers review, security, build, test, release, and observability gates. Complementary, wider scope. |
|
|
498
506
|
| **claude-flow / multi-agent runtimes** | Runtime orchestrators that *execute* swarms of agents | claude-kit produces **portable configuration**, not a running process — the orchestration is described in rules the host (Claude Code) executes. No daemon, no lock-in, no app code. |
|
|
499
|
-
| **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | claude-kit is a **catalog-driven generator**: it resolves your stack/profile/scope into the right subset of 23 rules, 28 agents,
|
|
507
|
+
| **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | claude-kit is a **catalog-driven generator**: it resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 96 skills, gates, and hooks, and keeps them **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
|
|
500
508
|
|
|
501
509
|
**Choose claude-kit when** you want a consistent, reviewable, **gate-enforced** autonomous-SDLC setup
|
|
502
510
|
that's the same across every repo and stack, installs in seconds, ships nothing you have to run, and
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
**A Cookiecutter-style scaffolder for an autonomous SDLC (software-delivery lifecycle) inside [Claude Code](https://www.claude.com/product/claude-code).**
|
|
6
6
|
|
|
7
|
-
One command turns a one-line request into reviewed, tested, secured, shippable code —
|
|
8
|
-
|
|
7
|
+
One command turns a one-line request into reviewed, tested, secured, shippable code — with a
|
|
8
|
+
quality gate between every phase. Each gate passes only on *real, cited command output* — never an
|
|
9
|
+
assumed or fabricated "it works." **No application code. No Docker. Configuration only.**
|
|
9
10
|
|
|
10
11
|
[](https://pypi.org/project/claude-code-kit/)
|
|
11
12
|
[](https://pypi.org/project/claude-code-kit/)
|
|
@@ -51,7 +52,7 @@ Quick start) for the full breakdown of any row.
|
|
|
51
52
|
| 🔁 **Pipeline & quality gates** | Gate-enforced progression (zero open Critical/High/Medium to advance), per-profile gate sets, a fast-track for small changes, and an anti-sycophancy `devils-advocate` pass |
|
|
52
53
|
| 🤖 **Agent roster** | **28** tiered agents + per-database overlays + **6** org personas, led by an Orchestrator that never writes code |
|
|
53
54
|
| 🔍 **Self-verification & review** | RARV green-Verify (real commands, not imagined), blind parallel review, and read-only risk classification |
|
|
54
|
-
| 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **
|
|
55
|
+
| 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **96** context-activated skills (51 core + 45 stack-collection) |
|
|
55
56
|
| 🧱 **Stacks & overlays** | Stack-agnostic core + **10** overlay rule sets (React · FastAPI · Go · Postgres · Mongo) wired to your exact commands, incl. a full React design system |
|
|
56
57
|
| 🎚️ **Profiles, scopes & org** | **3** rigor profiles · **3** scopes · **5** autonomy levels · **7** org packs + **10** policy rules |
|
|
57
58
|
| 🧠 **Memory & learning** | Working memory across context compaction + a cost-aware learnings loop (`capture_mode`) so the same mistake isn't repeated |
|
|
@@ -228,7 +229,7 @@ need.
|
|
|
228
229
|
- **23 stack-agnostic core rules** in [`rules/`](rules/) — `mandatory-workflow`, `quality-gates`,
|
|
229
230
|
`rarv-cycle`, `continuity`, plus eight agent-operation rules and `autonomy-levels` +
|
|
230
231
|
`risk-classification` (see [`docs/agentic-patterns.md`](docs/agentic-patterns.md)).
|
|
231
|
-
- **
|
|
232
|
+
- **96 on-demand skills** in [`skills/`](skills/) (51 core + 45 stack-collection) — spec-driven dev, planning, TDD, debugging, code
|
|
232
233
|
review, threat modeling, and more — activated by context and led by the `sdlc` entrypoint.
|
|
233
234
|
- **Profile-subset install** — each profile installs a strict subset of agents, skills, hooks, and
|
|
234
235
|
rules (`lean ⊂ standard ⊂ enterprise`), from fast track to full audit.
|
|
@@ -351,14 +352,19 @@ flowchart LR
|
|
|
351
352
|
PROJ --> RUN(["/sdlc — autonomous SDLC active"])
|
|
352
353
|
```
|
|
353
354
|
|
|
354
|
-
|
|
355
|
+
Four ideas do the heavy lifting:
|
|
355
356
|
|
|
356
|
-
1. **
|
|
357
|
+
1. **Evidence or it didn't happen.** Every gate verdict — PASS or FAIL — must cite the command that
|
|
358
|
+
ran and its captured output (or the `file:line` it rests on). A verdict that's invented, assumed,
|
|
359
|
+
or read off still-running work is an **auto-Critical finding** — the same severity as a hardcoded
|
|
360
|
+
secret — and it fails every downstream gate that trusted it
|
|
361
|
+
([`quality-gates.md` §2.5](rules/quality-gates.md)).
|
|
362
|
+
2. **Quality gates with a shared severity model.** Every finding is classified
|
|
357
363
|
Critical / High / Medium / Low / Cosmetic. A gate passes **only** with zero Critical/High/Medium
|
|
358
364
|
open. No silent advancement.
|
|
359
|
-
|
|
365
|
+
3. **RARV self-check.** Every agent runs **R**eason → **A**ct → **R**eflect → **V**erify and must show
|
|
360
366
|
a *green Verify* (real commands run, not imagined) before handing off.
|
|
361
|
-
|
|
367
|
+
4. **Blind review + Devil's Advocate.** Parallel reviewers judge independently; a *unanimous* PASS is
|
|
362
368
|
treated as suspicious and triggers an adversarial `devils-advocate` pass before the gate may close —
|
|
363
369
|
an explicit guard against agents rubber-stamping each other.
|
|
364
370
|
|
|
@@ -398,7 +404,8 @@ is inert for non-API projects. Organization scope at `regulated` strictness adds
|
|
|
398
404
|
Code Reviewer → Tester → PR.
|
|
399
405
|
|
|
400
406
|
See [`examples/`](examples/) for a synthetic end-to-end walkthrough — request → spec → story breakdown
|
|
401
|
-
→ gate verdicts (with one defect-loop cycle) → sample PR diff.
|
|
407
|
+
→ gate verdicts (with one defect-loop cycle) → sample PR diff. To capture *your own* real run as a
|
|
408
|
+
publishable, redaction-scrubbed bundle, see [`docs/capture-a-real-run.md`](docs/capture-a-real-run.md).
|
|
402
409
|
|
|
403
410
|
---
|
|
404
411
|
|
|
@@ -463,10 +470,11 @@ It is **not** a runtime, an orchestration engine, or a code library. That framin
|
|
|
463
470
|
|
|
464
471
|
| Project | What it is | How claude-kit differs |
|
|
465
472
|
|---|---|---|
|
|
473
|
+
| **Native Claude Code subagents / Agent Teams** | Spawn parallel agents on demand; you define the workflow, gates, and verification yourself each time | claude-kit is the **opinionated layer on top** of exactly that capability: a fixed, sequenced pipeline with **owned quality gates** (block on any open Critical/High/Medium), an **evidence requirement** (no fabricated verdicts — `quality-gates.md` §2.5), a `devils-advocate` anti-rubber-stamp pass, and **structured resume** from `.claude/state/pipeline-snapshot.json`. Native gives you the agents; claude-kit gives you the governance. |
|
|
466
474
|
| **[wshobson/agents](https://github.com/wshobson/agents)** & similar agent collections | Large libraries of individual subagent prompts you pick from | claude-kit ships a **smaller, opinionated set wired into a sequenced pipeline with owned quality gates** — agents aren't a menu, they're stages that hand off and block on each other. Adopt-by-reuse, not by accumulation. |
|
|
467
475
|
| **[GitHub spec-kit](https://github.com/github/spec-kit)** | A spec-driven workflow (constitution → spec → tasks → analyze) | claude-kit **absorbed spec-kit's coverage-gate idea** (the `story-planner` 1f gate + `task-tracker-sync`) into a **broader** lifecycle that also covers review, security, build, test, release, and observability gates. Complementary, wider scope. |
|
|
468
476
|
| **claude-flow / multi-agent runtimes** | Runtime orchestrators that *execute* swarms of agents | claude-kit produces **portable configuration**, not a running process — the orchestration is described in rules the host (Claude Code) executes. No daemon, no lock-in, no app code. |
|
|
469
|
-
| **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | claude-kit is a **catalog-driven generator**: it resolves your stack/profile/scope into the right subset of 23 rules, 28 agents,
|
|
477
|
+
| **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | claude-kit is a **catalog-driven generator**: it resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 96 skills, gates, and hooks, and keeps them **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
|
|
470
478
|
|
|
471
479
|
**Choose claude-kit when** you want a consistent, reviewable, **gate-enforced** autonomous-SDLC setup
|
|
472
480
|
that's the same across every repo and stack, installs in seconds, ships nothing you have to run, and
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Capture a real `/sdlc` run
|
|
2
|
+
|
|
3
|
+
The repo ships a **synthetic** worked example under [`examples/`](../examples/) — useful, but
|
|
4
|
+
hand-written. The most convincing evidence is *your own* run: a real request that flowed through the
|
|
5
|
+
pipeline, with the real spec, real gate verdicts, and the real diff it produced. This guide turns one
|
|
6
|
+
completed run into a publishable, redaction-scrubbed bundle.
|
|
7
|
+
|
|
8
|
+
> **You run this — not the kit.** `/sdlc` is interactive (it runs inside Claude Code). The script here
|
|
9
|
+
> only *collects and scrubs* what a finished run left behind; it never drives the pipeline and never
|
|
10
|
+
> edits your project.
|
|
11
|
+
|
|
12
|
+
## Where a run leaves its evidence
|
|
13
|
+
|
|
14
|
+
A `/sdlc` run scatters its artifacts on purpose — two of the four are gitignored runtime state, so
|
|
15
|
+
they never show up in a normal `git diff`:
|
|
16
|
+
|
|
17
|
+
| Artifact | Location | Tracked? |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| Feature spec | `docs/specs/<feature>_spec.md` | committed |
|
|
20
|
+
| Gate state (last gate passed, open findings by severity, evidence, overrides) | `.claude/state/pipeline-snapshot.json` | gitignored runtime state |
|
|
21
|
+
| Verdict log / phase history | `.claude/CONTINUITY.md` | gitignored runtime state |
|
|
22
|
+
| Install snapshot (profile + resolved gate set) | `.claude/config/stack-catalog.snapshot.yaml` | committed |
|
|
23
|
+
| The code itself + the PR | git history (`diff` vs your base branch) | committed |
|
|
24
|
+
|
|
25
|
+
## Steps
|
|
26
|
+
|
|
27
|
+
1. **Run a real task to completion** in a project that has claude-kit installed:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
/sdlc Add a CSV export button to the reports page
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Let it run through its gates. A small, real feature is more convincing than a toy.
|
|
34
|
+
|
|
35
|
+
2. **Capture the bundle** from the project root:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# from your project (the one with .claude/ in it):
|
|
39
|
+
bash /path/to/claude-kit/scripts/capture-sdlc-run.sh --base main --slug csv-export
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Options: `--project DIR` (capture a different checkout), `--out DIR` (choose the output folder),
|
|
43
|
+
`--base BRANCH` (what to diff the code against; default `main`), `--slug NAME` (label the folder).
|
|
44
|
+
Run with `--help` for the full list. The script is read-only against your project.
|
|
45
|
+
|
|
46
|
+
3. **Review the secret scan.** The script lists any files matching *generic* secret shapes (private
|
|
47
|
+
keys, AWS/GitHub tokens, `password=`/`token=` assignments, bearer tokens). It prints **file names
|
|
48
|
+
only**, never the secret values. Inspect each flagged file.
|
|
49
|
+
|
|
50
|
+
4. **Finish the redaction checklist.** Every bundle gets a `REDACTION-CHECKLIST.md`. The automated
|
|
51
|
+
scan cannot know *your* internal names — company, team, service, repo, host, cluster, namespace,
|
|
52
|
+
cloud project, customer/personal data. Replace real identifiers with neutral placeholders
|
|
53
|
+
(`acme`, `example.com`, `service-a`) rather than deleting them, so the run still reads as a story.
|
|
54
|
+
|
|
55
|
+
5. **Publish what you want.** Copy the scrubbed files into [`examples/`](../examples/) (mirroring the
|
|
56
|
+
`01-request.md → 02-feature-spec.md → 03-story-breakdown.md → 04-gate-verdicts.md →
|
|
57
|
+
05-sample-pr.diff` layout) or into a blog post / PR description. Keep a private, unscrubbed copy if
|
|
58
|
+
you need the originals.
|
|
59
|
+
|
|
60
|
+
## What the bundle contains
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
claude-kit-run-<timestamp>-<slug>/
|
|
64
|
+
├── specs/ # docs/specs/*_spec.md
|
|
65
|
+
├── state/
|
|
66
|
+
│ ├── pipeline-snapshot.json # gate state, findings, evidence, overrides
|
|
67
|
+
│ └── stack-catalog.snapshot.yaml
|
|
68
|
+
├── continuity.md # verdict log / phase history
|
|
69
|
+
├── git/
|
|
70
|
+
│ ├── log.txt # recent commits
|
|
71
|
+
│ ├── diff.stat.txt # files changed (summary)
|
|
72
|
+
│ └── changes.diff # the full diff vs your base branch
|
|
73
|
+
└── REDACTION-CHECKLIST.md # finish this before publishing
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Missing files are reported, not fatal — if you point the script at a checkout where `/sdlc` hasn't run
|
|
77
|
+
yet, it tells you which artifacts it couldn't find.
|
|
@@ -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.28.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"
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# capture-sdlc-run.sh — bundle ONE completed `/sdlc` run into a publishable, redaction-scrubbed folder.
|
|
4
|
+
#
|
|
5
|
+
# A real `/sdlc` run leaves its evidence scattered across the project: the spec lands in
|
|
6
|
+
# `docs/specs/`, the gate state in gitignored `.claude/state/`, the verdict log in gitignored
|
|
7
|
+
# `.claude/CONTINUITY.md`, and the code in git itself. This script gathers those into one folder,
|
|
8
|
+
# runs a generic secret scan, and prints a manual-redaction checklist — so you can turn a run into
|
|
9
|
+
# a worked example without hand-collecting files.
|
|
10
|
+
#
|
|
11
|
+
# It is READ-ONLY against your project: it copies files out, never edits or deletes anything in place.
|
|
12
|
+
#
|
|
13
|
+
# Usage:
|
|
14
|
+
# scripts/capture-sdlc-run.sh [--project DIR] [--out DIR] [--base BRANCH] [--slug NAME]
|
|
15
|
+
#
|
|
16
|
+
# --project DIR Project root to capture from (default: current directory)
|
|
17
|
+
# --out DIR Where to write the bundle (default: ./claude-kit-run-<UTC-timestamp>)
|
|
18
|
+
# --base BRANCH Base branch to diff the code against (default: main)
|
|
19
|
+
# --slug NAME Short label folded into the default --out name
|
|
20
|
+
# -h, --help Show this help
|
|
21
|
+
#
|
|
22
|
+
# The bundle is NOT auto-published and NOT auto-committed. Review it, finish the redaction checklist,
|
|
23
|
+
# then copy what you want into `examples/` (or your own docs) yourself.
|
|
24
|
+
|
|
25
|
+
set -euo pipefail
|
|
26
|
+
|
|
27
|
+
PROJECT="."
|
|
28
|
+
OUT=""
|
|
29
|
+
BASE="main"
|
|
30
|
+
SLUG=""
|
|
31
|
+
|
|
32
|
+
die() { printf 'error: %s\n' "$1" >&2; exit 1; }
|
|
33
|
+
|
|
34
|
+
usage() {
|
|
35
|
+
sed -n '2,28p' "$0" | sed 's/^# \{0,1\}//'
|
|
36
|
+
exit "${1:-0}"
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
while [ $# -gt 0 ]; do
|
|
40
|
+
case "$1" in
|
|
41
|
+
--project) PROJECT="${2:-}"; shift 2 ;;
|
|
42
|
+
--out) OUT="${2:-}"; shift 2 ;;
|
|
43
|
+
--base) BASE="${2:-}"; shift 2 ;;
|
|
44
|
+
--slug) SLUG="${2:-}"; shift 2 ;;
|
|
45
|
+
-h|--help) usage 0 ;;
|
|
46
|
+
*) die "unknown argument: $1 (try --help)" ;;
|
|
47
|
+
esac
|
|
48
|
+
done
|
|
49
|
+
|
|
50
|
+
[ -d "$PROJECT" ] || die "project directory not found: $PROJECT"
|
|
51
|
+
PROJECT="$(cd "$PROJECT" && pwd)"
|
|
52
|
+
|
|
53
|
+
if [ -z "$OUT" ]; then
|
|
54
|
+
stamp="$(date -u +%Y%m%dT%H%M%SZ)"
|
|
55
|
+
if [ -n "$SLUG" ]; then
|
|
56
|
+
OUT="./claude-kit-run-${stamp}-${SLUG}"
|
|
57
|
+
else
|
|
58
|
+
OUT="./claude-kit-run-${stamp}"
|
|
59
|
+
fi
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
mkdir -p "$OUT"
|
|
63
|
+
OUT="$(cd "$OUT" && pwd)"
|
|
64
|
+
[ "$OUT" = "$PROJECT" ] && die "--out must not be the project root itself"
|
|
65
|
+
|
|
66
|
+
printf '==> capturing /sdlc run from: %s\n' "$PROJECT"
|
|
67
|
+
printf '==> writing bundle to: %s\n\n' "$OUT"
|
|
68
|
+
|
|
69
|
+
missing=0
|
|
70
|
+
|
|
71
|
+
# copy_one SRC DEST_SUBPATH LABEL — copy a single file if it exists, else note it.
|
|
72
|
+
copy_one() {
|
|
73
|
+
src="$PROJECT/$1"; dest="$OUT/$2"; label="$3"
|
|
74
|
+
if [ -f "$src" ]; then
|
|
75
|
+
mkdir -p "$(dirname "$dest")"
|
|
76
|
+
cp "$src" "$dest"
|
|
77
|
+
printf ' [ok] %s\n' "$label"
|
|
78
|
+
else
|
|
79
|
+
printf ' [skip] %s (not found: %s)\n' "$label" "$1"
|
|
80
|
+
missing=$((missing + 1))
|
|
81
|
+
fi
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
# --- 1. The artifacts a run produces -----------------------------------------------------------
|
|
85
|
+
printf 'Collecting run artifacts:\n'
|
|
86
|
+
copy_one ".claude/state/pipeline-snapshot.json" "state/pipeline-snapshot.json" "pipeline snapshot (gate state, findings, evidence)"
|
|
87
|
+
copy_one ".claude/config/stack-catalog.snapshot.yaml" "state/stack-catalog.snapshot.yaml" "install snapshot (profile + resolved gate set)"
|
|
88
|
+
copy_one ".claude/CONTINUITY.md" "continuity.md" "working memory / verdict log"
|
|
89
|
+
|
|
90
|
+
# Specs (docs/specs/*_spec.md) and filled artifacts may be many — copy whatever is present.
|
|
91
|
+
if [ -d "$PROJECT/docs/specs" ]; then
|
|
92
|
+
spec_count="$(find "$PROJECT/docs/specs" -maxdepth 1 -name '*_spec.md' -type f 2>/dev/null | wc -l | tr -d ' ')"
|
|
93
|
+
if [ "$spec_count" != "0" ]; then
|
|
94
|
+
mkdir -p "$OUT/specs"
|
|
95
|
+
find "$PROJECT/docs/specs" -maxdepth 1 -name '*_spec.md' -type f -exec cp {} "$OUT/specs/" \;
|
|
96
|
+
printf ' [ok] %s spec file(s) from docs/specs/\n' "$spec_count"
|
|
97
|
+
else
|
|
98
|
+
printf ' [skip] no *_spec.md in docs/specs/\n'; missing=$((missing + 1))
|
|
99
|
+
fi
|
|
100
|
+
else
|
|
101
|
+
printf ' [skip] docs/specs/ (not found)\n'; missing=$((missing + 1))
|
|
102
|
+
fi
|
|
103
|
+
|
|
104
|
+
# --- 2. The code the run produced (git) --------------------------------------------------------
|
|
105
|
+
printf '\nCollecting git evidence (base = %s):\n' "$BASE"
|
|
106
|
+
if git -C "$PROJECT" rev-parse --git-dir >/dev/null 2>&1; then
|
|
107
|
+
mkdir -p "$OUT/git"
|
|
108
|
+
git -C "$PROJECT" log --oneline -30 > "$OUT/git/log.txt" 2>/dev/null || true
|
|
109
|
+
if git -C "$PROJECT" rev-parse --verify --quiet "$BASE" >/dev/null 2>&1; then
|
|
110
|
+
mb="$(git -C "$PROJECT" merge-base "$BASE" HEAD 2>/dev/null || true)"
|
|
111
|
+
if [ -n "$mb" ]; then
|
|
112
|
+
git -C "$PROJECT" diff --stat "$mb"..HEAD > "$OUT/git/diff.stat.txt" 2>/dev/null || true
|
|
113
|
+
git -C "$PROJECT" diff "$mb"..HEAD > "$OUT/git/changes.diff" 2>/dev/null || true
|
|
114
|
+
printf ' [ok] diff vs %s (stat + full)\n' "$BASE"
|
|
115
|
+
fi
|
|
116
|
+
else
|
|
117
|
+
printf ' [skip] base branch %s not found — captured git log only\n' "$BASE"
|
|
118
|
+
fi
|
|
119
|
+
else
|
|
120
|
+
printf ' [skip] not a git repository — no code diff captured\n'; missing=$((missing + 1))
|
|
121
|
+
fi
|
|
122
|
+
|
|
123
|
+
# --- 3. Generic secret scan (lists matching FILES only, never their contents) -------------------
|
|
124
|
+
printf '\nScanning the bundle for generic secret patterns:\n'
|
|
125
|
+
# Deliberately generic — org-specific names are YOUR job to scrub (see the checklist below).
|
|
126
|
+
patterns='-----BEGIN [A-Z ]*PRIVATE KEY-----|AKIA[0-9A-Z]{16}|ghp_[A-Za-z0-9]{30,}|xox[baprs]-[A-Za-z0-9-]{10,}|(secret|token|password|passwd|api[_-]?key)[[:space:]"'\'']*[:=][[:space:]"'\'']*[^[:space:]"'\'']+|Bearer[[:space:]]+[A-Za-z0-9._-]{16,}'
|
|
127
|
+
# `-e` is required: $patterns starts with "-----BEGIN", which grep would otherwise read as options.
|
|
128
|
+
hits="$(grep -rIlE -e "$patterns" "$OUT" 2>/dev/null || true)"
|
|
129
|
+
if [ -n "$hits" ]; then
|
|
130
|
+
printf ' [WARN] possible secrets in these files — INSPECT and scrub before publishing:\n'
|
|
131
|
+
printf '%s\n' "$hits" | sed 's/^/ /'
|
|
132
|
+
else
|
|
133
|
+
printf ' [ok] no generic secret patterns matched (still do the manual checklist)\n'
|
|
134
|
+
fi
|
|
135
|
+
|
|
136
|
+
# --- 4. Manual redaction checklist -------------------------------------------------------------
|
|
137
|
+
cat > "$OUT/REDACTION-CHECKLIST.md" <<'EOF'
|
|
138
|
+
# Redaction checklist — finish before publishing this bundle
|
|
139
|
+
|
|
140
|
+
This bundle was copied verbatim from a real project. The automated scan only catches *generic*
|
|
141
|
+
secret shapes. Before you publish it (e.g. into `examples/` or a blog post), manually confirm:
|
|
142
|
+
|
|
143
|
+
- [ ] No company / team / internal-service / repo / registry / cluster / namespace / project-id names
|
|
144
|
+
- [ ] No internal hostnames, IPs, URLs, or cloud project identifiers
|
|
145
|
+
- [ ] No customer / personal data in the spec, diff, or verdict log
|
|
146
|
+
- [ ] No secret VALUES (keys, tokens, passwords, connection strings) — the scan flags shapes, not all
|
|
147
|
+
- [ ] `changes.diff` reviewed line-by-line (it contains your actual source)
|
|
148
|
+
- [ ] `continuity.md` reviewed (it may quote commands, paths, and findings verbatim)
|
|
149
|
+
|
|
150
|
+
Tip: keep a private copy, publish a scrubbed copy. Replace real identifiers with neutral
|
|
151
|
+
placeholders (`acme`, `example.com`, `service-a`) rather than deleting context.
|
|
152
|
+
EOF
|
|
153
|
+
printf ' [ok] wrote REDACTION-CHECKLIST.md\n'
|
|
154
|
+
|
|
155
|
+
# --- 5. Summary --------------------------------------------------------------------------------
|
|
156
|
+
printf '\nDone. Bundle at:\n %s\n' "$OUT"
|
|
157
|
+
if [ "$missing" != "0" ]; then
|
|
158
|
+
printf '\nNote: %s expected item(s) were not found. If you have not run /sdlc in this project\n' "$missing"
|
|
159
|
+
printf 'yet, or ran it in a different directory, point --project at the right checkout.\n'
|
|
160
|
+
fi
|
|
161
|
+
printf '\nNext: complete %s/REDACTION-CHECKLIST.md, then copy what you want into examples/.\n' "$OUT"
|
|
@@ -100,6 +100,7 @@ def _actuals() -> dict[str, int]:
|
|
|
100
100
|
return {
|
|
101
101
|
"agents": len(list((ROOT / "agents").glob("*.md"))),
|
|
102
102
|
"rules": len(list((ROOT / "rules").glob("*.md"))),
|
|
103
|
+
"skills": core + collection,
|
|
103
104
|
"core skills": core,
|
|
104
105
|
"collection skills": collection,
|
|
105
106
|
"hook scripts": len(list((ROOT / "hooks" / "scripts").glob("*.sh"))),
|
|
@@ -120,8 +121,12 @@ _ANCHORS: list[tuple[str, str, str]] = [
|
|
|
120
121
|
("rules", "README.md", r"(\d+) stack-agnostic core rules"),
|
|
121
122
|
("rules", "README.md", r"(\d+) stack-agnostic contracts"),
|
|
122
123
|
("rules", "README.md", r"(\d+) engineering rules"),
|
|
123
|
-
|
|
124
|
-
("
|
|
124
|
+
# The headline skill number is the FULL catalog (core + collection); the breakdown pins each part.
|
|
125
|
+
("skills", "README.md", r"\*\*(\d+)\*\* context-activated skills"),
|
|
126
|
+
("skills", "README.md", r"(\d+) on-demand skills"),
|
|
127
|
+
("skills", "README.md", r"(\d+) skills, gates"),
|
|
128
|
+
("core skills", "README.md", r"\((\d+) core \+"),
|
|
129
|
+
("collection skills", "README.md", r"\+ (\d+) stack-collection\)"),
|
|
125
130
|
("hook scripts", "README.md", r"\*\*(\d+)\*\* event hooks"),
|
|
126
131
|
("hook scripts", "README.md", r"(\d+) event hook scripts"),
|
|
127
132
|
("mcp servers", "README.md", r"\*\*(\d+)\*\* ready MCP fragments"),
|
|
@@ -29,7 +29,7 @@ from pathlib import Path
|
|
|
29
29
|
|
|
30
30
|
from claude_kit import catalog, scaffold
|
|
31
31
|
from claude_kit.models import FileRecord, InitOptions, ResolvedPlan
|
|
32
|
-
from claude_kit.validator import _load_init_options
|
|
32
|
+
from claude_kit.validator import _load_init_options, _read_init_options
|
|
33
33
|
|
|
34
34
|
#: Sidecar suffix for a new version of a user-modified, protected file.
|
|
35
35
|
_SIDECAR_SUFFIX = ".claude-kit"
|
|
@@ -129,9 +129,9 @@ def _compare(src: Path, target: str | Path) -> _Comparison | str:
|
|
|
129
129
|
claude = target / ".claude"
|
|
130
130
|
if not claude.is_dir():
|
|
131
131
|
return "not-installed"
|
|
132
|
-
old =
|
|
132
|
+
old, err = _read_init_options(claude)
|
|
133
133
|
if old is None:
|
|
134
|
-
return "no-options"
|
|
134
|
+
return "corrupt-options" if err and err.startswith("corrupt") else "no-options"
|
|
135
135
|
|
|
136
136
|
plan = catalog.resolve(src, old.selection)
|
|
137
137
|
# Render the reference under the REAL project name so CLAUDE.md/README don't diff spuriously.
|
|
@@ -355,6 +355,11 @@ def _explain_error(code: str, target: str | Path) -> tuple[bool, list[str]]:
|
|
|
355
355
|
return False, [
|
|
356
356
|
f"FAIL no .claude/ at {Path(target).expanduser().resolve()} — run `claude-kit init` first"
|
|
357
357
|
]
|
|
358
|
+
if code == "corrupt-options":
|
|
359
|
+
return False, [
|
|
360
|
+
"FAIL .claude/config/init-options.json is unreadable (invalid JSON) — repair it "
|
|
361
|
+
"or re-run `claude-kit init --force` to re-create it"
|
|
362
|
+
]
|
|
358
363
|
return False, [
|
|
359
364
|
"FAIL no .claude/config/init-options.json — this install predates upgrade tracking; "
|
|
360
365
|
"re-run `claude-kit init --force` to start tracking"
|