claude-code-kit 0.60.0__tar.gz → 0.61.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.60.0 → claude_code_kit-0.61.0}/.claude-plugin/marketplace.json +1 -1
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/.claude-plugin/plugin.json +1 -1
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/CHANGELOG.md +69 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/PKG-INFO +1 -1
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/commands/init.md +13 -3
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/eval-harness.md +44 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/launch/directory-submission.md +54 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/org-capabilities.md +17 -0
- claude_code_kit-0.61.0/hooks/scripts/warn-missing-tests.sh +90 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/pyproject.toml +1 -1
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/agent-guardrails.md +17 -2
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/autonomy-levels.md +10 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/evals.md +32 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/goal-setting-and-monitoring.md +9 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/wave-orchestration.md +8 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/documentation-and-adrs/SKILL.md +16 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/frontend-ui-engineering/SKILL.md +17 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/refresh-docs/SKILL.md +35 -18
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/__init__.py +1 -1
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/README.md +4 -0
- claude_code_kit-0.60.0/hooks/scripts/warn-missing-tests.sh +0 -28
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/.gitignore +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/CLAUDE.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/CONTRIBUTING.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/LICENSE +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/acceptance-reviewer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/auditor.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/dependency-scanner.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/developer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/devils-advocate.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/devops-engineer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/e2e-tester.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/em-reviewer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/incident-responder.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/merge-reviewer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/observability-engineer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/orchestrator.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/owasp-reviewer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/policy-validator.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/pr-raiser.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/risk-classifier.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/sdlc-code-reviewer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/secret-scanner.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/security-reviewer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/senior-backend-dev.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/senior-frontend-dev.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/senior-tester.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/spec-doc-writer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/story-planner.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/technical-architect.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/tester.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/ui-designer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/agents/unit-tester.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/catalog/capture.yaml +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/catalog/mcp.yaml +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/catalog/org.yaml +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/catalog/profiles.yaml +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/catalog/stacks.yaml +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/commands/abort.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/commands/sdlc.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/commands/status.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/KNOWN_LIMITATIONS.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/RELEASE-POLICY.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/agentic-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/agents.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/architecture.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/autonomous-operation.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/capture-a-real-run.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/cli.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/coverage-audit.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/cursor-export.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/influences.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/install.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/launch/awesome-prs.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/launch/demo-script.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/launch/github-about.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/launch/posts.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/launch/road-to-1.0.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/launch/seed-issues.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/rules-context-budget.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/skill-audit.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/stack-skills/GAP-ANALYSIS.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/stack-skills/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/docs/stack-skills/REPO-INVENTORY.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/hooks.json +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/audit-log.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/capture-learnings.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/guard-destructive-git.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/guard-kubectl-delete.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/guard-push-main.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/guard-secrets.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/lint-fix.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/load-autonomy.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/load-continuity.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/load-learnings.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/type-check.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/validate-frontmatter.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/validate-settings.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/warn-large-edits.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/warn-llm-io.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/hooks/scripts/warn-shared-modules.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/agent-memory.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/agent-resilience.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/code-organization.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/continuity.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/design-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/devops-observability.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/documentation.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/frontend-best-practices.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/human-in-the-loop.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/linting-and-formatting.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/mandatory-workflow.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/model-tiers.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/quality-gates.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/rarv-cycle.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/reasoning-techniques.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/resilience-engineering.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/responsive-and-accessibility.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/risk-classification.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/testing.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/rules/tool-design.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/schemas/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/schemas/catalog-capture.schema.json +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/schemas/catalog-mcp.schema.json +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/schemas/catalog-org.schema.json +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/schemas/catalog-profiles.schema.json +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/schemas/catalog-stacks.schema.json +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/schemas/mcp-lock.schema.json +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/schemas/org-pack.schema.json +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/schemas/pipeline-snapshot.schema.json +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/scripts/backfill-releases.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/scripts/capture-sdlc-run.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/scripts/check_cross_references.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/scripts/check_docs_consistency.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/scripts/check_mcp_pins.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/scripts/check_rule_sizes.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/scripts/check_skill_descriptions.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/scripts/gen_hooks.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/scripts/init.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/_references/accessibility-checklist.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/_references/orchestration-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/_references/performance-checklist.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/_references/security-checklist.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/_references/testing-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/accessibility-review/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/alembic-migrations/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/alembic-migrations/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/alembic-migrations/references/alembic-setup-and-env.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/alembic-migrations/references/async-and-multitenant-migrations.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/alembic-migrations/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/alembic-migrations/references/troubleshooting-and-debugging.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/alembic-migrations/references/writing-migrations.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/anthropic-vertex-integration/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/anthropic-vertex-integration/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/anthropic-vertex-integration/references/generate-helpers-and-retry.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/anthropic-vertex-integration/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/anthropic-vertex-integration/references/vertex-client-and-auth.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/api-and-interface-design/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/api-integration/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/api-pagination-filtering-sorting/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/api-pagination-filtering-sorting/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/api-pagination-filtering-sorting/references/query-params-conventions.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/api-pagination-filtering-sorting/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/api-pagination-filtering-sorting/references/response-metadata.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/archive-sprint/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/async-python-patterns/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/async-python-patterns/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/async-python-patterns/references/async-boundaries.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/async-python-patterns/references/lifecycle-and-gather.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/async-python-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/auth-and-rbac/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/auth-and-rbac/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/auth-and-rbac/references/auth-dependencies.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/auth-and-rbac/references/rbac-and-permissions.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/auth-and-rbac/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/auth-and-rbac/references/security-hardening.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/auth-and-rbac/references/tokens-and-hashing.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/backend-repo-architecture/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/backend-repo-architecture/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/backend-repo-architecture/references/deployment-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/backend-repo-architecture/references/entrypoint-and-config.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/backend-repo-architecture/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/backend-repo-architecture/references/structure-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/backend-repo-architecture/references/troubleshooting.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/backlog/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/backlog/item-template.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/bug-hunt/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/code-review-and-quality/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/code-simplification/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/component-design/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/configargparse-yaml-env-layering/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/configargparse-yaml-env-layering/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/configargparse-yaml-env-layering/references/config-layering-anatomy.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/configargparse-yaml-env-layering/references/mode-dispatch-and-precedence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/configargparse-yaml-env-layering/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/consolidate-learnings/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/containerization-and-deployment/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/containerization-and-deployment/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/containerization-and-deployment/references/deployment-and-secrets.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/containerization-and-deployment/references/dockerfile-and-compose.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/containerization-and-deployment/references/entrypoint-and-modes.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/containerization-and-deployment/references/kerberos-kinit-bootstrap.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/containerization-and-deployment/references/makefile-dev-workflow.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/containerization-and-deployment/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/context-engineering/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/cron-and-scheduled-jobs/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/cron-and-scheduled-jobs/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/cron-and-scheduled-jobs/references/choosing-and-operations.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/cron-and-scheduled-jobs/references/kubernetes-cronjob.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/cron-and-scheduled-jobs/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/cron-and-scheduled-jobs/references/temporal-schedules.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/data-engineering-bigquery-gcs/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/data-engineering-bigquery-gcs/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/data-engineering-bigquery-gcs/references/bigquery-advanced-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/data-engineering-bigquery-gcs/references/bigquery-gcs-io.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/data-engineering-bigquery-gcs/references/medallion-architecture.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/data-engineering-bigquery-gcs/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/data-engineering-bigquery-gcs/references/temp-table-merge-pattern.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/decision/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/decision/adr-template.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/dependency-verification/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/deploy/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/deprecation-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-patterns-and-conventions/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-patterns-and-conventions/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-patterns-and-conventions/references/anti-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-patterns-and-conventions/references/naming-and-layout.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-patterns-and-conventions/references/patterns-catalog.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-patterns-and-conventions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-patterns-and-conventions/references/testing-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-patterns-and-conventions/references/troubleshooting.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-system-ops/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-system-ops/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-system-ops/references/ai-readiness.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-system-ops/references/drift-detection.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-system-ops/references/governance-and-adoption.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-system-ops/references/system-health-and-maturity.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/design-system-ops/references/token-architecture.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/doc-consolidation/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/docker-compose/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/docker-compose/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/docker-compose/references/compose-services-and-healthchecks.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/docker-compose/references/compose-skeletons.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/docker-compose/references/dev-vs-prod-variants.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/docker-compose/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/docker-shared/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/docker-shared/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/docker-shared/references/dockerignore-and-build-secrets.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/docker-shared/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/docker-shared/references/shared-base-images.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/docker-shared/references/shared-compose-fragments.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/dockerfile-backend/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/dockerfile-backend/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/dockerfile-backend/references/backend-dockerfile-anatomy.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/dockerfile-backend/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/dockerfile-backend/references/system-deps-and-caching.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/dockerfile-frontend/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/dockerfile-frontend/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/dockerfile-frontend/references/build-args-and-nginx.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/dockerfile-frontend/references/frontend-dockerfile-anatomy.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/dockerfile-frontend/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/doubt-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/edge-to-service-trust-boundary/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/edge-to-service-trust-boundary/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/edge-to-service-trust-boundary/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/edge-to-service-trust-boundary/references/trust-contract.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/execute/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/fastapi-service-patterns/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/fastapi-service-patterns/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/fastapi-service-patterns/references/api-versioning.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/fastapi-service-patterns/references/app-factory-and-lifespan.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/fastapi-service-patterns/references/custom-route-and-middleware.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/fastapi-service-patterns/references/dependency-injection.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/fastapi-service-patterns/references/model-and-serialization-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/fastapi-service-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/file-export-and-reporting/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/file-export-and-reporting/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/file-export-and-reporting/references/excel-generation.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/file-export-and-reporting/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/file-export-and-reporting/references/streaming-and-downloads.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/frontend-repo-architecture/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/frontend-repo-architecture/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/frontend-repo-architecture/references/api-layer-and-types.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/frontend-repo-architecture/references/divergences.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/frontend-repo-architecture/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/frontend-repo-architecture/references/structure-and-state.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/frontend-repo-architecture/references/testing-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/gcp-cloud-run-github-actions/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/gcp-cloud-run-github-actions/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/gcp-cloud-run-github-actions/references/cloud-run-deploy.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/gcp-cloud-run-github-actions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/gcp-cloud-run-github-actions/references/workflow-structure.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/gcs-file-storage-patterns/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/gcs-file-storage-patterns/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/gcs-file-storage-patterns/references/client-and-uploads.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/gcs-file-storage-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/gcs-file-storage-patterns/references/signed-urls-and-reads.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/grafana-dashboards-and-alerts/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/grafana-dashboards-and-alerts/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/grafana-dashboards-and-alerts/references/dashboard-json-and-templating.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/grafana-dashboards-and-alerts/references/provisioning-and-organization.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/grafana-dashboards-and-alerts/references/red-dashboard-skeleton.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/grafana-dashboards-and-alerts/references/red-metrics-queries.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/grafana-dashboards-and-alerts/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/grafana-dashboards-and-alerts/references/unified-alerting.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/graphql-patterns/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/graphql-patterns/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/graphql-patterns/references/apollo-client-frontend.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/graphql-patterns/references/apollo-client-setup.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/graphql-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/graphql-patterns/references/strawberry-backend.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/graphql-patterns/references/when-to-use-graphql.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/idea-refine/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/idea-refine/examples.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/idea-refine/frameworks.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/idea-refine/refinement-criteria.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/incident-postmortem/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/incremental-implementation/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/interview-me/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kafka-config-driven/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kafka-config-driven/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kafka-config-driven/references/config-and-sasl-kerberos.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kafka-config-driven/references/consumer-producer-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kafka-config-driven/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kafka-config-driven/references/troubleshooting-and-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kubectl-operations/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kubectl-operations/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kubectl-operations/references/command-reference.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kubectl-operations/references/context-namespace-rbac.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kubectl-operations/references/debugging-playbooks.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kubectl-operations/references/output-formats-and-selectors.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kubectl-operations/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kubernetes-workload-hardening/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kubernetes-workload-hardening/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kubernetes-workload-hardening/references/networkpolicy-and-rbac.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kubernetes-workload-hardening/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/kubernetes-workload-hardening/references/securitycontext-and-podsecurity.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/langfuse-llm-tracing/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/langfuse-llm-tracing/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/langfuse-llm-tracing/references/langfuse-client-and-tracing.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/langfuse-llm-tracing/references/python-and-typescript.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/langfuse-llm-tracing/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/library-review/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/load-testing/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/manual-test/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/modernization-and-migration/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/modernization-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/modernization-and-migration/references/migration-best-practices.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/modernization-and-migration/references/pydantic-v1-to-v2.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/modernization-and-migration/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/modernization-and-migration/references/shared-internal-library.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/modernization-and-migration/references/sqlalchemy-14-to-20.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/multi-tenancy-patterns/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/multi-tenancy-patterns/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/multi-tenancy-patterns/references/caching-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/multi-tenancy-patterns/references/isolation-strategies.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/multi-tenancy-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/multi-tenancy-patterns/references/tenant-resolution.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/node-express-service/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/node-express-service/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/node-express-service/references/app-factory-and-mode-dispatch.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/node-express-service/references/config-and-module-alias.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/node-express-service/references/middleware-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/node-express-service/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/node-objection-knex/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/node-objection-knex/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/node-objection-knex/references/migrations-and-validation.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/node-objection-knex/references/objection-model-and-knex.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/node-objection-knex/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/notifications-and-messaging/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/notifications-and-messaging/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/notifications-and-messaging/references/provider-abstraction.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/notifications-and-messaging/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/notifications-and-messaging/references/templates-and-fallback.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/observability-and-logging/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/observability-and-logging/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/observability-and-logging/references/health-and-readiness.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/observability-and-logging/references/logging-and-structlog.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/observability-and-logging/references/outbound-metrics-and-multi-mode.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/observability-and-logging/references/pii-redaction.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/observability-and-logging/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/observability-and-logging/references/tracing-and-metrics.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/otel-tracing/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/otel-tracing/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/otel-tracing/references/collector.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/otel-tracing/references/correlation.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/otel-tracing/references/gotchas.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/otel-tracing/references/instrumentation.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/otel-tracing/references/sampling.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/otel-tracing/references/tempo.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/over-engineering-review/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/performance-optimization/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/playwright-verification/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/pydantic-schema-patterns/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/pydantic-schema-patterns/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/pydantic-schema-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/pydantic-schema-patterns/references/settings-and-validation.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/pydantic-schema-patterns/references/troubleshooting-and-common-errors.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/pydantic-schema-patterns/references/v1-vs-v2.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/python-dao-and-database/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/python-dao-and-database/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/python-dao-and-database/references/advanced-query-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/python-dao-and-database/references/basedao-and-sessions.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/python-dao-and-database/references/mongodb-advanced.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/python-dao-and-database/references/other-db-mongodb.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/python-dao-and-database/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/python-dao-and-database/references/sqlalchemy-1x-vs-2x.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/radix-tailwind-component-patterns/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/radix-tailwind-component-patterns/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/radix-tailwind-component-patterns/references/radix-primitives-and-variants.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/radix-tailwind-component-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/radix-tailwind-component-patterns/references/tailwind-theme-and-cn.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/react-hook-form-zod-patterns/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/react-hook-form-zod-patterns/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/react-hook-form-zod-patterns/references/form-setup-and-zod.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/react-hook-form-zod-patterns/references/multi-step-and-modes.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/react-hook-form-zod-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/redis-caching-patterns/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/redis-caching-patterns/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/redis-caching-patterns/references/cache-manager-and-fallback.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/redis-caching-patterns/references/namespacing-and-invalidation.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/redis-caching-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/remember/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/safety-critical-patterns/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/scope/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/scope/scope-template.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/sdlc/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/security-and-hardening/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/security-and-hardening/references/input-validation-and-uploads.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/security-and-hardening/references/llm-guardrails.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/security-and-hardening/references/owasp-top10-prevention.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/security-and-hardening/references/supply-chain-and-dependencies.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/security-verification/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/shannon-ai-pentest/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/shannon-ai-pentest/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/shannon-ai-pentest/references/operating-guide.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/shell-review/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/shipping-and-launch/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/simplification-debt/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/smoke-test/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/source-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/spec-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/sprint/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/sprint/sprint-template.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/tanstack-react-query-patterns/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/tanstack-react-query-patterns/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/tanstack-react-query-patterns/references/mutations-and-cache.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/tanstack-react-query-patterns/references/query-keys-and-hooks.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/tanstack-react-query-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/task-tracker-sync/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-config-driven/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-config-driven/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-config-driven/references/config-and-retry-idempotency.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-config-driven/references/dag-dsl-interpreter.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-config-driven/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-config-driven/references/schedule-registration.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-config-driven/references/schedules-and-cron.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-config-driven/references/worker-workflow-activity-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-developer/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-developer/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-developer/references/cli.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-developer/references/determinism.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-developer/references/gotchas.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-developer/references/languages.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-developer/references/testing.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/temporal-developer/references/versioning.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/test-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/test-plan-review/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/testing-conventions/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/testing-conventions/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/testing-conventions/references/async-and-mocking.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/testing-conventions/references/coverage-gap-and-recommendations.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/testing-conventions/references/github-actions-test-orchestration.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/testing-conventions/references/pytest-and-fixtures.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/testing-conventions/references/pytest-asyncio-modes.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/testing-conventions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/testing-conventions/references/security-regression-tests.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/testing-conventions/references/vitest-frontend-testing.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/threat-model/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/triage/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/ui-ux-design/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/unit-test/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/using-agent-skills/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/vitest-rtl-msw-patterns/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/vitest-rtl-msw-patterns/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/vitest-rtl-msw-patterns/references/msw-and-contract-tests.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/vitest-rtl-msw-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/vitest-rtl-msw-patterns/references/vitest-rtl-setup.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/zap-vapt-scanning/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/zap-vapt-scanning/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/zap-vapt-scanning/references/operating-guide.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/zap-vapt-scanning/scripts/endpoints.example.txt +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/zap-vapt-scanning/scripts/requirements.txt +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/zap-vapt-scanning/scripts/zap_vapt.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/zustand-state-patterns/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/zustand-state-patterns/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/zustand-state-patterns/references/async-polling-and-persistence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/zustand-state-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/skills/zustand-state-patterns/references/store-structure-and-selectors.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/__main__.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/catalog.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/cli.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/detect.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/export.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/hooks.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/models.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/pipeline.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/prompts.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/render.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/report.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/scaffold.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/schemas.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/upgrader.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/src/claude_kit/validator.py +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/CLAUDE.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/CLAUDE.stack.md.tmpl +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/CONTINUITY.template.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/README.claude-sdlc.md.tmpl +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/agent-memory/MEMORY.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/agent-memory/api/.gitkeep +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/agent-memory/architecture/.gitkeep +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/agent-memory/debugging/.gitkeep +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/agent-memory/patterns/.gitkeep +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/agent-memory/performance/.gitkeep +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/artifacts/adr.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/artifacts/api-change-report.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/artifacts/change-proposal.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/artifacts/feature-spec.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/artifacts/release-plan.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/artifacts/runbook.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/artifacts/security-review.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/artifacts/test-plan.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/export/sdlc-workflow-guide.md.tmpl +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/agents/data-workflow-agent.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/agents/founder-prototype-agent.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/agents/internal-tools-builder.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/agents/pm-copilot.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/agents/staff-pm-reviewer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/agents/support-ticket-engineer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/devops-and-release/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/engineering-core/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/product-to-code/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/quality-and-review/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/security-and-compliance/README.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/rules/ai-working-agreement.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/rules/ambiguity-resolution.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/rules/compliance-policy.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/rules/pii-policy.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/rules/production-data-policy.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/rules/prototype-boundaries.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/rules/secrets-policy.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/skills/review-scope/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/skills/review-sprint/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/skills/review-sprint-plan/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/org/skills/review-ux-flow/SKILL.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/scripts/sdlc-loop.sh +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/settings.json +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/backend/go/net-http/rules/go-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/frontend/react/rules/design-system-compliance.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/frontend/react/rules/mobile-design-guidelines.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/frontend/react/rules/react-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/frontend/react/rules/ui-components.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/frontend/react/rules/ui-design-system.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/frontend/react/rules/ui-layout-and-motion.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.0}/templates/stacks/frontend/react/rules/ux-dashboard-patterns.md +0 -0
- {claude_code_kit-0.60.0 → claude_code_kit-0.61.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.61.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.61.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,75 @@ 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.61.0] — 2026-07-15
|
|
8
|
+
|
|
9
|
+
**OSS-adoption wave 2 — nine more items from the 1,345-repo scan backlog** (wave 1 = 0.60.0 below).
|
|
10
|
+
Same discipline: everything re-derived as stack-agnostic prose/data; nothing vendored.
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`agent-guardrails` hardening pass** (completes the three guardrails items begun in 0.60.0):
|
|
15
|
+
the unfamiliar-CLI protocol (`--help` on the *exact leaf command* before first use — validation
|
|
16
|
+
is not transitive from parent groups; single-item schema discovery before unconstrained list
|
|
17
|
+
queries), cloud control-plane categories added to the §3 Block tier (IAM/role-binding, billing,
|
|
18
|
+
org governance, KMS-class key ops, enabling paid APIs, autonomous IaC apply — dry-run/preview
|
|
19
|
+
mandatory where offered), and a graceful-degradation token ladder in the §4 resource bounds
|
|
20
|
+
(warn fraction → wrap-up, hard-stop fraction → final answer, ceiling coupled to compaction).
|
|
21
|
+
- **Evals upgrade** (`rules/evals.md` §9–10 + `docs/eval-harness.md`): evals as one versioned
|
|
22
|
+
declarative config gated in CI (path filters, parsed JSON/JUnit pass-rate, prompt-set-hash
|
|
23
|
+
response cache, SHA + run-id lineage); colocate a skill's evals beside its `SKILL.md` with
|
|
24
|
+
with/without-skill A/B judged on the skill's own claims. The harness doc gains the
|
|
25
|
+
skill-activation eval (trigger F1 + Wilson/Clopper-Pearson/bootstrap certification — the
|
|
26
|
+
routing-layer failure mode neither arm measured), the falsifiability discipline (assertions must
|
|
27
|
+
fail in baseline; Signal/Baseline/Unreachable/Regression quadrants; labeled delta bands;
|
|
28
|
+
path-scoped isolation caveat), and fixed-overhead accounting (always-injected prose is a
|
|
29
|
+
per-turn flat tax; billing A/B is the only honest end-to-end number).
|
|
30
|
+
- **Pre-run budget declarations**: `goal-setting-and-monitoring` §4 budgets the run from its
|
|
31
|
+
orchestration shape (>2× single-agent needs written justification; estimate-vs-actual recorded;
|
|
32
|
+
on-exceed action declared up front) and `wave-orchestration`'s manifest extends
|
|
33
|
+
announce-the-spend to a full per-wave envelope (hard spawn cap, per-worker max turns, wall-clock
|
|
34
|
+
timeout, token ceiling) declared as data.
|
|
35
|
+
- **Org governance**: `autonomy-levels` precedence — repo/user overrides may only **tighten**
|
|
36
|
+
(autonomy = min, allow = intersect, deny = union); `docs/org-capabilities.md` gains the **bypass
|
|
37
|
+
contract** — every legitimate bypass surface named in one table with its guardrail
|
|
38
|
+
(`upgrade --force`, sidecar take-ownership, breakglass, `bypassPermissions` + its org disable).
|
|
39
|
+
- **Evidence-based `warn-missing-tests` hook**: convention-named test-file search (same dir +
|
|
40
|
+
`tests//test//__tests__` walking up) silences the old blanket nag when a test exists; specific
|
|
41
|
+
messages otherwise ("no test file for X" vs "no RED test recorded — write it first" via
|
|
42
|
+
`.pytest_cache`); curated skip list for generated/infra trees. Still advisory; still no-ops
|
|
43
|
+
without `jq`.
|
|
44
|
+
- **`/claude-kit:init` self-install loop**: a missing CLI now offers "Install claude-code-kit now
|
|
45
|
+
(Recommended)" (pipx, else pip) with re-detection before proceeding; skip/failure/no-installer
|
|
46
|
+
keep the stop-with-instructions behavior.
|
|
47
|
+
- **Doc-skill upgrades**: `refresh-docs` diffs the documented surface against the code surface and
|
|
48
|
+
classifies each divergence (`missing_in_docs` / `missing_in_code` / `signature_mismatch` /
|
|
49
|
+
`description_mismatch`, severity-guided); `documentation-and-adrs` gains the derived-artifact
|
|
50
|
+
discipline (edit the structured source, regenerate the deliverable, label source-vs-derived,
|
|
51
|
+
drift-check in CI).
|
|
52
|
+
- **Design intent capture** (`frontend-ui-engineering`): one concrete world-reference over
|
|
53
|
+
adjective lists; short intentional Do's/Don'ts; tokens are context serving the reference, not
|
|
54
|
+
rendering instructions.
|
|
55
|
+
- **Directory-review self-audit** (`docs/launch/directory-submission.md`): the reviewer's pass/fail
|
|
56
|
+
criteria plus the audit run against the kit's own registry — all 21 hooks tabulated (event,
|
|
57
|
+
gated/advisory, network, plugin-vs-starter); finding: zero direct network calls, one disclosed
|
|
58
|
+
indirect family (learning capture's background `claude` job, opt-out
|
|
59
|
+
`CLAUDE_KIT_NO_AUTOCAPTURE=1`).
|
|
60
|
+
|
|
61
|
+
### Fixed
|
|
62
|
+
|
|
63
|
+
- `refresh-docs` shipped another project's literal doc paths and a nonexistent `frontend-dev`
|
|
64
|
+
agent name in its examples — now marked as example shapes / corrected to general-purpose
|
|
65
|
+
subagents.
|
|
66
|
+
|
|
67
|
+
### Not adopted (deliberately)
|
|
68
|
+
|
|
69
|
+
- **The two L-sized scan items** — the `context-engineering` consolidation (8 merged proposals)
|
|
70
|
+
and the `tool-design` expansion (7 merged proposals) — are deferred to their own focused wave:
|
|
71
|
+
they overlap each other on the same two files and deserve a single coherent editing pass, not a
|
|
72
|
+
tail-end squeeze.
|
|
73
|
+
- **The 10 user-gated items** remain gated (list in the 0.60.0 block below) — unchanged, awaiting
|
|
74
|
+
owner decisions.
|
|
75
|
+
|
|
7
76
|
## [0.60.0] — 2026-07-15
|
|
8
77
|
|
|
9
78
|
**OSS-adoption wave 1 — the first tranche from a 1,345-repo scan.** 39 provenance-tagged GitHub
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-code-kit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.61.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
|
|
@@ -17,9 +17,19 @@ command -v claude-kit >/dev/null 2>&1 && echo "CKIT_CLI=claude-kit" \
|
|
|
17
17
|
|| echo "CKIT_CLI_MISSING"; }; }
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
**If the output is `CKIT_CLI_MISSING`,
|
|
21
|
-
under any of its names.
|
|
22
|
-
|
|
20
|
+
**If the output is `CKIT_CLI_MISSING`, offer to install it — never scaffold without it.** The CLI
|
|
21
|
+
is not installed under any of its names. When an installer is available on PATH (`pipx`, else
|
|
22
|
+
`pip`/`pip3`), ask ONE AskUserQuestion with the install option first:
|
|
23
|
+
|
|
24
|
+
- **"Install claude-code-kit now (Recommended)"** — on accept, run `pipx install claude-code-kit`
|
|
25
|
+
(fall back to `pip install claude-code-kit` when pipx is absent), then **re-run the detection
|
|
26
|
+
block above** and proceed only if a CLI name now resolves.
|
|
27
|
+
- **"Skip"** — or if the install fails, or no installer is on PATH: STOP — do not scaffold
|
|
28
|
+
anything. Tell the user the CLI is required, show both install commands below, and have them
|
|
29
|
+
re-run `/claude-kit:init`. Do not silently fall back to a partial install.
|
|
30
|
+
|
|
31
|
+
Never ask when the CLI is already present, and never ask when no installer exists on PATH (nothing
|
|
32
|
+
to offer — go straight to the stop-with-instructions):
|
|
23
33
|
|
|
24
34
|
- Recommended: `pipx install claude-code-kit`
|
|
25
35
|
- Or: `pip install claude-code-kit`
|
|
@@ -48,6 +48,50 @@ class Y, Z% of the time."
|
|
|
48
48
|
> The pipeline costs more per task by design (more agents, more gates). The question this harness
|
|
49
49
|
> answers is whether the **defects caught** (and their severity) justify that delta **for your task mix**.
|
|
50
50
|
|
|
51
|
+
## Skill-activation eval (the routing layer)
|
|
52
|
+
|
|
53
|
+
The arms above grade what happens *after* a skill or rule fires. A separate failure mode sits in
|
|
54
|
+
front of both: does the skill **activate when it should — and stay quiet when it shouldn't**?
|
|
55
|
+
Neither arm measures routing; add it as its own small suite.
|
|
56
|
+
|
|
57
|
+
- **Trigger F1.** Build two prompt lists per skill: *should-activate* (phrasings a real user would
|
|
58
|
+
use) and *should-not-activate* (near-misses from neighboring domains). Run both, score activation
|
|
59
|
+
as binary, report **precision / recall / F1**. A skill with great content and 40% recall is a
|
|
60
|
+
great document nobody reads; one that fires on near-misses taxes every unrelated task.
|
|
61
|
+
- **Monte Carlo certification for any number you publish.** Activation is stochastic — run each list
|
|
62
|
+
repeatedly and report the **Wilson confidence interval** on the activation rate, a
|
|
63
|
+
**Clopper-Pearson bound** on the should-activate failure rate (the conservative "at worst" claim),
|
|
64
|
+
and a **bootstrap consistency** check across resamples. "Activates 19/20, 95% CI [86%, 99%]" is a
|
|
65
|
+
claim; "it seems to trigger" is not.
|
|
66
|
+
|
|
67
|
+
## Falsifiability discipline (before you trust any delta)
|
|
68
|
+
|
|
69
|
+
- **The falsifiability gate.** Every assertion must **fail in the baseline arm** at least sometimes —
|
|
70
|
+
an assertion that passes in both arms measures the model, not the pipeline, and supports no claim.
|
|
71
|
+
Drop it or sharpen it.
|
|
72
|
+
- **Quadrant-classify each row before averaging anything:** **Signal** (fails A, passes B — the
|
|
73
|
+
pipeline earned it) · **Baseline** (passes both — too easy, doesn't count) · **Unreachable**
|
|
74
|
+
(fails both — can't discriminate at this model tier) · **Regression** (passes A, fails B — the
|
|
75
|
+
pipeline *hurt*; investigate before shipping). Only Signal rows support a value claim; every
|
|
76
|
+
Regression row is a finding in its own right.
|
|
77
|
+
- **Label delta bands.** Report deltas with a qualitative band (noise / weak / strong at your N)
|
|
78
|
+
rather than celebrating a 3% move the confidence interval can't distinguish from zero.
|
|
79
|
+
- **Path-scoped isolation caveat.** If a rule/overlay is path-scoped (loads only when matching files
|
|
80
|
+
are touched), confirm both arms actually touch those paths — otherwise the comparison silently
|
|
81
|
+
measures *activation*, not content.
|
|
82
|
+
|
|
83
|
+
## Fixed-overhead accounting
|
|
84
|
+
|
|
85
|
+
Always-injected prose is a **flat tax on every turn**, paid whether or not the content helps that
|
|
86
|
+
turn (measure your own install — see `docs/rules-context-budget.md`; even a single always-on rule
|
|
87
|
+
file costs on the order of 1–1.5k tokens per turn, and a full rule set far more). So the eval
|
|
88
|
+
question is not "does the pipeline help" but "does the help **beat the tax** for your task mix":
|
|
89
|
+
|
|
90
|
+
- Put the per-turn injected overhead in the Cost table, not only per-task totals.
|
|
91
|
+
- The only honest end-to-end number is a **billing A/B** — the same task mix with and without,
|
|
92
|
+
compared on what you were actually charged. Token figures extrapolated from a single run are
|
|
93
|
+
estimates: label them **est.**
|
|
94
|
+
|
|
51
95
|
## Honesty rules
|
|
52
96
|
|
|
53
97
|
- **Never publish numbers you did not run.** A "90%" from one run and from twenty runs are not the same
|
|
@@ -68,10 +68,64 @@ Before submitting, **re-check the live documentation** at the URLs below. Plugin
|
|
|
68
68
|
- Plugin marketplaces: [code.claude.com/docs/en/plugin-marketplaces](https://code.claude.com/docs/en/plugin-marketplaces)
|
|
69
69
|
- Plugin reference: [code.claude.com/docs/en/plugins-reference](https://code.claude.com/docs/en/plugins-reference)
|
|
70
70
|
|
|
71
|
+
## Directory Review Self-Audit
|
|
72
|
+
|
|
73
|
+
Directory reviewers apply pass/fail criteria a submitter can run against themselves first. Three
|
|
74
|
+
that decide outcomes:
|
|
75
|
+
|
|
76
|
+
1. **Description-matches-behavior (the surprise test).** For every hook, command, and skill: would
|
|
77
|
+
a user who read only its description be *surprised* by anything it actually does? Any surprise
|
|
78
|
+
is a fix-before-submitting.
|
|
79
|
+
2. **Undisclosed outbound calls = automatic fail.** Every network touch (direct or via a spawned
|
|
80
|
+
tool) must be disclosed in the component's description *and* have an opt-out.
|
|
81
|
+
3. **The whole shipped payload is in scope — including directories the plugin doesn't load.**
|
|
82
|
+
A git-source install clones everything (`scripts/`, `templates/`, `catalog/`, `examples/`), so
|
|
83
|
+
the audit covers the full tree, not just auto-discovered components.
|
|
84
|
+
|
|
85
|
+
### First-party hook audit (run against this kit's own registry)
|
|
86
|
+
|
|
87
|
+
All hooks in the shipped registry, in the reviewer's format — `EVENT:hook — gated|advisory —
|
|
88
|
+
network`. **gated** = can block the action (exit 2 / deny); **advisory** = warn-or-context only,
|
|
89
|
+
always exits 0. Every script degrades to a no-op without `jq`. Regenerate this table when the
|
|
90
|
+
registry changes (`src/claude_kit/hooks.py` is the source of truth; `gen_hooks.py --check` pins the
|
|
91
|
+
generated configs).
|
|
92
|
+
|
|
93
|
+
| Hook | Event | Mode | Network | In plugin hooks.json |
|
|
94
|
+
|------|-------|------|---------|----------------------|
|
|
95
|
+
| load-continuity | SessionStart | advisory | no | yes |
|
|
96
|
+
| load-learnings | SessionStart | advisory | no | yes |
|
|
97
|
+
| load-autonomy | SessionStart | advisory | no | yes |
|
|
98
|
+
| capture-learnings-catchup | SessionStart | advisory | **indirect** — spawns a background `claude` job (model API); disclosed, opt-out `CLAUDE_KIT_NO_AUTOCAPTURE=1` | yes |
|
|
99
|
+
| guard-rm-rf | PreToolUse | **gated** (inline) | no | yes |
|
|
100
|
+
| guard-push-main | PreToolUse | **gated** | no | yes |
|
|
101
|
+
| guard-destructive-git | PreToolUse | **gated** | no | yes |
|
|
102
|
+
| protect-secrets | PreToolUse | **gated** (inline) | no | yes |
|
|
103
|
+
| guard-commit-secrets | PreToolUse | **gated** | no | yes |
|
|
104
|
+
| validate-settings | PreToolUse | **gated** | no | yes |
|
|
105
|
+
| warn-shared-modules | PreToolUse | advisory | no | yes |
|
|
106
|
+
| warn-llm-io | PreToolUse | advisory | no | yes |
|
|
107
|
+
| warn-sensitive-files | PreToolUse | advisory | no | yes |
|
|
108
|
+
| warn-large-edits | PreToolUse | advisory | no | starter only |
|
|
109
|
+
| validate-frontmatter | PreToolUse | advisory | no | starter only |
|
|
110
|
+
| warn-missing-tests | PostToolUse | advisory | no | starter only |
|
|
111
|
+
| audit-log | PostToolUse | advisory | no | starter only |
|
|
112
|
+
| lint-fix | Stop | advisory (runs the project's linter) | no | yes |
|
|
113
|
+
| type-check | Stop | advisory (runs the project's type-checker) | no | yes |
|
|
114
|
+
| capture-learnings-stop | Stop | advisory | indirect — same `claude` job + opt-out as above | starter only |
|
|
115
|
+
| capture-learnings | SessionEnd | advisory | indirect — same `claude` job + opt-out as above | yes |
|
|
116
|
+
|
|
117
|
+
**Audit result:** 21 registry hooks (16 ride the plugin's `hooks.json`; the rest install via the
|
|
118
|
+
scaffolded starter `settings.json`). One behavior family touches the network, *indirectly*, via a
|
|
119
|
+
spawned `claude` background job (learning capture) — disclosed in the init interview, surfaced by
|
|
120
|
+
`doctor`, and opt-out via `CLAUDE_KIT_NO_AUTOCAPTURE=1`. No hook makes a direct outbound call. All
|
|
121
|
+
gated hooks are deterministic string/path guards with no data egress. This passes criteria 1–3
|
|
122
|
+
above as of the audit date; re-run after any hook change.
|
|
123
|
+
|
|
71
124
|
## Owner Submission Checklist
|
|
72
125
|
|
|
73
126
|
- [ ] Run `claude plugin validate .` and `claude plugin validate . --strict`
|
|
74
127
|
- [ ] Fix any validation errors (warnings are optional)
|
|
128
|
+
- [ ] Re-run the Directory Review Self-Audit above (hook table current, no undisclosed network, no description surprises)
|
|
75
129
|
- [ ] Verify the live submission form and documentation links above
|
|
76
130
|
- [ ] Consider the optional manifest hygiene items (not required)
|
|
77
131
|
- [ ] Choose submission path: solo (platform.claude.com) or organization (claude.ai)
|
|
@@ -189,6 +189,23 @@ via `/deprecation-and-migration`; have security/DevOps approve hooks and sensiti
|
|
|
189
189
|
and roll out repo-by-repo with `claude-kit diff` → `claude-kit upgrade`; run different autonomy levels
|
|
190
190
|
per repo; capture recurring prompts (→ skills) and mistakes (→ rules) via the `remember` skill.
|
|
191
191
|
|
|
192
|
+
### Precedence & the bypass contract
|
|
193
|
+
|
|
194
|
+
**Overrides only tighten.** Repo- and user-level settings may lower autonomy, add gates/denies, or
|
|
195
|
+
escalate a warn to a block — never the reverse (allow = intersect, deny = union, autonomy =
|
|
196
|
+
min(org, repo)); see `.claude/rules/autonomy-levels.md` "Precedence". The corollary is that every
|
|
197
|
+
*legitimate* way around the policy must be **named**, so none is discoverable-only. The kit's real
|
|
198
|
+
bypass surfaces are exactly these:
|
|
199
|
+
|
|
200
|
+
| Bypass surface | What it bypasses | Guardrail around it |
|
|
201
|
+
|----------------|------------------|---------------------|
|
|
202
|
+
| `claude-kit upgrade --force` | edit-preserving upgrade (overwrites drifted kit files) | drifted originals are backed up as sidecars; diff first |
|
|
203
|
+
| Sidecar take-ownership (keep your edit, discard the kit's `.claude-kit` sidecar) | kit ownership of a file | the manifest marks it user-owned from then on — upgrades stop touching it |
|
|
204
|
+
| Breakglass (emergency human override) | a gate or block during an incident | scoped + logged per `.claude/rules/human-in-the-loop.md`; reviewed afterwards |
|
|
205
|
+
| `bypassPermissions` mode | Claude Code's permission prompts | org-side `disableBypassPermissionsMode` can remove it entirely |
|
|
206
|
+
|
|
207
|
+
Anything not on this list that circumvents policy is a finding, not a feature.
|
|
208
|
+
|
|
192
209
|
### Planned
|
|
193
210
|
|
|
194
211
|
`claude-sdlc package-org-pack` / `install-org-pack` are registered as **planned** stubs — they will
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# PostToolUse(Edit|Write): after a source-code change, check for EVIDENCE of tests before nudging.
|
|
3
|
+
# Evidence-based, not a blanket reminder: looks for a sibling/convention-named test file
|
|
4
|
+
# (test_<stem>.py, <stem>_test.py, <stem>.test|spec.<ext>, <stem>_test.go, <stem>Test(s).cs, ...)
|
|
5
|
+
# in the same dir and in tests//test//__tests__ dirs walking up from the file; if a test file
|
|
6
|
+
# exists, checks .pytest_cache/v/cache/lastfailed for a recorded RED test for the module (Python).
|
|
7
|
+
# Emits a SPECIFIC message only when evidence is absent; stays quiet when a test file exists.
|
|
8
|
+
# Advisory only (always exits 0). Quiet for test files, docs, config, generated/infra trees, and
|
|
9
|
+
# the .claude/ config itself. Degrades to a no-op without jq.
|
|
10
|
+
# The reminder returns as hookSpecificOutput.additionalContext JSON on stdout (Claude reads it next
|
|
11
|
+
# to the tool result, per the current hooks reference) -- exit-0 stderr is debug-log-only.
|
|
12
|
+
command -v jq >/dev/null 2>&1 || exit 0
|
|
13
|
+
INPUT="$(cat)"
|
|
14
|
+
FILE_PATH="$(echo "$INPUT" | jq -r '.tool_input.file_path // .tool_response.filePath // empty' 2>/dev/null || true)"
|
|
15
|
+
[ -z "$FILE_PATH" ] || [ "$FILE_PATH" = "null" ] && exit 0
|
|
16
|
+
|
|
17
|
+
low="$(printf '%s' "$FILE_PATH" | tr '[:upper:]' '[:lower:]')"
|
|
18
|
+
|
|
19
|
+
# Skip non-source: tests, docs, config, markdown, and the kit's own config.
|
|
20
|
+
case "$low" in
|
|
21
|
+
*test*|*spec*|*.md|*.markdown|*.json|*.ya?ml|*.toml|*.ini|*.cfg|*.txt|*.lock|*/.claude/*)
|
|
22
|
+
exit 0 ;;
|
|
23
|
+
esac
|
|
24
|
+
|
|
25
|
+
# Curated skip list: trees that legitimately ship without sibling tests (generated, infra, vendored).
|
|
26
|
+
case "$low" in
|
|
27
|
+
*/migrations/*|*/alembic/*|*/terraform/*|*/generated/*|*/proto/*|*/infra/*|*/dist/*|*/build/*|*/node_modules/*|*/vendor/*|*/.venv/*)
|
|
28
|
+
exit 0 ;;
|
|
29
|
+
esac
|
|
30
|
+
|
|
31
|
+
# Only check recognisable source files.
|
|
32
|
+
case "$low" in
|
|
33
|
+
*.py|*.ts|*.tsx|*.js|*.jsx|*.go|*.rs|*.rb|*.java|*.kt|*.cs|*.php|*.swift|*.scala|*.c|*.cc|*.cpp|*.h|*.hpp) : ;;
|
|
34
|
+
*) exit 0 ;;
|
|
35
|
+
esac
|
|
36
|
+
|
|
37
|
+
base="$(basename "$FILE_PATH")"
|
|
38
|
+
dir="$(dirname "$FILE_PATH")"
|
|
39
|
+
stem="${base%.*}"
|
|
40
|
+
ext="${base##*.}"
|
|
41
|
+
|
|
42
|
+
# Test-file name candidates per ecosystem convention.
|
|
43
|
+
cands=()
|
|
44
|
+
case "$ext" in
|
|
45
|
+
py) cands=("test_${stem}.py" "${stem}_test.py") ;;
|
|
46
|
+
go) cands=("${stem}_test.go") ;;
|
|
47
|
+
cs) cands=("${stem}Tests.cs" "${stem}Test.cs") ;;
|
|
48
|
+
rb) cands=("${stem}_spec.rb" "${stem}_test.rb") ;;
|
|
49
|
+
ts|tsx|js|jsx) cands=("${stem}.test.${ext}" "${stem}.spec.${ext}") ;;
|
|
50
|
+
*) cands=("test_${stem}.${ext}" "${stem}_test.${ext}" "${stem}.test.${ext}" "${stem}.spec.${ext}") ;;
|
|
51
|
+
esac
|
|
52
|
+
|
|
53
|
+
# Evidence search: sibling in the same dir, then tests//test//__tests__ dirs walking up (bounded).
|
|
54
|
+
found=""
|
|
55
|
+
for cand in "${cands[@]}"; do
|
|
56
|
+
[ -f "$dir/$cand" ] && { found=1; break; }
|
|
57
|
+
done
|
|
58
|
+
if [ -z "$found" ]; then
|
|
59
|
+
d="$dir"
|
|
60
|
+
for _ in 1 2 3 4 5 6; do
|
|
61
|
+
for td in tests test __tests__; do
|
|
62
|
+
[ -d "$d/$td" ] || continue
|
|
63
|
+
for cand in "${cands[@]}"; do
|
|
64
|
+
if find "$d/$td" -maxdepth 4 -name "$cand" -print -quit 2>/dev/null | grep -q .; then
|
|
65
|
+
found=1
|
|
66
|
+
break 3
|
|
67
|
+
fi
|
|
68
|
+
done
|
|
69
|
+
done
|
|
70
|
+
parent="$(dirname "$d")"
|
|
71
|
+
[ "$parent" = "$d" ] && break
|
|
72
|
+
d="$parent"
|
|
73
|
+
done
|
|
74
|
+
fi
|
|
75
|
+
|
|
76
|
+
W=""
|
|
77
|
+
if [ -z "$found" ]; then
|
|
78
|
+
W="REMINDER: no test file found for $FILE_PATH (searched sibling + tests//test//__tests__ conventions: ${cands[*]}) -- create one before marking work complete (.claude/rules/testing.md)."
|
|
79
|
+
elif [ "$ext" = "py" ] && [ -f ".pytest_cache/v/cache/lastfailed" ]; then
|
|
80
|
+
# A test file exists; for Python, check whether a RED test was ever recorded for this module.
|
|
81
|
+
if ! jq -r 'keys[]' .pytest_cache/v/cache/lastfailed 2>/dev/null | grep -q "$stem"; then
|
|
82
|
+
W="NOTE: tests exist for $stem but no failing test was recorded for it -- if this change adds behavior, write the RED test first (.claude/rules/testing.md)."
|
|
83
|
+
fi
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
if [ -n "$W" ]; then
|
|
87
|
+
# stdout must be ONLY the JSON object for Claude Code to process it.
|
|
88
|
+
jq -n --arg ctx "$W" '{hookSpecificOutput: {hookEventName: "PostToolUse", additionalContext: $ctx}}'
|
|
89
|
+
fi
|
|
90
|
+
exit 0
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "claude-code-kit"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.61.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"
|
|
@@ -72,6 +72,13 @@ Before declaring a stage done or handing to the next agent/human:
|
|
|
72
72
|
filesystem or data guarantee; and any client-side flag is **secondary to the real authorization
|
|
73
73
|
boundary** — the backend's IAM/role grants are what actually limit blast radius, so scope those
|
|
74
74
|
first and treat the flag as a second layer, never the first.
|
|
75
|
+
- **Unfamiliar-CLI protocol — validate the leaf, then discover the schema.** Before first use of a
|
|
76
|
+
CLI subcommand you haven't run in this project, read `--help` on the **exact leaf command** you are
|
|
77
|
+
about to invoke — validation is not transitive from a parent group (`tool db --help` tells you
|
|
78
|
+
nothing about `tool db restore`'s destructive flags). And before any unconstrained list/query
|
|
79
|
+
call, do **single-item schema discovery** first (`--limit 1` + machine-readable output), then
|
|
80
|
+
re-query projected to only the fields you need — you learn the response shape without flooding
|
|
81
|
+
your context or hammering the backend.
|
|
75
82
|
- **Destructive or outward-facing actions are gated.** Deleting/overwriting files you didn't create,
|
|
76
83
|
force-pushing, deploying, publishing, or sending data to an external service are **human decision
|
|
77
84
|
points** — see `.claude/rules/human-in-the-loop.md`. Confirm first.
|
|
@@ -86,7 +93,11 @@ and act on it — do not improvise a destructive step because it seems convenien
|
|
|
86
93
|
- **Block — never autonomously.** Force-push, rewriting already-published history, deleting a branch
|
|
87
94
|
or tag, a destructive schema change against live data (`DROP` / `TRUNCATE` / column drop / a
|
|
88
95
|
narrowing or `NOT NULL` on existing rows), bulk or recursive deletion, or disabling a safety
|
|
89
|
-
control.
|
|
96
|
+
control. In cloud control planes the same tier covers: **IAM / role-binding changes, billing
|
|
97
|
+
changes, org-level governance edits, KMS-class key operations** (schedule-delete, disable,
|
|
98
|
+
rotation changes), **enabling paid APIs/services, and an autonomous IaC apply** — where the tool
|
|
99
|
+
offers a dry-run/preview/plan mode, running it is mandatory and its output goes to the human with
|
|
100
|
+
the request. These need explicit human authorization first — the **restricted** tier of
|
|
90
101
|
`.claude/rules/risk-classification.md`. Several are also stopped deterministically by
|
|
91
102
|
`hooks/scripts/guard-destructive-git.sh` and the `rm -rf` / push-to-main guards.
|
|
92
103
|
- **Confirm — pause and get a yes.** Deleting or overwriting a file you did not create, applying a
|
|
@@ -126,7 +137,11 @@ agent on a broken foundation.* Before worrying about prompt injection, enforce t
|
|
|
126
137
|
default (never "the whole disk, minus a deny-list").
|
|
127
138
|
- **Network** — deny outbound by default; allowlist only the hosts the task genuinely needs.
|
|
128
139
|
- **Resource bounds** — wall-clock timeout plus memory/output caps, so a runaway or adversarial step
|
|
129
|
-
fails *closed* instead of hanging or flooding.
|
|
140
|
+
fails *closed* instead of hanging or flooding. For token budgets, degrade **gracefully** rather
|
|
141
|
+
than cliff-stopping: a warn fraction (~80%) injects a wrap-up signal (finish the current step,
|
|
142
|
+
persist state), a hard-stop fraction forces a final answer from what is in hand, and the ceiling
|
|
143
|
+
is set with compaction in mind — when compaction is active the ceiling bounds a *window*, not
|
|
144
|
+
the run, so couple the two deliberately.
|
|
130
145
|
- **Versioned & runtime-updatable** — keep the policy as data you can tighten mid-run (ties to §5's
|
|
131
146
|
revocable authz) and review afterward, not constants baked into the agent.
|
|
132
147
|
|
|
@@ -13,6 +13,16 @@ deterministic parts are enforced by hooks and `settings.permissions`, the rest i
|
|
|
13
13
|
| **autonomous-pr** | create branches + PR-ready changes | **merge** — human review is required before merge |
|
|
14
14
|
| **enterprise-controlled** | work only through strict gates with an audit trail | edit sensitive files without approval; complete without the security + review agents passing |
|
|
15
15
|
|
|
16
|
+
## Precedence — overrides may only tighten
|
|
17
|
+
|
|
18
|
+
When org policy and a repo- or user-level setting disagree, the resolution is always the **stricter**
|
|
19
|
+
of the two: effective autonomy = **min(org, repo)**; allow-lists **intersect**; deny-lists **union**;
|
|
20
|
+
a warn may be escalated to a block locally, but a block is never downgraded to a warn. A repo can
|
|
21
|
+
run *more* cautiously than its org demands, never less — there is no repo-level "loosen" switch.
|
|
22
|
+
Legitimate exceptions go through the named bypass surfaces (the "Bypass contract" in
|
|
23
|
+
`docs/org-capabilities.md` of the claude-kit repo), which are explicit and auditable — not a quiet
|
|
24
|
+
config override.
|
|
25
|
+
|
|
16
26
|
## Rules
|
|
17
27
|
|
|
18
28
|
- **Never exceed the active level.** If a task needs more autonomy than granted, stop and ask — do not
|
|
@@ -142,6 +142,38 @@ A single-turn eval will not catch this; claude-kit's own agents run over long mu
|
|
|
142
142
|
> [`microsoft/lost_in_conversation`](https://github.com/microsoft/lost_in_conversation). Re-derived in
|
|
143
143
|
> prose; not vendored.
|
|
144
144
|
|
|
145
|
+
## 9. Evals as versioned, declarative config — gated in CI
|
|
146
|
+
|
|
147
|
+
Keep the eval suite as **one declarative config file in the repo** — cases × graders × pass
|
|
148
|
+
thresholds together (the shape popularized by promptfoo-style runners; any runner with those three
|
|
149
|
+
parts qualifies). Config-as-data is what makes the Rules below enforceable: the eval diff rides in
|
|
150
|
+
the same PR as the behavior change, and CI — not memory — runs it.
|
|
151
|
+
|
|
152
|
+
- **Trigger on behavior-changing paths.** Path-filter the CI job to the files that change model
|
|
153
|
+
behavior (prompts, rules, skills, agent definitions, model/tier config) so the suite runs when it
|
|
154
|
+
must and stays out of unrelated PRs.
|
|
155
|
+
- **Gate on parsed results, not exit codes alone.** Emit machine-readable output (JSON / JUnit),
|
|
156
|
+
parse the pass rate, and fail the job against the declared threshold — that is what turns the eval
|
|
157
|
+
into a *gate* (§6) instead of a log line.
|
|
158
|
+
- **Cache responses keyed on the prompt-set hash.** Reruns whose inputs didn't change replay from
|
|
159
|
+
cache — CI stays fast and cheap, and a score delta isolates the change you actually made.
|
|
160
|
+
- **Record lineage.** Stamp every run with the git SHA and a run id, so any score is traceable to
|
|
161
|
+
the exact config + code that produced it.
|
|
162
|
+
|
|
163
|
+
## 10. Colocate a skill's evals with the skill
|
|
164
|
+
|
|
165
|
+
A skill's eval lives **beside the skill** — an `evals/evals.json` next to its `SKILL.md` declaring
|
|
166
|
+
the cases (the emerging agent-skills colocation convention) — not in a central suite it will drift
|
|
167
|
+
from. Two properties matter more than the file layout:
|
|
168
|
+
|
|
169
|
+
- **A/B against the skill's absence.** Each case runs *with* and *without* the skill and is judged
|
|
170
|
+
on assertions the skill's own prose claims (cited criteria, not vibes). A skill that does not
|
|
171
|
+
measurably beat its absence on its own claims is context cost with no return — the same
|
|
172
|
+
with/without method as the kit-level harness (`docs/eval-harness.md` in the claude-kit repo),
|
|
173
|
+
applied per skill.
|
|
174
|
+
- **Runners are referenced, not bundled.** Ready runners exist for exactly this layout (e.g.
|
|
175
|
+
`agent-skills-eval`); any tool that executes colocated cases with/without the skill qualifies.
|
|
176
|
+
|
|
145
177
|
## Rules
|
|
146
178
|
|
|
147
179
|
1. **No prompt/rule/tool/model change ships without an eval run** that covers the affected behavior.
|
|
@@ -80,6 +80,15 @@ This turns "I think the run is progressing" into a measured session you can grad
|
|
|
80
80
|
(`.claude/rules/evals.md`) and trend. (This is *agent-run* telemetry; **app and LLM** observability
|
|
81
81
|
live in the `observability-and-logging`, `otel-tracing`, and `langfuse-llm-tracing` skills.)
|
|
82
82
|
|
|
83
|
+
**Budget the run before you launch it.** Spend is a criterion too — declare it up front like any
|
|
84
|
+
other goal, derived from the orchestration shape: single agent ≈ 1×, maker-checker ≈ 2×,
|
|
85
|
+
parallel-N ≈ N+1× (workers + a merge pass), debate-R ≈ 1+R×. Anything over ~2× the single-agent
|
|
86
|
+
baseline needs a written justification before tokens go out, not an apology after. Record
|
|
87
|
+
**estimate vs actual** in the run telemetry above, and define the **on-exceed action** with the
|
|
88
|
+
budget: stop spawning, checkpoint state to `.claude/CONTINUITY.md`, and escalate per
|
|
89
|
+
`.claude/rules/human-in-the-loop.md` — never silently run past the number you announced. (Wave-scale
|
|
90
|
+
declarations live in `.claude/rules/wave-orchestration.md`'s manifest.)
|
|
91
|
+
|
|
83
92
|
> Stack-agnostic adaptation of the agent-session instrumentation pattern in the Apache-2.0
|
|
84
93
|
> [`alibaba/loongsuite-js`](https://github.com/alibaba/loongsuite-js) (session→turn→tool/LLM span
|
|
85
94
|
> hierarchy via runtime hooks, GenAI semantic-convention attributes). Re-derived in prose; not vendored.
|
|
@@ -124,6 +124,14 @@ Announce the spend before it happens: the manifest states the worker count per w
|
|
|
124
124
|
orchestrator repeats that count (and its model tiers) when opening each wave — scale is vetoable
|
|
125
125
|
before the tokens go out, not after.
|
|
126
126
|
|
|
127
|
+
Counts and tiers are the minimum; a load-bearing manifest declares the **full spend envelope as
|
|
128
|
+
data** beside them, per wave: a **hard spawn cap** (the count is a plan; the cap is a limit), a
|
|
129
|
+
**max-turns bound per worker**, a **wall-clock timeout for the wave**, and a **token ceiling** —
|
|
130
|
+
with the on-exceed action declared up front (stop spawning, checkpoint, escalate) per
|
|
131
|
+
`.claude/rules/goal-setting-and-monitoring.md` §4. That makes both *scale and spend* vetoable
|
|
132
|
+
before launch, and makes "the wave ran hot" a measured fact (estimate vs actual) instead of a
|
|
133
|
+
surprise on the bill.
|
|
134
|
+
|
|
127
135
|
## Native dynamic workflows as the wave substrate
|
|
128
136
|
|
|
129
137
|
Claude Code ≥ 2.1.154 ships a native **dynamic-workflows engine**: Claude writes a JavaScript
|
|
@@ -239,6 +239,22 @@ Link to ADRs for details.
|
|
|
239
239
|
How to contribute, coding standards, PR process.
|
|
240
240
|
```
|
|
241
241
|
|
|
242
|
+
## Derived Artifacts: Edit the Source, Regenerate the Output
|
|
243
|
+
|
|
244
|
+
Some documentation is **generated from a structured source of truth** — API docs rendered from an
|
|
245
|
+
OpenAPI spec, config files emitted by a generator script, reference tables built from a registry.
|
|
246
|
+
For these, the discipline is absolute:
|
|
247
|
+
|
|
248
|
+
- **Edits go to the structured input, never the deliverable.** Hand-patching a generated file
|
|
249
|
+
creates a fork the next regeneration silently destroys (or worse, that a drift check now has to
|
|
250
|
+
arbitrate).
|
|
251
|
+
- **State which file is source and which is derived** — in the doc's header or the repo's docs — so
|
|
252
|
+
no future editor has to guess. An unlabeled generated file *will* eventually be hand-edited.
|
|
253
|
+
- **Regenerate + drift-check in CI.** The generator should have a `--check` mode that fails CI when
|
|
254
|
+
the committed output no longer matches the source; that single check converts the convention into
|
|
255
|
+
a guarantee. (claude-kit itself lives this rule: its hook config files are generated from a
|
|
256
|
+
registry and CI fails on drift.)
|
|
257
|
+
|
|
242
258
|
## Changelog Maintenance
|
|
243
259
|
|
|
244
260
|
For shipped features:
|
|
@@ -115,6 +115,23 @@ Global store → Complex client state shared app-wide
|
|
|
115
115
|
|
|
116
116
|
## Design System Adherence
|
|
117
117
|
|
|
118
|
+
### Capture the Design Intent as a Specific Reference
|
|
119
|
+
|
|
120
|
+
Before styling anything new, pin down what the design is *aiming at* — and demand **one concrete
|
|
121
|
+
world-reference over a list of adjectives**. "Modern, clean, premium" describes a region containing
|
|
122
|
+
thousands of incompatible designs; "a 1970s graduate lecture handout" or "a Braun product manual"
|
|
123
|
+
describes a point you can actually converge on. When the user offers only adjectives, ask for the
|
|
124
|
+
reference ("what existing thing should this feel like?") — that one answer replaces a whole
|
|
125
|
+
round of taste-guessing iterations.
|
|
126
|
+
|
|
127
|
+
- Pair the reference with a **short, intentional Do's/Don'ts list** (3–5 each). A rambling
|
|
128
|
+
don't-list is a signal the reference is still vague — sharpen the reference instead of growing
|
|
129
|
+
the list.
|
|
130
|
+
- **Design tokens are context serving that prose, not rendering instructions.** The
|
|
131
|
+
reference + Do's/Don'ts carry the intent; tokens (spacing scale, palette, radii) are the
|
|
132
|
+
vocabulary it gets expressed in. Tokens without a reference reproduce the AI aesthetic below in
|
|
133
|
+
the project's own colors.
|
|
134
|
+
|
|
118
135
|
### Avoid the AI Aesthetic
|
|
119
136
|
|
|
120
137
|
AI-generated UI has recognizable patterns. Avoid all of them:
|