claude-code-kit 0.78.0__tar.gz → 0.79.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.78.0 → claude_code_kit-0.79.0}/.claude-plugin/marketplace.json +1 -1
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/.claude-plugin/plugin.json +1 -1
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/CHANGELOG.md +92 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/PKG-INFO +2 -2
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/catalog/profiles.yaml +72 -2
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/catalog/stacks.yaml +35 -3
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/skill-audit.md +25 -2
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/pyproject.toml +1 -1
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/__init__.py +1 -1
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/cli.py +5 -1
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/models.py +50 -1
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/scaffold.py +144 -17
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/upgrader.py +26 -2
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/.gitignore +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/CLAUDE.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/CONTRIBUTING.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/LICENSE +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/acceptance-reviewer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/auditor.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/dependency-scanner.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/developer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/devils-advocate.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/devops-engineer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/e2e-tester.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/em-reviewer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/incident-responder.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/merge-reviewer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/observability-engineer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/orchestrator.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/owasp-reviewer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/pentest-scanner.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/policy-validator.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/pr-raiser.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/risk-classifier.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/sdlc-code-reviewer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/secret-scanner.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/security-reviewer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/senior-backend-dev.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/senior-frontend-dev.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/senior-tester.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/spec-doc-writer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/story-planner.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/technical-architect.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/tester.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/ui-designer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/agents/unit-tester.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/catalog/capture.yaml +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/catalog/mcp.yaml +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/catalog/org.yaml +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/commands/abort.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/commands/init.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/commands/sdlc.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/commands/status.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/KNOWN_LIMITATIONS.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/RELEASE-POLICY.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/agentic-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/agents.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/ai-engineering-articles.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/architecture.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/autonomous-operation.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/capture-a-real-run.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/cli.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/coverage-audit.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/cursor-export.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/engineering-articles.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/eval-harness.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/images/ticket-board.png +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/influences.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/install.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/launch/awesome-prs.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/launch/demo-script.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/launch/directory-submission.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/launch/github-about.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/launch/posts.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/launch/road-to-1.0.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/launch/seed-issues.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/lld-catalog.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/org-capabilities.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/rules-context-budget.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/stack-skills/GAP-ANALYSIS.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/stack-skills/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/stack-skills/REPO-INVENTORY.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/system-design-resources.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/docs/system-design-threads.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/hooks.json +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/audit-log.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/capture-learnings.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/capture-ticket-telemetry.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/guard-destructive-git.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/guard-kubectl-delete.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/guard-push-main.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/guard-secrets.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/lint-fix.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/load-autonomy.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/load-continuity.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/load-learnings.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/type-check.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/validate-frontmatter.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/validate-settings.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/verify-continuity-writeback.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/warn-large-edits.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/warn-llm-io.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/warn-missing-tests.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/warn-sensitive-files.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/hooks/scripts/warn-shared-modules.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/agent-guardrails.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/agent-memory.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/agent-resilience.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/autonomy-levels.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/code-organization.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/continuity.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/design-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/devops-observability.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/documentation.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/evals.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/frontend-best-practices.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/goal-setting-and-monitoring.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/human-in-the-loop.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/linting-and-formatting.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/mandatory-workflow.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/model-tiers.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/quality-gates.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/rarv-cycle.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/reasoning-techniques.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/resilience-engineering.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/responsive-and-accessibility.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/risk-classification.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/testing.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/tool-design.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/rules/wave-orchestration.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/schemas/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/schemas/catalog-capture.schema.json +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/schemas/catalog-mcp.schema.json +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/schemas/catalog-org.schema.json +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/schemas/catalog-profiles.schema.json +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/schemas/catalog-stacks.schema.json +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/schemas/mcp-lock.schema.json +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/schemas/org-pack.schema.json +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/schemas/pipeline-snapshot.schema.json +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/backfill-releases.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/capture-sdlc-run.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/check_cross_references.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/check_docs_consistency.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/check_mcp_pins.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/check_rule_sizes.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/check_skill_descriptions.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/blind_ab.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/check-docker-leaks.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/discover_components.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/grade_covenant.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/grade_reprobe.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/holdout_seal.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/measure-standing-context.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/meta_check.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/mutation_controls.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/node_oracle.mjs +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/pentest-probe.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/reclassify_scenarios.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/reconcile_dynamic.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/rule_load_proof.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/run-in-docker.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/run-scenario.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/stamp-coverage-provenance.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/static_eval.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/test_integrity.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/tier-a-agent-probe.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/tier-b-probe.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/tier_a_agents.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/tier_a_cli.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/tier_a_config.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/tier_a_lifecycle.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/tier_a_scripts.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/tier_b_batches.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/tier_b_reconcile.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/tier_c_reach.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/evals/validate-suite.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/gen_hooks.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/scripts/init.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/_references/accessibility-checklist.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/_references/orchestration-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/_references/performance-checklist.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/_references/security-checklist.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/_references/testing-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/accessibility-review/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/alembic-migrations/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/alembic-migrations/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/alembic-migrations/references/alembic-setup-and-env.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/alembic-migrations/references/async-and-multitenant-migrations.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/alembic-migrations/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/alembic-migrations/references/troubleshooting-and-debugging.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/alembic-migrations/references/writing-migrations.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/anthropic-vertex-integration/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/anthropic-vertex-integration/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/anthropic-vertex-integration/references/generate-helpers-and-retry.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/anthropic-vertex-integration/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/anthropic-vertex-integration/references/vertex-client-and-auth.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/api-and-interface-design/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/api-and-interface-design/references/asdr-014-http-https.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/api-and-interface-design/references/asdr-018-apis.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/api-and-interface-design/references/asdr-023-idempotency.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/api-and-interface-design/references/asdr-129-stripe-s-payments-apis-the-first-10-years.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/api-and-interface-design/references/htn-http-routing.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/api-and-interface-design/references/htn-rest-api-design.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/api-integration/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/api-pagination-filtering-sorting/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/api-pagination-filtering-sorting/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/api-pagination-filtering-sorting/references/query-params-conventions.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/api-pagination-filtering-sorting/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/api-pagination-filtering-sorting/references/response-metadata.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/archive-sprint/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/async-python-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/async-python-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/async-python-patterns/references/async-boundaries.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/async-python-patterns/references/htn-python-s-inner-working-behind-the-scenes.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/async-python-patterns/references/lifecycle-and-gather.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/async-python-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/auth-and-rbac/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/auth-and-rbac/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/auth-and-rbac/references/auth-dependencies.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/auth-and-rbac/references/htn-design-an-authentication-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/auth-and-rbac/references/htn-serialization-deserialization-authentication-and-authorizati.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/auth-and-rbac/references/rbac-and-permissions.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/auth-and-rbac/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/auth-and-rbac/references/security-hardening.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/auth-and-rbac/references/tokens-and-hashing.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/backend-repo-architecture/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/backend-repo-architecture/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/backend-repo-architecture/references/deployment-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/backend-repo-architecture/references/entrypoint-and-config.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/backend-repo-architecture/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/backend-repo-architecture/references/structure-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/backend-repo-architecture/references/troubleshooting.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/backlog/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/backlog/item-template.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/browser-testing-with-devtools/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/bug-hunt/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/bug-hunt/references/alld-048-race-conditions-and-critical-sections.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/ci-cd-and-automation/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/code-review-and-quality/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/code-simplification/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/code-simplification/references/alld-014-kiss-principle.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/component-design/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/configargparse-yaml-env-layering/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/configargparse-yaml-env-layering/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/configargparse-yaml-env-layering/references/config-layering-anatomy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/configargparse-yaml-env-layering/references/mode-dispatch-and-precedence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/configargparse-yaml-env-layering/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/consolidate-learnings/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/containerization-and-deployment/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/containerization-and-deployment/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/containerization-and-deployment/references/deployment-and-secrets.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/containerization-and-deployment/references/dockerfile-and-compose.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/containerization-and-deployment/references/entrypoint-and-modes.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/containerization-and-deployment/references/kerberos-kinit-bootstrap.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/containerization-and-deployment/references/makefile-dev-workflow.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/containerization-and-deployment/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/context-engineering/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/context-engineering/references/aie-002-what-is-an-ai-agent-harness.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/context-engineering/references/aie-003-harness-engineering-as-categorical-architecture.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/context-engineering/references/aie-004-harness-engineering-the-missing-layer-between-llms-and-pro.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/context-engineering/references/aie-005-a-lot-of-conversation-around-harness-engineering-what-does.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/context-engineering/references/aie-007-context-engineering-vs-prompt-engineering-elastic.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/context-engineering/references/aie-008-context-engineering-vs-prompt-engineering-the-difference-r.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/context-engineering/references/aie-009-context-engineering-vs-prompt-engineering-key-differences.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/context-engineering/references/aie-010-context-engineering-vs-prompt-engineering-datahub.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/context-engineering/references/aie-011-context-engineering-vs-prompt-engineering-abstracta.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/context-engineering/references/aie-035-how-i-built-an-ai-agent-architecture-a-practical-multi-age.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/cron-and-scheduled-jobs/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/cron-and-scheduled-jobs/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/cron-and-scheduled-jobs/references/choosing-and-operations.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/cron-and-scheduled-jobs/references/kubernetes-cronjob.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/cron-and-scheduled-jobs/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/cron-and-scheduled-jobs/references/temporal-schedules.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/data-engineering-bigquery-gcs/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/data-engineering-bigquery-gcs/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/data-engineering-bigquery-gcs/references/bigquery-advanced-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/data-engineering-bigquery-gcs/references/bigquery-gcs-io.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/data-engineering-bigquery-gcs/references/medallion-architecture.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/data-engineering-bigquery-gcs/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/data-engineering-bigquery-gcs/references/temp-table-merge-pattern.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/debugging-and-error-recovery/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/debugging-and-error-recovery/references/aie-034-reflect-intervention-supported-error-attribution-for-silen.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/debugging-and-error-recovery/references/alld-047-thread-lifecycle-and-states.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/debugging-and-error-recovery/references/asdr-010-osi-model.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/decision/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/decision/adr-template.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/dependency-verification/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/deploy/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/deprecation-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/deprecation-and-migration/references/aea-040-how-discord-reduced-websocket-traffic-by-40.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/deprecation-and-migration/references/aea-093-how-figma-horizontally-scaled-postgres-to-unlock-nearly-infi.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/deprecation-and-migration/references/aea-110-partitioning-github-s-relational-databases-to-handle-scale.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/deprecation-and-migration/references/aea-194-the-great-re-shard-adding-postgres-capacity-again-with-zero-.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/deprecation-and-migration/references/aea-262-migrating-millions-of-concurrent-websockets-to-envoy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/deprecation-and-migration/references/asdr-125-how-discord-stores-trillions-of-messages.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/deprecation-and-migration/references/asdr-127-how-canva-scaled-media-uploads-from-zero-to-50-million-per-d.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-patterns-and-conventions/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-patterns-and-conventions/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-patterns-and-conventions/references/anti-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-patterns-and-conventions/references/htn-design-a-vending-machine.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-patterns-and-conventions/references/htn-lld-concepts.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-patterns-and-conventions/references/htn-validation-transformation-controllers-middlewares.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-patterns-and-conventions/references/naming-and-layout.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-patterns-and-conventions/references/patterns-catalog.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-patterns-and-conventions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-patterns-and-conventions/references/testing-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-patterns-and-conventions/references/troubleshooting.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-system-ops/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-system-ops/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-system-ops/references/ai-readiness.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-system-ops/references/drift-detection.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-system-ops/references/governance-and-adoption.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-system-ops/references/system-health-and-maturity.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/design-system-ops/references/token-architecture.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-011-lessons-learned-from-10-years-of-dynamodb.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-019-scaling-bitbucket-s-database.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-055-dropbox-s-scalable-consistent-metadata-caching-solution.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-060-how-ebay-exports-billion-scale-graphs-on-transactional-graph.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-066-how-ebay-loads-and-updates-over-ten-billion-vertex-graphs.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-067-ebay-s-real-time-and-performant-index-service-for-its-large-.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-081-cache-made-consistent-how-meta-handles-cache-invalidation.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-082-a-highly-available-strongly-consistent-storage-service-using.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-084-how-we-built-a-general-purpose-key-value-store-for-facebook-.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-095-how-figma-reduced-potential-instability-by-scaling-to-multip.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-098-flipkart-s-mysql-highly-available-setup.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-114-answering-billions-of-reporting-queries-each-day-with-low-la.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-149-upscaling-linkedin-s-profile-datastore-while-reducing-costs.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-175-netflix-s-key-value-data-abstraction-layer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-176-netflix-s-timeseries-data-abstraction-layer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-197-lessons-learned-from-sharding-postgres-at-notion.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-244-horizontally-scaling-the-rails-backend-of-shop-app-with-vite.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-263-scaling-datastores-at-slack-with-vitess.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-312-mysql-at-uber.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-321-how-uber-ensures-apache-cassandra-s-tolerance-for-single-zon.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-322-how-ledgerstore-supports-trillions-of-indexes-at-uber.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-324-how-uber-serves-over-40-million-reads-per-second-from-online.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-325-how-uber-optimized-cassandra-operations-at-scale.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/aea-337-building-a-cost-effective-logging-platform-for-petabyte-scal.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-006-consistent-hashing.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-007-cap-theorem.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-008-failover.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-017-checksums.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-029-database-sharding.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-030-data-replication.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-031-database-scaling.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-033-bloom-filters.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-036-caching-strategies.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-037-cache-eviction-policies.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-038-distributed-caching.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-043-heartbeats.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-046-distributed-locking.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-047-gossip-protocol.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-055-peer-to-peer-p2p-architecture.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/asdr-062-strong-vs-eventual-consistency.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/htn-databases-in-depth-part-1.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/htn-databases-in-depth-part-3.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/htn-design-a-distributed-cache.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/htn-design-a-distributed-key-value-store.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/htn-design-consistent-hashing.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/distributed-systems-patterns/references/htn-tricky-hld-patterns-for-interviews.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/doc-consolidation/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/docker-compose/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/docker-compose/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/docker-compose/references/compose-services-and-healthchecks.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/docker-compose/references/compose-skeletons.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/docker-compose/references/dev-vs-prod-variants.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/docker-compose/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/docker-shared/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/docker-shared/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/docker-shared/references/dockerignore-and-build-secrets.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/docker-shared/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/docker-shared/references/shared-base-images.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/docker-shared/references/shared-compose-fragments.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/dockerfile-backend/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/dockerfile-backend/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/dockerfile-backend/references/backend-dockerfile-anatomy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/dockerfile-backend/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/dockerfile-backend/references/system-deps-and-caching.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/dockerfile-frontend/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/dockerfile-frontend/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/dockerfile-frontend/references/build-args-and-nginx.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/dockerfile-frontend/references/frontend-dockerfile-anatomy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/dockerfile-frontend/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/documentation-and-adrs/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/doubt-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/edge-to-service-trust-boundary/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/edge-to-service-trust-boundary/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/edge-to-service-trust-boundary/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/edge-to-service-trust-boundary/references/trust-contract.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/execute/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/fastapi-service-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/fastapi-service-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/fastapi-service-patterns/references/api-versioning.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/fastapi-service-patterns/references/app-factory-and-lifespan.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/fastapi-service-patterns/references/custom-route-and-middleware.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/fastapi-service-patterns/references/dependency-injection.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/fastapi-service-patterns/references/model-and-serialization-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/fastapi-service-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/file-export-and-reporting/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/file-export-and-reporting/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/file-export-and-reporting/references/excel-generation.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/file-export-and-reporting/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/file-export-and-reporting/references/streaming-and-downloads.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/frontend-repo-architecture/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/frontend-repo-architecture/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/frontend-repo-architecture/references/api-layer-and-types.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/frontend-repo-architecture/references/divergences.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/frontend-repo-architecture/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/frontend-repo-architecture/references/structure-and-state.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/frontend-repo-architecture/references/testing-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/frontend-ui-engineering/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/gcp-cloud-run-github-actions/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/gcp-cloud-run-github-actions/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/gcp-cloud-run-github-actions/references/cloud-run-deploy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/gcp-cloud-run-github-actions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/gcp-cloud-run-github-actions/references/workflow-structure.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/gcs-file-storage-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/gcs-file-storage-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/gcs-file-storage-patterns/references/client-and-uploads.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/gcs-file-storage-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/gcs-file-storage-patterns/references/signed-urls-and-reads.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/git-workflow-and-versioning/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/grafana-dashboards-and-alerts/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/grafana-dashboards-and-alerts/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/grafana-dashboards-and-alerts/references/dashboard-json-and-templating.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/grafana-dashboards-and-alerts/references/provisioning-and-organization.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/grafana-dashboards-and-alerts/references/red-dashboard-skeleton.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/grafana-dashboards-and-alerts/references/red-metrics-queries.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/grafana-dashboards-and-alerts/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/grafana-dashboards-and-alerts/references/unified-alerting.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/graphql-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/graphql-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/graphql-patterns/references/apollo-client-frontend.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/graphql-patterns/references/apollo-client-setup.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/graphql-patterns/references/asdr-020-rest-vs-graphql.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/graphql-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/graphql-patterns/references/strawberry-backend.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/graphql-patterns/references/when-to-use-graphql.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/idea-refine/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/idea-refine/examples.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/idea-refine/frameworks.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/idea-refine/refinement-criteria.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/idea-refine/scripts/idea-refine.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/incident-postmortem/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/incremental-implementation/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/interview-me/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kafka-config-driven/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kafka-config-driven/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kafka-config-driven/references/config-and-sasl-kerberos.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kafka-config-driven/references/consumer-producer-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kafka-config-driven/references/htn-apache-kafka-crash-course.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kafka-config-driven/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kafka-config-driven/references/troubleshooting-and-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kubectl-operations/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kubectl-operations/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kubectl-operations/references/command-reference.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kubectl-operations/references/context-namespace-rbac.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kubectl-operations/references/debugging-playbooks.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kubectl-operations/references/output-formats-and-selectors.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kubectl-operations/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kubernetes-workload-hardening/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kubernetes-workload-hardening/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kubernetes-workload-hardening/references/networkpolicy-and-rbac.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kubernetes-workload-hardening/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/kubernetes-workload-hardening/references/securitycontext-and-podsecurity.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/langfuse-llm-tracing/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/langfuse-llm-tracing/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/langfuse-llm-tracing/references/aie-012-opentelemetry-for-ai-observability-what-it-covers-and-wher.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/langfuse-llm-tracing/references/aie-013-opentelemetry-for-llms-instrumenting-a-multi-provider-ai-g.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/langfuse-llm-tracing/references/aie-014-best-llm-gateways-for-observability-tracing-cost-attributi.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/langfuse-llm-tracing/references/aie-015-llm-observability-with-opentelemetry-unified-tracing-guide.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/langfuse-llm-tracing/references/aie-016-llm-observability-glossary.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/langfuse-llm-tracing/references/aie-017-the-2026-guide-to-agent-observability-tools.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/langfuse-llm-tracing/references/langfuse-client-and-tracing.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/langfuse-llm-tracing/references/python-and-typescript.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/langfuse-llm-tracing/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/library-review/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-caching-strategies/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-caching-strategies/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-caching-strategies/references/aie-054-prompt-caching-vs-semantic-caching-how-to-make-ai-agents-f.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-caching-strategies/references/aie-055-the-cache-has-layers-prompt-caching-semantic-caching-and-w.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-caching-strategies/references/aie-056-prompt-caching-cut-llm-costs-keep-quality.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-caching-strategies/references/aie-057-semantic-caching-boost-llm-speed-and-reduce-costs.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-caching-strategies/references/aie-058-optimize-llm-response-costs-and-latency-with-effective-cac.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-gateway-and-routing/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-gateway-and-routing/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-gateway-and-routing/references/aie-018-llm-routing-in-production-choosing-the-right-model-for-eve.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-gateway-and-routing/references/aie-019-llm-failover-and-load-balancing-for-provider-outages.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-gateway-and-routing/references/aie-020-adaptive-model-routing-and-fallback-logic-routing-around-p.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-gateway-and-routing/references/aie-021-build-an-llm-fallback-layer-before-your-model-vanishes.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-gateway-and-routing/references/aie-022-three-tier-llm-routing-fast-smart-and-power-model-stacks.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-gateway-and-routing/references/aie-023-what-our-provider-fallback-actually-looks-like-after-month.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-gateway-and-routing/references/aie-032-llm-structured-outputs-schema-validation-for-real-pipeline.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-gateway-and-routing/references/aie-033-llguidance-super-fast-structured-outputs.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-038-accelerating-llm-inference-with-post-training-quantization.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-039-llm-quantization-explained-int4-int8-fp8-awq-and-gptq.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-040-llm-quantization-bf16-vs-fp8-vs-int4.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-041-improving-the-economics-of-llm-inference-with-speculative.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-042-speculative-decoding-quantization-and-distillation-tradeof.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-043-speculative-decoding-and-quantization-llm-inference.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-044-prefill-and-decode-a-technical-guide-to-the-two-phases-of.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-045-prefill-vs-decode-llm-inference-phases-explained.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-046-prefill-vs-decode-llm-inference-optimization.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-047-llm-inference-optimization-prefill-vs-decode.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-048-the-llm-inference-optimization-stack-quantization-to-specu.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-049-automatic-prefix-caching-design-in-vllm.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-050-peek-predictive-queue-informed-kv-cache-management-for-llm.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-051-epicache-episodic-kv-cache-management-for-long-term-conver.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-052-automatic-prefix-caching-implementation-details-vllm.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/llm-inference-optimization/references/aie-053-understanding-vllm-kv-cache.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/load-testing/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/manual-test/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/modernization-and-migration/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/modernization-and-migration/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/modernization-and-migration/references/migration-best-practices.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/modernization-and-migration/references/pydantic-v1-to-v2.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/modernization-and-migration/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/modernization-and-migration/references/shared-internal-library.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/modernization-and-migration/references/sqlalchemy-14-to-20.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/multi-tenancy-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/multi-tenancy-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/multi-tenancy-patterns/references/aie-029-multi-tenant-isolation-for-ai-agents-security-architecture.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/multi-tenancy-patterns/references/caching-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/multi-tenancy-patterns/references/isolation-strategies.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/multi-tenancy-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/multi-tenancy-patterns/references/tenant-resolution.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/node-express-service/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/node-express-service/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/node-express-service/references/app-factory-and-mode-dispatch.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/node-express-service/references/config-and-module-alias.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/node-express-service/references/middleware-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/node-express-service/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/node-objection-knex/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/node-objection-knex/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/node-objection-knex/references/migrations-and-validation.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/node-objection-knex/references/objection-model-and-knex.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/node-objection-knex/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/notifications-and-messaging/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/notifications-and-messaging/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/notifications-and-messaging/references/provider-abstraction.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/notifications-and-messaging/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/notifications-and-messaging/references/templates-and-fallback.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-001-classes-and-objects.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-002-enums.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-003-interfaces.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-004-encapsulation.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-005-abstraction.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-006-inheritance.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-007-polymorphism.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-008-association.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-009-aggregation.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-010-composition.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-011-dependency.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-012-dry-principle.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-016-solid-principles-with-code.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-017-singleton.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-018-adapter.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-019-iterator.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-020-factory-method.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-021-bridge.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-022-observer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-023-abstract-factory.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-024-composite.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-025-strategy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-026-builder.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-027-decorator.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-028-command.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-029-prototype.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-030-facade.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-031-state.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-032-flyweight.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-033-template-method.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-034-proxy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-035-visitor.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-036-mediator.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-037-memento.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-038-chain-of-responsibility.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-039-class-diagram.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-040-use-case-diagram.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-041-sequence-diagram.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-042-activity-diagram.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-043-state-machine-diagram.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-050-semaphores.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-051-condition-variables.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-052-coarse-grained-vs-fine-grained-locking.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-053-reentrant-locks.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-054-try-lock-and-timed-locking.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-055-compare-and-swap-cas.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-056-deadlock.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-057-livelock.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-058-signaling-pattern.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-059-thread-pool-pattern.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-060-producer-consumer-pattern.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-061-reader-writer-pattern.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-062-how-to-answer-a-lld-interview-problem.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-063-design-parking-lot.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-064-design-stack-overflow.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-065-design-a-vending-machine.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-066-design-logging-framework.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-067-design-traffic-signal-control-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-068-design-coffee-vending-machine.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-069-design-a-task-management-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-070-design-atm.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-071-design-linkedin.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-072-design-lru-cache.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-073-design-tic-tac-toe-game.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-074-design-pub-sub-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-075-design-an-elevator-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-076-design-car-rental-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-077-design-an-online-auction-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-078-design-hotel-management-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-079-design-a-digital-wallet-service.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-080-design-airline-management-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-081-design-a-library-management-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-082-design-a-social-network-like-facebook.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-083-design-restaurant-management-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-084-design-a-concert-ticket-booking-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-085-design-cricinfo.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-086-design-splitwise.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-087-design-chess-game.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-088-design-a-snake-and-ladder-game.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-089-design-ride-sharing-service-like-uber.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-090-design-course-registration-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-091-design-movie-ticket-booking-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-092-design-online-shopping-system-like-amazon.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-093-design-online-stock-brokerage-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-094-design-music-streaming-service-like-spotify.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-095-design-online-food-delivery-service-like-swiggy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-096-print-foobar-alternately.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-097-print-zero-even-odd.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-098-fizz-buzz-multithreaded.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-099-building-h2o-molecule.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-100-design-thread-safe-cache-with-ttl.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-101-design-concurrent-hashmap.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-102-design-thread-safe-blocking-queue.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/object-oriented-design/references/alld-103-design-concurrent-bloom-filter.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/observability-and-logging/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/observability-and-logging/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/observability-and-logging/references/aea-320-modernizing-logging-at-uber-with-clp.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/observability-and-logging/references/health-and-readiness.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/observability-and-logging/references/htn-caching-task-queues-error-handling-logging-monitoring.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/observability-and-logging/references/logging-and-structlog.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/observability-and-logging/references/outbound-metrics-and-multi-mode.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/observability-and-logging/references/pii-redaction.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/observability-and-logging/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/observability-and-logging/references/tracing-and-metrics.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/otel-tracing/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/otel-tracing/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/otel-tracing/references/aea-191-building-netflix-s-distributed-tracing-infrastructure.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/otel-tracing/references/aea-258-how-slack-traces-the-flow-of-notifications-across-systems.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/otel-tracing/references/asdr-050-distributed-tracing.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/otel-tracing/references/collector.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/otel-tracing/references/correlation.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/otel-tracing/references/gotchas.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/otel-tracing/references/instrumentation.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/otel-tracing/references/sampling.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/otel-tracing/references/tempo.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/over-engineering-review/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/over-engineering-review/references/alld-013-yagni-principle.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/pentesterflow-pentest/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/pentesterflow-pentest/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/pentesterflow-pentest/references/operating-guide.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/performance-optimization/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/performance-optimization/references/htn-how-javascript-executes-the-code-behind-the-scenes.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/planning-and-task-breakdown/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/playwright-verification/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/pydantic-schema-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/pydantic-schema-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/pydantic-schema-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/pydantic-schema-patterns/references/settings-and-validation.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/pydantic-schema-patterns/references/troubleshooting-and-common-errors.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/pydantic-schema-patterns/references/v1-vs-v2.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/python-dao-and-database/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/python-dao-and-database/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/python-dao-and-database/references/advanced-query-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/python-dao-and-database/references/asdr-026-acid-transactions.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/python-dao-and-database/references/asdr-028-database-indexes.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/python-dao-and-database/references/basedao-and-sessions.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/python-dao-and-database/references/htn-databases-in-depth-part-2.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/python-dao-and-database/references/mongodb-advanced.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/python-dao-and-database/references/other-db-mongodb.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/python-dao-and-database/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/python-dao-and-database/references/sqlalchemy-1x-vs-2x.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/radix-tailwind-component-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/radix-tailwind-component-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/radix-tailwind-component-patterns/references/radix-primitives-and-variants.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/radix-tailwind-component-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/radix-tailwind-component-patterns/references/tailwind-theme-and-cn.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/rag-and-model-tuning/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/rag-and-model-tuning/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/rag-and-model-tuning/references/aie-059-distillation-with-programmatic-data-curation-cheaper-infer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/rag-and-model-tuning/references/aie-060-efficient-knowledge-injection-in-llms-via-self-distillatio.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/rag-and-model-tuning/references/aie-061-distilling-many-shot-in-context-learning-into-a-cheat-shee.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/rag-and-model-tuning/references/aie-062-llm-fine-tuning-customize-large-language-models.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/rag-and-model-tuning/references/aie-063-the-architects-guide-to-production-rag.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/rag-and-model-tuning/references/aie-064-rag-best-practices-chunking-hybrid-search-reranking.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/rag-and-model-tuning/references/aie-065-fine-tuning-vs-retrieval-augmented-generation-for-less-pop.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/rag-and-model-tuning/references/aie-067-building-production-grade-rag-architecture-the-engineering.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/rag-and-model-tuning/references/aie-068-best-rag-tools-frameworks-and-libraries.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/rag-and-model-tuning/references/aie-069-rag-evaluation-metrics.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/react-hook-form-zod-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/react-hook-form-zod-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/react-hook-form-zod-patterns/references/form-setup-and-zod.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/react-hook-form-zod-patterns/references/multi-step-and-modes.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/react-hook-form-zod-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/redis-caching-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/redis-caching-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/redis-caching-patterns/references/cache-manager-and-fallback.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/redis-caching-patterns/references/htn-a-complete-guide-to-redis.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/redis-caching-patterns/references/namespacing-and-invalidation.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/redis-caching-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/refresh-docs/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/remember/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/safety-critical-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/scope/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/scope/scope-template.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/sdlc/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/security-and-hardening/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/security-and-hardening/references/aie-024-model-context-protocol-security-best-practices.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/security-and-hardening/references/aie-026-prompt-injection-in-production-agents-a-2026-taxonomy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/security-and-hardening/references/aie-027-model-context-protocol-security-risks-and-mitigations.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/security-and-hardening/references/aie-028-ai-agent-data-leakage-secrets-management-and-privacy-risks.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/security-and-hardening/references/aie-030-llm-security-prompt-injection-data-leakage-and-compliance.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/security-and-hardening/references/input-validation-and-uploads.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/security-and-hardening/references/llm-guardrails.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/security-and-hardening/references/owasp-top10-prevention.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/security-and-hardening/references/supply-chain-and-dependencies.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/security-verification/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/shannon-ai-pentest/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/shannon-ai-pentest/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/shannon-ai-pentest/references/operating-guide.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/shell-review/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/shipping-and-launch/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/simplification-debt/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/smoke-test/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/source-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/spec-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/sprint/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/sprint/sprint-template.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/strix-ai-pentest/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/strix-ai-pentest/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/strix-ai-pentest/references/operating-guide.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/aea-017-caching-jql-search-in-jira-cloud.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/aea-032-canva-s-fast-and-scalable-reverse-image-search.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/aea-033-how-canva-enables-real-time-collaboration-with-rsocket.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/aea-054-how-dropbox-evolved-its-infrastructure-through-the-messaging.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/aea-064-how-ebay-handles-real-time-push-notifications-at-scale.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/aea-150-unifying-messaging-experiences-across-linkedin.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/aea-174-evolving-netflix-s-websocket-proxy-for-the-future.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/aea-190-rapid-event-notification-system-at-netflix.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/aea-196-the-data-model-behind-notion-s-flexibility.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/aea-224-how-razorpay-s-notification-service-handles-increasing-load.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/aea-275-stripe-s-system-for-tracking-and-validating-money-movement.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/aea-277-how-stripe-built-its-fraud-prevention-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/aea-328-uber-s-next-gen-push-platform-on-grpc.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/alld-044-introduction-to-concurrency.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/alld-045-concurrency-vs-parallelism.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/alld-046-processes-vs-threads.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/alld-049-mutex-mutual-exclusion.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/alld-104-multi-threaded-merge-sort.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-002-availability.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-003-reliability.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-004-spof.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-005-latency-vs-throughput-vs-bandwidth.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-009-fault-tolerance.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-011-ip-addresses.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-012-domain-name-system-dns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-013-proxy-vs-reverse-proxy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-015-tcp-vs-udp.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-016-load-balancing.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-019-api-gateway.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-021-websockets.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-022-webhooks.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-024-rate-limiting.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-027-sql-vs-nosql.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-032-databases-types.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-035-caching-101.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-039-content-delivery-network-cdn.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-040-pub-sub.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-041-message-queues.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-042-change-data-capture-cdc.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-044-service-discovery.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-049-disaster-recovery.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-051-client-server-architecture.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-054-event-driven-architecture.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-056-top-15-tradeoffs.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-057-vertical-vs-horizontal-scaling.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-058-concurrency-vs-parallelism.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-059-long-polling-vs-websockets.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-060-batch-vs-stream-processing.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-061-stateful-vs-stateless-design.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-067-latency-vs-throughput.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-068-how-to-answer-a-system-design-interview-problem.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-069-design-url-shortener-like-tinyurl.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-071-design-load-balancer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-079-design-whatsapp.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-080-design-spotify.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-082-design-notification-service.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-083-design-distributed-job-scheduler.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/asdr-130-real-time-messaging-at-slack.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-a-basic-music-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-a-chat-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-a-content-delivery-network.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-a-load-balancer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-a-news-feed-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-a-notification-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-a-parking-lot.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-a-rate-limiter.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-a-unique-id-generator-in-distributed-systems.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-airbnb.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-amazon.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-autocomplete-for-search-engines.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-bit-ly-and-pastebin.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-instagram.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-netflix.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-reddit.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-spotify.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-tinder.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-twitter.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-youtube-hld.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-design-youtube-lld.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-mental-model-for-microservices.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-netflix-recommendation-system-machine-learning-system-design.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/system-design-patterns/references/htn-security-scaling-performance-concurrency-parallelism.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/tanstack-react-query-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/tanstack-react-query-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/tanstack-react-query-patterns/references/mutations-and-cache.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/tanstack-react-query-patterns/references/query-keys-and-hooks.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/tanstack-react-query-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/task-tracker-sync/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-config-driven/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-config-driven/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-config-driven/references/config-and-retry-idempotency.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-config-driven/references/dag-dsl-interpreter.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-config-driven/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-config-driven/references/schedule-registration.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-config-driven/references/schedules-and-cron.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-config-driven/references/worker-workflow-activity-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-developer/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-developer/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-developer/references/cli.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-developer/references/determinism.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-developer/references/gotchas.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-developer/references/languages.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-developer/references/testing.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/temporal-developer/references/versioning.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/test-driven-development/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/test-plan-review/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/testing-conventions/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/testing-conventions/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/testing-conventions/references/async-and-mocking.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/testing-conventions/references/coverage-gap-and-recommendations.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/testing-conventions/references/github-actions-test-orchestration.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/testing-conventions/references/pytest-and-fixtures.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/testing-conventions/references/pytest-asyncio-modes.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/testing-conventions/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/testing-conventions/references/security-regression-tests.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/testing-conventions/references/vitest-frontend-testing.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/threat-model/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/threat-model/references/aie-025-sok-security-and-safety-in-the-model-context-protocol-ecos.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/ticketing-and-traceability/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/triage/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/ui-ux-design/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/unit-test/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/using-agent-skills/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/vitest-rtl-msw-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/vitest-rtl-msw-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/vitest-rtl-msw-patterns/references/msw-and-contract-tests.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/vitest-rtl-msw-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/vitest-rtl-msw-patterns/references/vitest-rtl-setup.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/zap-vapt-scanning/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/zap-vapt-scanning/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/zap-vapt-scanning/references/operating-guide.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/zap-vapt-scanning/scripts/endpoints.example.txt +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/zap-vapt-scanning/scripts/requirements.txt +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/zap-vapt-scanning/scripts/zap_vapt.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/zustand-state-patterns/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/zustand-state-patterns/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/zustand-state-patterns/references/async-polling-and-persistence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/zustand-state-patterns/references/repo-evidence.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/skills/zustand-state-patterns/references/store-structure-and-selectors.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/__main__.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/board_html.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/catalog.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/detect.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/export.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/hooks.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/pipeline.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/prompts.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/render.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/report.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/schemas.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/telemetry.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/tickets.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/src/claude_kit/validator.py +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/CLAUDE.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/CLAUDE.stack.md.tmpl +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/CONTINUITY.template.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/README.claude-sdlc.md.tmpl +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/agent-memory/MEMORY.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/agent-memory/api/.gitkeep +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/agent-memory/architecture/.gitkeep +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/agent-memory/debugging/.gitkeep +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/agent-memory/gotchas/.gitkeep +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/agent-memory/patterns/.gitkeep +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/agent-memory/performance/.gitkeep +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/artifacts/adr.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/artifacts/api-change-report.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/artifacts/change-proposal.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/artifacts/feature-spec.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/artifacts/release-plan.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/artifacts/runbook.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/artifacts/security-review.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/artifacts/test-plan.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/export/sdlc-workflow-guide.md.tmpl +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/agents/data-workflow-agent.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/agents/founder-prototype-agent.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/agents/internal-tools-builder.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/agents/pm-copilot.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/agents/staff-pm-reviewer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/agents/support-ticket-engineer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/devops-and-release/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/devops-and-release/pack.yaml +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/engineering-core/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/engineering-core/pack.yaml +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/non-engineer-builder/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/non-engineer-builder/pack.yaml +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/onboarding-and-docs/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/onboarding-and-docs/pack.yaml +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/product-to-code/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/product-to-code/pack.yaml +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/quality-and-review/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/quality-and-review/pack.yaml +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/security-and-compliance/README.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/packs/security-and-compliance/pack.yaml +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/rules/ai-working-agreement.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/rules/ambiguity-resolution.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/rules/branch-and-pr-policy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/rules/compliance-policy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/rules/non-engineer-safe-coding.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/rules/pii-policy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/rules/production-data-policy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/rules/prompt-to-task-conversion.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/rules/prototype-boundaries.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/rules/secrets-policy.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/skills/customer-issue-to-fix/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/skills/feature-from-idea/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/skills/prompt-to-safe-task/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/skills/prototype-to-production/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/skills/repo-onboarding/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/skills/review-scope/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/skills/review-sprint/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/skills/review-sprint-plan/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/org/skills/review-ux-flow/SKILL.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/scripts/sdlc-loop.sh +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/settings.json +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/backend/go/net-http/rules/go-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/backend/python/fastapi/rules/fastapi-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/db/mongodb/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/db/mongodb/agents/mongodb-specialist.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/db/mongodb/rules/mongodb-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/db/postgres/agents/db-performance-reviewer.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/db/postgres/agents/migration-specialist.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/db/postgres/agents/postgres-specialist.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/db/postgres/rules/database-performance.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/db/postgres/rules/postgres-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/frontend/react/rules/design-system-compliance.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/frontend/react/rules/mobile-design-guidelines.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/frontend/react/rules/react-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/frontend/react/rules/ui-components.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/frontend/react/rules/ui-design-system.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/frontend/react/rules/ui-layout-and-motion.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/frontend/react/rules/ux-dashboard-patterns.md +0 -0
- {claude_code_kit-0.78.0 → claude_code_kit-0.79.0}/templates/stacks/frontend/react/rules/ux-patterns.md +0 -0
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"displayName": "Claude Kit SDLC",
|
|
12
12
|
"source": "./",
|
|
13
13
|
"description": "Evidence-gated SDLC for Claude Code, installed as configuration (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 with a tamper-evident gate ledger, working memory, and a self-improving learnings loop.",
|
|
14
|
-
"version": "0.
|
|
14
|
+
"version": "0.79.0",
|
|
15
15
|
"license": "MIT",
|
|
16
16
|
"keywords": ["sdlc", "agents", "orchestration", "quality-gates", "workflow", "scaffold", "cookiecutter"]
|
|
17
17
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-kit",
|
|
3
3
|
"displayName": "Claude Kit SDLC",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.79.0",
|
|
5
5
|
"description": "Evidence-gated SDLC for Claude Code, installed as configuration (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 a tamper-evident gate ledger, working memory, and a self-improving learnings loop.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Arjunsingh Yadav",
|
|
@@ -4,6 +4,98 @@ 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.79.0] — 2026-08-08
|
|
8
|
+
|
|
9
|
+
**Two ways the installer could destroy a file it had no business touching, and the escape hatch
|
|
10
|
+
that made the richest profile the least targeted one.** All three came out of an external audit of
|
|
11
|
+
the repo. The first two are the kind of bug a scaffolder must not have: it writes into other
|
|
12
|
+
people's projects, so "we only delete our own files" has to be true by construction, not by
|
|
13
|
+
convention.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- **A recorded path in `init-options.json` could reach outside the project root.** The manifest
|
|
18
|
+
lives *inside* the project being upgraded, which makes it untrusted input — and `upgrade` joins
|
|
19
|
+
its `files[].path` entries onto the project root before copying, overwriting, and `unlink()`-ing
|
|
20
|
+
the result. A manifest containing `{"path": "../VICTIM.txt", "owner": "kit"}` made
|
|
21
|
+
`claude-kit upgrade` delete a file *above* the project, reporting it as
|
|
22
|
+
`- ../VICTIM.txt (orphan removed)`. `init --defaults` shared the same `_diff_actions` path.
|
|
23
|
+
|
|
24
|
+
Paths are now validated where the manifest is parsed (`models.contained_relpath`): absolute,
|
|
25
|
+
drive-qualified, and `..`-containing paths are refused, and backslashes are normalised first so a
|
|
26
|
+
Windows-style `..\..\x` cannot slip past a POSIX segment check and then be re-read as a separator
|
|
27
|
+
by `pathlib`. A rejected path surfaces through the existing corrupt-manifest route, so the
|
|
28
|
+
operator gets a `FAIL` with a remedy rather than a silent deletion. The orphan loop — the only
|
|
29
|
+
branch that deletes — additionally re-checks containment at the moment of use
|
|
30
|
+
(`upgrader._inside`), because a *symlinked* directory inside the project can make a perfectly
|
|
31
|
+
innocent relative path resolve outside it. Threat model: clone a repo, run `claude-kit upgrade`.
|
|
32
|
+
|
|
33
|
+
- **`--force` silently deleted user files from kit-owned directories.** `_copy_tree` did an
|
|
34
|
+
unconditional `shutil.rmtree(dest)` before copying, and it is called on `.claude/rules/`,
|
|
35
|
+
`.claude/templates/`, `.claude/skills/<name>/` and `.claude/org-packs/<pack>/`. A hand-written
|
|
36
|
+
`.claude/rules/team-conventions.md` was gone after a `--force` re-init — no backup, no log line,
|
|
37
|
+
and no coverage from the upgrader's checksum/sidecar machinery, which only protects files the kit
|
|
38
|
+
itself recorded. The `--force` help text promised only to "overwrite existing CLAUDE.md /
|
|
39
|
+
settings.json / .mcp.json".
|
|
40
|
+
|
|
41
|
+
Files a directory-replacing install will not rewrite are now **moved** into `.claude-kit.bak-N/`
|
|
42
|
+
— the same convention `upgrade` already uses — mirroring their project-relative path, and the
|
|
43
|
+
install log names them. The backup directory is created lazily, so a fresh install and the
|
|
44
|
+
sandbox render used by merge/upgrade still produce none. Overlay and org rules are declared as
|
|
45
|
+
`also_shipped` because they are written into `.claude/rules/` *after* the core tree is replaced;
|
|
46
|
+
without that they read as user additions on every re-install, which would fill the backup with
|
|
47
|
+
kit files and tell the user their content was preserved when none of it was theirs. `--force`'s
|
|
48
|
+
help text now describes what it actually does.
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- **`enterprise` enumerates its skills instead of declaring `skills: all`.** `all` meant "every
|
|
53
|
+
directory under `skills/`", which made the richest profile the least targeted one: resolving
|
|
54
|
+
**Go + no frontend + no database + enterprise** installed 115 skills / 6.1 MB, among them
|
|
55
|
+
`alembic-migrations`, `fastapi-service-patterns`, `react-hook-form-zod-patterns` and
|
|
56
|
+
`dockerfile-frontend` — ~55k lines of content for stacks the project does not use, every one of
|
|
57
|
+
them competing in the skill picker. 67 skills were reachable *only* through `all`.
|
|
58
|
+
|
|
59
|
+
The 25 stack-flavored skills now ride `catalog/stacks.yaml`'s `skills:` union — the mechanism the
|
|
60
|
+
react and fastapi entries already used — so they install only when that stack is selected. No
|
|
61
|
+
files moved, no resolver change, and `resolve()` stays branch-free. That same Go selection now
|
|
62
|
+
resolves to 92 skills with **zero** stack-irrelevant ones; react + fastapi + postgres still gets
|
|
63
|
+
113. `lean ⊂ standard ⊂ enterprise` still holds, and every skill in the payload is still
|
|
64
|
+
reachable by some live selection (the two Node ones are gated behind `status: planned`, as
|
|
65
|
+
intended). This is the "stack-aware skill filter" `docs/skill-audit.md` recommended and then
|
|
66
|
+
deferred; that document now records the outcome.
|
|
67
|
+
|
|
68
|
+
**This changes what an enterprise install contains.** Adding a directory to `skills/` no longer
|
|
69
|
+
installs it by default — name it in a profile (stack-agnostic) or a `stacks.yaml` union
|
|
70
|
+
(stack-specific). Existing installs pick the new set up on `claude-kit upgrade`, which backs up
|
|
71
|
+
anything you edited.
|
|
72
|
+
|
|
73
|
+
- **The corrupt-manifest message names both causes** — malformed JSON, or a path that is not
|
|
74
|
+
project-relative — since the fix differs even though the remedy (repair or re-init) does not.
|
|
75
|
+
|
|
76
|
+
### Added
|
|
77
|
+
|
|
78
|
+
- `tests/test_containment.py`, `tests/test_scaffold_rescue.py`, `tests/test_skill_relevance.py` —
|
|
79
|
+
regression coverage for all three, including a guard that no profile may reintroduce
|
|
80
|
+
`skills: all` and a check that enumerating orphaned no skill.
|
|
81
|
+
|
|
82
|
+
### Not adopted (deliberately)
|
|
83
|
+
|
|
84
|
+
- **Removing `object-oriented-design` (464 KB) and `system-design-patterns` (599 KB) from
|
|
85
|
+
enterprise.** They are interview-prep and engineering-blog digests — ~1 MB, ~17% of the payload —
|
|
86
|
+
and they are the strongest remaining argument that the skill corpus has drifted from "SDLC kit".
|
|
87
|
+
But they are stack-agnostic, so the relevance gating this release adds does not reach them, and
|
|
88
|
+
cutting them is a scope decision about what claude-kit *is*, not a bug fix. Left installed and
|
|
89
|
+
flagged; the `license-note: ideas absorbed in own words` provenance line appears 278 times across
|
|
90
|
+
them and deserves a separate look.
|
|
91
|
+
- **`hooks: all`.** Kept. The hook registry is small, closed, and every hook is stack-neutral, so
|
|
92
|
+
"all of them" is a real statement of intent rather than an accident of directory creation. The
|
|
93
|
+
header comment in `profiles.yaml` now says why the token is right there and wrong for skills.
|
|
94
|
+
- **Making the gate ledger tamper-evident.** `gate_history` entries are unchained, so a deleted or
|
|
95
|
+
reordered entry is undetectable, and `_blocking_findings()` reads `open_findings` from the
|
|
96
|
+
snapshot the agent itself wrote. Both are real, both are out of scope for a fix release, and
|
|
97
|
+
neither is what the ledger is currently sold as doing.
|
|
98
|
+
|
|
7
99
|
## [0.78.0] — 2026-08-08
|
|
8
100
|
|
|
9
101
|
**Two decisions carried out of the 0.77.0 evaluation, one of which only half works.** Both are
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: claude-code-kit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.79.0
|
|
4
4
|
Summary: Evidence-gated SDLC for Claude Code, installed as 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 with a tamper-evident gate ledger, 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
|
|
@@ -3,7 +3,13 @@
|
|
|
3
3
|
#
|
|
4
4
|
# Each profile lists agents / skills / gates / hooks. `inherit: <profile>` composes on top of
|
|
5
5
|
# another profile (this profile's lists are unioned with the inherited ones). The special value
|
|
6
|
-
# `all` means "every available item discovered in the payload"
|
|
6
|
+
# `all` means "every available item discovered in the payload".
|
|
7
|
+
#
|
|
8
|
+
# `all` is appropriate for `hooks:` — the hook registry is small, closed, and every hook is
|
|
9
|
+
# stack-neutral, so "all of them" is a real statement of intent. It is NOT appropriate for
|
|
10
|
+
# `skills:`: skills are numerous and many are stack-flavored, so `all` silently turned every new
|
|
11
|
+
# directory in skills/ into an enterprise install and put it in the skill picker. Enumerate skills;
|
|
12
|
+
# gate the stack-specific ones through catalog/stacks.yaml's `skills:` union instead.
|
|
7
13
|
#
|
|
8
14
|
# ORDER CONVENTION for `gates:` — gates are the one list where order is data: the resolved list
|
|
9
15
|
# lands execution-ordered in stack-catalog.snapshot.yaml and `claude-kit pipeline close-gate`
|
|
@@ -128,6 +134,70 @@ profiles:
|
|
|
128
134
|
- auditor
|
|
129
135
|
- incident-responder
|
|
130
136
|
- risk-classifier
|
|
131
|
-
skills: all
|
|
137
|
+
# ENUMERATED, not `all`. `skills: all` used to mean "every directory in skills/", which made the
|
|
138
|
+
# richest profile the least targeted one: a Go service with no frontend and no database still
|
|
139
|
+
# received React, FastAPI and Alembic skills — ~55k lines of content for a stack the project
|
|
140
|
+
# does not use, all of it competing in the skill picker. Everything stack-flavored now rides
|
|
141
|
+
# catalog/stacks.yaml's `skills:` union instead (installed only when that stack is selected),
|
|
142
|
+
# and what remains here is what an enterprise pipeline needs regardless of stack.
|
|
143
|
+
#
|
|
144
|
+
# Adding a skill to the payload therefore no longer installs it by default — name it in a
|
|
145
|
+
# profile (stack-agnostic) or in a stacks.yaml union (stack-specific). That is the point:
|
|
146
|
+
# membership is a decision, not a side effect of creating a directory.
|
|
147
|
+
skills:
|
|
148
|
+
# Operate / run: the stages enterprise adds over standard (pipeline-green, observability-ready).
|
|
149
|
+
- ci-cd-and-automation
|
|
150
|
+
- observability-and-logging
|
|
151
|
+
- otel-tracing
|
|
152
|
+
- grafana-dashboards-and-alerts
|
|
153
|
+
- kubectl-operations
|
|
154
|
+
- kubernetes-workload-hardening
|
|
155
|
+
- containerization-and-deployment
|
|
156
|
+
- docker-compose
|
|
157
|
+
- docker-shared
|
|
158
|
+
- gcp-cloud-run-github-actions
|
|
159
|
+
- cron-and-scheduled-jobs
|
|
160
|
+
# Design / architecture reference used by technical-architect and the auditor.
|
|
161
|
+
- design-patterns-and-conventions
|
|
162
|
+
- distributed-systems-patterns
|
|
163
|
+
- object-oriented-design
|
|
164
|
+
- system-design-patterns
|
|
165
|
+
- safety-critical-patterns
|
|
166
|
+
- multi-tenancy-patterns
|
|
167
|
+
- edge-to-service-trust-boundary
|
|
168
|
+
- auth-and-rbac
|
|
169
|
+
- api-pagination-filtering-sorting
|
|
170
|
+
- graphql-patterns
|
|
171
|
+
- redis-caching-patterns
|
|
172
|
+
- notifications-and-messaging
|
|
173
|
+
- file-export-and-reporting
|
|
174
|
+
# Change management: the auditor / risk-classifier surface.
|
|
175
|
+
- dependency-verification
|
|
176
|
+
- deprecation-and-migration
|
|
177
|
+
- modernization-and-migration
|
|
178
|
+
- library-review
|
|
179
|
+
- shell-review
|
|
180
|
+
# Data / eventing platforms.
|
|
181
|
+
- kafka-config-driven
|
|
182
|
+
- temporal-config-driven
|
|
183
|
+
- temporal-developer
|
|
184
|
+
- data-engineering-bigquery-gcs
|
|
185
|
+
- gcs-file-storage-patterns
|
|
186
|
+
# LLM-product engineering.
|
|
187
|
+
- anthropic-vertex-integration
|
|
188
|
+
- langfuse-llm-tracing
|
|
189
|
+
- llm-caching-strategies
|
|
190
|
+
- llm-gateway-and-routing
|
|
191
|
+
- llm-inference-optimization
|
|
192
|
+
- rag-and-model-tuning
|
|
193
|
+
# Delivery workflow.
|
|
194
|
+
- sprint
|
|
195
|
+
- backlog
|
|
196
|
+
- archive-sprint
|
|
197
|
+
- triage
|
|
198
|
+
- shipping-and-launch
|
|
199
|
+
- consolidate-learnings
|
|
200
|
+
- doc-consolidation
|
|
201
|
+
- playwright-verification
|
|
132
202
|
gates: [spec-complete, em-approved, code-review, build-green, contract-clear, test-coverage, security-clear, pipeline-green, observability-ready, acceptance]
|
|
133
203
|
hooks: all
|
|
@@ -34,7 +34,25 @@ frontend:
|
|
|
34
34
|
# frontend-specific (component/hook tests, client-side data fetching, headed-browser QA), so
|
|
35
35
|
# they install only when a frontend exists. Backend testing is covered by the universal
|
|
36
36
|
# test-driven-development core skill.
|
|
37
|
-
|
|
37
|
+
#
|
|
38
|
+
# The library-specific patterns below follow the same rule: a project with no React frontend
|
|
39
|
+
# has no use for Zustand or TanStack Query docs, so they are gated here rather than named by a
|
|
40
|
+
# profile. This is what keeps the profiles stack-agnostic while the skills stay concrete.
|
|
41
|
+
skills:
|
|
42
|
+
- frontend-ui-engineering
|
|
43
|
+
- component-design
|
|
44
|
+
- ui-ux-design
|
|
45
|
+
- unit-test
|
|
46
|
+
- api-integration
|
|
47
|
+
- manual-test
|
|
48
|
+
- frontend-repo-architecture
|
|
49
|
+
- design-system-ops
|
|
50
|
+
- radix-tailwind-component-patterns
|
|
51
|
+
- react-hook-form-zod-patterns
|
|
52
|
+
- tanstack-react-query-patterns
|
|
53
|
+
- vitest-rtl-msw-patterns
|
|
54
|
+
- zustand-state-patterns
|
|
55
|
+
- dockerfile-frontend
|
|
38
56
|
stack_dir: frontend/react
|
|
39
57
|
commands:
|
|
40
58
|
install: "npm install"
|
|
@@ -71,7 +89,20 @@ backend:
|
|
|
71
89
|
label: "FastAPI"
|
|
72
90
|
overlay_rules: [fastapi-patterns.md]
|
|
73
91
|
overlay_agents: []
|
|
74
|
-
skills:
|
|
92
|
+
# Python/FastAPI-specific skills are gated here, not named by a profile: a Go or Node
|
|
93
|
+
# project has no use for Alembic migrations or Pydantic schema patterns, and shipping
|
|
94
|
+
# them anyway is what made `skills: all` install ~55k lines of irrelevant content.
|
|
95
|
+
skills:
|
|
96
|
+
- api-and-interface-design
|
|
97
|
+
- backend-repo-architecture
|
|
98
|
+
- fastapi-service-patterns
|
|
99
|
+
- pydantic-schema-patterns
|
|
100
|
+
- python-dao-and-database
|
|
101
|
+
- alembic-migrations
|
|
102
|
+
- async-python-patterns
|
|
103
|
+
- configargparse-yaml-env-layering
|
|
104
|
+
- testing-conventions
|
|
105
|
+
- dockerfile-backend
|
|
75
106
|
stack_dir: backend/python/fastapi
|
|
76
107
|
commands:
|
|
77
108
|
install: "pip install -e '.[dev]'"
|
|
@@ -91,6 +122,7 @@ backend:
|
|
|
91
122
|
express:
|
|
92
123
|
label: "Express"
|
|
93
124
|
status: planned
|
|
125
|
+
skills: [backend-repo-architecture, node-express-service, node-objection-knex, dockerfile-backend]
|
|
94
126
|
stack_dir: backend/node/express
|
|
95
127
|
go:
|
|
96
128
|
label: "Go"
|
|
@@ -100,7 +132,7 @@ backend:
|
|
|
100
132
|
label: "net/http (stdlib)"
|
|
101
133
|
overlay_rules: [go-patterns.md]
|
|
102
134
|
overlay_agents: []
|
|
103
|
-
skills: [api-and-interface-design]
|
|
135
|
+
skills: [api-and-interface-design, backend-repo-architecture, dockerfile-backend]
|
|
104
136
|
stack_dir: backend/go/net-http
|
|
105
137
|
commands:
|
|
106
138
|
install: "go mod download"
|
|
@@ -62,7 +62,22 @@ Measured on a `react + fastapi + postgres` project with `--scope individual`:
|
|
|
62
62
|
|
|
63
63
|
## Finding: Enterprise Over-Install of Stack-Collection Skills
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
> **Status: resolved.** `skills: all` is gone. The enterprise profile now enumerates its skills, and
|
|
66
|
+
> the stack-flavored ones are gated through `catalog/stacks.yaml`'s `skills:` union — the
|
|
67
|
+
> "stack-aware skill filter" this audit recommended below, built on the mechanism the react and
|
|
68
|
+
> fastapi stacks already used rather than a new `stack-relevant` token. Measured after the change:
|
|
69
|
+
>
|
|
70
|
+
> | selection | skills | on-disk |
|
|
71
|
+
> |---|---|---|
|
|
72
|
+
> | enterprise, react + fastapi + postgres | 113 | ~5.6 MB |
|
|
73
|
+
> | enterprise, Go, no frontend, no database | 92 | ~4.6 MB |
|
|
74
|
+
>
|
|
75
|
+
> The Go project no longer receives React, FastAPI, Alembic, Pydantic, Zustand or TanStack content
|
|
76
|
+
> — 0 stack-irrelevant skills, down from 32. `tests/test_skill_relevance.py` pins this, including a
|
|
77
|
+
> guard that no profile may reintroduce `skills: all`. The rest of this section is the original
|
|
78
|
+
> finding, kept as the record of why the change was made.
|
|
79
|
+
|
|
80
|
+
The enterprise profile used `skills: all` in `catalog/profiles.yaml`, which installed **every skill in the payload** — including all 51 stack-collection skills, regardless of whether the project selected those stacks.
|
|
66
81
|
|
|
67
82
|
**Impact:**
|
|
68
83
|
|
|
@@ -107,7 +122,7 @@ The following skills are candidates for **review** (not deletion). They plausibl
|
|
|
107
122
|
|
|
108
123
|
## Recommendations
|
|
109
124
|
|
|
110
|
-
### Default (this audit
|
|
125
|
+
### Default (this audit took) — since superseded
|
|
111
126
|
|
|
112
127
|
**Leave `catalog/profiles.yaml` as-is and document the trade-off.**
|
|
113
128
|
|
|
@@ -115,6 +130,14 @@ The following skills are candidates for **review** (not deletion). They plausibl
|
|
|
115
130
|
- The on-demand activation model bounds the context cost of the extra files.
|
|
116
131
|
- Document the enterprise skill footprint in the profile description so the trade-off is visible before a user picks it.
|
|
117
132
|
|
|
133
|
+
> **Superseded.** Option 1 below ("stack-aware skill filter") was implemented instead, in the form
|
|
134
|
+
> the constraints already allowed: no new `stack-relevant` token and no resolver change — the
|
|
135
|
+
> stack-flavored skills simply moved into the `skills:` unions in `catalog/stacks.yaml` that the
|
|
136
|
+
> react and fastapi entries were already using, and enterprise enumerates the rest. The
|
|
137
|
+
> "deliberate choice for multi-stack orgs" argument did not survive contact with the numbers: the
|
|
138
|
+
> cost fell on every *single*-stack enterprise user, which is most of them, and a multi-stack org
|
|
139
|
+
> can still name any skill it wants in a profile.
|
|
140
|
+
|
|
118
141
|
### Optional (recommend evaluating, not implemented here)
|
|
119
142
|
|
|
120
143
|
**Evaluate a config-level opt-in that installs only stack-relevant collection skills.**
|
|
@@ -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.79.0"
|
|
8
8
|
description = "Evidence-gated SDLC for Claude Code, installed as 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 with a tamper-evident gate ledger, working memory, and a self-improving learnings loop."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -215,7 +215,11 @@ def init(
|
|
|
215
215
|
force: bool = typer.Option(
|
|
216
216
|
False,
|
|
217
217
|
"--force",
|
|
218
|
-
help=
|
|
218
|
+
help=(
|
|
219
|
+
"overwrite mode: replace CLAUDE.md / settings.json / .mcp.json and rebuild the "
|
|
220
|
+
"kit-owned trees (rules/, skills/, templates/). Your own files in those trees are "
|
|
221
|
+
"moved to .claude-kit.bak-N/, not deleted. Omit --force to merge instead."
|
|
222
|
+
),
|
|
219
223
|
),
|
|
220
224
|
dry_run: bool = typer.Option(
|
|
221
225
|
False,
|
|
@@ -9,6 +9,7 @@ documentation rule and keeps ``init-options.json`` round-trippable for ``validat
|
|
|
9
9
|
from __future__ import annotations
|
|
10
10
|
|
|
11
11
|
from dataclasses import asdict, dataclass, field
|
|
12
|
+
from pathlib import PurePosixPath
|
|
12
13
|
from typing import Any
|
|
13
14
|
|
|
14
15
|
#: Schema version of the persisted ``.claude/config/init-options.json`` document.
|
|
@@ -194,12 +195,56 @@ class ResolvedPlan:
|
|
|
194
195
|
detected_commands: dict[str, str] | None = None
|
|
195
196
|
|
|
196
197
|
|
|
198
|
+
def contained_relpath(raw: str) -> str:
|
|
199
|
+
"""Validate ``raw`` as a project-relative POSIX path and return it normalised.
|
|
200
|
+
|
|
201
|
+
``init-options.json`` lives inside the project being upgraded, so its ``files[].path`` entries
|
|
202
|
+
are untrusted input: :mod:`claude_kit.upgrader` joins them onto the project root and then
|
|
203
|
+
copies, overwrites, and *unlinks* the result. A path that escapes the root (``../../id_rsa``)
|
|
204
|
+
or is absolute (``/etc/passwd``) would let a hand-edited — or hostile — manifest reach files
|
|
205
|
+
outside the project. Rejecting them here means every consumer (``validate``, ``diff``,
|
|
206
|
+
``upgrade``, ``doctor``) inherits the guarantee from one place, at parse time, before any
|
|
207
|
+
filesystem call. ``_read_init_options`` already renders the resulting :class:`ValueError` as a
|
|
208
|
+
``corrupt: <detail>`` manifest, which is the correct signal.
|
|
209
|
+
|
|
210
|
+
Backslashes are normalised to ``/`` first so a Windows-style ``..\\..\\x`` cannot slip past a
|
|
211
|
+
POSIX-only segment check and then be re-interpreted as a separator by ``pathlib`` on Windows.
|
|
212
|
+
|
|
213
|
+
Args:
|
|
214
|
+
raw: The candidate path string as read from the manifest.
|
|
215
|
+
|
|
216
|
+
Returns:
|
|
217
|
+
The path in normalised POSIX form.
|
|
218
|
+
|
|
219
|
+
Raises:
|
|
220
|
+
ValueError: If the path is empty, absolute, drive-qualified, or contains a ``..`` segment.
|
|
221
|
+
"""
|
|
222
|
+
text = str(raw).replace("\\", "/").strip()
|
|
223
|
+
if not text:
|
|
224
|
+
raise ValueError("file record has an empty path")
|
|
225
|
+
pure = PurePosixPath(text)
|
|
226
|
+
if pure.is_absolute() or text.startswith("/"):
|
|
227
|
+
raise ValueError(
|
|
228
|
+
f"file record path must be project-relative, got absolute {raw!r}"
|
|
229
|
+
)
|
|
230
|
+
if len(text) > 1 and text[1] == ":":
|
|
231
|
+
raise ValueError(
|
|
232
|
+
f"file record path must be project-relative, got drive-qualified {raw!r}"
|
|
233
|
+
)
|
|
234
|
+
if ".." in pure.parts:
|
|
235
|
+
raise ValueError(f"file record path escapes the project root: {raw!r}")
|
|
236
|
+
return pure.as_posix()
|
|
237
|
+
|
|
238
|
+
|
|
197
239
|
@dataclass
|
|
198
240
|
class FileRecord:
|
|
199
241
|
"""A single installed file tracked in ``init-options.json`` for safe upgrades.
|
|
200
242
|
|
|
243
|
+
The ``path`` is validated on construction by :func:`contained_relpath` — it must stay inside
|
|
244
|
+
the project root, because the upgrader resolves it against that root and may delete the result.
|
|
245
|
+
|
|
201
246
|
Attributes:
|
|
202
|
-
path: Path relative to the project root (POSIX separators).
|
|
247
|
+
path: Path relative to the project root (POSIX separators, no ``..``).
|
|
203
248
|
sha256: Hex SHA-256 of the file contents at install time.
|
|
204
249
|
owner: One of ``"kit"`` (refreshed on upgrade), ``"overlay"`` (follows the selection),
|
|
205
250
|
or ``"user-editable"`` (never clobbered).
|
|
@@ -209,6 +254,10 @@ class FileRecord:
|
|
|
209
254
|
sha256: str
|
|
210
255
|
owner: str
|
|
211
256
|
|
|
257
|
+
def __post_init__(self) -> None:
|
|
258
|
+
"""Normalise and containment-check :attr:`path`."""
|
|
259
|
+
self.path = contained_relpath(self.path)
|
|
260
|
+
|
|
212
261
|
def to_dict(self) -> dict[str, str]:
|
|
213
262
|
"""Return a JSON-serialisable mapping of this record."""
|
|
214
263
|
return asdict(self)
|