claude-code-kit 0.38.0__tar.gz → 0.40.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.38.0 → claude_code_kit-0.40.0}/.claude-plugin/marketplace.json +1 -1
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/.claude-plugin/plugin.json +1 -1
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/CHANGELOG.md +35 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/PKG-INFO +4 -4
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/README.md +3 -3
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/dependency-scanner.md +23 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/pyproject.toml +1 -1
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/code-review-and-quality/SKILL.md +17 -0
- claude_code_kit-0.40.0/skills/dependency-verification/SKILL.md +101 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/library-review/SKILL.md +2 -1
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/over-engineering-review/SKILL.md +31 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/security-and-hardening/SKILL.md +6 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/src/claude_kit/__init__.py +1 -1
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/.gitignore +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/CLAUDE.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/CONTRIBUTING.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/LICENSE +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/acceptance-reviewer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/auditor.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/developer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/devils-advocate.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/devops-engineer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/e2e-tester.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/em-reviewer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/incident-responder.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/merge-reviewer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/observability-engineer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/orchestrator.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/owasp-reviewer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/policy-validator.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/pr-raiser.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/risk-classifier.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/sdlc-code-reviewer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/secret-scanner.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/security-reviewer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/senior-backend-dev.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/senior-frontend-dev.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/senior-tester.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/spec-doc-writer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/story-planner.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/technical-architect.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/tester.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/ui-designer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/agents/unit-tester.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/catalog/capture.yaml +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/catalog/mcp.yaml +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/catalog/org.yaml +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/catalog/profiles.yaml +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/catalog/stacks.yaml +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/commands/abort.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/commands/init.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/commands/sdlc.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/commands/status.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/docs/agentic-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/docs/agents.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/docs/architecture.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/docs/capture-a-real-run.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/docs/coverage-audit.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/docs/eval-harness.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/docs/org-capabilities.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/docs/stack-skills/GAP-ANALYSIS.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/docs/stack-skills/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/docs/stack-skills/REPO-INVENTORY.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/hooks.json +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/audit-log.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/capture-learnings.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/guard-destructive-git.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/guard-kubectl-delete.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/guard-secrets.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/lint-fix.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/load-autonomy.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/load-continuity.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/load-learnings.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/type-check.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/validate-frontmatter.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/validate-settings.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/warn-large-edits.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/warn-llm-io.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/warn-missing-tests.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/hooks/scripts/warn-shared-modules.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/agent-guardrails.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/agent-memory.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/agent-resilience.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/autonomy-levels.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/code-organization.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/continuity.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/design-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/devops-observability.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/documentation.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/evals.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/frontend-best-practices.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/goal-setting-and-monitoring.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/human-in-the-loop.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/linting-and-formatting.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/mandatory-workflow.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/model-tiers.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/quality-gates.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/rarv-cycle.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/reasoning-techniques.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/responsive-and-accessibility.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/risk-classification.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/testing.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/rules/tool-design.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/scripts/capture-sdlc-run.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/scripts/check_docs_consistency.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/scripts/gen_hooks.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/scripts/init.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/_references/accessibility-checklist.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/_references/orchestration-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/_references/performance-checklist.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/_references/security-checklist.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/_references/testing-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/accessibility-review/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/alembic-migrations/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/alembic-migrations/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/alembic-migrations/references/alembic-setup-and-env.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/alembic-migrations/references/async-and-multitenant-migrations.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/alembic-migrations/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/alembic-migrations/references/troubleshooting-and-debugging.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/alembic-migrations/references/writing-migrations.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/anthropic-vertex-integration/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/anthropic-vertex-integration/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/anthropic-vertex-integration/references/generate-helpers-and-retry.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/anthropic-vertex-integration/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/anthropic-vertex-integration/references/vertex-client-and-auth.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/api-and-interface-design/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/api-integration/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/api-pagination-filtering-sorting/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/api-pagination-filtering-sorting/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/api-pagination-filtering-sorting/references/query-params-conventions.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/api-pagination-filtering-sorting/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/api-pagination-filtering-sorting/references/response-metadata.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/archive-sprint/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/async-python-patterns/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/async-python-patterns/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/async-python-patterns/references/async-boundaries.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/async-python-patterns/references/lifecycle-and-gather.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/async-python-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/auth-and-rbac/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/auth-and-rbac/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/auth-and-rbac/references/auth-dependencies.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/auth-and-rbac/references/rbac-and-permissions.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/auth-and-rbac/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/auth-and-rbac/references/security-hardening.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/auth-and-rbac/references/tokens-and-hashing.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/backend-repo-architecture/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/backend-repo-architecture/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/backend-repo-architecture/references/deployment-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/backend-repo-architecture/references/entrypoint-and-config.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/backend-repo-architecture/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/backend-repo-architecture/references/structure-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/backend-repo-architecture/references/troubleshooting.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/backlog/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/backlog/item-template.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/bug-hunt/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/code-simplification/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/component-design/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/configargparse-yaml-env-layering/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/configargparse-yaml-env-layering/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/configargparse-yaml-env-layering/references/config-layering-anatomy.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/configargparse-yaml-env-layering/references/mode-dispatch-and-precedence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/configargparse-yaml-env-layering/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/consolidate-learnings/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/containerization-and-deployment/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/containerization-and-deployment/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/containerization-and-deployment/references/deployment-and-secrets.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/containerization-and-deployment/references/dockerfile-and-compose.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/containerization-and-deployment/references/entrypoint-and-modes.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/containerization-and-deployment/references/kerberos-kinit-bootstrap.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/containerization-and-deployment/references/makefile-dev-workflow.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/containerization-and-deployment/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/context-engineering/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/cron-and-scheduled-jobs/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/cron-and-scheduled-jobs/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/cron-and-scheduled-jobs/references/choosing-and-operations.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/cron-and-scheduled-jobs/references/kubernetes-cronjob.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/cron-and-scheduled-jobs/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/cron-and-scheduled-jobs/references/temporal-schedules.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/data-engineering-bigquery-gcs/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/data-engineering-bigquery-gcs/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/data-engineering-bigquery-gcs/references/bigquery-advanced-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/data-engineering-bigquery-gcs/references/bigquery-gcs-io.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/data-engineering-bigquery-gcs/references/medallion-architecture.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/data-engineering-bigquery-gcs/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/data-engineering-bigquery-gcs/references/temp-table-merge-pattern.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/decision/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/decision/adr-template.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/deprecation-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/design-patterns-and-conventions/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/design-patterns-and-conventions/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/design-patterns-and-conventions/references/anti-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/design-patterns-and-conventions/references/naming-and-layout.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/design-patterns-and-conventions/references/patterns-catalog.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/design-patterns-and-conventions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/design-patterns-and-conventions/references/testing-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/design-patterns-and-conventions/references/troubleshooting.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/docker-compose/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/docker-compose/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/docker-compose/references/compose-services-and-healthchecks.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/docker-compose/references/dev-vs-prod-variants.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/docker-compose/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/docker-shared/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/docker-shared/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/docker-shared/references/dockerignore-and-build-secrets.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/docker-shared/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/docker-shared/references/shared-base-images.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/docker-shared/references/shared-compose-fragments.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/dockerfile-backend/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/dockerfile-backend/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/dockerfile-backend/references/backend-dockerfile-anatomy.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/dockerfile-backend/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/dockerfile-backend/references/system-deps-and-caching.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/dockerfile-frontend/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/dockerfile-frontend/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/dockerfile-frontend/references/build-args-and-nginx.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/dockerfile-frontend/references/frontend-dockerfile-anatomy.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/dockerfile-frontend/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/documentation-and-adrs/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/doubt-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/edge-to-service-trust-boundary/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/edge-to-service-trust-boundary/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/edge-to-service-trust-boundary/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/edge-to-service-trust-boundary/references/trust-contract.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/execute/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/fastapi-service-patterns/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/fastapi-service-patterns/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/fastapi-service-patterns/references/api-versioning.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/fastapi-service-patterns/references/app-factory-and-lifespan.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/fastapi-service-patterns/references/custom-route-and-middleware.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/fastapi-service-patterns/references/dependency-injection.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/fastapi-service-patterns/references/model-and-serialization-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/fastapi-service-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/file-export-and-reporting/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/file-export-and-reporting/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/file-export-and-reporting/references/excel-generation.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/file-export-and-reporting/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/file-export-and-reporting/references/streaming-and-downloads.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/frontend-repo-architecture/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/frontend-repo-architecture/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/frontend-repo-architecture/references/api-layer-and-types.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/frontend-repo-architecture/references/divergences.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/frontend-repo-architecture/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/frontend-repo-architecture/references/structure-and-state.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/frontend-repo-architecture/references/testing-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/gcp-cloud-run-github-actions/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/gcp-cloud-run-github-actions/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/gcp-cloud-run-github-actions/references/cloud-run-deploy.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/gcp-cloud-run-github-actions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/gcp-cloud-run-github-actions/references/workflow-structure.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/gcs-file-storage-patterns/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/gcs-file-storage-patterns/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/gcs-file-storage-patterns/references/client-and-uploads.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/gcs-file-storage-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/gcs-file-storage-patterns/references/signed-urls-and-reads.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/grafana-dashboards-and-alerts/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/grafana-dashboards-and-alerts/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/grafana-dashboards-and-alerts/references/dashboard-json-and-templating.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/grafana-dashboards-and-alerts/references/provisioning-and-organization.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/grafana-dashboards-and-alerts/references/red-metrics-queries.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/grafana-dashboards-and-alerts/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/grafana-dashboards-and-alerts/references/unified-alerting.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/graphql-patterns/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/graphql-patterns/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/graphql-patterns/references/apollo-client-frontend.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/graphql-patterns/references/apollo-client-setup.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/graphql-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/graphql-patterns/references/strawberry-backend.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/graphql-patterns/references/when-to-use-graphql.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/idea-refine/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/idea-refine/examples.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/idea-refine/frameworks.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/idea-refine/refinement-criteria.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/incident-postmortem/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/incremental-implementation/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/interview-me/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kafka-config-driven/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kafka-config-driven/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kafka-config-driven/references/config-and-sasl-kerberos.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kafka-config-driven/references/consumer-producer-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kafka-config-driven/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kafka-config-driven/references/troubleshooting-and-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kubectl-operations/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kubectl-operations/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kubectl-operations/references/command-reference.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kubectl-operations/references/context-namespace-rbac.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kubectl-operations/references/debugging-playbooks.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kubectl-operations/references/output-formats-and-selectors.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kubectl-operations/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kubernetes-workload-hardening/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kubernetes-workload-hardening/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kubernetes-workload-hardening/references/networkpolicy-and-rbac.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kubernetes-workload-hardening/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/kubernetes-workload-hardening/references/securitycontext-and-podsecurity.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/langfuse-llm-tracing/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/langfuse-llm-tracing/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/langfuse-llm-tracing/references/langfuse-client-and-tracing.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/langfuse-llm-tracing/references/python-and-typescript.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/langfuse-llm-tracing/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/load-testing/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/manual-test/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/modernization-and-migration/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/modernization-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/modernization-and-migration/references/migration-best-practices.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/modernization-and-migration/references/pydantic-v1-to-v2.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/modernization-and-migration/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/modernization-and-migration/references/shared-internal-library.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/modernization-and-migration/references/sqlalchemy-14-to-20.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/multi-tenancy-patterns/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/multi-tenancy-patterns/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/multi-tenancy-patterns/references/caching-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/multi-tenancy-patterns/references/isolation-strategies.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/multi-tenancy-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/multi-tenancy-patterns/references/tenant-resolution.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/node-express-service/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/node-express-service/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/node-express-service/references/app-factory-and-mode-dispatch.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/node-express-service/references/config-and-module-alias.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/node-express-service/references/middleware-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/node-express-service/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/node-objection-knex/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/node-objection-knex/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/node-objection-knex/references/migrations-and-validation.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/node-objection-knex/references/objection-model-and-knex.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/node-objection-knex/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/notifications-and-messaging/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/notifications-and-messaging/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/notifications-and-messaging/references/provider-abstraction.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/notifications-and-messaging/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/notifications-and-messaging/references/templates-and-fallback.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/observability-and-logging/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/observability-and-logging/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/observability-and-logging/references/health-and-readiness.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/observability-and-logging/references/logging-and-structlog.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/observability-and-logging/references/outbound-metrics-and-multi-mode.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/observability-and-logging/references/pii-redaction.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/observability-and-logging/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/observability-and-logging/references/tracing-and-metrics.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/performance-optimization/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/playwright-verification/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/pydantic-schema-patterns/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/pydantic-schema-patterns/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/pydantic-schema-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/pydantic-schema-patterns/references/settings-and-validation.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/pydantic-schema-patterns/references/troubleshooting-and-common-errors.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/pydantic-schema-patterns/references/v1-vs-v2.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/python-dao-and-database/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/python-dao-and-database/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/python-dao-and-database/references/advanced-query-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/python-dao-and-database/references/basedao-and-sessions.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/python-dao-and-database/references/mongodb-advanced.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/python-dao-and-database/references/other-db-mongodb.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/python-dao-and-database/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/python-dao-and-database/references/sqlalchemy-1x-vs-2x.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/radix-tailwind-component-patterns/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/radix-tailwind-component-patterns/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/radix-tailwind-component-patterns/references/radix-primitives-and-variants.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/radix-tailwind-component-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/radix-tailwind-component-patterns/references/tailwind-theme-and-cn.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/react-hook-form-zod-patterns/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/react-hook-form-zod-patterns/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/react-hook-form-zod-patterns/references/form-setup-and-zod.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/react-hook-form-zod-patterns/references/multi-step-and-modes.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/react-hook-form-zod-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/redis-caching-patterns/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/redis-caching-patterns/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/redis-caching-patterns/references/cache-manager-and-fallback.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/redis-caching-patterns/references/namespacing-and-invalidation.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/redis-caching-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/refresh-docs/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/remember/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/scope/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/scope/scope-template.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/sdlc/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/security-verification/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/shannon-ai-pentest/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/shannon-ai-pentest/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/shannon-ai-pentest/references/operating-guide.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/shipping-and-launch/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/simplification-debt/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/smoke-test/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/source-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/spec-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/sprint/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/sprint/sprint-template.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/tanstack-react-query-patterns/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/tanstack-react-query-patterns/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/tanstack-react-query-patterns/references/mutations-and-cache.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/tanstack-react-query-patterns/references/query-keys-and-hooks.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/tanstack-react-query-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/task-tracker-sync/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-config-driven/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-config-driven/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-config-driven/references/config-and-retry-idempotency.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-config-driven/references/dag-dsl-interpreter.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-config-driven/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-config-driven/references/schedule-registration.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-config-driven/references/schedules-and-cron.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-config-driven/references/worker-workflow-activity-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-developer/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-developer/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-developer/references/cli.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-developer/references/determinism.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-developer/references/gotchas.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-developer/references/languages.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-developer/references/testing.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/temporal-developer/references/versioning.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/test-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/test-plan-review/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/testing-conventions/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/testing-conventions/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/testing-conventions/references/async-and-mocking.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/testing-conventions/references/coverage-gap-and-recommendations.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/testing-conventions/references/github-actions-test-orchestration.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/testing-conventions/references/pytest-and-fixtures.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/testing-conventions/references/pytest-asyncio-modes.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/testing-conventions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/testing-conventions/references/security-regression-tests.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/testing-conventions/references/vitest-frontend-testing.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/threat-model/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/triage/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/ui-ux-design/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/unit-test/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/using-agent-skills/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/vitest-rtl-msw-patterns/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/vitest-rtl-msw-patterns/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/vitest-rtl-msw-patterns/references/msw-and-contract-tests.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/vitest-rtl-msw-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/vitest-rtl-msw-patterns/references/vitest-rtl-setup.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/zap-vapt-scanning/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/zap-vapt-scanning/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/zap-vapt-scanning/references/operating-guide.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/zap-vapt-scanning/scripts/endpoints.example.txt +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/zap-vapt-scanning/scripts/requirements.txt +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/zap-vapt-scanning/scripts/zap_vapt.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/zustand-state-patterns/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/zustand-state-patterns/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/zustand-state-patterns/references/async-polling-and-persistence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/zustand-state-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/skills/zustand-state-patterns/references/store-structure-and-selectors.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/src/claude_kit/__main__.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/src/claude_kit/catalog.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/src/claude_kit/cli.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/src/claude_kit/hooks.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/src/claude_kit/models.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/src/claude_kit/pipeline.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/src/claude_kit/prompts.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/src/claude_kit/render.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/src/claude_kit/scaffold.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/src/claude_kit/upgrader.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/src/claude_kit/validator.py +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/CLAUDE.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/CLAUDE.stack.md.tmpl +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/CONTINUITY.template.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/README.claude-sdlc.md.tmpl +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/agent-memory/MEMORY.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/agent-memory/api/.gitkeep +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/agent-memory/architecture/.gitkeep +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/agent-memory/debugging/.gitkeep +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/agent-memory/patterns/.gitkeep +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/agent-memory/performance/.gitkeep +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/artifacts/adr.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/artifacts/api-change-report.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/artifacts/change-proposal.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/artifacts/feature-spec.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/artifacts/release-plan.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/artifacts/runbook.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/artifacts/security-review.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/artifacts/test-plan.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/agents/data-workflow-agent.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/agents/founder-prototype-agent.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/agents/internal-tools-builder.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/agents/pm-copilot.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/agents/staff-pm-reviewer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/agents/support-ticket-engineer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/devops-and-release/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/engineering-core/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/product-to-code/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/quality-and-review/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/security-and-compliance/README.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/rules/ai-working-agreement.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/rules/ambiguity-resolution.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/rules/compliance-policy.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/rules/pii-policy.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/rules/production-data-policy.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/rules/prototype-boundaries.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/rules/secrets-policy.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/skills/review-scope/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/skills/review-sprint/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/skills/review-sprint-plan/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/org/skills/review-ux-flow/SKILL.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/settings.json +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/backend/go/net-http/rules/go-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/frontend/react/rules/design-system-compliance.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/frontend/react/rules/mobile-design-guidelines.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/frontend/react/rules/react-patterns.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.0}/templates/stacks/frontend/react/rules/ui-design-system.md +0 -0
- {claude_code_kit-0.38.0 → claude_code_kit-0.40.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.40.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.40.0",
|
|
4
4
|
"description": "Cookiecutter-style scaffolder for an autonomous Claude Code SDLC config (no app code, no Docker). `claude-kit init` asks ordered questions and installs CLAUDE.md + .claude/ (rules, the profile's agents/skills, hooks, artifact templates) + optional .mcp.json; run /sdlc to drive spec → review → build → test → security → ship through profile-aware quality gates with working memory and a self-improving learnings loop.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Arjunsingh Yadav",
|
|
@@ -4,6 +4,41 @@ All notable changes to claude-kit are documented here. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/), and the project uses
|
|
5
5
|
[semantic versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [0.40.0] — 2026-06-26
|
|
8
|
+
|
|
9
|
+
**Review grounding + addition scrutiny** (PR 2 of 4 from the MIT `athola/claude-night-market` audit;
|
|
10
|
+
re-derived stack-agnostic, count-neutral — both are edits to existing skills).
|
|
11
|
+
|
|
12
|
+
- **`skills/code-review-and-quality`** — Step 4 now requires every finding to be **grounded**: a
|
|
13
|
+
`file:line` Location + a verbatim Anchor snippet, re-verified before reporting; a finding whose
|
|
14
|
+
location/anchor doesn't resolve is dropped or labelled `UNVERIFIED`. Stops AI reviewers from
|
|
15
|
+
hallucinating locations/issues; the review-level form of the §2.5 evidence rule in `quality-gates.md`.
|
|
16
|
+
- **`skills/over-engineering-review`** — new **Burden-of-Proof Scrutiny** section that inverts the
|
|
17
|
+
default for *additions* in diff mode: 5 scrutiny questions (priority/criticality/simplicity/evidence/
|
|
18
|
+
consequence), 6 AI-additive anti-patterns (wheel reinvention, hallucinated issue, test manipulation,
|
|
19
|
+
complexity creep, priority deviation, gold plating), a justified/needs-evidence/unjustified verdict,
|
|
20
|
+
and the subtractive question. Collapses the upstream additive-bias-defense + justify + bloat-detector
|
|
21
|
+
ideas into the kit's existing complexity-review skill.
|
|
22
|
+
|
|
23
|
+
## [0.39.0] — 2026-06-26
|
|
24
|
+
|
|
25
|
+
**Supply-chain defense** (first of four adoptions from the MIT [`athola/claude-night-market`](https://github.com/athola/claude-night-market);
|
|
26
|
+
re-derived stack-agnostic, nothing vendored). Closes the pre-install gap between "should we add a dep"
|
|
27
|
+
(§2a.5 / `library-review`) and "are our installed deps vulnerable" (`dependency-scanner`).
|
|
28
|
+
|
|
29
|
+
- **`skills/dependency-verification/`** (new core skill) — pre-install verification that a package
|
|
30
|
+
**name** actually exists in its registry (PyPI/npm/crates.io/…) and isn't a typosquat/slopsquat,
|
|
31
|
+
before any install command or manifest edit. Defends against LLM-hallucinated package names
|
|
32
|
+
(~5–22% of model-suggested packages don't exist; the recurring names get pre-registered with
|
|
33
|
+
malware). Three states — exists / nonexistent / unverified — and **never fails closed on a network
|
|
34
|
+
error**. Cross-linked into the supply-chain layer chain (§2a.5 → library-review → this → install →
|
|
35
|
+
dependency-scanner).
|
|
36
|
+
- **`agents/dependency-scanner.md`** gains a **Supply-Chain Integrity mode** (post-resolve):
|
|
37
|
+
lockfile/hash integrity, artifact + lifecycle-script scanning, known-bad-versions cross-check, and
|
|
38
|
+
provenance signals — beyond the existing CVE audit.
|
|
39
|
+
- **`skills/security-and-hardening`** + **`skills/library-review`** updated to point at the new layers.
|
|
40
|
+
- Counts: **98 → 99** total skills (**52 → 53** core; stack-collection unchanged at 46).
|
|
41
|
+
|
|
7
42
|
## [0.38.0] — 2026-06-26
|
|
8
43
|
|
|
9
44
|
**New `library-review` core skill + a property-based-testing note** (two genuinely-new ideas
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-code-kit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.40.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
|
|
@@ -84,7 +84,7 @@ Quick start) for the full breakdown of any row.
|
|
|
84
84
|
| 🔁 **Pipeline & quality gates** | Gate-enforced progression (zero open Critical/High/Medium to advance), per-profile gate sets, a fast-track for small changes, and an anti-sycophancy `devils-advocate` pass |
|
|
85
85
|
| 🤖 **Agent roster** | **28** tiered agents + per-database overlays + **6** org personas, led by an Orchestrator that never writes code |
|
|
86
86
|
| 🔍 **Self-verification & review** | RARV green-Verify (real commands, not imagined), blind parallel review, and read-only risk classification |
|
|
87
|
-
| 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **
|
|
87
|
+
| 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **99** context-activated skills (53 core + 46 stack-collection) |
|
|
88
88
|
| 🧱 **Stacks & overlays** | Stack-agnostic core + **10** overlay rule sets (React · FastAPI · Go · Postgres · Mongo) wired to your exact commands, incl. a full React design system |
|
|
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 |
|
|
@@ -281,7 +281,7 @@ need.
|
|
|
281
281
|
- **23 stack-agnostic core rules** in [`rules/`](rules/) — `mandatory-workflow`, `quality-gates`,
|
|
282
282
|
`rarv-cycle`, `continuity`, plus eight agent-operation rules and `autonomy-levels` +
|
|
283
283
|
`risk-classification` (see [`docs/agentic-patterns.md`](docs/agentic-patterns.md)).
|
|
284
|
-
- **
|
|
284
|
+
- **99 on-demand skills** in [`skills/`](skills/) (53 core + 46 stack-collection) — spec-driven dev, planning, TDD, debugging, code
|
|
285
285
|
review, threat modeling, and more — activated by context and led by the `sdlc` entrypoint.
|
|
286
286
|
- **Profile-subset install** — each profile installs a strict subset of agents, skills, hooks, and
|
|
287
287
|
rules (`lean ⊂ standard ⊂ enterprise`), from fast track to full audit.
|
|
@@ -437,7 +437,7 @@ owned gates, and the rule that **no gate passes on an unproven verdict**.
|
|
|
437
437
|
| **[wshobson/agents](https://github.com/wshobson/agents)** & similar agent collections | Large libraries of individual subagent prompts you pick from | A **smaller, opinionated set wired into a sequenced pipeline with owned quality gates** — agents aren't a menu, they're stages that hand off and block on each other. Adopt-by-reuse, not by accumulation. |
|
|
438
438
|
| **[GitHub spec-kit](https://github.com/github/spec-kit)** | A spec-driven workflow (constitution → spec → tasks → analyze) | The same coverage-gate idea (the `story-planner` 1f gate + `task-tracker-sync`) **absorbed into a broader** lifecycle that also covers review, security, build, test, release, and observability gates. Complementary, wider scope. |
|
|
439
439
|
| **claude-flow / multi-agent runtimes** | Runtime orchestrators that *execute* swarms of agents | **Portable configuration**, not a running process — the orchestration is described in rules the host (Claude Code) executes. No daemon, no lock-in, no app code. |
|
|
440
|
-
| **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | A **catalog-driven generator**: resolves your stack/profile/scope into the right subset of 23 rules, 28 agents,
|
|
440
|
+
| **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | A **catalog-driven generator**: resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 99 skills, gates, and hooks, kept **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
|
|
441
441
|
|
|
442
442
|
**Choose claude-kit when** you want a consistent, reviewable, **gate-enforced** autonomous-SDLC setup
|
|
443
443
|
that's the same across every repo and stack, installs in seconds, ships nothing you have to run, and
|
|
@@ -54,7 +54,7 @@ Quick start) for the full breakdown of any row.
|
|
|
54
54
|
| 🔁 **Pipeline & quality gates** | Gate-enforced progression (zero open Critical/High/Medium to advance), per-profile gate sets, a fast-track for small changes, and an anti-sycophancy `devils-advocate` pass |
|
|
55
55
|
| 🤖 **Agent roster** | **28** tiered agents + per-database overlays + **6** org personas, led by an Orchestrator that never writes code |
|
|
56
56
|
| 🔍 **Self-verification & review** | RARV green-Verify (real commands, not imagined), blind parallel review, and read-only risk classification |
|
|
57
|
-
| 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **
|
|
57
|
+
| 📐 **Rules & skills** | **23** stack-agnostic core rules (incl. 8 agent-operation rules) + **99** context-activated skills (53 core + 46 stack-collection) |
|
|
58
58
|
| 🧱 **Stacks & overlays** | Stack-agnostic core + **10** overlay rule sets (React · FastAPI · Go · Postgres · Mongo) wired to your exact commands, incl. a full React design system |
|
|
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 |
|
|
@@ -251,7 +251,7 @@ need.
|
|
|
251
251
|
- **23 stack-agnostic core rules** in [`rules/`](rules/) — `mandatory-workflow`, `quality-gates`,
|
|
252
252
|
`rarv-cycle`, `continuity`, plus eight agent-operation rules and `autonomy-levels` +
|
|
253
253
|
`risk-classification` (see [`docs/agentic-patterns.md`](docs/agentic-patterns.md)).
|
|
254
|
-
- **
|
|
254
|
+
- **99 on-demand skills** in [`skills/`](skills/) (53 core + 46 stack-collection) — spec-driven dev, planning, TDD, debugging, code
|
|
255
255
|
review, threat modeling, and more — activated by context and led by the `sdlc` entrypoint.
|
|
256
256
|
- **Profile-subset install** — each profile installs a strict subset of agents, skills, hooks, and
|
|
257
257
|
rules (`lean ⊂ standard ⊂ enterprise`), from fast track to full audit.
|
|
@@ -407,7 +407,7 @@ owned gates, and the rule that **no gate passes on an unproven verdict**.
|
|
|
407
407
|
| **[wshobson/agents](https://github.com/wshobson/agents)** & similar agent collections | Large libraries of individual subagent prompts you pick from | A **smaller, opinionated set wired into a sequenced pipeline with owned quality gates** — agents aren't a menu, they're stages that hand off and block on each other. Adopt-by-reuse, not by accumulation. |
|
|
408
408
|
| **[GitHub spec-kit](https://github.com/github/spec-kit)** | A spec-driven workflow (constitution → spec → tasks → analyze) | The same coverage-gate idea (the `story-planner` 1f gate + `task-tracker-sync`) **absorbed into a broader** lifecycle that also covers review, security, build, test, release, and observability gates. Complementary, wider scope. |
|
|
409
409
|
| **claude-flow / multi-agent runtimes** | Runtime orchestrators that *execute* swarms of agents | **Portable configuration**, not a running process — the orchestration is described in rules the host (Claude Code) executes. No daemon, no lock-in, no app code. |
|
|
410
|
-
| **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | A **catalog-driven generator**: resolves your stack/profile/scope into the right subset of 23 rules, 28 agents,
|
|
410
|
+
| **dotfiles / `CLAUDE.md` starters** | A single rules file or settings snippet | A **catalog-driven generator**: resolves your stack/profile/scope into the right subset of 23 rules, 28 agents, 99 skills, gates, and hooks, kept **upgradeable** (`claude-kit upgrade` preserves your edits via owner + checksum). |
|
|
411
411
|
|
|
412
412
|
**Choose claude-kit when** you want a consistent, reviewable, **gate-enforced** autonomous-SDLC setup
|
|
413
413
|
that's the same across every repo and stack, installs in seconds, ships nothing you have to run, and
|
|
@@ -83,6 +83,29 @@ Backend deps: {N} · Frontend deps: {N} · Vulns: Critical {N} / High {N} / Medi
|
|
|
83
83
|
|
|
84
84
|
Return counts by severity + the finding table to `security-reviewer`. If a CVE has no patch, recommend a workaround or replacement and mark it for an allowlist-with-review-date decision (route to the human via the Orchestrator). Log durable findings to `.claude/CONTINUITY.md`.
|
|
85
85
|
|
|
86
|
+
## SUPPLY-CHAIN INTEGRITY MODE (beyond CVEs)
|
|
87
|
+
|
|
88
|
+
CVE scanning catches *known-vulnerable* versions; it does not catch a *compromised* or *impersonated*
|
|
89
|
+
package. When auditing for a supply-chain advisory, during incident response, or before a release, add
|
|
90
|
+
these checks (still report-only — never modify lockfiles):
|
|
91
|
+
|
|
92
|
+
- **Lockfile / hash integrity.** Confirm the lockfile pins integrity hashes and that resolved
|
|
93
|
+
artifacts match them (`pip`'s `--require-hashes`, `npm ci` against `package-lock.json`,
|
|
94
|
+
`cargo`'s `Cargo.lock`, `go.sum`). Flag lockfile drift (manifest and lockfile disagree) and any
|
|
95
|
+
dependency resolved from an unexpected source/registry.
|
|
96
|
+
- **Artifact scan.** Inspect what an install would actually run: post-install/lifecycle scripts
|
|
97
|
+
(`package.json` `postinstall`, `pyproject`/`setup.py` build hooks), and suspicious payload files
|
|
98
|
+
(e.g. `.pth` files that execute on interpreter start, obfuscated blobs). Report; don't execute.
|
|
99
|
+
- **Known-bad versions.** Cross-check resolved versions against a known-bad/compromised-version list
|
|
100
|
+
for the project's ecosystem (maintain the project's own list and the public advisory feeds). A
|
|
101
|
+
matched version is an **auto-Critical** finding.
|
|
102
|
+
- **Provenance signals.** Prefer packages with signed releases / 2FA-published maintainers; flag a
|
|
103
|
+
dependency that recently changed maintainer or publishing key.
|
|
104
|
+
|
|
105
|
+
This is the **post-resolve** half of the kit's supply-chain story; the **pre-install** half (verifying
|
|
106
|
+
a package *name* exists and isn't a typosquat/slopsquat, before it ever enters a lockfile) is the
|
|
107
|
+
`.claude/skills/dependency-verification` skill. Cite it; don't restate it.
|
|
108
|
+
|
|
86
109
|
## CADENCE MODE (whole-project maintenance pass)
|
|
87
110
|
|
|
88
111
|
The same audit can be dispatched **standalone** — outside any one feature — as a recurring
|
|
@@ -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.40.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"
|
|
@@ -181,6 +181,23 @@ Label every comment with its severity so the author knows what's required vs opt
|
|
|
181
181
|
|
|
182
182
|
This prevents authors from treating all feedback as mandatory and wasting time on optional suggestions.
|
|
183
183
|
|
|
184
|
+
#### Every finding must be grounded
|
|
185
|
+
|
|
186
|
+
A review finding is a **claim about a specific place in the code**, so it must be falsifiable — a
|
|
187
|
+
citation a second pass (human or agent) can mechanically re-read and confirm. AI reviewers in
|
|
188
|
+
particular hallucinate locations and issues; grounding is what stops that.
|
|
189
|
+
|
|
190
|
+
Every finding carries:
|
|
191
|
+
|
|
192
|
+
- **Location** — `file:line` (a concrete, current line, not "somewhere in the auth module").
|
|
193
|
+
- **Anchor** — a short *verbatim* snippet copied from that line, so the citation can be re-verified by
|
|
194
|
+
matching text even if line numbers shift.
|
|
195
|
+
|
|
196
|
+
Verify before reporting: re-read each cited `file:line` and confirm the anchor text is actually
|
|
197
|
+
present. A finding whose location or anchor doesn't resolve is **dropped or labelled `UNVERIFIED`** —
|
|
198
|
+
it never enters the verdict. This is the review-level form of the evidence rule in
|
|
199
|
+
`.claude/rules/quality-gates.md` (§2.5): an uncited finding is a TODO, not a finding.
|
|
200
|
+
|
|
184
201
|
### Step 5: Verify the Verification
|
|
185
202
|
|
|
186
203
|
Check the author's verification story:
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dependency-verification
|
|
3
|
+
description: Pre-install verification that a package NAME actually exists in its registry (PyPI/npm/crates.io/…) and is not a typosquat/slopsquat, before you run an install command or write it into a manifest. Defends against LLM-hallucinated package names — a measured 5–22% of model-suggested packages do not exist, and attackers pre-register the names that recur. Use before adding, installing, or recommending any dependency. Do NOT use to judge whether a real package is worth adopting (use library-review) or to audit ALREADY-installed dependencies for known CVEs (use the dependency-scanner agent) — this is the narrower "does this name even exist" check that runs first.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Dependency Verification (pre-install name check)
|
|
7
|
+
|
|
8
|
+
> A package name the model produced is a **claim**, not a fact. The registry is the fact. Verify
|
|
9
|
+
> before you install. Adapted (stack-agnostic) from the MIT-licensed
|
|
10
|
+
> [`athola/claude-night-market`](https://github.com/athola/claude-night-market) `dependency-verification` skill.
|
|
11
|
+
|
|
12
|
+
## Why this exists
|
|
13
|
+
|
|
14
|
+
Code-generating models recommend packages that **do not exist** at a measured rate of ~5% (commercial
|
|
15
|
+
models) to ~22% (open models), and ~58% of the hallucinated names *recur* across reruns — so an
|
|
16
|
+
attacker can predict a commonly-hallucinated name, register the empty slot, and ship malware. This is
|
|
17
|
+
**"slopsquatting"** (the LLM-era cousin of typosquatting). A proof-of-concept package registered
|
|
18
|
+
against a frequently-hallucinated name drew tens of thousands of installs. The rate does *not* fall to
|
|
19
|
+
zero with a better model. The defense is cheap: **confirm the name exists in its registry before you
|
|
20
|
+
install or recommend it.**
|
|
21
|
+
|
|
22
|
+
## When to use
|
|
23
|
+
|
|
24
|
+
Before any of:
|
|
25
|
+
- running an install command — `pip install`, `uv add`, `npm install`, `pnpm add`, `yarn add`,
|
|
26
|
+
`cargo add`, `go get`, `poetry add`, `gem install`, `composer require`, …
|
|
27
|
+
- writing a dependency into a manifest — `pyproject.toml`, `requirements.txt`, `package.json`,
|
|
28
|
+
`Cargo.toml`, `go.mod`, `Gemfile`, …
|
|
29
|
+
- **recommending a package to the user in prose** (a hallucinated recommendation is still a defect).
|
|
30
|
+
|
|
31
|
+
## The two failure signals
|
|
32
|
+
|
|
33
|
+
A candidate fails verification on **either**:
|
|
34
|
+
|
|
35
|
+
1. **Nonexistent** — the name is absent from its registry (e.g. HTTP 404). Likely a hallucination.
|
|
36
|
+
Do not install; find the correct name, or confirm the package was renamed/removed.
|
|
37
|
+
2. **Typosquat / slopsquat** — the name is one or two edits from a popular package (`reqeusts` vs
|
|
38
|
+
`requests`, `python-dateutil` vs a look-alike). Either a typo or deliberate impersonation —
|
|
39
|
+
restate the exact name you intend and confirm before proceeding.
|
|
40
|
+
|
|
41
|
+
## Three states (never fail closed on a network error)
|
|
42
|
+
|
|
43
|
+
| State | Registry result | Action |
|
|
44
|
+
|-------|-----------------|--------|
|
|
45
|
+
| **exists** | 200 / found | pass |
|
|
46
|
+
| **nonexistent** | 404 / not found | block — likely hallucination |
|
|
47
|
+
| **unverified** | timeout / rate-limit / offline / non-404 error | **warn only, never block** — don't fail closed on a network problem |
|
|
48
|
+
|
|
49
|
+
## Verification procedure
|
|
50
|
+
|
|
51
|
+
1. Extract the exact names the command or manifest edit would fetch (strip version specifiers/flags).
|
|
52
|
+
2. Confirm existence in the ecosystem's registry. A common, well-known package needn't be checked;
|
|
53
|
+
verify anything unfamiliar, freshly-suggested, or near a popular name.
|
|
54
|
+
3. For any name close to a popular package, restate the intended name and confirm.
|
|
55
|
+
4. Capture the check as evidence (registry URL + HTTP status) when the install lands in a PR.
|
|
56
|
+
|
|
57
|
+
### Registry existence endpoints
|
|
58
|
+
|
|
59
|
+
| Ecosystem | URL (`{name}` = package) | Exists / Absent |
|
|
60
|
+
|-----------|--------------------------|------------------|
|
|
61
|
+
| PyPI | `https://pypi.org/pypi/{name}/json` | 200 / 404 |
|
|
62
|
+
| npm | `https://registry.npmjs.org/{name}` | 200 / 404 |
|
|
63
|
+
| crates.io | `https://crates.io/api/v1/crates/{name}` | 200 / 404 |
|
|
64
|
+
| other | the ecosystem's registry/index API | found / not-found |
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Prints the HTTP status: 200 = exists, 404 = does not. (PyPI shown; swap the URL per ecosystem.)
|
|
68
|
+
curl -s -o /dev/null -w '%{http_code}\n' "https://pypi.org/pypi/requests/json"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## A confidence signal, not a second gate
|
|
72
|
+
|
|
73
|
+
Once a name clears the two signals, real-world usage is a *softer* signal that the name is the
|
|
74
|
+
established one, not a freshly-registered impostor: GitHub dependents / code-search hits for the exact
|
|
75
|
+
name, repo stars + recent activity, download history (a popular-sounding name registered yesterday is
|
|
76
|
+
a red flag; a modest name with years of releases is reassuring). **Low usage never blocks on its own**
|
|
77
|
+
— new, niche, internal, and private packages are legitimately low-usage. Use it to build confidence
|
|
78
|
+
and disambiguate two similar names, then hand a *real* candidate to `library-review` for the full
|
|
79
|
+
adopt/reject evaluation.
|
|
80
|
+
|
|
81
|
+
## Where this sits (the supply-chain layers)
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
need a dep at all? → mandatory-workflow.md §2a.5 (Reuse & YAGNI gate)
|
|
85
|
+
which dep, is it healthy?→ library-review skill (adopt/reject evaluation)
|
|
86
|
+
does this NAME exist? → THIS skill (pre-install: hallucination/typosquat) ◄── you are here
|
|
87
|
+
install
|
|
88
|
+
installed deps: CVEs? → dependency-scanner agent (post-install CVE/outdated audit)
|
|
89
|
+
lockfile/artifact integrity? → dependency-scanner agent (supply-chain integrity mode)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Optional enforcement:** a `PreToolUse` hook on install commands can run this check automatically
|
|
93
|
+
(warn-by-default; block on nonexistent/typosquat when configured). The hook is a backstop — verify
|
|
94
|
+
deliberately when you add a dependency rather than waiting for the gate.
|
|
95
|
+
|
|
96
|
+
## Exit criteria
|
|
97
|
+
|
|
98
|
+
- [ ] Every package in the install command / manifest edit is confirmed present in its registry, or the install is abandoned
|
|
99
|
+
- [ ] Any name within ~2 edits of a popular package is restated and confirmed before install
|
|
100
|
+
- [ ] A name that couldn't be verified online is reported as *unverified* and not silently installed
|
|
101
|
+
- [ ] For PR-bound installs, the registry check is captured as evidence
|
|
@@ -99,6 +99,7 @@ worth recording too, so the question isn't re-litigated.
|
|
|
99
99
|
|
|
100
100
|
- `.claude/rules/mandatory-workflow.md` (§2a.5 Reuse & YAGNI Gate) — the gate that decides *whether* a dep is needed
|
|
101
101
|
- `over-engineering-review` — reactive twin of §2a.5; stdlib/native/yagni lenses
|
|
102
|
-
- `dependency-
|
|
102
|
+
- `dependency-verification` — the *pre-install* name check (does this package name even exist / is it a typosquat) that runs before this evaluation
|
|
103
|
+
- `dependency-scanner` agent — audits *already-installed* deps for CVEs + lockfile/artifact integrity (this skill's post-add counterpart)
|
|
103
104
|
- `code-review-and-quality` (Dependency Discipline) — the quick 5-point form of this evaluation
|
|
104
105
|
- `documentation-and-adrs` — record a consequential adopt/reject as an ADR
|
|
@@ -55,6 +55,37 @@ Dependencies the stdlib or platform already ships · single-implementation inter
|
|
|
55
55
|
one product · wrappers that only delegate · modules exporting one thing · dead flags and config ·
|
|
56
56
|
hand-rolled stdlib · speculative "for later" scaffolding.
|
|
57
57
|
|
|
58
|
+
## Burden of proof — scrutinize each addition
|
|
59
|
+
|
|
60
|
+
The five tags catch complexity that already exists. In **diff mode**, also invert the burden of proof
|
|
61
|
+
on what the change *adds* — LLM-written code is additive by default (it reinvents wheels, gilds error
|
|
62
|
+
handling, and abstracts for a single caller). **The default answer to "should we add this?" is no;
|
|
63
|
+
the addition must earn its place.** For each added file / function / abstraction / config / dependency,
|
|
64
|
+
ask:
|
|
65
|
+
|
|
66
|
+
1. **Priority** — does this serve the current task/spec, or is it a detour?
|
|
67
|
+
2. **Criticality** — is it needed *now*, or speculative "for later"?
|
|
68
|
+
3. **Simplicity** — does a simpler or subtractive solution exist?
|
|
69
|
+
4. **Evidence** — what proves it's needed (a failing test, a real requirement) rather than assumed?
|
|
70
|
+
5. **Consequence** — what concretely breaks if it's omitted?
|
|
71
|
+
|
|
72
|
+
If 4 and 5 can't be answered with evidence, the addition is unjustified. Watch for these **AI-additive
|
|
73
|
+
anti-patterns**:
|
|
74
|
+
|
|
75
|
+
| Anti-pattern | Signal | Challenge |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| Wheel reinvention | New helper overlapping existing code/stdlib | "Does X already do this?" |
|
|
78
|
+
| Hallucinated issue | A fix for a bug with no reproduction | "Show the failing test before the fix." |
|
|
79
|
+
| Test manipulation | Test changed to match new behavior, not the spec | "Did the spec change, or did you change the test?" |
|
|
80
|
+
| Complexity creep | Abstraction for a single use case | "Is this the 3rd use, or the 1st?" |
|
|
81
|
+
| Priority deviation | Work not traceable to the task/spec | "Which requirement does this serve?" |
|
|
82
|
+
| Gold plating | Error handling / flexibility beyond need | "What breaks without this?" |
|
|
83
|
+
|
|
84
|
+
Give each scrutinized addition a one-word verdict — **justified** (evidence supports it → keep),
|
|
85
|
+
**needs-evidence** (plausible but unproven → prove or cut), **unjustified** (no evidence, likely
|
|
86
|
+
additive bias → cut) — and fold the cuts into the delete-list below. Before accepting any addition,
|
|
87
|
+
ask the subtractive question: *could this be achieved by removing code instead of adding it?*
|
|
88
|
+
|
|
58
89
|
## Output format
|
|
59
90
|
|
|
60
91
|
One line per finding. Diff mode:
|
|
@@ -322,6 +322,12 @@ def validate_upload(content_type: str, size: int) -> None:
|
|
|
322
322
|
|
|
323
323
|
## Triaging Dependency Audit Results
|
|
324
324
|
|
|
325
|
+
> **Supply-chain layers.** A CVE audit catches *known-vulnerable* versions — it does not catch a
|
|
326
|
+
> *hallucinated*, *typosquatted*, or *compromised* package. Pair it with the `dependency-verification`
|
|
327
|
+
> skill (pre-install: confirm the package name exists and isn't a typosquat/slopsquat) and the
|
|
328
|
+
> `dependency-scanner` agent's supply-chain integrity mode (post-resolve: lockfile-hash + artifact
|
|
329
|
+
> scanning + known-bad versions). Pre-install name check → install → CVE + integrity audit.
|
|
330
|
+
|
|
325
331
|
Not every finding is an emergency. Decision tree:
|
|
326
332
|
|
|
327
333
|
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|