claude-code-kit 0.23.0__tar.gz → 0.25.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.23.0 → claude_code_kit-0.25.0}/.claude-plugin/marketplace.json +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/.claude-plugin/plugin.json +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/CHANGELOG.md +68 -2
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/CLAUDE.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/CONTRIBUTING.md +10 -2
- claude_code_kit-0.23.0/README.md → claude_code_kit-0.25.0/PKG-INFO +61 -3
- claude_code_kit-0.23.0/PKG-INFO → claude_code_kit-0.25.0/README.md +31 -30
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/docs/coverage-audit.md +2 -2
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/warn-missing-tests.sh +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/warn-sensitive-files.sh +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/pyproject.toml +18 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/references/alembic-setup-and-env.md +3 -3
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/references/repo-evidence.md +2 -2
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/references/writing-migrations.md +6 -6
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/api-pagination-filtering-sorting/README.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/api-pagination-filtering-sorting/SKILL.md +10 -10
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/api-pagination-filtering-sorting/references/query-params-conventions.md +9 -9
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/api-pagination-filtering-sorting/references/repo-evidence.md +47 -47
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/references/deployment-and-secrets.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/README.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/SKILL.md +20 -20
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/references/bigquery-gcs-io.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/references/medallion-architecture.md +21 -21
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/references/repo-evidence.md +11 -11
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/references/naming-and-layout.md +2 -2
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/references/patterns-catalog.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/references/api-versioning.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/SKILL.md +3 -3
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/references/api-layer-and-types.md +12 -12
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/references/divergences.md +5 -5
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/references/repo-evidence.md +19 -18
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/references/structure-and-state.md +48 -48
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/references/testing-patterns.md +4 -4
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/gcp-cloud-run-github-actions/references/repo-evidence.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/README.md +3 -3
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/SKILL.md +19 -19
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/references/repo-evidence.md +32 -31
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/references/strawberry-backend.md +49 -47
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/references/when-to-use-graphql.md +10 -10
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kafka-config-driven/references/consumer-producer-patterns.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kafka-config-driven/references/repo-evidence.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/manual-test/SKILL.md +2 -2
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/multi-tenancy-patterns/SKILL.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/multi-tenancy-patterns/references/isolation-strategies.md +6 -6
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/multi-tenancy-patterns/references/repo-evidence.md +10 -10
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/SKILL.md +7 -7
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/references/outbound-metrics-and-multi-mode.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/references/repo-evidence.md +5 -5
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/references/tracing-and-metrics.md +2 -2
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/references/mongodb-advanced.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/references/other-db-mongodb.md +10 -10
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/references/repo-evidence.md +5 -5
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/tanstack-react-query-patterns/SKILL.md +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/tanstack-react-query-patterns/references/repo-evidence.md +55 -55
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/testing-conventions/SKILL.md +6 -6
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/async-and-mocking.md +6 -6
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/coverage-gap-and-recommendations.md +27 -27
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/pytest-asyncio-modes.md +4 -4
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/repo-evidence.md +10 -10
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/vitest-frontend-testing.md +2 -2
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/zustand-state-patterns/README.md +2 -2
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/zustand-state-patterns/SKILL.md +46 -46
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/zustand-state-patterns/references/async-polling-and-persistence.md +49 -49
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/zustand-state-patterns/references/repo-evidence.md +79 -77
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/zustand-state-patterns/references/store-structure-and-selectors.md +26 -26
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/src/claude_kit/__init__.py +1 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/src/claude_kit/__main__.py +1 -3
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/src/claude_kit/cli.py +65 -4
- claude_code_kit-0.25.0/src/claude_kit/pipeline.py +240 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/src/claude_kit/prompts.py +6 -1
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/src/claude_kit/scaffold.py +73 -3
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/src/claude_kit/upgrader.py +5 -4
- claude_code_kit-0.25.0/src/claude_kit/validator.py +574 -0
- claude_code_kit-0.23.0/src/claude_kit/validator.py +0 -212
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/.gitignore +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/LICENSE +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/acceptance-reviewer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/auditor.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/dependency-scanner.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/developer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/devils-advocate.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/devops-engineer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/e2e-tester.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/em-reviewer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/incident-responder.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/merge-reviewer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/observability-engineer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/orchestrator.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/owasp-reviewer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/policy-validator.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/pr-raiser.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/risk-classifier.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/sdlc-code-reviewer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/secret-scanner.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/security-reviewer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/senior-backend-dev.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/senior-frontend-dev.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/senior-tester.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/spec-doc-writer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/story-planner.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/technical-architect.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/tester.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/ui-designer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/agents/unit-tester.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/catalog/capture.yaml +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/catalog/mcp.yaml +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/catalog/org.yaml +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/catalog/profiles.yaml +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/catalog/stacks.yaml +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/commands/abort.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/commands/init.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/commands/sdlc.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/commands/status.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/docs/agentic-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/docs/agents.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/docs/architecture.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/docs/eval-harness.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/docs/org-capabilities.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/docs/stack-skills/GAP-ANALYSIS.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/docs/stack-skills/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/docs/stack-skills/REPO-INVENTORY.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/hooks.json +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/audit-log.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/capture-learnings.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/guard-destructive-git.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/guard-kubectl-delete.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/guard-secrets.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/lint-fix.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/load-autonomy.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/load-continuity.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/load-learnings.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/type-check.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/validate-frontmatter.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/validate-settings.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/warn-large-edits.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/warn-llm-io.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/hooks/scripts/warn-shared-modules.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/agent-guardrails.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/agent-memory.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/agent-resilience.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/autonomy-levels.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/code-organization.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/continuity.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/design-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/devops-observability.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/documentation.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/evals.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/frontend-best-practices.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/goal-setting-and-monitoring.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/human-in-the-loop.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/linting-and-formatting.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/mandatory-workflow.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/model-tiers.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/quality-gates.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/rarv-cycle.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/reasoning-techniques.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/responsive-and-accessibility.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/risk-classification.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/testing.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/rules/tool-design.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/scripts/check_docs_consistency.py +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/scripts/gen_hooks.py +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/scripts/init.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/_references/accessibility-checklist.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/_references/orchestration-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/_references/performance-checklist.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/_references/security-checklist.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/_references/testing-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/accessibility-review/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/references/async-and-multitenant-migrations.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/alembic-migrations/references/troubleshooting-and-debugging.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/anthropic-vertex-integration/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/anthropic-vertex-integration/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/anthropic-vertex-integration/references/generate-helpers-and-retry.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/anthropic-vertex-integration/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/anthropic-vertex-integration/references/vertex-client-and-auth.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/api-and-interface-design/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/api-integration/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/api-pagination-filtering-sorting/references/response-metadata.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/archive-sprint/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/async-python-patterns/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/async-python-patterns/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/async-python-patterns/references/async-boundaries.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/async-python-patterns/references/lifecycle-and-gather.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/async-python-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/references/auth-dependencies.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/references/rbac-and-permissions.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/references/security-hardening.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/auth-and-rbac/references/tokens-and-hashing.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/references/deployment-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/references/entrypoint-and-config.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/references/structure-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/backend-repo-architecture/references/troubleshooting.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/backlog/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/backlog/item-template.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/bug-hunt/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/code-review-and-quality/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/code-simplification/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/component-design/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/configargparse-yaml-env-layering/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/configargparse-yaml-env-layering/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/configargparse-yaml-env-layering/references/config-layering-anatomy.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/configargparse-yaml-env-layering/references/mode-dispatch-and-precedence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/configargparse-yaml-env-layering/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/consolidate-learnings/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/references/dockerfile-and-compose.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/references/entrypoint-and-modes.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/references/kerberos-kinit-bootstrap.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/references/makefile-dev-workflow.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/containerization-and-deployment/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/context-engineering/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/cron-and-scheduled-jobs/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/cron-and-scheduled-jobs/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/cron-and-scheduled-jobs/references/choosing-and-operations.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/cron-and-scheduled-jobs/references/kubernetes-cronjob.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/cron-and-scheduled-jobs/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/cron-and-scheduled-jobs/references/temporal-schedules.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/references/bigquery-advanced-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/data-engineering-bigquery-gcs/references/temp-table-merge-pattern.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/decision/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/decision/adr-template.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/deprecation-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/references/anti-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/references/testing-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/design-patterns-and-conventions/references/troubleshooting.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/docker-compose/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/docker-compose/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/docker-compose/references/compose-services-and-healthchecks.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/docker-compose/references/dev-vs-prod-variants.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/docker-compose/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/docker-shared/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/docker-shared/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/docker-shared/references/dockerignore-and-build-secrets.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/docker-shared/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/docker-shared/references/shared-base-images.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/docker-shared/references/shared-compose-fragments.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/dockerfile-backend/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/dockerfile-backend/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/dockerfile-backend/references/backend-dockerfile-anatomy.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/dockerfile-backend/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/dockerfile-backend/references/system-deps-and-caching.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/dockerfile-frontend/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/dockerfile-frontend/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/dockerfile-frontend/references/build-args-and-nginx.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/dockerfile-frontend/references/frontend-dockerfile-anatomy.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/dockerfile-frontend/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/documentation-and-adrs/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/doubt-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/edge-to-service-trust-boundary/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/edge-to-service-trust-boundary/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/edge-to-service-trust-boundary/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/edge-to-service-trust-boundary/references/trust-contract.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/execute/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/references/app-factory-and-lifespan.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/references/custom-route-and-middleware.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/references/dependency-injection.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/references/model-and-serialization-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/fastapi-service-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/file-export-and-reporting/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/file-export-and-reporting/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/file-export-and-reporting/references/excel-generation.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/file-export-and-reporting/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/file-export-and-reporting/references/streaming-and-downloads.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/frontend-repo-architecture/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/gcp-cloud-run-github-actions/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/gcp-cloud-run-github-actions/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/gcp-cloud-run-github-actions/references/cloud-run-deploy.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/gcp-cloud-run-github-actions/references/workflow-structure.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/gcs-file-storage-patterns/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/gcs-file-storage-patterns/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/gcs-file-storage-patterns/references/client-and-uploads.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/gcs-file-storage-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/gcs-file-storage-patterns/references/signed-urls-and-reads.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/references/dashboard-json-and-templating.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/references/provisioning-and-organization.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/references/red-metrics-queries.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/grafana-dashboards-and-alerts/references/unified-alerting.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/references/apollo-client-frontend.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/graphql-patterns/references/apollo-client-setup.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/idea-refine/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/idea-refine/examples.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/idea-refine/frameworks.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/idea-refine/refinement-criteria.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/incident-postmortem/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/incremental-implementation/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/interview-me/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kafka-config-driven/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kafka-config-driven/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kafka-config-driven/references/config-and-sasl-kerberos.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kafka-config-driven/references/troubleshooting-and-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/references/command-reference.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/references/context-namespace-rbac.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/references/debugging-playbooks.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/references/output-formats-and-selectors.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kubectl-operations/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kubernetes-workload-hardening/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kubernetes-workload-hardening/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kubernetes-workload-hardening/references/networkpolicy-and-rbac.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kubernetes-workload-hardening/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/kubernetes-workload-hardening/references/securitycontext-and-podsecurity.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/langfuse-llm-tracing/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/langfuse-llm-tracing/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/langfuse-llm-tracing/references/langfuse-client-and-tracing.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/langfuse-llm-tracing/references/python-and-typescript.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/langfuse-llm-tracing/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/load-testing/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/references/migration-best-practices.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/references/pydantic-v1-to-v2.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/references/shared-internal-library.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/modernization-and-migration/references/sqlalchemy-14-to-20.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/multi-tenancy-patterns/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/multi-tenancy-patterns/references/caching-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/multi-tenancy-patterns/references/tenant-resolution.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/node-express-service/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/node-express-service/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/node-express-service/references/app-factory-and-mode-dispatch.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/node-express-service/references/config-and-module-alias.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/node-express-service/references/middleware-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/node-express-service/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/node-objection-knex/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/node-objection-knex/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/node-objection-knex/references/migrations-and-validation.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/node-objection-knex/references/objection-model-and-knex.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/node-objection-knex/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/notifications-and-messaging/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/notifications-and-messaging/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/notifications-and-messaging/references/provider-abstraction.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/notifications-and-messaging/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/notifications-and-messaging/references/templates-and-fallback.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/references/health-and-readiness.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/references/logging-and-structlog.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/observability-and-logging/references/pii-redaction.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/over-engineering-review/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/performance-optimization/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/playwright-verification/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/pydantic-schema-patterns/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/pydantic-schema-patterns/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/pydantic-schema-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/pydantic-schema-patterns/references/settings-and-validation.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/pydantic-schema-patterns/references/troubleshooting-and-common-errors.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/pydantic-schema-patterns/references/v1-vs-v2.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/references/advanced-query-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/references/basedao-and-sessions.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/python-dao-and-database/references/sqlalchemy-1x-vs-2x.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/radix-tailwind-component-patterns/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/radix-tailwind-component-patterns/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/radix-tailwind-component-patterns/references/radix-primitives-and-variants.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/radix-tailwind-component-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/radix-tailwind-component-patterns/references/tailwind-theme-and-cn.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/react-hook-form-zod-patterns/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/react-hook-form-zod-patterns/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/react-hook-form-zod-patterns/references/form-setup-and-zod.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/react-hook-form-zod-patterns/references/multi-step-and-modes.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/react-hook-form-zod-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/redis-caching-patterns/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/redis-caching-patterns/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/redis-caching-patterns/references/cache-manager-and-fallback.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/redis-caching-patterns/references/namespacing-and-invalidation.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/redis-caching-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/refresh-docs/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/remember/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/scope/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/scope/scope-template.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/sdlc/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/security-and-hardening/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/security-verification/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/shannon-ai-pentest/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/shannon-ai-pentest/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/shannon-ai-pentest/references/operating-guide.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/shipping-and-launch/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/simplification-debt/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/smoke-test/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/source-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/spec-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/sprint/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/sprint/sprint-template.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/tanstack-react-query-patterns/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/tanstack-react-query-patterns/references/mutations-and-cache.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/tanstack-react-query-patterns/references/query-keys-and-hooks.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/task-tracker-sync/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/references/config-and-retry-idempotency.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/references/dag-dsl-interpreter.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/references/schedule-registration.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/references/schedules-and-cron.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/temporal-config-driven/references/worker-workflow-activity-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/test-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/test-plan-review/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/testing-conventions/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/github-actions-test-orchestration.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/pytest-and-fixtures.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/testing-conventions/references/security-regression-tests.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/threat-model/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/triage/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/ui-ux-design/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/unit-test/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/using-agent-skills/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/vitest-rtl-msw-patterns/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/vitest-rtl-msw-patterns/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/vitest-rtl-msw-patterns/references/msw-and-contract-tests.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/vitest-rtl-msw-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/vitest-rtl-msw-patterns/references/vitest-rtl-setup.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/zap-vapt-scanning/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/zap-vapt-scanning/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/zap-vapt-scanning/references/operating-guide.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/zap-vapt-scanning/scripts/endpoints.example.txt +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/zap-vapt-scanning/scripts/requirements.txt +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/zap-vapt-scanning/scripts/zap_vapt.py +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/src/claude_kit/catalog.py +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/src/claude_kit/hooks.py +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/src/claude_kit/models.py +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/src/claude_kit/render.py +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/CLAUDE.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/CLAUDE.stack.md.tmpl +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/CONTINUITY.template.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/README.claude-sdlc.md.tmpl +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/agent-memory/MEMORY.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/agent-memory/api/.gitkeep +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/agent-memory/architecture/.gitkeep +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/agent-memory/debugging/.gitkeep +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/agent-memory/patterns/.gitkeep +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/agent-memory/performance/.gitkeep +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/artifacts/adr.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/artifacts/api-change-report.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/artifacts/feature-spec.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/artifacts/release-plan.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/artifacts/runbook.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/artifacts/security-review.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/artifacts/test-plan.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/agents/data-workflow-agent.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/agents/founder-prototype-agent.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/agents/internal-tools-builder.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/agents/pm-copilot.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/agents/staff-pm-reviewer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/agents/support-ticket-engineer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/devops-and-release/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/engineering-core/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/product-to-code/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/quality-and-review/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/security-and-compliance/README.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/rules/ai-working-agreement.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/rules/ambiguity-resolution.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/rules/compliance-policy.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/rules/pii-policy.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/rules/production-data-policy.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/rules/prototype-boundaries.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/rules/secrets-policy.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/skills/review-scope/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/skills/review-sprint/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/skills/review-sprint-plan/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/org/skills/review-ux-flow/SKILL.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/settings.json +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/backend/go/net-http/rules/go-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/frontend/react/rules/design-system-compliance.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/frontend/react/rules/mobile-design-guidelines.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/frontend/react/rules/react-patterns.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/templates/stacks/frontend/react/rules/ui-design-system.md +0 -0
- {claude_code_kit-0.23.0 → claude_code_kit-0.25.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.25.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.25.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,72 @@ 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.25.0] — 2026-06-24
|
|
8
|
+
|
|
9
|
+
**PR4 of the phased hardening review: supply-chain provenance, an explicit trust model, and a full
|
|
10
|
+
genericization pass so the public repo carries only neutral examples.**
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- **PEP 740 build attestations re-enabled** in `publish.yml`. They were temporarily disabled while
|
|
14
|
+
Sigstore's Rekor transparency log was returning HTTP 502s at upload time; Sigstore has since been
|
|
15
|
+
healthy (verified via status.sigstore.dev — all services online, no incidents), so releases are
|
|
16
|
+
signed again for supply-chain provenance.
|
|
17
|
+
- **A "Security & trust model" section** in `README.md` (with a nav link) stating plainly that the
|
|
18
|
+
guard hooks are convenience, not a hardened boundary; that most quality gates are agent protocols
|
|
19
|
+
rather than mechanical enforcement; and that MCP servers are third-party code — surfacing
|
|
20
|
+
`SECURITY.md`'s posture where users decide to rely on the kit.
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
- **Genericization pass** — removed residual internal / company-specific identifiers so the published
|
|
24
|
+
repo carries only neutral examples. Genericized the 0.15.0 adoption narrative in `CHANGELOG.md` and
|
|
25
|
+
`docs/coverage-audit.md`; renamed test functions and replaced an internal-token blocklist with a
|
|
26
|
+
positive neutralization check in `tests/test_scaffold.py`; and neutralized the skills-collection
|
|
27
|
+
reference docs (example feature / module / variable names, domain-specific jargon, and a
|
|
28
|
+
region-specific registry host) into generic equivalents. Examples-only — no behavior change.
|
|
29
|
+
|
|
30
|
+
## [0.24.0] — 2026-06-24
|
|
31
|
+
|
|
32
|
+
**PR3 of the phased hardening review: deeper validation, a deterministic pipeline CLI, an MCP
|
|
33
|
+
lockfile, and a CI matrix that brings every distribution channel and quality dimension under test.**
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- **`claude-kit validate --strict`** — beyond the structural checks, strict mode verifies that every
|
|
38
|
+
`settings.json` hook fires on a known event and runs an **installed, executable** script; that
|
|
39
|
+
`.mcp.json` has a sane `{mcpServers: {id: {command|url}}}` shape; that the resolved
|
|
40
|
+
`stack-catalog.snapshot.yaml` agrees with the agents/skills/overlays actually on disk; and that the
|
|
41
|
+
**bundled catalog is referentially consistent** (`validator.check_catalog`: every profile resolves to
|
|
42
|
+
existing agents/skills/registered hooks, every stack overlay rule/agent file is present, and the org
|
|
43
|
+
overlay's new skills/agents/rules/packs exist). `doctor` now runs the strict validate by default.
|
|
44
|
+
- **`claude-kit pipeline` command group** (`src/claude_kit/pipeline.py`) — deterministic,
|
|
45
|
+
**non-executing** operations on the `/sdlc` state files: `pipeline validate` (snapshot shape +
|
|
46
|
+
profile/scope/mode/lane/findings coherence, with `last_gate_passed` checked against the installed
|
|
47
|
+
gate set), `pipeline status` (human-readable run summary), `pipeline close-gate <gate> --evidence
|
|
48
|
+
<file>` (records a passed gate, requiring the evidence artifact and a gate name the profile defines),
|
|
49
|
+
and `pipeline abort`. These validate/mutate `.claude/state/pipeline-snapshot.json` — they do **not**
|
|
50
|
+
run the pipeline.
|
|
51
|
+
- **`.mcp.lock.json`** — when `.mcp.json` is written, a deterministic lockfile captures the resolved
|
|
52
|
+
package + pinned version (parsed from the `npx -y <pkg>@<ver>` args) or hosted URL per server, so a
|
|
53
|
+
reviewer can see exactly what would run. It is a kit-owned, derived artifact (refreshed on upgrade,
|
|
54
|
+
never a user sidecar). **`claude-kit doctor --mcp`** checks each server's command is on PATH, warns on
|
|
55
|
+
unset `${ENV}` vars, and flags a lockfile that has drifted from `.mcp.json` (warnings only).
|
|
56
|
+
- **Expanded CI** (`.github/workflows/ci.yml`) — new jobs alongside the test matrix: `lint`
|
|
57
|
+
(`ruff check` + `ruff format --check` + `mypy`), `shell` (`shellcheck -S warning` over all hook + repo
|
|
58
|
+
scripts), `static` (`gen_hooks.py --check`, the docs-consistency guard, catalog referential
|
|
59
|
+
integrity, and JSON validity of the plugin manifests + `hooks.json`), and `wheel-smoke` (build → install
|
|
60
|
+
into a clean venv → `init --defaults` → `validate --strict` → `doctor`). `ruff`/`mypy`/`shellcheck-py`
|
|
61
|
+
are added to the `dev` extra, with conservative `[tool.ruff.lint]` (no E501) and `[tool.mypy]` config.
|
|
62
|
+
|
|
63
|
+
### Fixed
|
|
64
|
+
|
|
65
|
+
- **Latent type/lint bugs surfaced by the new CI** — `upgrader.py` used `ResolvedPlan` in annotations
|
|
66
|
+
without importing it (harmless under `from __future__ import annotations`, but undefined) and passed
|
|
67
|
+
`str | Path` to a `Path`-typed `_compare`; `_format_preview` could dereference `None`;
|
|
68
|
+
`prompts._choose_many` and `__main__` used None-returning calls in value position. All fixed; the
|
|
69
|
+
codebase is now `ruff` + `mypy --ignore-missing-imports` clean. Two hook scripts had redundant,
|
|
70
|
+
shellcheck-flagged glob alternatives (`*__tests__*` under `*test*`; `*oauth*`/`*authoriz*` under
|
|
71
|
+
`*auth*`) — removed with no behavior change.
|
|
72
|
+
|
|
7
73
|
## [0.23.0] — 2026-06-23
|
|
8
74
|
|
|
9
75
|
**PR2 of the phased hardening review: structural single-source-of-truth for hooks, and plugin/CLI
|
|
@@ -489,7 +555,7 @@ values (→ `#______` placeholders, matching the existing `design-system-complia
|
|
|
489
555
|
|
|
490
556
|
## [0.15.0] — 2026-06-16
|
|
491
557
|
|
|
492
|
-
**Adopt
|
|
558
|
+
**Adopt a set of internal engineering personas & skills** (a private Claude Code plugin marketplace —
|
|
493
559
|
11 agents + 29 skills across 7 plugins: engineer, designer, pm, context-gen, staff-em, staff-sdet,
|
|
494
560
|
staff-pm). Those plugins are excellent but heavily **stack-bound** (FastAPI/SQLAlchemy/Pydantic/React/
|
|
495
561
|
Tailwind/Radix/Zod/Temporal/Kafka/Langfuse, against an internal `.ai/` doc convention). Mirroring all
|
|
@@ -503,7 +569,7 @@ nothing), **18 extend** (a real delta folded into the nearest existing component
|
|
|
503
569
|
layer), **1 adopt-core** (genuinely new + stack-agnostic). Net: **2 new core skills, ~10 surgical core
|
|
504
570
|
extends, 1 new React overlay rule + FastAPI/React overlay enrichments, 5 new org components** — zero
|
|
505
571
|
stack leakage into core, zero diluting duplicates. IP boundary: technique-and-structure only, no source
|
|
506
|
-
text copied; every
|
|
572
|
+
text copied; every source-internal reference (internal doc conventions, internal field/service names, numeric
|
|
507
573
|
heuristics) stripped or genericized.
|
|
508
574
|
|
|
509
575
|
Three deliberate decisions: **(1)** Temporal/Kafka/Langfuse are **not** added as selectable stacks —
|
|
@@ -28,7 +28,7 @@ distributed two ways from one source of truth:
|
|
|
28
28
|
| `templates/stacks/<kind>/<id>/` | Per-stack **overlay** content: `rules/` (+ `agents/` for DB stacks). **No application code, no Docker** — the only place stack-specific content lives. |
|
|
29
29
|
| `templates/org/` | **Org overlay** content (scope-gated, organization only): `skills/`, `agents/` (personas), `rules/` (policy/vibe), `packs/<pack>/{pack.yaml,README.md}`, `README.md`. Wired via `catalog/org.yaml`. The only place org-specific content lives. |
|
|
30
30
|
| `scripts/init.sh` | Thin no-pip fallback scaffolder (copies the full payload; no catalog resolution) |
|
|
31
|
-
| `src/claude_kit/` | The pip CLI (Typer): `cli.py`, `catalog.py` (resolver), `prompts.py`, `models.py`, `scaffold.py` (installer), `render.py` (Jinja2), `hooks.py`, `validator.py
|
|
31
|
+
| `src/claude_kit/` | The pip CLI (Typer): `cli.py`, `catalog.py` (resolver), `prompts.py`, `models.py`, `scaffold.py` (installer), `render.py` (Jinja2), `hooks.py`, `validator.py` (incl. `validate --strict` + `check_catalog`), `upgrader.py`, `pipeline.py` (deterministic `/sdlc` state-file ops) |
|
|
32
32
|
| `tests/` | pytest suite (catalog, render, scaffold, validator, upgrader, CLI; incl. the profile×stack×scope self-test matrix) |
|
|
33
33
|
| `examples/` | Synthetic end-to-end `/sdlc` worked example (repo reference; **not** bundled into the wheel) |
|
|
34
34
|
| `docs/architecture.md` · `docs/agents.md` · `docs/coverage-audit.md` · `docs/eval-harness.md` | Architecture diagrams · agent guide · the GATED-vs-RULE-vs-SKILL enforcement audit · the with/without eval template |
|
|
@@ -71,6 +71,13 @@ claude-kit diff /tmp/ck-demo
|
|
|
71
71
|
# Tests:
|
|
72
72
|
pytest
|
|
73
73
|
|
|
74
|
+
# Lint / type / shell / drift checks (all run in CI — keep them green locally):
|
|
75
|
+
ruff check src scripts tests && ruff format --check src scripts tests
|
|
76
|
+
mypy
|
|
77
|
+
shellcheck -S warning hooks/scripts/*.sh scripts/*.sh
|
|
78
|
+
python scripts/gen_hooks.py --check
|
|
79
|
+
python scripts/check_docs_consistency.py
|
|
80
|
+
|
|
74
81
|
# Build + validate the package:
|
|
75
82
|
python3 -m build
|
|
76
83
|
python3 -m twine check dist/*
|
|
@@ -88,8 +95,9 @@ a specific stack — `pytest` enforces the no-Docker invariant on a scaffolded p
|
|
|
88
95
|
|
|
89
96
|
## Releasing
|
|
90
97
|
|
|
91
|
-
1. Bump the version in **all
|
|
92
|
-
`.claude-plugin/marketplace.json` entry,
|
|
98
|
+
1. Bump the version in **all five** places: `pyproject.toml`, `.claude-plugin/plugin.json`, the
|
|
99
|
+
`.claude-plugin/marketplace.json` entry, `src/claude_kit/__init__.py`, and `SECURITY.md`
|
|
100
|
+
(`check_docs_consistency.py` enforces parity across all of them + the latest `CHANGELOG.md` heading).
|
|
93
101
|
2. Add a `CHANGELOG.md` entry, including a **"Not adopted (deliberately)"** block stating what you
|
|
94
102
|
chose *not* to add and why — this is a marketed feature of the changelog (the README links to it),
|
|
95
103
|
so keep it. If those blocks ever grow unwieldy they may later split into `docs/decision-log.md`,
|
|
@@ -1,3 +1,33 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: claude-code-kit
|
|
3
|
+
Version: 0.25.0
|
|
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
|
+
Project-URL: Homepage, https://github.com/ajyadav013/claude-kit
|
|
6
|
+
Project-URL: Repository, https://github.com/ajyadav013/claude-kit
|
|
7
|
+
Project-URL: Issues, https://github.com/ajyadav013/claude-kit/issues
|
|
8
|
+
Author: Arjunsingh Yadav
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: agentic,agents,automation,claude,claude-code,code-review,cookiecutter,fastapi,generator,orchestration,react,scaffold,sdlc,testing
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Topic :: Software Development
|
|
17
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
18
|
+
Requires-Python: >=3.9
|
|
19
|
+
Requires-Dist: jinja2>=3.1
|
|
20
|
+
Requires-Dist: pyyaml>=6.0
|
|
21
|
+
Requires-Dist: typer>=0.12
|
|
22
|
+
Provides-Extra: dev
|
|
23
|
+
Requires-Dist: build>=1.2; extra == 'dev'
|
|
24
|
+
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
25
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
26
|
+
Requires-Dist: ruff>=0.6; extra == 'dev'
|
|
27
|
+
Requires-Dist: shellcheck-py>=0.10; extra == 'dev'
|
|
28
|
+
Requires-Dist: twine>=5.0; extra == 'dev'
|
|
29
|
+
Description-Content-Type: text/markdown
|
|
30
|
+
|
|
1
31
|
<div align="center">
|
|
2
32
|
|
|
3
33
|
# claude-kit
|
|
@@ -14,7 +44,7 @@ with a quality gate between every phase. **No application code. No Docker. Confi
|
|
|
14
44
|
[](https://github.com/ajyadav013/claude-kit/actions/workflows/ci.yml)
|
|
15
45
|
[](CHANGELOG.md)
|
|
16
46
|
|
|
17
|
-
✨ [Features](#features) · 🚀 [Quick start](#quick-start) · 🧭 [How it works](#how-it-works) · 🔁 [The pipeline](#the-pipeline) · 🧪 [Example](examples/) · 🌱 [What we adopted](#influences--what-we-adopted) · 🤖 [Agents](#the-agents) · 🧩 [Catalog](#catalog--extensibility) · 🛠️ [CLI](#cli-reference) · 📖 [Agent guide](docs/agents.md)
|
|
47
|
+
✨ [Features](#features) · 🚀 [Quick start](#quick-start) · 🧭 [How it works](#how-it-works) · 🔁 [The pipeline](#the-pipeline) · 🧪 [Example](examples/) · 🌱 [What we adopted](#influences--what-we-adopted) · 🤖 [Agents](#the-agents) · 🧩 [Catalog](#catalog--extensibility) · 🛠️ [CLI](#cli-reference) · 🔒 [Security](#security--trust-model) · 📖 [Agent guide](docs/agents.md)
|
|
18
48
|
|
|
19
49
|
</div>
|
|
20
50
|
|
|
@@ -586,10 +616,11 @@ everything available.
|
|
|
586
616
|
| Command | Description |
|
|
587
617
|
|---------|-------------|
|
|
588
618
|
| `init [path] [--defaults] [--config FILE] [--force]` | Scaffold `CLAUDE.md` + `.claude/` (interactive or non-interactive) |
|
|
589
|
-
| `validate [path]` | Structurally validate an installed config |
|
|
590
|
-
| `doctor [path]` |
|
|
619
|
+
| `validate [path] [--strict]` | Structurally validate an installed config; `--strict` adds hooks→script, `.mcp.json`-shape, snapshot, and catalog-integrity checks |
|
|
620
|
+
| `doctor [path] [--mcp]` | Strict validate + environment/health checks; `--mcp` checks MCP commands, `${ENV}` vars, and lockfile drift |
|
|
591
621
|
| `diff [path]` | Preview what an `upgrade` would change (no writes) |
|
|
592
622
|
| `upgrade [path] [--force]` | Refresh kit/overlay files; protect your edits; prune orphans |
|
|
623
|
+
| `pipeline validate · status · close-gate · abort` | Inspect/mutate the `/sdlc` state files (gate/lane/evidence coherence); **does not run** the pipeline |
|
|
593
624
|
| `list-options` | List available frontend/backend/database/profile/MCP options |
|
|
594
625
|
| `status [path]` | Show what's installed, the selection, and working memory |
|
|
595
626
|
| `version` | Print the version |
|
|
@@ -598,6 +629,9 @@ everything available.
|
|
|
598
629
|
Plugin slash commands: `/claude-kit:init`, `/claude-kit:sdlc <task>`, `/claude-kit:status`; and the
|
|
599
630
|
`/sdlc` skill inside any scaffolded project.
|
|
600
631
|
|
|
632
|
+
> When MCP servers are selected, `init` also writes a derived **`.mcp.lock.json`** pinning each
|
|
633
|
+
> server's resolved package version — inspect it (or run `doctor --mcp`) to see exactly what would run.
|
|
634
|
+
|
|
601
635
|
</details>
|
|
602
636
|
|
|
603
637
|
<details>
|
|
@@ -634,6 +668,30 @@ hints.
|
|
|
634
668
|
|
|
635
669
|
---
|
|
636
670
|
|
|
671
|
+
## Security & trust model
|
|
672
|
+
|
|
673
|
+
claude-kit installs **configuration only** — no application code, no Docker, nothing that runs as a
|
|
674
|
+
service. It never executes your code; it lays down rules, agents, skills, gates, and hook scripts that
|
|
675
|
+
**Claude Code** then follows. Three honest caveats are worth understanding before you rely on it:
|
|
676
|
+
|
|
677
|
+
- **The guard hooks are convenience, not a hardened boundary.** Scripts like `guard-secrets`,
|
|
678
|
+
`guard-destructive-git`, and the `warn-*` advisories raise the cost of a mistake — they do **not**
|
|
679
|
+
sandbox the agent or guarantee prevention. They need a POSIX shell + `jq` and **silently no-op**
|
|
680
|
+
without them (e.g. on Windows outside WSL/Git Bash). Treat them as seatbelts, not walls.
|
|
681
|
+
- **Most quality gates are agent protocols, not mechanical enforcement.** The pipeline's gates
|
|
682
|
+
(`spec-complete`, `code-review`, `security-clear`, …) are disciplines Claude is instructed to follow
|
|
683
|
+
and self-verify; only the hook scripts are deterministic, host-enforced checks. A capable model can
|
|
684
|
+
still be wrong or skip a step — keep a human in the loop for anything that matters.
|
|
685
|
+
- **MCP servers are third-party code.** Each fragment runs an external package (pinned to an exact
|
|
686
|
+
version) or a hosted endpoint that claude-kit references but does **not** vendor or audit. Review a
|
|
687
|
+
server's source and license before enabling it.
|
|
688
|
+
|
|
689
|
+
Releases are published to PyPI via OIDC **Trusted Publishing** (no long-lived API token) with **PEP 740
|
|
690
|
+
build attestations** for supply-chain provenance. Report vulnerabilities privately — see
|
|
691
|
+
[`SECURITY.md`](SECURITY.md) for the full scope and reporting process.
|
|
692
|
+
|
|
693
|
+
---
|
|
694
|
+
|
|
637
695
|
## Project structure
|
|
638
696
|
|
|
639
697
|
<details>
|
|
@@ -1,30 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: claude-code-kit
|
|
3
|
-
Version: 0.23.0
|
|
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
|
-
Project-URL: Homepage, https://github.com/ajyadav013/claude-kit
|
|
6
|
-
Project-URL: Repository, https://github.com/ajyadav013/claude-kit
|
|
7
|
-
Project-URL: Issues, https://github.com/ajyadav013/claude-kit/issues
|
|
8
|
-
Author: Arjunsingh Yadav
|
|
9
|
-
License-Expression: MIT
|
|
10
|
-
License-File: LICENSE
|
|
11
|
-
Keywords: agentic,agents,automation,claude,claude-code,code-review,cookiecutter,fastapi,generator,orchestration,react,scaffold,sdlc,testing
|
|
12
|
-
Classifier: Development Status :: 4 - Beta
|
|
13
|
-
Classifier: Environment :: Console
|
|
14
|
-
Classifier: Intended Audience :: Developers
|
|
15
|
-
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Topic :: Software Development
|
|
17
|
-
Classifier: Topic :: Software Development :: Quality Assurance
|
|
18
|
-
Requires-Python: >=3.9
|
|
19
|
-
Requires-Dist: jinja2>=3.1
|
|
20
|
-
Requires-Dist: pyyaml>=6.0
|
|
21
|
-
Requires-Dist: typer>=0.12
|
|
22
|
-
Provides-Extra: dev
|
|
23
|
-
Requires-Dist: build>=1.2; extra == 'dev'
|
|
24
|
-
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
25
|
-
Requires-Dist: twine>=5.0; extra == 'dev'
|
|
26
|
-
Description-Content-Type: text/markdown
|
|
27
|
-
|
|
28
1
|
<div align="center">
|
|
29
2
|
|
|
30
3
|
# claude-kit
|
|
@@ -41,7 +14,7 @@ with a quality gate between every phase. **No application code. No Docker. Confi
|
|
|
41
14
|
[](https://github.com/ajyadav013/claude-kit/actions/workflows/ci.yml)
|
|
42
15
|
[](CHANGELOG.md)
|
|
43
16
|
|
|
44
|
-
✨ [Features](#features) · 🚀 [Quick start](#quick-start) · 🧭 [How it works](#how-it-works) · 🔁 [The pipeline](#the-pipeline) · 🧪 [Example](examples/) · 🌱 [What we adopted](#influences--what-we-adopted) · 🤖 [Agents](#the-agents) · 🧩 [Catalog](#catalog--extensibility) · 🛠️ [CLI](#cli-reference) · 📖 [Agent guide](docs/agents.md)
|
|
17
|
+
✨ [Features](#features) · 🚀 [Quick start](#quick-start) · 🧭 [How it works](#how-it-works) · 🔁 [The pipeline](#the-pipeline) · 🧪 [Example](examples/) · 🌱 [What we adopted](#influences--what-we-adopted) · 🤖 [Agents](#the-agents) · 🧩 [Catalog](#catalog--extensibility) · 🛠️ [CLI](#cli-reference) · 🔒 [Security](#security--trust-model) · 📖 [Agent guide](docs/agents.md)
|
|
45
18
|
|
|
46
19
|
</div>
|
|
47
20
|
|
|
@@ -613,10 +586,11 @@ everything available.
|
|
|
613
586
|
| Command | Description |
|
|
614
587
|
|---------|-------------|
|
|
615
588
|
| `init [path] [--defaults] [--config FILE] [--force]` | Scaffold `CLAUDE.md` + `.claude/` (interactive or non-interactive) |
|
|
616
|
-
| `validate [path]` | Structurally validate an installed config |
|
|
617
|
-
| `doctor [path]` |
|
|
589
|
+
| `validate [path] [--strict]` | Structurally validate an installed config; `--strict` adds hooks→script, `.mcp.json`-shape, snapshot, and catalog-integrity checks |
|
|
590
|
+
| `doctor [path] [--mcp]` | Strict validate + environment/health checks; `--mcp` checks MCP commands, `${ENV}` vars, and lockfile drift |
|
|
618
591
|
| `diff [path]` | Preview what an `upgrade` would change (no writes) |
|
|
619
592
|
| `upgrade [path] [--force]` | Refresh kit/overlay files; protect your edits; prune orphans |
|
|
593
|
+
| `pipeline validate · status · close-gate · abort` | Inspect/mutate the `/sdlc` state files (gate/lane/evidence coherence); **does not run** the pipeline |
|
|
620
594
|
| `list-options` | List available frontend/backend/database/profile/MCP options |
|
|
621
595
|
| `status [path]` | Show what's installed, the selection, and working memory |
|
|
622
596
|
| `version` | Print the version |
|
|
@@ -625,6 +599,9 @@ everything available.
|
|
|
625
599
|
Plugin slash commands: `/claude-kit:init`, `/claude-kit:sdlc <task>`, `/claude-kit:status`; and the
|
|
626
600
|
`/sdlc` skill inside any scaffolded project.
|
|
627
601
|
|
|
602
|
+
> When MCP servers are selected, `init` also writes a derived **`.mcp.lock.json`** pinning each
|
|
603
|
+
> server's resolved package version — inspect it (or run `doctor --mcp`) to see exactly what would run.
|
|
604
|
+
|
|
628
605
|
</details>
|
|
629
606
|
|
|
630
607
|
<details>
|
|
@@ -661,6 +638,30 @@ hints.
|
|
|
661
638
|
|
|
662
639
|
---
|
|
663
640
|
|
|
641
|
+
## Security & trust model
|
|
642
|
+
|
|
643
|
+
claude-kit installs **configuration only** — no application code, no Docker, nothing that runs as a
|
|
644
|
+
service. It never executes your code; it lays down rules, agents, skills, gates, and hook scripts that
|
|
645
|
+
**Claude Code** then follows. Three honest caveats are worth understanding before you rely on it:
|
|
646
|
+
|
|
647
|
+
- **The guard hooks are convenience, not a hardened boundary.** Scripts like `guard-secrets`,
|
|
648
|
+
`guard-destructive-git`, and the `warn-*` advisories raise the cost of a mistake — they do **not**
|
|
649
|
+
sandbox the agent or guarantee prevention. They need a POSIX shell + `jq` and **silently no-op**
|
|
650
|
+
without them (e.g. on Windows outside WSL/Git Bash). Treat them as seatbelts, not walls.
|
|
651
|
+
- **Most quality gates are agent protocols, not mechanical enforcement.** The pipeline's gates
|
|
652
|
+
(`spec-complete`, `code-review`, `security-clear`, …) are disciplines Claude is instructed to follow
|
|
653
|
+
and self-verify; only the hook scripts are deterministic, host-enforced checks. A capable model can
|
|
654
|
+
still be wrong or skip a step — keep a human in the loop for anything that matters.
|
|
655
|
+
- **MCP servers are third-party code.** Each fragment runs an external package (pinned to an exact
|
|
656
|
+
version) or a hosted endpoint that claude-kit references but does **not** vendor or audit. Review a
|
|
657
|
+
server's source and license before enabling it.
|
|
658
|
+
|
|
659
|
+
Releases are published to PyPI via OIDC **Trusted Publishing** (no long-lived API token) with **PEP 740
|
|
660
|
+
build attestations** for supply-chain provenance. Report vulnerabilities privately — see
|
|
661
|
+
[`SECURITY.md`](SECURITY.md) for the full scope and reporting process.
|
|
662
|
+
|
|
663
|
+
---
|
|
664
|
+
|
|
664
665
|
## Project structure
|
|
665
666
|
|
|
666
667
|
<details>
|
|
@@ -51,9 +51,9 @@ The pattern matches the rest of the kit: a *discipline* is a RULE (always-on gui
|
|
|
51
51
|
spec/EM gate exists at all. P0-2 is the exception that strengthens *every* gate by making a fabricated
|
|
52
52
|
verdict auto-Critical, without adding a token.
|
|
53
53
|
|
|
54
|
-
##
|
|
54
|
+
## Internal-toolkit adoption disciplines (as of 0.15.0)
|
|
55
55
|
|
|
56
|
-
The
|
|
56
|
+
The internal persona/skill adoption (CHANGELOG 0.15.0) added capabilities reuse-first. Consistent with the
|
|
57
57
|
posture above, it added **no new gate tokens** — the new capabilities are SKILLs, OVERLAY rules, or
|
|
58
58
|
checklists that ride *inside existing* review gates. Enforcement class of each:
|
|
59
59
|
|
|
@@ -12,7 +12,7 @@ low="$(printf '%s' "$FILE_PATH" | tr '[:upper:]' '[:lower:]')"
|
|
|
12
12
|
|
|
13
13
|
# Skip non-source: tests, docs, config, markdown, and the kit's own config.
|
|
14
14
|
case "$low" in
|
|
15
|
-
*test*|*spec
|
|
15
|
+
*test*|*spec*|*.md|*.markdown|*.json|*.ya?ml|*.toml|*.ini|*.cfg|*.txt|*.lock|*/.claude/*)
|
|
16
16
|
exit 0 ;;
|
|
17
17
|
esac
|
|
18
18
|
|
|
@@ -11,7 +11,7 @@ FILE_PATH="$(echo "$INPUT" | jq -r '.tool_input.file_path // .tool_response.file
|
|
|
11
11
|
low="$(printf '%s' "$FILE_PATH" | tr '[:upper:]' '[:lower:]')"
|
|
12
12
|
|
|
13
13
|
case "$low" in
|
|
14
|
-
*auth*|*login*|*session*|*
|
|
14
|
+
*auth*|*login*|*session*|*jwt*|*password*|*permission*|*rbac*)
|
|
15
15
|
echo "WARN: editing an AUTH / authorization surface ($FILE_PATH). High-risk: get review + security check before completion (.claude/rules/risk-classification.md)." >&2 ;;
|
|
16
16
|
esac
|
|
17
17
|
case "$low" in
|
|
@@ -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.25.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"
|
|
@@ -46,6 +46,9 @@ dev = [
|
|
|
46
46
|
"pytest>=8.0",
|
|
47
47
|
"build>=1.2",
|
|
48
48
|
"twine>=5.0",
|
|
49
|
+
"ruff>=0.6",
|
|
50
|
+
"mypy>=1.10",
|
|
51
|
+
"shellcheck-py>=0.10",
|
|
49
52
|
]
|
|
50
53
|
|
|
51
54
|
[project.urls]
|
|
@@ -62,6 +65,20 @@ claude-sdlc = "claude_kit.cli:main"
|
|
|
62
65
|
testpaths = ["tests"]
|
|
63
66
|
pythonpath = ["."]
|
|
64
67
|
|
|
68
|
+
[tool.ruff]
|
|
69
|
+
target-version = "py39"
|
|
70
|
+
|
|
71
|
+
[tool.ruff.lint]
|
|
72
|
+
# Deliberately conservative: pyflakes (F) + the actionable pycodestyle subsets (E4/E7/E9, W) +
|
|
73
|
+
# import sorting (I) + bugbear (B). Line length (E501) is intentionally NOT enforced — docstrings and
|
|
74
|
+
# pinned-version comments run long on purpose and `ruff format` owns layout.
|
|
75
|
+
select = ["E4", "E7", "E9", "F", "W", "I", "B"]
|
|
76
|
+
|
|
77
|
+
[tool.mypy]
|
|
78
|
+
files = ["src/claude_kit"]
|
|
79
|
+
ignore_missing_imports = true
|
|
80
|
+
# typer/yaml ship without type stubs; we check our own code, not third-party signatures.
|
|
81
|
+
|
|
65
82
|
[tool.hatch.build.targets.wheel]
|
|
66
83
|
packages = ["src/claude_kit"]
|
|
67
84
|
|
|
@@ -151,7 +151,7 @@ from app.database import Base
|
|
|
151
151
|
from config.settings import settings
|
|
152
152
|
|
|
153
153
|
# Import all models (wildcard imports)
|
|
154
|
-
from app.
|
|
154
|
+
from app.items.models import *
|
|
155
155
|
from app.units.models import *
|
|
156
156
|
# ... (40+ wildcard imports)
|
|
157
157
|
|
|
@@ -183,8 +183,8 @@ from app.users.models import User
|
|
|
183
183
|
from app.organizations.models import Organization
|
|
184
184
|
|
|
185
185
|
# Wildcard imports (acceptable in env.py, used in multiple production services)
|
|
186
|
-
from
|
|
187
|
-
from
|
|
186
|
+
from app.users.models import *
|
|
187
|
+
from app.tenants.models import *
|
|
188
188
|
```
|
|
189
189
|
|
|
190
190
|
**Critical**: If a model is not imported in `env.py`, Alembic won't detect it for autogenerate.
|
|
@@ -146,9 +146,9 @@ from app.database import Base
|
|
|
146
146
|
from config.settings import settings
|
|
147
147
|
|
|
148
148
|
# Wildcard model imports
|
|
149
|
-
from app.
|
|
149
|
+
from app.items.models import *
|
|
150
150
|
from app.units.models import *
|
|
151
|
-
from app.
|
|
151
|
+
from app.catalog.models import *
|
|
152
152
|
# ... 40+ wildcard imports
|
|
153
153
|
|
|
154
154
|
# target_metadata
|
|
@@ -34,10 +34,10 @@ alembic/versions/
|
|
|
34
34
|
```
|
|
35
35
|
alembic/versions/
|
|
36
36
|
├── 202407301751-ad610b2bab70_add_event_log_table.py
|
|
37
|
-
├── 202408011255-
|
|
37
|
+
├── 202408011255-e848fe551d9b_add_category_mapping_tables.py
|
|
38
38
|
├── 202408012159-c3f783a32f7c_add_username_to_event_log_table.py
|
|
39
|
-
├── 202408052213-
|
|
40
|
-
├── 202409031128-
|
|
39
|
+
├── 202408052213-943a94fc4f73_add_is_active_to_mapping_tables.py
|
|
40
|
+
├── 202409031128-0fc8dde689fe_add_source_cluster.py
|
|
41
41
|
└── ...
|
|
42
42
|
```
|
|
43
43
|
|
|
@@ -53,10 +53,10 @@ alembic/versions/
|
|
|
53
53
|
|
|
54
54
|
```
|
|
55
55
|
migrations/versions/
|
|
56
|
-
├──
|
|
56
|
+
├── 554395de0772_added_data_models.py
|
|
57
57
|
├── 9d07416cb3d0_modified_generated_file_model.py
|
|
58
|
-
├──
|
|
59
|
-
└──
|
|
58
|
+
├── cb876bd3ff47_added_watermark_model.py
|
|
59
|
+
└── d5885c4539c2_updated_watermark_table.py
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
**Format**: `{auto_hash}_{description}.py` (default Alembic behavior)
|
{claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/api-pagination-filtering-sorting/README.md
RENAMED
|
@@ -18,7 +18,7 @@ This skill covers production-tested conventions for designing paginated, filtere
|
|
|
18
18
|
|
|
19
19
|
## Origin
|
|
20
20
|
|
|
21
|
-
This skill derives from real production backend services handling inventory, forecasting,
|
|
21
|
+
This skill derives from real production backend services handling inventory, forecasting, and order data. It distills conventions observed across multiple services with large datasets (10k-1M+ records per tenant) requiring efficient pagination, multi-dimensional filtering, and flexible sorting.
|
|
22
22
|
|
|
23
23
|
## Relation to other skills
|
|
24
24
|
|
{claude_code_kit-0.23.0 → claude_code_kit-0.25.0}/skills/api-pagination-filtering-sorting/SKILL.md
RENAMED
|
@@ -26,7 +26,7 @@ Standardize HTTP query parameter conventions and response metadata for paginated
|
|
|
26
26
|
|
|
27
27
|
4. **Multi-value filters via FastAPI `Query`**: For filters that accept multiple values (e.g., `status`, `store_ids`, `segment_codes`), use `Optional[List[str]] = Query(None, description="...")`. The client sends `?status=pending&status=approved` or `?status[]=pending&status[]=approved` (FastAPI accepts both). In the query builder, translate to SQL `IN` clause or `ANY(ARRAY[...])`.
|
|
28
28
|
|
|
29
|
-
5. **Comma-separated multi-value filters**: Some endpoints accept comma-separated values in a single param (e.g., `?
|
|
29
|
+
5. **Comma-separated multi-value filters**: Some endpoints accept comma-separated values in a single param (e.g., `?items=ITEM-001,ITEM-002,ITEM-003`). Use `Optional[str] = Query(None)` and split by comma in the service or repository layer before building SQL. This pattern is common for legacy APIs or when the client cannot send array query params.
|
|
30
30
|
|
|
31
31
|
6. **Hierarchical filters**: Product or location hierarchies (e.g., segment → family → class → brick; zone → format → state → region → city → store) use separate query params for each level. Each is optional; when provided, it narrows results to that level. Example: `?segment=BEVERAGES&family=SOFT_DRINKS&class=COLA`. Query builder applies `WHERE` clauses for each non-null filter. Some services support both singular and plural param names (`?store=...` and `?stores=...`); prefer plural for multi-value, singular for single value.
|
|
32
32
|
|
|
@@ -36,9 +36,9 @@ Standardize HTTP query parameter conventions and response metadata for paginated
|
|
|
36
36
|
|
|
37
37
|
9. **Repository layer pagination**: The repository fetches two results in parallel—`(records_data, total_count)`—via `asyncio.gather` or sequential calls. It executes the count query to get `total_count`, then executes the data query with `LIMIT/OFFSET`. Service layer constructs the response object with data + pagination metadata. For download endpoints (no pagination), omit `LIMIT/OFFSET` from the query.
|
|
38
38
|
|
|
39
|
-
10. **Search across multiple fields**: A single `search` query param applies a case-insensitive substring match across multiple columns. In SQL, use `WHERE (LOWER(field1) LIKE LOWER(:search) OR LOWER(field2) LIKE LOWER(:search) OR ...)` with param `%{search}%`. Some implementations use `ILIKE` (PostgreSQL) or full-text search. Common searchable fields:
|
|
39
|
+
10. **Search across multiple fields**: A single `search` query param applies a case-insensitive substring match across multiple columns. In SQL, use `WHERE (LOWER(field1) LIKE LOWER(:search) OR LOWER(field2) LIKE LOWER(:search) OR ...)` with param `%{search}%`. Some implementations use `ILIKE` (PostgreSQL) or full-text search. Common searchable fields: item codes, descriptions, store IDs, order IDs.
|
|
40
40
|
|
|
41
|
-
11. **Pydantic models for query params**: Define a `QueryParams` Pydantic model (e.g., `
|
|
41
|
+
11. **Pydantic models for query params**: Define a `QueryParams` Pydantic model (e.g., `InventoryQueryParams`, `ForecastQuery`) to encapsulate all filters, pagination, sorting, and search params. This separates route handler param extraction from business logic. The model can provide helper methods like `@property def limit(self)` to derive limit from `page_size` or compute `offset` from `page` and `page_size`.
|
|
42
42
|
|
|
43
43
|
12. **FastAPI route handler**: Extract query params via `Query()` for primitive types or depend on Pydantic model. Calculate `offset = (page - 1) * page_size` if needed. Call service layer with `query_params` object or individual params. Return response via `ResponseData.ok(data=..., pagination=...)` or a typed response model wrapping data + metadata.
|
|
44
44
|
|
|
@@ -175,8 +175,8 @@ class ItemQueryBuilder:
|
|
|
175
175
|
search_param = self._add_param(f"%{search}%")
|
|
176
176
|
return f"""
|
|
177
177
|
AND (
|
|
178
|
-
LOWER(
|
|
179
|
-
OR LOWER(
|
|
178
|
+
LOWER(item_id) LIKE LOWER({search_param})
|
|
179
|
+
OR LOWER(item_description) LIKE LOWER({search_param})
|
|
180
180
|
OR LOWER(store_id) LIKE LOWER({search_param})
|
|
181
181
|
)
|
|
182
182
|
"""
|
|
@@ -186,7 +186,7 @@ class ItemQueryBuilder:
|
|
|
186
186
|
sort_mapping = {
|
|
187
187
|
"created_at": "created_at",
|
|
188
188
|
"updated_at": "updated_at",
|
|
189
|
-
"
|
|
189
|
+
"item": "item_id",
|
|
190
190
|
"store": "store_id",
|
|
191
191
|
}
|
|
192
192
|
column = sort_mapping.get(sort_by, "created_at")
|
|
@@ -284,7 +284,7 @@ async def list_items(
|
|
|
284
284
|
sort_by: str = Query("created_at", description="Field to sort by"),
|
|
285
285
|
sort_order: str = Query("desc", regex="^(asc|desc)$", description="Sort direction"),
|
|
286
286
|
# Search
|
|
287
|
-
search: Optional[str] = Query(None, description="Search across
|
|
287
|
+
search: Optional[str] = Query(None, description="Search across item, description, store"),
|
|
288
288
|
# Filters
|
|
289
289
|
status: Optional[List[str]] = Query(None, description="Filter by status (multi-value)"),
|
|
290
290
|
store_ids: Optional[List[str]] = Query(None, description="Filter by store IDs"),
|
|
@@ -301,7 +301,7 @@ async def list_items(
|
|
|
301
301
|
- page_size: Records per page (1-100, default: 20)
|
|
302
302
|
|
|
303
303
|
**Sorting:**
|
|
304
|
-
- sort_by: Field to sort by (created_at, updated_at,
|
|
304
|
+
- sort_by: Field to sort by (created_at, updated_at, item, store)
|
|
305
305
|
- sort_order: asc or desc (default: desc)
|
|
306
306
|
|
|
307
307
|
**Filters:**
|
|
@@ -311,7 +311,7 @@ async def list_items(
|
|
|
311
311
|
- family: Product family (hierarchical, requires segment)
|
|
312
312
|
|
|
313
313
|
**Search:**
|
|
314
|
-
- search: Substring match across
|
|
314
|
+
- search: Substring match across item_id, item_description, store_id
|
|
315
315
|
"""
|
|
316
316
|
query_params = QueryParams(
|
|
317
317
|
page=page,
|
|
@@ -336,7 +336,7 @@ async def list_items(
|
|
|
336
336
|
5. **Single-responsibility violation**: Query construction in route handlers; move SQL building to a dedicated QueryBuilder or repository method.
|
|
337
337
|
6. **Zero-indexed `page` in user-facing APIs**: Users expect page 1 to be the first page; use 1-indexed `page` in API and convert to 0-indexed offset internally.
|
|
338
338
|
7. **Hardcoding sort column names**: User sends `sort_by=doh` but SQL uses `days_on_hand`; maintain a sort mapping dict to translate user-facing names to column names.
|
|
339
|
-
8. **Ignoring case-sensitivity in search**: `WHERE
|
|
339
|
+
8. **Ignoring case-sensitivity in search**: `WHERE item_id LIKE :search` is case-sensitive on some DBs; use `LOWER(...)` or `ILIKE` for case-insensitive search.
|
|
340
340
|
9. **Fetching full result set then paginating in Python**: Always push `LIMIT/OFFSET` to SQL; paginating in-memory defeats the purpose and exhausts memory on large datasets.
|
|
341
341
|
10. **Not validating `sort_order`**: Accepting arbitrary `sort_order` can inject ASC/DESC into SQL unsafely; use `regex="^(asc|desc)$"` or enum validation.
|
|
342
342
|
11. **Returning inconsistent metadata field names**: `total` vs `total_records`, `limit` vs `page_size`, `next` vs `has_next`; standardize on one naming convention per service.
|
|
@@ -86,16 +86,16 @@ WHERE store_id = ANY($2)
|
|
|
86
86
|
Legacy or client-constrained APIs:
|
|
87
87
|
|
|
88
88
|
```python
|
|
89
|
-
|
|
89
|
+
items: Optional[str] = Query(None, description="Comma-separated item codes")
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
Split in service/repository:
|
|
93
93
|
```python
|
|
94
|
-
|
|
95
|
-
# Then use in SQL: WHERE
|
|
94
|
+
item_list = items.split(',') if items else []
|
|
95
|
+
# Then use in SQL: WHERE item_id = ANY($1)
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
Example: `?
|
|
98
|
+
Example: `?items=ITEM-001,ITEM-002,ITEM-003`
|
|
99
99
|
|
|
100
100
|
## Hierarchical filters
|
|
101
101
|
|
|
@@ -172,14 +172,14 @@ query = f"ORDER BY {column} {sort_order.upper()}"
|
|
|
172
172
|
Single search param for multi-field substring matching:
|
|
173
173
|
|
|
174
174
|
```python
|
|
175
|
-
search: Optional[str] = Query(None, description="Search text across
|
|
175
|
+
search: Optional[str] = Query(None, description="Search text across item, description, store")
|
|
176
176
|
```
|
|
177
177
|
|
|
178
178
|
Translate to case-insensitive SQL:
|
|
179
179
|
```sql
|
|
180
180
|
WHERE (
|
|
181
|
-
LOWER(
|
|
182
|
-
OR LOWER(
|
|
181
|
+
LOWER(item_id) LIKE LOWER($1)
|
|
182
|
+
OR LOWER(item_description) LIKE LOWER($1)
|
|
183
183
|
OR LOWER(store_id) LIKE LOWER($1)
|
|
184
184
|
)
|
|
185
185
|
```
|
|
@@ -189,8 +189,8 @@ Param value: `f"%{search}%"`
|
|
|
189
189
|
Some implementations use PostgreSQL `ILIKE`:
|
|
190
190
|
```sql
|
|
191
191
|
WHERE (
|
|
192
|
-
|
|
193
|
-
OR
|
|
192
|
+
item_id ILIKE $1
|
|
193
|
+
OR item_description ILIKE $1
|
|
194
194
|
)
|
|
195
195
|
```
|
|
196
196
|
|