claude-code-kit 0.50.0__tar.gz → 0.51.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.50.0 → claude_code_kit-0.51.0}/.claude-plugin/marketplace.json +1 -1
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/.claude-plugin/plugin.json +1 -1
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/CHANGELOG.md +66 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/PKG-INFO +25 -13
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/README.md +24 -12
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/catalog/mcp.yaml +46 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/pyproject.toml +1 -1
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/devops-observability.md +40 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/human-in-the-loop.md +32 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/linting-and-formatting.md +57 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/reasoning-techniques.md +26 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/testing.md +96 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/tool-design.md +15 -1
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/api-integration/SKILL.md +24 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/context-engineering/SKILL.md +30 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/performance-optimization/SKILL.md +22 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/security-and-hardening/SKILL.md +129 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/src/claude_kit/__init__.py +1 -1
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/.gitignore +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/CLAUDE.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/CONTRIBUTING.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/LICENSE +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/acceptance-reviewer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/auditor.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/dependency-scanner.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/developer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/devils-advocate.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/devops-engineer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/e2e-tester.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/em-reviewer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/incident-responder.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/merge-reviewer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/observability-engineer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/orchestrator.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/owasp-reviewer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/policy-validator.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/pr-raiser.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/risk-classifier.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/sdlc-code-reviewer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/secret-scanner.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/security-reviewer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/senior-backend-dev.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/senior-frontend-dev.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/senior-tester.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/spec-doc-writer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/story-planner.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/technical-architect.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/tester.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/ui-designer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/agents/unit-tester.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/catalog/capture.yaml +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/catalog/org.yaml +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/catalog/profiles.yaml +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/catalog/stacks.yaml +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/commands/abort.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/commands/init.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/commands/sdlc.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/commands/status.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/docs/agentic-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/docs/agents.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/docs/architecture.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/docs/capture-a-real-run.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/docs/coverage-audit.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/docs/eval-harness.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/docs/org-capabilities.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/docs/stack-skills/GAP-ANALYSIS.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/docs/stack-skills/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/docs/stack-skills/REPO-INVENTORY.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/hooks.json +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/audit-log.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/capture-learnings.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/guard-destructive-git.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/guard-kubectl-delete.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/guard-secrets.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/lint-fix.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/load-autonomy.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/load-continuity.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/load-learnings.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/type-check.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/validate-frontmatter.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/validate-settings.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/warn-large-edits.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/warn-llm-io.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/warn-missing-tests.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/hooks/scripts/warn-shared-modules.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/agent-guardrails.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/agent-memory.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/agent-resilience.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/autonomy-levels.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/code-organization.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/continuity.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/design-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/documentation.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/evals.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/frontend-best-practices.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/goal-setting-and-monitoring.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/mandatory-workflow.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/model-tiers.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/quality-gates.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/rarv-cycle.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/responsive-and-accessibility.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/rules/risk-classification.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/scripts/capture-sdlc-run.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/scripts/check_docs_consistency.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/scripts/gen_hooks.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/scripts/init.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/_references/accessibility-checklist.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/_references/orchestration-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/_references/performance-checklist.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/_references/security-checklist.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/_references/testing-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/accessibility-review/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/alembic-migrations/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/alembic-migrations/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/alembic-migrations/references/alembic-setup-and-env.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/alembic-migrations/references/async-and-multitenant-migrations.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/alembic-migrations/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/alembic-migrations/references/troubleshooting-and-debugging.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/alembic-migrations/references/writing-migrations.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/anthropic-vertex-integration/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/anthropic-vertex-integration/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/anthropic-vertex-integration/references/generate-helpers-and-retry.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/anthropic-vertex-integration/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/anthropic-vertex-integration/references/vertex-client-and-auth.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/api-and-interface-design/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/api-pagination-filtering-sorting/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/api-pagination-filtering-sorting/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/api-pagination-filtering-sorting/references/query-params-conventions.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/api-pagination-filtering-sorting/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/api-pagination-filtering-sorting/references/response-metadata.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/archive-sprint/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/async-python-patterns/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/async-python-patterns/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/async-python-patterns/references/async-boundaries.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/async-python-patterns/references/lifecycle-and-gather.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/async-python-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/auth-and-rbac/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/auth-and-rbac/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/auth-and-rbac/references/auth-dependencies.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/auth-and-rbac/references/rbac-and-permissions.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/auth-and-rbac/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/auth-and-rbac/references/security-hardening.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/auth-and-rbac/references/tokens-and-hashing.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/backend-repo-architecture/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/backend-repo-architecture/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/backend-repo-architecture/references/deployment-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/backend-repo-architecture/references/entrypoint-and-config.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/backend-repo-architecture/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/backend-repo-architecture/references/structure-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/backend-repo-architecture/references/troubleshooting.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/backlog/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/backlog/item-template.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/bug-hunt/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/code-review-and-quality/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/code-simplification/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/component-design/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/configargparse-yaml-env-layering/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/configargparse-yaml-env-layering/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/configargparse-yaml-env-layering/references/config-layering-anatomy.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/configargparse-yaml-env-layering/references/mode-dispatch-and-precedence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/configargparse-yaml-env-layering/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/consolidate-learnings/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/containerization-and-deployment/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/containerization-and-deployment/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/containerization-and-deployment/references/deployment-and-secrets.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/containerization-and-deployment/references/dockerfile-and-compose.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/containerization-and-deployment/references/entrypoint-and-modes.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/containerization-and-deployment/references/kerberos-kinit-bootstrap.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/containerization-and-deployment/references/makefile-dev-workflow.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/containerization-and-deployment/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/cron-and-scheduled-jobs/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/cron-and-scheduled-jobs/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/cron-and-scheduled-jobs/references/choosing-and-operations.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/cron-and-scheduled-jobs/references/kubernetes-cronjob.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/cron-and-scheduled-jobs/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/cron-and-scheduled-jobs/references/temporal-schedules.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/data-engineering-bigquery-gcs/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/data-engineering-bigquery-gcs/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/data-engineering-bigquery-gcs/references/bigquery-advanced-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/data-engineering-bigquery-gcs/references/bigquery-gcs-io.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/data-engineering-bigquery-gcs/references/medallion-architecture.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/data-engineering-bigquery-gcs/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/data-engineering-bigquery-gcs/references/temp-table-merge-pattern.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/decision/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/decision/adr-template.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/dependency-verification/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/deprecation-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-patterns-and-conventions/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-patterns-and-conventions/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-patterns-and-conventions/references/anti-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-patterns-and-conventions/references/naming-and-layout.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-patterns-and-conventions/references/patterns-catalog.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-patterns-and-conventions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-patterns-and-conventions/references/testing-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-patterns-and-conventions/references/troubleshooting.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-system-ops/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-system-ops/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-system-ops/references/ai-readiness.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-system-ops/references/drift-detection.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-system-ops/references/governance-and-adoption.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-system-ops/references/system-health-and-maturity.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/design-system-ops/references/token-architecture.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/doc-consolidation/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/docker-compose/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/docker-compose/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/docker-compose/references/compose-services-and-healthchecks.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/docker-compose/references/dev-vs-prod-variants.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/docker-compose/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/docker-shared/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/docker-shared/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/docker-shared/references/dockerignore-and-build-secrets.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/docker-shared/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/docker-shared/references/shared-base-images.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/docker-shared/references/shared-compose-fragments.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/dockerfile-backend/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/dockerfile-backend/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/dockerfile-backend/references/backend-dockerfile-anatomy.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/dockerfile-backend/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/dockerfile-backend/references/system-deps-and-caching.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/dockerfile-frontend/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/dockerfile-frontend/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/dockerfile-frontend/references/build-args-and-nginx.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/dockerfile-frontend/references/frontend-dockerfile-anatomy.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/dockerfile-frontend/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/documentation-and-adrs/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/doubt-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/edge-to-service-trust-boundary/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/edge-to-service-trust-boundary/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/edge-to-service-trust-boundary/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/edge-to-service-trust-boundary/references/trust-contract.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/execute/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/fastapi-service-patterns/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/fastapi-service-patterns/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/fastapi-service-patterns/references/api-versioning.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/fastapi-service-patterns/references/app-factory-and-lifespan.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/fastapi-service-patterns/references/custom-route-and-middleware.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/fastapi-service-patterns/references/dependency-injection.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/fastapi-service-patterns/references/model-and-serialization-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/fastapi-service-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/file-export-and-reporting/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/file-export-and-reporting/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/file-export-and-reporting/references/excel-generation.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/file-export-and-reporting/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/file-export-and-reporting/references/streaming-and-downloads.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/frontend-repo-architecture/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/frontend-repo-architecture/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/frontend-repo-architecture/references/api-layer-and-types.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/frontend-repo-architecture/references/divergences.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/frontend-repo-architecture/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/frontend-repo-architecture/references/structure-and-state.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/frontend-repo-architecture/references/testing-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/gcp-cloud-run-github-actions/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/gcp-cloud-run-github-actions/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/gcp-cloud-run-github-actions/references/cloud-run-deploy.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/gcp-cloud-run-github-actions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/gcp-cloud-run-github-actions/references/workflow-structure.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/gcs-file-storage-patterns/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/gcs-file-storage-patterns/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/gcs-file-storage-patterns/references/client-and-uploads.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/gcs-file-storage-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/gcs-file-storage-patterns/references/signed-urls-and-reads.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/grafana-dashboards-and-alerts/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/grafana-dashboards-and-alerts/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/grafana-dashboards-and-alerts/references/dashboard-json-and-templating.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/grafana-dashboards-and-alerts/references/provisioning-and-organization.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/grafana-dashboards-and-alerts/references/red-metrics-queries.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/grafana-dashboards-and-alerts/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/grafana-dashboards-and-alerts/references/unified-alerting.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/graphql-patterns/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/graphql-patterns/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/graphql-patterns/references/apollo-client-frontend.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/graphql-patterns/references/apollo-client-setup.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/graphql-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/graphql-patterns/references/strawberry-backend.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/graphql-patterns/references/when-to-use-graphql.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/idea-refine/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/idea-refine/examples.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/idea-refine/frameworks.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/idea-refine/refinement-criteria.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/incident-postmortem/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/incremental-implementation/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/interview-me/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kafka-config-driven/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kafka-config-driven/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kafka-config-driven/references/config-and-sasl-kerberos.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kafka-config-driven/references/consumer-producer-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kafka-config-driven/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kafka-config-driven/references/troubleshooting-and-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kubectl-operations/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kubectl-operations/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kubectl-operations/references/command-reference.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kubectl-operations/references/context-namespace-rbac.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kubectl-operations/references/debugging-playbooks.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kubectl-operations/references/output-formats-and-selectors.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kubectl-operations/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kubernetes-workload-hardening/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kubernetes-workload-hardening/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kubernetes-workload-hardening/references/networkpolicy-and-rbac.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kubernetes-workload-hardening/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/kubernetes-workload-hardening/references/securitycontext-and-podsecurity.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/langfuse-llm-tracing/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/langfuse-llm-tracing/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/langfuse-llm-tracing/references/langfuse-client-and-tracing.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/langfuse-llm-tracing/references/python-and-typescript.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/langfuse-llm-tracing/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/library-review/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/load-testing/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/manual-test/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/modernization-and-migration/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/modernization-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/modernization-and-migration/references/migration-best-practices.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/modernization-and-migration/references/pydantic-v1-to-v2.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/modernization-and-migration/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/modernization-and-migration/references/shared-internal-library.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/modernization-and-migration/references/sqlalchemy-14-to-20.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/multi-tenancy-patterns/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/multi-tenancy-patterns/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/multi-tenancy-patterns/references/caching-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/multi-tenancy-patterns/references/isolation-strategies.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/multi-tenancy-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/multi-tenancy-patterns/references/tenant-resolution.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/node-express-service/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/node-express-service/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/node-express-service/references/app-factory-and-mode-dispatch.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/node-express-service/references/config-and-module-alias.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/node-express-service/references/middleware-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/node-express-service/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/node-objection-knex/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/node-objection-knex/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/node-objection-knex/references/migrations-and-validation.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/node-objection-knex/references/objection-model-and-knex.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/node-objection-knex/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/notifications-and-messaging/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/notifications-and-messaging/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/notifications-and-messaging/references/provider-abstraction.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/notifications-and-messaging/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/notifications-and-messaging/references/templates-and-fallback.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/observability-and-logging/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/observability-and-logging/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/observability-and-logging/references/health-and-readiness.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/observability-and-logging/references/logging-and-structlog.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/observability-and-logging/references/outbound-metrics-and-multi-mode.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/observability-and-logging/references/pii-redaction.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/observability-and-logging/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/observability-and-logging/references/tracing-and-metrics.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/otel-tracing/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/otel-tracing/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/otel-tracing/references/collector.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/otel-tracing/references/correlation.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/otel-tracing/references/gotchas.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/otel-tracing/references/instrumentation.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/otel-tracing/references/sampling.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/otel-tracing/references/tempo.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/over-engineering-review/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/playwright-verification/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/pydantic-schema-patterns/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/pydantic-schema-patterns/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/pydantic-schema-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/pydantic-schema-patterns/references/settings-and-validation.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/pydantic-schema-patterns/references/troubleshooting-and-common-errors.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/pydantic-schema-patterns/references/v1-vs-v2.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/python-dao-and-database/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/python-dao-and-database/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/python-dao-and-database/references/advanced-query-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/python-dao-and-database/references/basedao-and-sessions.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/python-dao-and-database/references/mongodb-advanced.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/python-dao-and-database/references/other-db-mongodb.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/python-dao-and-database/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/python-dao-and-database/references/sqlalchemy-1x-vs-2x.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/radix-tailwind-component-patterns/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/radix-tailwind-component-patterns/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/radix-tailwind-component-patterns/references/radix-primitives-and-variants.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/radix-tailwind-component-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/radix-tailwind-component-patterns/references/tailwind-theme-and-cn.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/react-hook-form-zod-patterns/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/react-hook-form-zod-patterns/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/react-hook-form-zod-patterns/references/form-setup-and-zod.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/react-hook-form-zod-patterns/references/multi-step-and-modes.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/react-hook-form-zod-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/redis-caching-patterns/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/redis-caching-patterns/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/redis-caching-patterns/references/cache-manager-and-fallback.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/redis-caching-patterns/references/namespacing-and-invalidation.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/redis-caching-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/refresh-docs/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/remember/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/safety-critical-patterns/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/scope/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/scope/scope-template.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/sdlc/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/security-verification/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/shannon-ai-pentest/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/shannon-ai-pentest/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/shannon-ai-pentest/references/operating-guide.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/shell-review/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/shipping-and-launch/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/simplification-debt/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/smoke-test/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/source-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/spec-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/sprint/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/sprint/sprint-template.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/tanstack-react-query-patterns/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/tanstack-react-query-patterns/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/tanstack-react-query-patterns/references/mutations-and-cache.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/tanstack-react-query-patterns/references/query-keys-and-hooks.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/tanstack-react-query-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/task-tracker-sync/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-config-driven/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-config-driven/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-config-driven/references/config-and-retry-idempotency.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-config-driven/references/dag-dsl-interpreter.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-config-driven/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-config-driven/references/schedule-registration.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-config-driven/references/schedules-and-cron.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-config-driven/references/worker-workflow-activity-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-developer/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-developer/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-developer/references/cli.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-developer/references/determinism.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-developer/references/gotchas.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-developer/references/languages.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-developer/references/testing.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/temporal-developer/references/versioning.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/test-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/test-plan-review/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/testing-conventions/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/testing-conventions/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/testing-conventions/references/async-and-mocking.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/testing-conventions/references/coverage-gap-and-recommendations.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/testing-conventions/references/github-actions-test-orchestration.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/testing-conventions/references/pytest-and-fixtures.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/testing-conventions/references/pytest-asyncio-modes.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/testing-conventions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/testing-conventions/references/security-regression-tests.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/testing-conventions/references/vitest-frontend-testing.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/threat-model/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/triage/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/ui-ux-design/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/unit-test/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/using-agent-skills/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/vitest-rtl-msw-patterns/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/vitest-rtl-msw-patterns/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/vitest-rtl-msw-patterns/references/msw-and-contract-tests.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/vitest-rtl-msw-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/vitest-rtl-msw-patterns/references/vitest-rtl-setup.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/zap-vapt-scanning/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/zap-vapt-scanning/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/zap-vapt-scanning/references/operating-guide.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/zap-vapt-scanning/scripts/endpoints.example.txt +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/zap-vapt-scanning/scripts/requirements.txt +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/zap-vapt-scanning/scripts/zap_vapt.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/zustand-state-patterns/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/zustand-state-patterns/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/zustand-state-patterns/references/async-polling-and-persistence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/zustand-state-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/skills/zustand-state-patterns/references/store-structure-and-selectors.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/src/claude_kit/__main__.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/src/claude_kit/catalog.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/src/claude_kit/cli.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/src/claude_kit/hooks.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/src/claude_kit/models.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/src/claude_kit/pipeline.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/src/claude_kit/prompts.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/src/claude_kit/render.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/src/claude_kit/scaffold.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/src/claude_kit/upgrader.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/src/claude_kit/validator.py +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/CLAUDE.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/CLAUDE.stack.md.tmpl +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/CONTINUITY.template.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/README.claude-sdlc.md.tmpl +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/agent-memory/MEMORY.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/agent-memory/api/.gitkeep +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/agent-memory/architecture/.gitkeep +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/agent-memory/debugging/.gitkeep +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/agent-memory/patterns/.gitkeep +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/agent-memory/performance/.gitkeep +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/artifacts/adr.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/artifacts/api-change-report.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/artifacts/change-proposal.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/artifacts/feature-spec.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/artifacts/release-plan.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/artifacts/runbook.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/artifacts/security-review.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/artifacts/test-plan.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/agents/data-workflow-agent.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/agents/founder-prototype-agent.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/agents/internal-tools-builder.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/agents/pm-copilot.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/agents/staff-pm-reviewer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/agents/support-ticket-engineer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/devops-and-release/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/engineering-core/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/product-to-code/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/quality-and-review/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/security-and-compliance/README.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/rules/ai-working-agreement.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/rules/ambiguity-resolution.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/rules/compliance-policy.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/rules/pii-policy.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/rules/production-data-policy.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/rules/prototype-boundaries.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/rules/secrets-policy.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/skills/review-scope/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/skills/review-sprint/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/skills/review-sprint-plan/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/org/skills/review-ux-flow/SKILL.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/settings.json +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/backend/go/net-http/rules/go-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/frontend/react/rules/design-system-compliance.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/frontend/react/rules/mobile-design-guidelines.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/frontend/react/rules/react-patterns.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.0}/templates/stacks/frontend/react/rules/ui-design-system.md +0 -0
- {claude_code_kit-0.50.0 → claude_code_kit-0.51.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.51.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.51.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.51.0] — 2026-06-28
|
|
8
|
+
|
|
9
|
+
**Adopt the verified wins from an exhaustive review of the entire `google` GitHub org** (all **2,881**
|
|
10
|
+
repos). Every repo was surveyed (60 agents over every page — no repo skipped), the top ~300 candidates
|
|
11
|
+
deep-read for license + transferable practice, and the shortlist **adversarially verified** against the
|
|
12
|
+
live source. The verify pass *dropped a third* of the shortlist: `deps.dev` (a REST/gRPC API, **not** an
|
|
13
|
+
MCP server), `licensecheck` (license *classification*, not the claimed compatibility gate), the
|
|
14
|
+
Go/Rust/C++-locked tools `capslock` · `rust-crate-audits` · `fuzztest` · `libprotobuf-mutator` (not
|
|
15
|
+
re-derivable stack-agnostic), `sqlcommenter` (archived → donated to OpenTelemetry), and `ax` (too early —
|
|
16
|
+
"major breaking changes prior to stable"). Everything is re-derived **in prose, never vendored**; all
|
|
17
|
+
sources Apache-2.0 / BSD-3-Clause / MIT except one CC-BY-4.0 book (concept-only). **21 adoptions, all
|
|
18
|
+
extensions to existing files — 0 new agents/skills/rules** (skill counts unchanged at 104/56/48); only the
|
|
19
|
+
**MCP fragment count rises 13 → 17**.
|
|
20
|
+
|
|
21
|
+
Rules:
|
|
22
|
+
|
|
23
|
+
- **`human-in-the-loop.md`** — a new **multi-party authorization** section: the two-person rule for the
|
|
24
|
+
highest-stakes actions, context-bound (multi-factor) approval, and **breakglass-with-auditing** (loud
|
|
25
|
+
emergency override + mandatory after-the-fact review), extending the simple approval gate beyond a
|
|
26
|
+
single approver (concept-only from the CC-BY-4.0 *Building Secure & Reliable Systems*,
|
|
27
|
+
`google/building-secure-and-reliable-systems`).
|
|
28
|
+
- **`testing.md`** — four techniques beyond example-based tests: **parameterized/table-driven** tests
|
|
29
|
+
(`google/patrick`); **semantic-equality & structured-diff** assertions, float tolerance over brittle
|
|
30
|
+
deep-equality (`google/go-cmp`); a **Fuzzing** section — coverage-guided + structure-aware + **continuous
|
|
31
|
+
fuzzing as a CI gate** (`google/atheris` · `google/honggfuzz` · `google/clusterfuzzlite`); and
|
|
32
|
+
**parallel execution + repeated-run flakiness detection** (`google/gtest-parallel`).
|
|
33
|
+
- **`linting-and-formatting.md`** — a **compile-time logic-bug analysis** layer (find bugs the type
|
|
34
|
+
checker accepts — `google/error-prone`), **license-header enforcement** as a check-mode CI gate
|
|
35
|
+
(`google/addlicense`), and **deterministic block sorting** via marker comments to cut merge conflicts
|
|
36
|
+
(`google/keep-sorted`).
|
|
37
|
+
- **`devops-observability.md`** — **multi-window burn-rate alerting** (alert on error-budget burn across
|
|
38
|
+
paired short/long windows, not raw error rate — `google/prometheus-slo-burn-example`) and **high-volume
|
|
39
|
+
logging** patterns (call-site rate-limiting + lazy argument evaluation — `google/flogger`).
|
|
40
|
+
- **`reasoning-techniques.md`** — **prompt-as-code**: treat a reusable prompt as a versioned, schema-validated,
|
|
41
|
+
testable artifact (`google/dotprompt`).
|
|
42
|
+
- **`tool-design.md`** — the §8 atomic-state note gains the **atomicity-vs-durability** nuance
|
|
43
|
+
(fsync-before-rename, same-filesystem, temp cleanup — `google/renameio`).
|
|
44
|
+
|
|
45
|
+
Skills:
|
|
46
|
+
|
|
47
|
+
- **`security-and-hardening`** — **reproducible-build verification** (independent rebuild → normalize
|
|
48
|
+
benign differences → attest equivalence — `google/oss-rebuild`); **source-level missing-patch detection**
|
|
49
|
+
for vendored/forked code via OSV-derived signatures (`google/vanir`); **secure-by-construction injection
|
|
50
|
+
defense** (compile-time-constant query text + typed trusted/untrusted wrappers — `google/safe-active-record`
|
|
51
|
+
· `google/mug`); **archive-extraction safety** (zip-slip / symlink — `google/safearchive`); and **ReDoS
|
|
52
|
+
defense** for untrusted regex input (`google/re2`).
|
|
53
|
+
- **`context-engineering`** — a **Long-Document Extraction** section: overlapping chunks → parallel
|
|
54
|
+
schema-constrained passes → source-interval grounding → multi-pass recall (`google/langextract`).
|
|
55
|
+
- **`performance-optimization`** — a **statistical browser benchmarking** discipline: interleaved repeated
|
|
56
|
+
sampling, 95 % confidence intervals, auto-sample-until-significance (`google/tachometer`).
|
|
57
|
+
- **`api-integration`** — a **record-replay** pattern for deterministic external-API tests (record real
|
|
58
|
+
responses with secrets redacted → replay offline → re-record on drift — `google/test-server`).
|
|
59
|
+
|
|
60
|
+
Catalog:
|
|
61
|
+
|
|
62
|
+
- **`catalog/mcp.yaml`** — **4 first-party Google Security Operations MCP fragments** (one upstream repo,
|
|
63
|
+
`google/mcp-security`, Apache-2.0): **secops** (Chronicle SIEM), **gti** (Google Threat Intelligence /
|
|
64
|
+
VirusTotal), **scc** (Security Command Center / cloud posture), **secops_soar** (SecOps SOAR) — the
|
|
65
|
+
SOC/operational-security capability domain the catalog had no entry for. Run via pinned `uvx`; each needs
|
|
66
|
+
a paid Google SecOps backend + ADC and is **referenced, never bundled** (like `sentry`/`repowise`).
|
|
67
|
+
|
|
68
|
+
What we **did not** add (already covered, or fails the bar): property-based testing (already in
|
|
69
|
+
`test-driven-development` §property-based, 0.38) — the new Fuzzing section builds on it; pre-add dependency
|
|
70
|
+
evaluation (already `library-review` + `dependency-verification`); SBOM/CVE supply-chain (already
|
|
71
|
+
`security-and-hardening`, 0.39/0.50); the dropped shortlist items above.
|
|
72
|
+
|
|
7
73
|
## [0.50.0] — 2026-06-28
|
|
8
74
|
|
|
9
75
|
**Adopt the verified wins from an exhaustive review of the entire `microsoft` GitHub org** (all **8,147**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-code-kit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.51.0
|
|
4
4
|
Summary: Cookiecutter-style scaffolder for an autonomous Claude Code SDLC configuration (no app code, no Docker). Asks ordered questions and installs CLAUDE.md + .claude/ (rules, the chosen profile's agents/skills, hooks, artifact templates) + optional .mcp.json; run /sdlc to drive spec → review → build → test → security → ship through profile-aware quality gates, working memory, and a self-improving learnings loop.
|
|
5
5
|
Project-URL: Homepage, https://github.com/ajyadav013/claude-kit
|
|
6
6
|
Project-URL: Repository, https://github.com/ajyadav013/claude-kit
|
|
@@ -89,7 +89,7 @@ Quick start) for the full breakdown of any row.
|
|
|
89
89
|
| 🎚️ **Profiles, scopes & org** | **3** rigor profiles · **3** scopes · **5** autonomy levels · **7** org packs + **10** policy rules |
|
|
90
90
|
| 🧠 **Memory & learning** | Working memory across context compaction + a cost-aware learnings loop (`capture_mode`) so the same mistake isn't repeated |
|
|
91
91
|
| 🛠️ **Hooks & guards** | **17** event hooks — blocking safety guards vs. advisory warnings — that no-op gracefully without `jq` |
|
|
92
|
-
| 📦 **Distribution & lifecycle** | Plugin **and** pip from one source, **
|
|
92
|
+
| 📦 **Distribution & lifecycle** | Plugin **and** pip from one source, **17** ready MCP fragments, and edit-preserving `upgrade` |
|
|
93
93
|
| ♻️ **Reuse-first by design** | Adopt-only-the-new reviews, opt-in LLM/AI security (OWASP LLM Top 10), a worked example + self-test matrix |
|
|
94
94
|
|
|
95
95
|
---
|
|
@@ -196,7 +196,7 @@ config — nothing else:
|
|
|
196
196
|
3. **Backend language** (default: Python) → **backend framework** (default: FastAPI)
|
|
197
197
|
4. **Database** (PostgreSQL · MongoDB)
|
|
198
198
|
5. **SDLC profile** (`lean` · `standard` · `enterprise`)
|
|
199
|
-
6. **Optional MCP integrations** (GitHub · Jira/Linear · Azure DevOps · Postgres/Mongo · Playwright · Docs/MS Learn · Azure · Wassette) — a
|
|
199
|
+
6. **Optional MCP integrations** (GitHub · Jira/Linear · Azure DevOps · Postgres/Mongo · Playwright · Docs/MS Learn · Azure · Wassette · Google SecOps) — a
|
|
200
200
|
project-root `.mcp.json` is written **only** if you select any (env placeholders, never secrets)
|
|
201
201
|
|
|
202
202
|
Non-interactive equivalents: `--defaults`, or `--config init.yaml` (flat or nested YAML). What lands:
|
|
@@ -356,7 +356,7 @@ need.
|
|
|
356
356
|
- **Two channels, one source** — a first-class Claude Code **plugin** *and* a `pip` scaffolder
|
|
357
357
|
(`claude-kit` / `ckit` / `claude-sdlc`) generate identical config.
|
|
358
358
|
- **Catalog-driven extensibility** — adding a stack, framework, database, profile, MCP server, or org
|
|
359
|
-
pack is a [`catalog/`](catalog/) YAML edit, never a code change;
|
|
359
|
+
pack is a [`catalog/`](catalog/) YAML edit, never a code change; 17 MCP server fragments ship ready.
|
|
360
360
|
- **MCP servers are third-party** — each fragment runs an external package or hosted endpoint that
|
|
361
361
|
claude-kit references but does not vendor or audit; the `npx` commands are **pinned to an exact
|
|
362
362
|
version** (not `@latest`) for reproducible, supply-chain-aware installs. Review a server's source and
|
|
@@ -518,6 +518,7 @@ non-duplicative gaps**, minimally and catalog-wired.
|
|
|
518
518
|
| **[alibaba](https://github.com/alibaba) org review** (all 542 repos) | Staged leak-resistant evals; agent-operation authorization; tool-set orchestration + atomic state; agent-run span-tree instrumentation; live-attach debugging | `evals` §7, `agent-guardrails` §5, `tool-design` §8, `goal-setting-and-monitoring` §4, and live-attach debugging in `debugging-and-error-recovery` (from atrex-bench · open-agent-auth · app-controller · loongsuite-js · arthas) | `0.47.0` |
|
|
519
519
|
| **[alibaba/open-code-review](https://github.com/alibaba/open-code-review)** | Partition-for-coverage review — deterministic full-file coverage on large changesets, related-file bundling, plan-before-deep-pass | The "Cover Every Changed File" section in `code-review-and-quality` + a Coverage category in `sdlc-code-reviewer` | `0.48.0` |
|
|
520
520
|
| **[microsoft](https://github.com/microsoft) org review** (all 8,147 repos) | OWASP Agentic Top-10 (ASI01–ASI10) agent threats; agent-aware evals (multi-judge panels, multi-turn degradation, tool-vs-response grading); validator-in-the-loop + Medprompt prompting; sandbox policy schema & layered prompt-injection defense; approval-gate implementation; security-lint layer & SBOM; operationalized GenAI red-teaming; priority-based prompt pruning; quantified-lines PR sizing; first-party MCP servers | Extensions across `agent-guardrails` (ASI01–ASI10 + sandbox policy + injection layers), `evals` (§3 panels, §8 multi-turn), `reasoning-techniques`, `human-in-the-loop`, `linting-and-formatting`, `threat-model`, `security-and-hardening` (SBOM), `context-engineering`, `code-review-and-quality` + 4 MCP fragments (Azure · Azure DevOps · MS Learn · Wassette) — **0 new agents/skills/rules** (from agent-governance-toolkit · mxc · llmail-inject-challenge · lost_in_conversation · llm-as-judge · EvalsforAgentsInterop · promptbase · dsl-copilot · agents-humanoversight · PyRIT · eslint-plugin-sdl · sbom-tool · vscode-prompt-tsx · PullRequestQuantifier) | `0.50.0` |
|
|
521
|
+
| **[google](https://github.com/google) org review** (all 2,881 repos) | Reproducible-build verification & source-level missing-patch detection; secure-by-construction injection defense; archive-extraction & ReDoS hardening; multi-party authorization / breakglass; coverage-guided & continuous fuzzing; parameterized + semantic-equality + parallel/flaky testing; compile-time logic-bug & license-header lint layers + deterministic block sorting; multi-window burn-rate alerting & log rate-limiting; long-document extraction; prompt-as-code; statistical browser benchmarking; durable atomic writes; record-replay API testing; first-party SecOps MCP servers | Prose extensions across `security-and-hardening` (reproducible-build · missing-patch · secure-by-construction · archive · ReDoS), `human-in-the-loop` (MPA/breakglass), `testing` (fuzzing · parameterized · semantic-equality · parallel/flaky), `linting-and-formatting` (logic-bug + license-header layers · block sorting), `devops-observability` (burn-rate · log rate-limit), `context-engineering` (long-doc extraction), `reasoning-techniques` (prompt-as-code), `performance-optimization` (statistical benchmarking), `tool-design` (durable atomic writes), `api-integration` (record-replay) + **4 first-party SecOps MCP fragments** (Chronicle SIEM · GTI · SCC · SOAR) — **0 new agents/skills/rules** (from oss-rebuild · vanir · safe-active-record/mug · safearchive · re2 · building-secure-and-reliable-systems · patrick · go-cmp · atheris/honggfuzz/clusterfuzzlite · gtest-parallel · error-prone · addlicense · keep-sorted · prometheus-slo-burn · flogger · langextract · dotprompt · tachometer · renameio · test-server · mcp-security) | `0.51.0` |
|
|
521
522
|
|
|
522
523
|
> Each adoption is detailed in the [CHANGELOG](CHANGELOG.md) — including, for every review, what we
|
|
523
524
|
> deliberately **did not** add because the kit already covered it.
|
|
@@ -527,15 +528,6 @@ non-duplicative gaps**, minimally and catalog-wired.
|
|
|
527
528
|
|
|
528
529
|
<br>
|
|
529
530
|
|
|
530
|
-
**🧭 alibaba org review → 5 agentic patterns (0.47.0).** We reviewed **all 542 repos** in the Alibaba
|
|
531
|
-
org (survey every repo → deep-dive every candidate → adversarially verify). The overwhelming majority —
|
|
532
|
-
Java middleware, ML/inference, mobile, frontend frameworks — carried nothing transferable to a config
|
|
533
|
-
scaffolder, and the verify pass *dropped* a sixth candidate (`p3c`) as unsubstantiated and already
|
|
534
|
-
covered. Five survived: staged leak-resistant evals (`evals` §7), agent-operation authorization
|
|
535
|
-
(`agent-guardrails` §5), tool-set orchestration + atomic state (`tool-design` §8), agent-run span-tree
|
|
536
|
-
instrumentation (`goal-setting-and-monitoring` §4), and live-attach debugging
|
|
537
|
-
(`debugging-and-error-recovery`).
|
|
538
|
-
|
|
539
531
|
**🔍 alibaba/open-code-review → coverage-partition review (0.48.0).** A detailed read showed most of its
|
|
540
532
|
methodology (multi-axis review, line-level grounding + re-verify, severity, multi-model) was *already*
|
|
541
533
|
in `code-review-and-quality`. The one genuine gap: **complete file coverage on large changesets** —
|
|
@@ -559,6 +551,26 @@ panels in §3, multi-turn degradation in §8) in `evals`; validator-in-the-loop
|
|
|
559
551
|
sizing in `code-review-and-quality`; and **4 first-party MCP fragments** (Azure · Azure DevOps · MS
|
|
560
552
|
Learn · Wassette).
|
|
561
553
|
|
|
554
|
+
**🔴 google org review → 21 hardening & testing patterns (0.51.0).** We reviewed **all 2,881 repos** in
|
|
555
|
+
the Google org (60 survey agents over every page → deep-dive the top ~300 candidates → adversarially
|
|
556
|
+
verify the shortlist). The vast majority — Android/Kotlin, C++ libraries, ML frameworks, language
|
|
557
|
+
runtimes, GCP product code — carried nothing transferable, and the verify pass *dropped* a third of the
|
|
558
|
+
shortlist: `deps.dev` (a REST/gRPC API, **not** an MCP server, despite the claim), `licensecheck`
|
|
559
|
+
(license *classification*, not the claimed compatibility gate), the Go/Rust/C++-locked tools
|
|
560
|
+
(`capslock`, `rust-crate-audits`, `fuzztest`, `libprotobuf-mutator` — can't be re-derived stack-agnostic),
|
|
561
|
+
`sqlcommenter` (archived → donated to OpenTelemetry), and `ax` (too early — "major breaking changes
|
|
562
|
+
prior to stable"). The survivors are **all prose extensions to existing files, zero new
|
|
563
|
+
agents/skills/rules**: reproducible-build verification, source-level missing-patch detection,
|
|
564
|
+
secure-by-construction injection defense, archive-extraction & ReDoS hardening in `security-and-hardening`;
|
|
565
|
+
multi-party authorization / breakglass in `human-in-the-loop`; coverage-guided & continuous fuzzing,
|
|
566
|
+
parameterized, semantic-equality, and parallel/flaky testing in `testing`; compile-time logic-bug &
|
|
567
|
+
license-header lint layers plus deterministic block sorting in `linting-and-formatting`; multi-window
|
|
568
|
+
burn-rate alerting & log rate-limiting in `devops-observability`; long-document extraction in
|
|
569
|
+
`context-engineering`; prompt-as-code in `reasoning-techniques`; statistical browser benchmarking in
|
|
570
|
+
`performance-optimization`; durable atomic writes in `tool-design`; record-replay API testing in
|
|
571
|
+
`api-integration`; and **4 first-party Google Security Operations MCP fragments** (Chronicle SIEM · GTI ·
|
|
572
|
+
SCC · SOAR).
|
|
573
|
+
|
|
562
574
|
</details>
|
|
563
575
|
|
|
564
576
|
> **Comparing claude-kit to native subagents / Agent Teams, agent collections, spec-kit, or
|
|
@@ -59,7 +59,7 @@ Quick start) for the full breakdown of any row.
|
|
|
59
59
|
| 🎚️ **Profiles, scopes & org** | **3** rigor profiles · **3** scopes · **5** autonomy levels · **7** org packs + **10** policy rules |
|
|
60
60
|
| 🧠 **Memory & learning** | Working memory across context compaction + a cost-aware learnings loop (`capture_mode`) so the same mistake isn't repeated |
|
|
61
61
|
| 🛠️ **Hooks & guards** | **17** event hooks — blocking safety guards vs. advisory warnings — that no-op gracefully without `jq` |
|
|
62
|
-
| 📦 **Distribution & lifecycle** | Plugin **and** pip from one source, **
|
|
62
|
+
| 📦 **Distribution & lifecycle** | Plugin **and** pip from one source, **17** ready MCP fragments, and edit-preserving `upgrade` |
|
|
63
63
|
| ♻️ **Reuse-first by design** | Adopt-only-the-new reviews, opt-in LLM/AI security (OWASP LLM Top 10), a worked example + self-test matrix |
|
|
64
64
|
|
|
65
65
|
---
|
|
@@ -166,7 +166,7 @@ config — nothing else:
|
|
|
166
166
|
3. **Backend language** (default: Python) → **backend framework** (default: FastAPI)
|
|
167
167
|
4. **Database** (PostgreSQL · MongoDB)
|
|
168
168
|
5. **SDLC profile** (`lean` · `standard` · `enterprise`)
|
|
169
|
-
6. **Optional MCP integrations** (GitHub · Jira/Linear · Azure DevOps · Postgres/Mongo · Playwright · Docs/MS Learn · Azure · Wassette) — a
|
|
169
|
+
6. **Optional MCP integrations** (GitHub · Jira/Linear · Azure DevOps · Postgres/Mongo · Playwright · Docs/MS Learn · Azure · Wassette · Google SecOps) — a
|
|
170
170
|
project-root `.mcp.json` is written **only** if you select any (env placeholders, never secrets)
|
|
171
171
|
|
|
172
172
|
Non-interactive equivalents: `--defaults`, or `--config init.yaml` (flat or nested YAML). What lands:
|
|
@@ -326,7 +326,7 @@ need.
|
|
|
326
326
|
- **Two channels, one source** — a first-class Claude Code **plugin** *and* a `pip` scaffolder
|
|
327
327
|
(`claude-kit` / `ckit` / `claude-sdlc`) generate identical config.
|
|
328
328
|
- **Catalog-driven extensibility** — adding a stack, framework, database, profile, MCP server, or org
|
|
329
|
-
pack is a [`catalog/`](catalog/) YAML edit, never a code change;
|
|
329
|
+
pack is a [`catalog/`](catalog/) YAML edit, never a code change; 17 MCP server fragments ship ready.
|
|
330
330
|
- **MCP servers are third-party** — each fragment runs an external package or hosted endpoint that
|
|
331
331
|
claude-kit references but does not vendor or audit; the `npx` commands are **pinned to an exact
|
|
332
332
|
version** (not `@latest`) for reproducible, supply-chain-aware installs. Review a server's source and
|
|
@@ -488,6 +488,7 @@ non-duplicative gaps**, minimally and catalog-wired.
|
|
|
488
488
|
| **[alibaba](https://github.com/alibaba) org review** (all 542 repos) | Staged leak-resistant evals; agent-operation authorization; tool-set orchestration + atomic state; agent-run span-tree instrumentation; live-attach debugging | `evals` §7, `agent-guardrails` §5, `tool-design` §8, `goal-setting-and-monitoring` §4, and live-attach debugging in `debugging-and-error-recovery` (from atrex-bench · open-agent-auth · app-controller · loongsuite-js · arthas) | `0.47.0` |
|
|
489
489
|
| **[alibaba/open-code-review](https://github.com/alibaba/open-code-review)** | Partition-for-coverage review — deterministic full-file coverage on large changesets, related-file bundling, plan-before-deep-pass | The "Cover Every Changed File" section in `code-review-and-quality` + a Coverage category in `sdlc-code-reviewer` | `0.48.0` |
|
|
490
490
|
| **[microsoft](https://github.com/microsoft) org review** (all 8,147 repos) | OWASP Agentic Top-10 (ASI01–ASI10) agent threats; agent-aware evals (multi-judge panels, multi-turn degradation, tool-vs-response grading); validator-in-the-loop + Medprompt prompting; sandbox policy schema & layered prompt-injection defense; approval-gate implementation; security-lint layer & SBOM; operationalized GenAI red-teaming; priority-based prompt pruning; quantified-lines PR sizing; first-party MCP servers | Extensions across `agent-guardrails` (ASI01–ASI10 + sandbox policy + injection layers), `evals` (§3 panels, §8 multi-turn), `reasoning-techniques`, `human-in-the-loop`, `linting-and-formatting`, `threat-model`, `security-and-hardening` (SBOM), `context-engineering`, `code-review-and-quality` + 4 MCP fragments (Azure · Azure DevOps · MS Learn · Wassette) — **0 new agents/skills/rules** (from agent-governance-toolkit · mxc · llmail-inject-challenge · lost_in_conversation · llm-as-judge · EvalsforAgentsInterop · promptbase · dsl-copilot · agents-humanoversight · PyRIT · eslint-plugin-sdl · sbom-tool · vscode-prompt-tsx · PullRequestQuantifier) | `0.50.0` |
|
|
491
|
+
| **[google](https://github.com/google) org review** (all 2,881 repos) | Reproducible-build verification & source-level missing-patch detection; secure-by-construction injection defense; archive-extraction & ReDoS hardening; multi-party authorization / breakglass; coverage-guided & continuous fuzzing; parameterized + semantic-equality + parallel/flaky testing; compile-time logic-bug & license-header lint layers + deterministic block sorting; multi-window burn-rate alerting & log rate-limiting; long-document extraction; prompt-as-code; statistical browser benchmarking; durable atomic writes; record-replay API testing; first-party SecOps MCP servers | Prose extensions across `security-and-hardening` (reproducible-build · missing-patch · secure-by-construction · archive · ReDoS), `human-in-the-loop` (MPA/breakglass), `testing` (fuzzing · parameterized · semantic-equality · parallel/flaky), `linting-and-formatting` (logic-bug + license-header layers · block sorting), `devops-observability` (burn-rate · log rate-limit), `context-engineering` (long-doc extraction), `reasoning-techniques` (prompt-as-code), `performance-optimization` (statistical benchmarking), `tool-design` (durable atomic writes), `api-integration` (record-replay) + **4 first-party SecOps MCP fragments** (Chronicle SIEM · GTI · SCC · SOAR) — **0 new agents/skills/rules** (from oss-rebuild · vanir · safe-active-record/mug · safearchive · re2 · building-secure-and-reliable-systems · patrick · go-cmp · atheris/honggfuzz/clusterfuzzlite · gtest-parallel · error-prone · addlicense · keep-sorted · prometheus-slo-burn · flogger · langextract · dotprompt · tachometer · renameio · test-server · mcp-security) | `0.51.0` |
|
|
491
492
|
|
|
492
493
|
> Each adoption is detailed in the [CHANGELOG](CHANGELOG.md) — including, for every review, what we
|
|
493
494
|
> deliberately **did not** add because the kit already covered it.
|
|
@@ -497,15 +498,6 @@ non-duplicative gaps**, minimally and catalog-wired.
|
|
|
497
498
|
|
|
498
499
|
<br>
|
|
499
500
|
|
|
500
|
-
**🧭 alibaba org review → 5 agentic patterns (0.47.0).** We reviewed **all 542 repos** in the Alibaba
|
|
501
|
-
org (survey every repo → deep-dive every candidate → adversarially verify). The overwhelming majority —
|
|
502
|
-
Java middleware, ML/inference, mobile, frontend frameworks — carried nothing transferable to a config
|
|
503
|
-
scaffolder, and the verify pass *dropped* a sixth candidate (`p3c`) as unsubstantiated and already
|
|
504
|
-
covered. Five survived: staged leak-resistant evals (`evals` §7), agent-operation authorization
|
|
505
|
-
(`agent-guardrails` §5), tool-set orchestration + atomic state (`tool-design` §8), agent-run span-tree
|
|
506
|
-
instrumentation (`goal-setting-and-monitoring` §4), and live-attach debugging
|
|
507
|
-
(`debugging-and-error-recovery`).
|
|
508
|
-
|
|
509
501
|
**🔍 alibaba/open-code-review → coverage-partition review (0.48.0).** A detailed read showed most of its
|
|
510
502
|
methodology (multi-axis review, line-level grounding + re-verify, severity, multi-model) was *already*
|
|
511
503
|
in `code-review-and-quality`. The one genuine gap: **complete file coverage on large changesets** —
|
|
@@ -529,6 +521,26 @@ panels in §3, multi-turn degradation in §8) in `evals`; validator-in-the-loop
|
|
|
529
521
|
sizing in `code-review-and-quality`; and **4 first-party MCP fragments** (Azure · Azure DevOps · MS
|
|
530
522
|
Learn · Wassette).
|
|
531
523
|
|
|
524
|
+
**🔴 google org review → 21 hardening & testing patterns (0.51.0).** We reviewed **all 2,881 repos** in
|
|
525
|
+
the Google org (60 survey agents over every page → deep-dive the top ~300 candidates → adversarially
|
|
526
|
+
verify the shortlist). The vast majority — Android/Kotlin, C++ libraries, ML frameworks, language
|
|
527
|
+
runtimes, GCP product code — carried nothing transferable, and the verify pass *dropped* a third of the
|
|
528
|
+
shortlist: `deps.dev` (a REST/gRPC API, **not** an MCP server, despite the claim), `licensecheck`
|
|
529
|
+
(license *classification*, not the claimed compatibility gate), the Go/Rust/C++-locked tools
|
|
530
|
+
(`capslock`, `rust-crate-audits`, `fuzztest`, `libprotobuf-mutator` — can't be re-derived stack-agnostic),
|
|
531
|
+
`sqlcommenter` (archived → donated to OpenTelemetry), and `ax` (too early — "major breaking changes
|
|
532
|
+
prior to stable"). The survivors are **all prose extensions to existing files, zero new
|
|
533
|
+
agents/skills/rules**: reproducible-build verification, source-level missing-patch detection,
|
|
534
|
+
secure-by-construction injection defense, archive-extraction & ReDoS hardening in `security-and-hardening`;
|
|
535
|
+
multi-party authorization / breakglass in `human-in-the-loop`; coverage-guided & continuous fuzzing,
|
|
536
|
+
parameterized, semantic-equality, and parallel/flaky testing in `testing`; compile-time logic-bug &
|
|
537
|
+
license-header lint layers plus deterministic block sorting in `linting-and-formatting`; multi-window
|
|
538
|
+
burn-rate alerting & log rate-limiting in `devops-observability`; long-document extraction in
|
|
539
|
+
`context-engineering`; prompt-as-code in `reasoning-techniques`; statistical browser benchmarking in
|
|
540
|
+
`performance-optimization`; durable atomic writes in `tool-design`; record-replay API testing in
|
|
541
|
+
`api-integration`; and **4 first-party Google Security Operations MCP fragments** (Chronicle SIEM · GTI ·
|
|
542
|
+
SCC · SOAR).
|
|
543
|
+
|
|
532
544
|
</details>
|
|
533
545
|
|
|
534
546
|
> **Comparing claude-kit to native subagents / Agent Teams, agent collections, spec-kit, or
|
|
@@ -138,3 +138,49 @@ servers:
|
|
|
138
138
|
type: stdio
|
|
139
139
|
command: repowise
|
|
140
140
|
args: ["mcp", "${REPOWISE_PROJECT_ROOT}", "--transport", "stdio"]
|
|
141
|
+
# Google Security Operations cluster (github.com/google/mcp-security, Apache-2.0) — four first-party
|
|
142
|
+
# Google MCP servers covering the SOC/operational-security domain the catalog otherwise has no entry
|
|
143
|
+
# for (Sentry above is error-monitoring, not threat-intel/SIEM/SOAR/CSPM):
|
|
144
|
+
# • secops — Chronicle SIEM: search/UDM events, detections, IoC matches, case context
|
|
145
|
+
# • gti — Google Threat Intelligence (VirusTotal): file/URL/domain/IP reputation & relationships
|
|
146
|
+
# • scc — Security Command Center: cloud-security posture, findings, asset risk
|
|
147
|
+
# • secops_soar — SecOps SOAR (Siemplify): cases, playbooks, response actions
|
|
148
|
+
# These are Python servers run with `uvx` (install `uv` first: https://docs.astral.sh/uv/), pinned to
|
|
149
|
+
# exact PyPI versions (snapshot 2026-06-28; do not float). NOT bundled — claude-kit only references
|
|
150
|
+
# them. Each needs a PAID Google SecOps/Chronicle (or VirusTotal) backend and its own credentials —
|
|
151
|
+
# auth is via Application Default Credentials (`gcloud auth application-default login`, or a
|
|
152
|
+
# GOOGLE_APPLICATION_CREDENTIALS service-account file) plus the per-server env vars below; no
|
|
153
|
+
# credentials are generated here. Enable only the server(s) whose backend you actually have.
|
|
154
|
+
secops:
|
|
155
|
+
label: "Google SecOps / Chronicle SIEM (paid Chronicle backend + ADC required)"
|
|
156
|
+
config:
|
|
157
|
+
type: stdio
|
|
158
|
+
command: uvx
|
|
159
|
+
args: ["--from", "google-secops-mcp==0.7.0", "secops_mcp"]
|
|
160
|
+
env:
|
|
161
|
+
CHRONICLE_PROJECT_ID: "${CHRONICLE_PROJECT_ID}"
|
|
162
|
+
CHRONICLE_CUSTOMER_ID: "${CHRONICLE_CUSTOMER_ID}"
|
|
163
|
+
CHRONICLE_REGION: "${CHRONICLE_REGION}"
|
|
164
|
+
gti:
|
|
165
|
+
label: "Google Threat Intelligence / VirusTotal (needs VT_APIKEY)"
|
|
166
|
+
config:
|
|
167
|
+
type: stdio
|
|
168
|
+
command: uvx
|
|
169
|
+
args: ["--from", "gti-mcp==0.1.2", "gti_mcp"]
|
|
170
|
+
env:
|
|
171
|
+
VT_APIKEY: "${VT_APIKEY}"
|
|
172
|
+
scc:
|
|
173
|
+
label: "Security Command Center — cloud security posture (ADC required)"
|
|
174
|
+
config:
|
|
175
|
+
type: stdio
|
|
176
|
+
command: uvx
|
|
177
|
+
args: ["--from", "scc-mcp==0.1.0", "scc_mcp"]
|
|
178
|
+
secops_soar:
|
|
179
|
+
label: "Google SecOps SOAR / Siemplify (paid SOAR backend; needs SOAR_URL + SOAR_APP_KEY)"
|
|
180
|
+
config:
|
|
181
|
+
type: stdio
|
|
182
|
+
command: uvx
|
|
183
|
+
args: ["--from", "secops-soar-mcp==0.1.1", "secops_soar_mcp"]
|
|
184
|
+
env:
|
|
185
|
+
SOAR_URL: "${SOAR_URL}"
|
|
186
|
+
SOAR_APP_KEY: "${SOAR_APP_KEY}"
|
|
@@ -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.51.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"
|
|
@@ -49,6 +49,46 @@ Ensures the feature is **operable in production**: you can tell when it breaks a
|
|
|
49
49
|
|
|
50
50
|
Findings classified by `.claude/rules/quality-gates.md` severity; Critical/High/Medium block.
|
|
51
51
|
|
|
52
|
+
### Multi-window burn-rate alerting (alert on the error budget, not raw error rate)
|
|
53
|
+
|
|
54
|
+
A static "error rate > X%" alert forces a bad trade-off: tight enough to catch a real outage means it
|
|
55
|
+
pages on every transient blip; loose enough to be quiet means slow burns go unnoticed until the budget
|
|
56
|
+
is gone. The SRE pattern is to alert on **how fast the SLO's error budget is burning**, across
|
|
57
|
+
**multiple time windows** at once:
|
|
58
|
+
|
|
59
|
+
- **Burn rate = (observed error ratio) ÷ (1 − SLO target).** A burn rate of 1 exactly exhausts the
|
|
60
|
+
budget over the SLO window; 14.4 exhausts it in ~2 % of the window.
|
|
61
|
+
- **Fast-burn (page):** a high burn rate confirmed over a **short *and* a medium** window (e.g. 14.4×
|
|
62
|
+
over 1h **and** 5m) — catches acute outages fast while the second window suppresses single-spike
|
|
63
|
+
false positives.
|
|
64
|
+
- **Slow-burn (ticket, not page):** a lower burn rate over **longer** windows (e.g. 6× over 6h/30m,
|
|
65
|
+
3× over 24h/2h, 1× over 3d/6h) — catches a steady leak that would otherwise quietly drain the budget.
|
|
66
|
+
- Require **both** windows of a tier to fire (the long window detects, the short window confirms it's
|
|
67
|
+
still happening) so an alert clears quickly once the issue stops. Tie each tier's severity/owner to
|
|
68
|
+
the "Alerts" gate item above.
|
|
69
|
+
|
|
70
|
+
> Stack-agnostic adaptation of multi-window, multi-burn-rate SLO alerting (per the Google SRE Workbook)
|
|
71
|
+
> from the Apache-2.0
|
|
72
|
+
> [`google/prometheus-slo-burn-example`](https://github.com/google/prometheus-slo-burn-example).
|
|
73
|
+
> Re-derived in prose; not vendored — the windows/multipliers are a starting point to tune per SLO.
|
|
74
|
+
|
|
75
|
+
### High-volume logging: rate-limit and defer
|
|
76
|
+
|
|
77
|
+
Logging on a hot path or in an error burst can become its own incident — the log call dominates CPU, or
|
|
78
|
+
a flood of identical lines buries the signal and runs up ingestion cost. Two patterns keep logging cheap
|
|
79
|
+
under load:
|
|
80
|
+
|
|
81
|
+
- **Rate-limit repetitive log statements at the call site** — emit "at most every N seconds" or "1 in
|
|
82
|
+
every N" for a given line, rather than once per iteration, so a tight loop or a sustained error
|
|
83
|
+
doesn't flood. (Aggregate the suppressed count so you still know the true volume.)
|
|
84
|
+
- **Defer the cost of expensive log arguments** until logging is *known to be enabled* at that level —
|
|
85
|
+
pass a lazily-evaluated value (a thunk/lambda), not an eagerly-built expensive string, so a disabled
|
|
86
|
+
`debug` log costs nothing. This pairs with the "no secrets/PII" structured-logging gate item above.
|
|
87
|
+
|
|
88
|
+
> Stack-agnostic adaptation of log rate-limiting (`atMostEvery`) and lazy argument evaluation from the
|
|
89
|
+
> Apache-2.0 [`google/flogger`](https://github.com/google/flogger). Re-derived in prose; not vendored —
|
|
90
|
+
> the patterns apply to any logging framework.
|
|
91
|
+
|
|
52
92
|
---
|
|
53
93
|
|
|
54
94
|
## Notes
|
|
@@ -65,6 +65,38 @@ pause for a human — so the pause is enforced by the system, not left to the ag
|
|
|
65
65
|
> [`microsoft/agents-humanoversight`](https://github.com/microsoft/agents-humanoversight). Re-derived in
|
|
66
66
|
> prose; not vendored.
|
|
67
67
|
|
|
68
|
+
## Multi-party authorization for the highest-stakes actions (MPA · breakglass)
|
|
69
|
+
|
|
70
|
+
For most stops a *single* human approval is right. But the most dangerous actions — deleting production
|
|
71
|
+
data, changing access control, deploying to a regulated system, rotating root credentials — should not
|
|
72
|
+
be unlockable by **one** person (or one person + a coerced/compromised agent). Raise the bar past a
|
|
73
|
+
single gate:
|
|
74
|
+
|
|
75
|
+
- **Multi-party authorization (MPA): require two.** A high-stakes action needs a *second independent
|
|
76
|
+
approver* who is not the requester — the "two-person rule." Beyond stopping a single bad actor, it
|
|
77
|
+
forces the requester to articulate the action clearly enough that a peer will sign it, which catches
|
|
78
|
+
honest mistakes. Make the second approval a real review (the approver sees *what* will run), not a
|
|
79
|
+
rubber stamp.
|
|
80
|
+
- **Bind approval to context, not just identity.** Stronger still: tie sensitive operations to a
|
|
81
|
+
trusted device/role/environment, so an approval also proves *where* and *how* it was given — not only
|
|
82
|
+
*who* gave it. (The principle behind "multi-factor / multi-channel" authorization: don't let one
|
|
83
|
+
stolen credential be sufficient.)
|
|
84
|
+
- **Breakglass, with auditing.** Keep a deliberate emergency override for when the normal path is down
|
|
85
|
+
(the on-call can't reach a second approver during an incident) — but make it *loud*: it requires a
|
|
86
|
+
written justification, it is heavily logged, and it triggers a **mandatory after-the-fact review**.
|
|
87
|
+
Breakglass is an exception that must be accounted for, never a quiet bypass.
|
|
88
|
+
- **Least privilege + separation of duties make MPA affordable.** The fewer actions that *need* two
|
|
89
|
+
approvers, the more meaningful each one is. Reserve MPA for genuinely irreversible / high-blast-radius
|
|
90
|
+
operations (see reversibility below); don't dilute it across routine changes.
|
|
91
|
+
|
|
92
|
+
These map onto the gate mechanics above: MPA is "the declarative gate, but the policy requires N≥2
|
|
93
|
+
distinct approvals," and breakglass is "the timeout/absence path, made auditable instead of fail-open."
|
|
94
|
+
|
|
95
|
+
> Stack-agnostic adaptation of multi-party / multi-factor authorization, breakglass-with-auditing, and
|
|
96
|
+
> separation-of-duties from *Building Secure & Reliable Systems* (Google/O'Reilly, CC-BY-4.0;
|
|
97
|
+
> [`google/building-secure-and-reliable-systems`](https://github.com/google/building-secure-and-reliable-systems)),
|
|
98
|
+
> Ch. 5 ("Design for Least Privilege") & Ch. 21. Concept-only (CC-BY); re-derived in prose, not vendored.
|
|
99
|
+
|
|
68
100
|
## Gate the depth of review to reversibility
|
|
69
101
|
|
|
70
102
|
Not every stop deserves the same ceremony. Before a consequential decision, classify it by how hard it
|
|
@@ -109,6 +109,39 @@ of eyes in review.
|
|
|
109
109
|
> enforced lint errors). Re-derived in prose; not vendored — the patterns generalize beyond any one
|
|
110
110
|
> linter.
|
|
111
111
|
|
|
112
|
+
### Compile-Time Logic-Bug Analysis (error)
|
|
113
|
+
|
|
114
|
+
A style linter checks formatting and idiom; a *type checker* checks types. Between them sits a third,
|
|
115
|
+
higher-value layer: **static analyzers that catch real logic bugs the type checker accepts** — code
|
|
116
|
+
that compiles and is type-correct but is almost certainly wrong. Examples (stack-agnostic):
|
|
117
|
+
|
|
118
|
+
- an equality/`==` check that can never be true because the operands are incompatible types;
|
|
119
|
+
- a format string whose placeholders don't match its arguments;
|
|
120
|
+
- a returned value or `Future`/`Promise` that is silently dropped (forgotten `await`);
|
|
121
|
+
- a collection mutated while iterated; a `@CheckReturnValue`/`#[must_use]` result ignored.
|
|
122
|
+
|
|
123
|
+
Enable your stack's analyzer for this class and treat its findings as build-breaking, distinct from
|
|
124
|
+
both the type checker and the security-lint layer above: Error Prone (Java), `clippy` (Rust),
|
|
125
|
+
`staticcheck`/`go vet` (Go), type-aware ESLint rules (TypeScript), Infer / clang-analyzer (C/C++),
|
|
126
|
+
Pyright/mypy strict + Ruff's bug-prone (`B`) rules (Python). The point is the *category* — "find bugs,
|
|
127
|
+
not style" — not any one tool.
|
|
128
|
+
|
|
129
|
+
> Stack-agnostic adaptation of compile-time logic-bug analysis as a distinct enforcement layer (beyond
|
|
130
|
+
> style + type checking) from the Apache-2.0 [`google/error-prone`](https://github.com/google/error-prone).
|
|
131
|
+
> Re-derived in prose; not vendored — every major ecosystem has an equivalent analyzer.
|
|
132
|
+
|
|
133
|
+
### License-Header Enforcement (error)
|
|
134
|
+
|
|
135
|
+
Where the project (or its org) requires source files to carry a copyright + SPDX license header, make
|
|
136
|
+
it a **mechanical, enforced check**, not a manual review item: a CI / pre-commit step verifies every
|
|
137
|
+
source file has the expected header and **fails the build** on a missing or malformed one (a `--check`
|
|
138
|
+
mode that exits non-zero), with an auto-fix mode that inserts the header locally. This keeps license
|
|
139
|
+
hygiene from rotting silently as new files are added.
|
|
140
|
+
|
|
141
|
+
> Stack-agnostic adaptation of license-header enforcement as a check-mode CI/pre-commit gate from the
|
|
142
|
+
> Apache-2.0 [`google/addlicense`](https://github.com/google/addlicense). Re-derived in prose; not
|
|
143
|
+
> vendored.
|
|
144
|
+
|
|
112
145
|
## Framework-Specific Hook Rules (if applicable)
|
|
113
146
|
|
|
114
147
|
For reactive frameworks (React, Vue, Svelte, SolidJS, etc.), enforce hook/reactivity rules:
|
|
@@ -204,6 +237,30 @@ cd frontend && <run frontend linter>
|
|
|
204
237
|
|
|
205
238
|
**Formatting is not negotiable.** Configure your editor to format on save, or rely on pre-commit hooks. Never commit unformatted code.
|
|
206
239
|
|
|
240
|
+
### Deterministic Block Sorting
|
|
241
|
+
|
|
242
|
+
Lists that many contributors append to — dependency arrays, import groups, enum/constant lists, config
|
|
243
|
+
allowlists — are a recurring source of **merge conflicts** (two branches both append to the end) and of
|
|
244
|
+
"is X already here?" scanning cost. Keep such blocks **deterministically sorted** so additions land in a
|
|
245
|
+
predictable place and diffs stay minimal. A language-agnostic, marker-comment formatter does this
|
|
246
|
+
without needing the surrounding file to be machine-sortable:
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
# keep-sorted start
|
|
250
|
+
alpha
|
|
251
|
+
bravo
|
|
252
|
+
charlie
|
|
253
|
+
# keep-sorted end
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
The tool re-sorts only between the markers (with options for grouping, case, and numeric ordering) and
|
|
257
|
+
runs in the same pre-commit / CI auto-fix step as the formatter. Apply it to frequently-edited lists;
|
|
258
|
+
don't impose it on sequences whose order is meaningful.
|
|
259
|
+
|
|
260
|
+
> Stack-agnostic adaptation of marker-comment deterministic block sorting (reduce merge conflicts on
|
|
261
|
+
> append-heavy lists) from the Apache-2.0 [`google/keep-sorted`](https://github.com/google/keep-sorted).
|
|
262
|
+
> Re-derived in prose; not vendored.
|
|
263
|
+
|
|
207
264
|
## Ignored Paths
|
|
208
265
|
|
|
209
266
|
Configure the linter to exclude:
|
|
@@ -44,6 +44,32 @@ Two techniques earn their cost on hard, repeated tasks:
|
|
|
44
44
|
> feedback loop) and [`microsoft/promptbase`](https://github.com/microsoft/promptbase) (Medprompt).
|
|
45
45
|
> Re-derived in prose; not vendored.
|
|
46
46
|
|
|
47
|
+
### Treat a reusable prompt as a versioned, testable artifact
|
|
48
|
+
|
|
49
|
+
A prompt you rely on repeatedly — the instruction that drives an agent, a skill, or a recurring
|
|
50
|
+
extraction/classification step — is **code**, and it deserves the same discipline. An ad-hoc string
|
|
51
|
+
buried in a function is impossible to review, diff, or regression-test; the moment a prompt matters,
|
|
52
|
+
lift it into a first-class artifact:
|
|
53
|
+
|
|
54
|
+
- **Declare the contract, don't bury it.** Keep the model/config (model, temperature, etc.) and an
|
|
55
|
+
explicit **input and output schema** *with* the prompt text — so callers know what it expects and what
|
|
56
|
+
it returns, and the output can be **schema-validated** (pairs with validator-in-the-loop above:
|
|
57
|
+
reject/repair output that doesn't match the schema).
|
|
58
|
+
- **Separate template from data.** Parameterize the prompt with named variables rather than
|
|
59
|
+
string-concatenating values in; this keeps the reusable logic stable and the per-call data explicit
|
|
60
|
+
(and avoids accidental injection of untrusted text into the instruction — see `agent-guardrails.md`).
|
|
61
|
+
- **Version it and test it.** Store the prompt as a file under version control so changes are
|
|
62
|
+
reviewable and diffable, and write **evals** against it (`.claude/rules/evals.md`) so a "small wording
|
|
63
|
+
tweak" can't silently regress behavior. A prompt without a test is an untested code path.
|
|
64
|
+
|
|
65
|
+
This is exactly what the kit's own agents and skills already are — Markdown with YAML frontmatter, under
|
|
66
|
+
version control. The discipline generalizes: any prompt important enough to reuse is important enough to
|
|
67
|
+
schema-check, version, and test.
|
|
68
|
+
|
|
69
|
+
> Stack-agnostic adaptation of the prompt-as-code discipline (frontmatter model/config + schema-driven
|
|
70
|
+
> I/O validation + templating + versioned, testable `.prompt` artifacts) from the Apache-2.0
|
|
71
|
+
> [`google/dotprompt`](https://github.com/google/dotprompt). Re-derived in prose; not vendored.
|
|
72
|
+
|
|
47
73
|
## Reasoning hygiene
|
|
48
74
|
|
|
49
75
|
1. **Make the reasoning inspectable.** A reviewer (or the next agent) should be able to follow *why*,
|
|
@@ -419,6 +419,102 @@ For component-based UI frameworks:
|
|
|
419
419
|
|
|
420
420
|
See `.claude/rules/responsive-and-accessibility.md` for UI-specific accessibility requirements.
|
|
421
421
|
|
|
422
|
+
## Parameterized / Table-Driven Tests
|
|
423
|
+
|
|
424
|
+
When the *same* assertion logic runs across many input/expectation pairs, don't copy-paste the test
|
|
425
|
+
body — drive one test template from a table of cases. It cuts duplication, makes the covered cases
|
|
426
|
+
visible at a glance, and makes adding a case a one-line change. Use your framework's mechanism:
|
|
427
|
+
`@pytest.mark.parametrize` (Python), `it.each` / `test.each` (Jest/Vitest), JUnit `@ParameterizedTest`,
|
|
428
|
+
Go table-driven subtests (`for _, tc := range cases { t.Run(... ) }`), RSpec shared examples.
|
|
429
|
+
|
|
430
|
+
```python
|
|
431
|
+
@pytest.mark.parametrize("raw, expected", [
|
|
432
|
+
(1234.5, "$1,234.50"), # positive
|
|
433
|
+
(0, "$0.00"), # zero
|
|
434
|
+
(-500, "-$500.00"), # negative
|
|
435
|
+
])
|
|
436
|
+
def test_format_currency(raw, expected):
|
|
437
|
+
assert format_currency(raw) == expected
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
- **Name each case** (or include the input in the assertion message) so a failure says *which* row
|
|
441
|
+
failed, not just "case 3."
|
|
442
|
+
- Reach for it especially on pure functions, validators, and boundary tables (see *Cover edge cases*).
|
|
443
|
+
|
|
444
|
+
> Stack-agnostic adaptation of parameterized/table-driven testing (one template, many input/expectation
|
|
445
|
+
> rows) from the Apache-2.0 [`google/patrick`](https://github.com/google/patrick). Re-derived in prose;
|
|
446
|
+
> not vendored — the pattern is supported natively across test frameworks.
|
|
447
|
+
|
|
448
|
+
## Semantic Equality and Structured Assertions
|
|
449
|
+
|
|
450
|
+
Asserting deep equality with the default operator is brittle: floating-point results need *tolerance*,
|
|
451
|
+
some fields are legitimately unordered, and a raw "expected != actual" failure on a big struct is
|
|
452
|
+
unreadable. Assert on the *meaning*, and surface a readable diff:
|
|
453
|
+
|
|
454
|
+
- **Use tolerant comparison for floats** (`abs(a-b) < eps` / `pytest.approx` / `assertAlmostEqual`),
|
|
455
|
+
and define explicit equality for domain types (NaN handling, set-vs-list, ignore server-set
|
|
456
|
+
timestamps/ids) rather than comparing raw representations.
|
|
457
|
+
- **Prefer a structured diff** on failure — assert with a matcher that prints *what differs*
|
|
458
|
+
(field-by-field), not two opaque blobs. Most ecosystems have one (`assertEqual` deep-diff,
|
|
459
|
+
`jest`'s object diff, `deepdiff` in Python, custom comparers).
|
|
460
|
+
- **Don't snapshot-compare to dodge this** — a tolerant, intention-revealing comparator beats a
|
|
461
|
+
brittle golden file (see *Never Test → Snapshot tests*).
|
|
462
|
+
|
|
463
|
+
> Stack-agnostic adaptation of semantic-equality testing (custom comparators with float tolerance /
|
|
464
|
+
> domain equality, structured diffs over raw deep-equality) from the BSD-3-Clause
|
|
465
|
+
> [`google/go-cmp`](https://github.com/google/go-cmp). Re-derived in prose; not vendored.
|
|
466
|
+
|
|
467
|
+
## Fuzzing (and continuous fuzzing in CI)
|
|
468
|
+
|
|
469
|
+
Example-based and even property-based tests (see the property-based testing section in
|
|
470
|
+
`.claude/skills/test-driven-development`) only exercise inputs you *thought of*. **Fuzzing** generates
|
|
471
|
+
inputs you didn't — it mutates a seed corpus under **coverage feedback**, steering toward new code
|
|
472
|
+
paths, and flags any input that crashes, hangs, or trips an assertion/sanitizer. It is the highest-value
|
|
473
|
+
technique for code that parses or decodes **untrusted input** (parsers, deserializers, protocol/codec
|
|
474
|
+
handlers, anything taking bytes from the network or a file) and complements the ReDoS / input-validation
|
|
475
|
+
hardening in `.claude/skills/security-and-hardening`.
|
|
476
|
+
|
|
477
|
+
- **Write a fuzz target:** a single entry point that takes an arbitrary byte string / structured input
|
|
478
|
+
and feeds it through the code under test. Most ecosystems ship a coverage-guided fuzzer — Go
|
|
479
|
+
`testing.F`, Rust `cargo-fuzz`, Python `atheris`, JS `jazzer.js`, JVM `Jazzer`, C/C++ libFuzzer/AFL++.
|
|
480
|
+
- **Seed and grow a corpus.** Start from valid example inputs; the fuzzer evolves them. Keep the corpus
|
|
481
|
+
(and any crash reproducers) in the repo so findings are reproducible and regressions are caught.
|
|
482
|
+
- **Structure-aware fuzzing for structured inputs.** For inputs behind a schema (protobuf, JSON Schema,
|
|
483
|
+
a typed AST), generate *semantically valid* inputs from the schema so the fuzzer spends its budget on
|
|
484
|
+
logic, not on getting past the parser.
|
|
485
|
+
- **Make it continuous, as a CI gate.** Run a short, code-change-scoped fuzz pass on each PR (catches
|
|
486
|
+
regressions cheaply — a few minutes), and a longer batch run on a schedule to build the corpus and
|
|
487
|
+
reach deeper bugs. Every crash becomes a regression test. (Wire the PR pass into
|
|
488
|
+
`.claude/rules/ci-cd-and-automation.md` alongside lint/test.)
|
|
489
|
+
|
|
490
|
+
> Stack-agnostic adaptation of coverage-guided fuzzing and **continuous fuzzing as a CI gate**
|
|
491
|
+
> (PR-scoped code-change runs + scheduled batch + corpus/crash management) from the Apache-2.0
|
|
492
|
+
> [`google/atheris`](https://github.com/google/atheris),
|
|
493
|
+
> [`google/honggfuzz`](https://github.com/google/honggfuzz), and
|
|
494
|
+
> [`google/clusterfuzzlite`](https://github.com/google/clusterfuzzlite). Re-derived in prose; not
|
|
495
|
+
> vendored — the discipline maps onto each ecosystem's native fuzzer.
|
|
496
|
+
|
|
497
|
+
## Parallel Execution and Flakiness Detection
|
|
498
|
+
|
|
499
|
+
As a suite grows, two things matter beyond correctness: it must run **fast** and it must be
|
|
500
|
+
**deterministic**.
|
|
501
|
+
|
|
502
|
+
- **Run tests in parallel.** Shard across workers (≈ CPU cores) — most runners do this with a flag
|
|
503
|
+
(`pytest -n auto`, `go test` package parallelism + `t.Parallel()`, `jest`/`vitest` default workers).
|
|
504
|
+
Parallelism is only safe if tests are **isolated**: no shared mutable global, DB row, temp file, or
|
|
505
|
+
port between tests (see *No test interdependence*). Flakiness that appears *only* under parallelism is
|
|
506
|
+
a hidden shared-state bug — fix the isolation, don't serialize to hide it.
|
|
507
|
+
- **Hunt flakiness deliberately.** A test that passes 99 % of the time is a latent failure. Periodically
|
|
508
|
+
**repeat** the suite (or a suspect test) many times and treat any nondeterministic result as a defect
|
|
509
|
+
to fix, not a flake to retry. Run with repetition and randomized ordering (`--count=N` /
|
|
510
|
+
`pytest-repeat` / `--shuffle`) so order-dependence and timing races surface in CI, not in production.
|
|
511
|
+
- The usual root causes: time/clock assumptions (use the condition-waiting discipline in *Async/
|
|
512
|
+
Event-Loop Systems*, never `sleep`), order dependence, shared fixtures, and unawaited async work.
|
|
513
|
+
|
|
514
|
+
> Stack-agnostic adaptation of parallel test sharding + repeated-run flakiness detection from the
|
|
515
|
+
> Apache-2.0 [`google/gtest-parallel`](https://github.com/google/gtest-parallel). Re-derived in prose;
|
|
516
|
+
> not vendored.
|
|
517
|
+
|
|
422
518
|
## Integration with Workflow
|
|
423
519
|
|
|
424
520
|
This file defines unit testing standards. Integration and end-to-end testing are covered separately:
|