@arthai/agents 1.0.0
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.
- package/README.md +123 -0
- package/VERSION +1 -0
- package/agents/ai-consultant.md +999 -0
- package/agents/architect.md +174 -0
- package/agents/code-reviewer.md +115 -0
- package/agents/competitive-analyst.md +688 -0
- package/agents/content-strategist.md +607 -0
- package/agents/design-studio-create.md +304 -0
- package/agents/design-studio-critique.md +258 -0
- package/agents/design-studio-think.md +79 -0
- package/agents/domain-hunter.md +519 -0
- package/agents/explore-light.md +52 -0
- package/agents/frontend.md +261 -0
- package/agents/gtm-expert.md +811 -0
- package/agents/meeting-prep.md +318 -0
- package/agents/ops.md +149 -0
- package/agents/product-manager.md +563 -0
- package/agents/python-backend.md +286 -0
- package/agents/qa-baseline-updater.md +45 -0
- package/agents/qa-challenger.md +97 -0
- package/agents/qa-domain.md +145 -0
- package/agents/qa-e2e.md +184 -0
- package/agents/qa-test-promoter.md +97 -0
- package/agents/qa.md +226 -0
- package/agents/setup.md +134 -0
- package/agents/sre.md +165 -0
- package/agents/stakeholder-reporter.md +94 -0
- package/agents/user-researcher.md +602 -0
- package/bin/cli.js +322 -0
- package/bundles/canvas.json +16 -0
- package/bundles/compass.json +16 -0
- package/bundles/counsel.json +31 -0
- package/bundles/cruise.json +11 -0
- package/bundles/forge.json +26 -0
- package/bundles/prime.json +10 -0
- package/bundles/prism.json +23 -0
- package/bundles/scalpel.json +17 -0
- package/bundles/sentinel.json +19 -0
- package/bundles/shield.json +14 -0
- package/bundles/spark.json +19 -0
- package/compiler.sh +305 -0
- package/dist/plugins/canvas/.claude-plugin/plugin.json +6 -0
- package/dist/plugins/canvas/agents/design-studio-create.md +304 -0
- package/dist/plugins/canvas/agents/design-studio-critique.md +258 -0
- package/dist/plugins/canvas/agents/design-studio-think.md +79 -0
- package/dist/plugins/canvas/agents/frontend.md +261 -0
- package/dist/plugins/canvas/skills/planning/SKILL.md +436 -0
- package/dist/plugins/compass/.claude-plugin/plugin.json +6 -0
- package/dist/plugins/compass/agents/content-strategist.md +607 -0
- package/dist/plugins/compass/agents/gtm-expert.md +811 -0
- package/dist/plugins/compass/agents/product-manager.md +563 -0
- package/dist/plugins/compass/agents/user-researcher.md +602 -0
- package/dist/plugins/compass/skills/planning/SKILL.md +436 -0
- package/dist/plugins/counsel/.claude-plugin/plugin.json +6 -0
- package/dist/plugins/counsel/agents/ai-consultant.md +999 -0
- package/dist/plugins/counsel/agents/competitive-analyst.md +688 -0
- package/dist/plugins/counsel/agents/meeting-prep.md +318 -0
- package/dist/plugins/counsel/agents/stakeholder-reporter.md +94 -0
- package/dist/plugins/counsel/hooks/check-deliverable.sh +65 -0
- package/dist/plugins/counsel/hooks/ensure-client-dir.sh +59 -0
- package/dist/plugins/counsel/hooks/hooks.json +28 -0
- package/dist/plugins/counsel/skills/client-discovery/SKILL.md +266 -0
- package/dist/plugins/counsel/skills/consulting/SKILL.md +282 -0
- package/dist/plugins/counsel/skills/deliverable-builder/SKILL.md +928 -0
- package/dist/plugins/counsel/skills/engagement-tracker/SKILL.md +380 -0
- package/dist/plugins/counsel/skills/market-research/SKILL.md +300 -0
- package/dist/plugins/counsel/skills/opportunity-map/SKILL.md +307 -0
- package/dist/plugins/counsel/skills/pitch-generator/SKILL.md +378 -0
- package/dist/plugins/counsel/skills/roi-calculator/SKILL.md +469 -0
- package/dist/plugins/counsel/skills/share/SKILL.md +211 -0
- package/dist/plugins/counsel/skills/solution-architect/SKILL.md +566 -0
- package/dist/plugins/counsel/skills/templates/SKILL.md +194 -0
- package/dist/plugins/counsel/skills/welcome/SKILL.md +136 -0
- package/dist/plugins/counsel/skills/wizard/SKILL.md +411 -0
- package/dist/plugins/cruise/.claude-plugin/plugin.json +6 -0
- package/dist/plugins/cruise/skills/autopilot/SKILL.md +425 -0
- package/dist/plugins/forge/.claude-plugin/plugin.json +6 -0
- package/dist/plugins/forge/agents/architect.md +174 -0
- package/dist/plugins/forge/agents/code-reviewer.md +115 -0
- package/dist/plugins/forge/agents/frontend.md +261 -0
- package/dist/plugins/forge/agents/product-manager.md +563 -0
- package/dist/plugins/forge/agents/python-backend.md +286 -0
- package/dist/plugins/forge/agents/qa.md +226 -0
- package/dist/plugins/forge/hooks/hooks.json +28 -0
- package/dist/plugins/forge/hooks/post-test-summary.sh +115 -0
- package/dist/plugins/forge/hooks/triage-router.sh +740 -0
- package/dist/plugins/forge/skills/implement/SKILL.md +532 -0
- package/dist/plugins/forge/skills/planning/SKILL.md +436 -0
- package/dist/plugins/forge/skills/pr/SKILL.md +275 -0
- package/dist/plugins/forge/skills/precheck/SKILL.md +159 -0
- package/dist/plugins/forge/skills/qa/SKILL.md +127 -0
- package/dist/plugins/forge/skills/review-pr/SKILL.md +367 -0
- package/dist/plugins/prime/.claude-plugin/plugin.json +6 -0
- package/dist/plugins/prime/agents/ai-consultant.md +999 -0
- package/dist/plugins/prime/agents/architect.md +174 -0
- package/dist/plugins/prime/agents/code-reviewer.md +115 -0
- package/dist/plugins/prime/agents/competitive-analyst.md +688 -0
- package/dist/plugins/prime/agents/content-strategist.md +607 -0
- package/dist/plugins/prime/agents/design-studio-create.md +304 -0
- package/dist/plugins/prime/agents/design-studio-critique.md +258 -0
- package/dist/plugins/prime/agents/design-studio-think.md +79 -0
- package/dist/plugins/prime/agents/explore-light.md +52 -0
- package/dist/plugins/prime/agents/frontend.md +261 -0
- package/dist/plugins/prime/agents/gtm-expert.md +811 -0
- package/dist/plugins/prime/agents/meeting-prep.md +318 -0
- package/dist/plugins/prime/agents/ops.md +149 -0
- package/dist/plugins/prime/agents/product-manager.md +563 -0
- package/dist/plugins/prime/agents/python-backend.md +286 -0
- package/dist/plugins/prime/agents/qa-baseline-updater.md +45 -0
- package/dist/plugins/prime/agents/qa-challenger.md +97 -0
- package/dist/plugins/prime/agents/qa-domain.md +145 -0
- package/dist/plugins/prime/agents/qa-e2e.md +184 -0
- package/dist/plugins/prime/agents/qa-test-promoter.md +97 -0
- package/dist/plugins/prime/agents/qa.md +226 -0
- package/dist/plugins/prime/agents/setup.md +134 -0
- package/dist/plugins/prime/agents/sre.md +165 -0
- package/dist/plugins/prime/agents/stakeholder-reporter.md +94 -0
- package/dist/plugins/prime/agents/user-researcher.md +602 -0
- package/dist/plugins/prime/hooks/check-deliverable.sh +65 -0
- package/dist/plugins/prime/hooks/ensure-client-dir.sh +59 -0
- package/dist/plugins/prime/hooks/hooks.json +184 -0
- package/dist/plugins/prime/hooks/post-deploy-health.sh +83 -0
- package/dist/plugins/prime/hooks/post-diff-test-compare.sh +125 -0
- package/dist/plugins/prime/hooks/post-edit-lint.sh +92 -0
- package/dist/plugins/prime/hooks/post-git-state.sh +54 -0
- package/dist/plugins/prime/hooks/post-merge-cleanup.sh +101 -0
- package/dist/plugins/prime/hooks/post-test-summary.sh +115 -0
- package/dist/plugins/prime/hooks/pre-bash-guard.sh +142 -0
- package/dist/plugins/prime/hooks/pre-edit-guard.sh +121 -0
- package/dist/plugins/prime/hooks/pre-task-context.sh +113 -0
- package/dist/plugins/prime/hooks/session-bootstrap.sh +379 -0
- package/dist/plugins/prime/hooks/session-end.sh +107 -0
- package/dist/plugins/prime/hooks/session-summary.sh +97 -0
- package/dist/plugins/prime/hooks/sync-agents.sh +269 -0
- package/dist/plugins/prime/hooks/triage-router.sh +740 -0
- package/dist/plugins/prime/skills/arth/SKILL.md +165 -0
- package/dist/plugins/prime/skills/autopilot/SKILL.md +425 -0
- package/dist/plugins/prime/skills/calibrate/SKILL.md +1807 -0
- package/dist/plugins/prime/skills/ci-fix/SKILL.md +293 -0
- package/dist/plugins/prime/skills/client-discovery/SKILL.md +266 -0
- package/dist/plugins/prime/skills/consulting/SKILL.md +282 -0
- package/dist/plugins/prime/skills/custom-domain/SKILL.md +261 -0
- package/dist/plugins/prime/skills/deliverable-builder/SKILL.md +928 -0
- package/dist/plugins/prime/skills/discord-ops/SKILL.md +125 -0
- package/dist/plugins/prime/skills/engagement-tracker/SKILL.md +380 -0
- package/dist/plugins/prime/skills/explore.md +43 -0
- package/dist/plugins/prime/skills/fix/SKILL.md +1058 -0
- package/dist/plugins/prime/skills/implement/SKILL.md +532 -0
- package/dist/plugins/prime/skills/incident/SKILL.md +910 -0
- package/dist/plugins/prime/skills/issue/SKILL.md +134 -0
- package/dist/plugins/prime/skills/market-research/SKILL.md +300 -0
- package/dist/plugins/prime/skills/onboard/SKILL.md +344 -0
- package/dist/plugins/prime/skills/opportunity-map/SKILL.md +307 -0
- package/dist/plugins/prime/skills/pitch-generator/SKILL.md +378 -0
- package/dist/plugins/prime/skills/planning/SKILL.md +436 -0
- package/dist/plugins/prime/skills/pr/SKILL.md +275 -0
- package/dist/plugins/prime/skills/precheck/SKILL.md +159 -0
- package/dist/plugins/prime/skills/qa/SKILL.md +127 -0
- package/dist/plugins/prime/skills/qa-incident/SKILL.md +54 -0
- package/dist/plugins/prime/skills/qa-learn/SKILL.md +47 -0
- package/dist/plugins/prime/skills/restart/SKILL.md +70 -0
- package/dist/plugins/prime/skills/review-pr/SKILL.md +367 -0
- package/dist/plugins/prime/skills/roi-calculator/SKILL.md +469 -0
- package/dist/plugins/prime/skills/scan/SKILL.md +232 -0
- package/dist/plugins/prime/skills/setup/SKILL.md +691 -0
- package/dist/plugins/prime/skills/share/SKILL.md +211 -0
- package/dist/plugins/prime/skills/solution-architect/SKILL.md +566 -0
- package/dist/plugins/prime/skills/sre/SKILL.md +362 -0
- package/dist/plugins/prime/skills/sync/SKILL.md +188 -0
- package/dist/plugins/prime/skills/templates/SKILL.md +194 -0
- package/dist/plugins/prime/skills/welcome/SKILL.md +136 -0
- package/dist/plugins/prime/skills/wizard/SKILL.md +411 -0
- package/dist/plugins/prism/.claude-plugin/plugin.json +6 -0
- package/dist/plugins/prism/agents/qa-baseline-updater.md +45 -0
- package/dist/plugins/prism/agents/qa-challenger.md +97 -0
- package/dist/plugins/prism/agents/qa-domain.md +145 -0
- package/dist/plugins/prism/agents/qa-e2e.md +184 -0
- package/dist/plugins/prism/agents/qa-test-promoter.md +97 -0
- package/dist/plugins/prism/agents/qa.md +226 -0
- package/dist/plugins/prism/hooks/hooks.json +26 -0
- package/dist/plugins/prism/hooks/post-diff-test-compare.sh +125 -0
- package/dist/plugins/prism/hooks/post-test-summary.sh +115 -0
- package/dist/plugins/prism/skills/qa/SKILL.md +127 -0
- package/dist/plugins/prism/skills/qa-incident/SKILL.md +54 -0
- package/dist/plugins/prism/skills/qa-learn/SKILL.md +47 -0
- package/dist/plugins/scalpel/.claude-plugin/plugin.json +6 -0
- package/dist/plugins/scalpel/agents/code-reviewer.md +115 -0
- package/dist/plugins/scalpel/hooks/hooks.json +26 -0
- package/dist/plugins/scalpel/hooks/pre-edit-guard.sh +121 -0
- package/dist/plugins/scalpel/skills/ci-fix/SKILL.md +293 -0
- package/dist/plugins/scalpel/skills/fix/SKILL.md +1058 -0
- package/dist/plugins/scalpel/skills/issue/SKILL.md +134 -0
- package/dist/plugins/sentinel/.claude-plugin/plugin.json +6 -0
- package/dist/plugins/sentinel/agents/ops.md +149 -0
- package/dist/plugins/sentinel/agents/sre.md +165 -0
- package/dist/plugins/sentinel/hooks/hooks.json +26 -0
- package/dist/plugins/sentinel/hooks/post-deploy-health.sh +83 -0
- package/dist/plugins/sentinel/hooks/post-git-state.sh +54 -0
- package/dist/plugins/sentinel/skills/incident/SKILL.md +910 -0
- package/dist/plugins/sentinel/skills/restart/SKILL.md +70 -0
- package/dist/plugins/sentinel/skills/sre/SKILL.md +362 -0
- package/dist/plugins/shield/.claude-plugin/plugin.json +6 -0
- package/dist/plugins/shield/hooks/hooks.json +60 -0
- package/dist/plugins/shield/hooks/pre-bash-guard.sh +142 -0
- package/dist/plugins/shield/hooks/pre-edit-guard.sh +121 -0
- package/dist/plugins/shield/hooks/session-bootstrap.sh +379 -0
- package/dist/plugins/shield/hooks/triage-router.sh +740 -0
- package/dist/plugins/spark/.claude-plugin/plugin.json +6 -0
- package/dist/plugins/spark/agents/explore-light.md +52 -0
- package/dist/plugins/spark/agents/setup.md +134 -0
- package/dist/plugins/spark/hooks/hooks.json +16 -0
- package/dist/plugins/spark/hooks/session-bootstrap.sh +379 -0
- package/dist/plugins/spark/skills/calibrate/SKILL.md +1807 -0
- package/dist/plugins/spark/skills/onboard/SKILL.md +344 -0
- package/dist/plugins/spark/skills/scan/SKILL.md +232 -0
- package/dist/plugins/spark/skills/setup/SKILL.md +691 -0
- package/hook-defs.json +104 -0
- package/hooks/check-deliverable.sh +65 -0
- package/hooks/ensure-client-dir.sh +59 -0
- package/hooks/hooks.json +16 -0
- package/hooks/post-deploy-health.sh +83 -0
- package/hooks/post-diff-test-compare.sh +125 -0
- package/hooks/post-edit-lint.sh +92 -0
- package/hooks/post-git-state.sh +54 -0
- package/hooks/post-merge-cleanup.sh +101 -0
- package/hooks/post-test-summary.sh +115 -0
- package/hooks/pre-bash-guard.sh +142 -0
- package/hooks/pre-edit-guard.sh +121 -0
- package/hooks/pre-task-context.sh +113 -0
- package/hooks/session-bootstrap.sh +379 -0
- package/hooks/session-end.sh +107 -0
- package/hooks/session-start.sh +46 -0
- package/hooks/session-summary.sh +97 -0
- package/hooks/sync-agents.sh +269 -0
- package/hooks/triage-router.sh +740 -0
- package/install.sh +3185 -0
- package/package.json +40 -0
- package/portable.manifest +112 -0
- package/skills/arth/SKILL.md +165 -0
- package/skills/autopilot/SKILL.md +425 -0
- package/skills/calibrate/SKILL.md +1807 -0
- package/skills/ci-fix/SKILL.md +293 -0
- package/skills/client-discovery/SKILL.md +266 -0
- package/skills/consulting/SKILL.md +282 -0
- package/skills/continue/SKILL.md +174 -0
- package/skills/custom-domain/SKILL.md +261 -0
- package/skills/deliverable-builder/SKILL.md +928 -0
- package/skills/discord-ops/SKILL.md +125 -0
- package/skills/engagement-tracker/SKILL.md +380 -0
- package/skills/explore.md +43 -0
- package/skills/fix/SKILL.md +1058 -0
- package/skills/implement/SKILL.md +532 -0
- package/skills/incident/SKILL.md +910 -0
- package/skills/issue/SKILL.md +134 -0
- package/skills/market-research/SKILL.md +300 -0
- package/skills/onboard/SKILL.md +344 -0
- package/skills/opportunity-map/SKILL.md +307 -0
- package/skills/pitch-generator/SKILL.md +378 -0
- package/skills/planning/SKILL.md +436 -0
- package/skills/pr/SKILL.md +275 -0
- package/skills/precheck/SKILL.md +159 -0
- package/skills/qa/SKILL.md +127 -0
- package/skills/qa-incident/SKILL.md +54 -0
- package/skills/qa-learn/SKILL.md +47 -0
- package/skills/railway/central-station/SKILL.md +226 -0
- package/skills/railway/central-station/references/environment-config.md +183 -0
- package/skills/railway/central-station/references/monorepo.md +216 -0
- package/skills/railway/central-station/references/railpack.md +257 -0
- package/skills/railway/central-station/references/variables.md +170 -0
- package/skills/railway/database/SKILL.md +284 -0
- package/skills/railway/database/references/environment-config.md +183 -0
- package/skills/railway/database/references/monorepo.md +216 -0
- package/skills/railway/database/references/railpack.md +257 -0
- package/skills/railway/database/references/variables.md +170 -0
- package/skills/railway/database/scripts/railway-api.sh +41 -0
- package/skills/railway/deploy/SKILL.md +128 -0
- package/skills/railway/deploy/references/environment-config.md +183 -0
- package/skills/railway/deploy/references/monorepo.md +216 -0
- package/skills/railway/deploy/references/railpack.md +257 -0
- package/skills/railway/deploy/references/variables.md +170 -0
- package/skills/railway/deployment/SKILL.md +222 -0
- package/skills/railway/deployment/references/environment-config.md +183 -0
- package/skills/railway/deployment/references/monorepo.md +216 -0
- package/skills/railway/deployment/references/railpack.md +257 -0
- package/skills/railway/deployment/references/variables.md +170 -0
- package/skills/railway/domain/SKILL.md +137 -0
- package/skills/railway/domain/references/environment-config.md +183 -0
- package/skills/railway/domain/references/monorepo.md +216 -0
- package/skills/railway/domain/references/railpack.md +257 -0
- package/skills/railway/domain/references/variables.md +170 -0
- package/skills/railway/environment/SKILL.md +266 -0
- package/skills/railway/environment/references/environment-config.md +183 -0
- package/skills/railway/environment/references/monorepo.md +216 -0
- package/skills/railway/environment/references/railpack.md +257 -0
- package/skills/railway/environment/references/variables.md +170 -0
- package/skills/railway/metrics/SKILL.md +211 -0
- package/skills/railway/metrics/references/environment-config.md +183 -0
- package/skills/railway/metrics/references/monorepo.md +216 -0
- package/skills/railway/metrics/references/railpack.md +257 -0
- package/skills/railway/metrics/references/variables.md +170 -0
- package/skills/railway/metrics/scripts/railway-api.sh +41 -0
- package/skills/railway/new/SKILL.md +489 -0
- package/skills/railway/new/references/environment-config.md +183 -0
- package/skills/railway/new/references/monorepo.md +216 -0
- package/skills/railway/new/references/railpack.md +257 -0
- package/skills/railway/new/references/variables.md +170 -0
- package/skills/railway/projects/SKILL.md +142 -0
- package/skills/railway/projects/references/environment-config.md +183 -0
- package/skills/railway/projects/references/monorepo.md +216 -0
- package/skills/railway/projects/references/railpack.md +257 -0
- package/skills/railway/projects/references/variables.md +170 -0
- package/skills/railway/projects/scripts/railway-api.sh +41 -0
- package/skills/railway/railway-docs/SKILL.md +47 -0
- package/skills/railway/railway-docs/references/environment-config.md +183 -0
- package/skills/railway/railway-docs/references/monorepo.md +216 -0
- package/skills/railway/railway-docs/references/railpack.md +257 -0
- package/skills/railway/railway-docs/references/variables.md +170 -0
- package/skills/railway/service/SKILL.md +249 -0
- package/skills/railway/service/references/environment-config.md +183 -0
- package/skills/railway/service/references/monorepo.md +216 -0
- package/skills/railway/service/references/railpack.md +257 -0
- package/skills/railway/service/references/variables.md +170 -0
- package/skills/railway/service/scripts/railway-api.sh +41 -0
- package/skills/railway/status/SKILL.md +91 -0
- package/skills/railway/status/references/environment-config.md +183 -0
- package/skills/railway/status/references/monorepo.md +216 -0
- package/skills/railway/status/references/railpack.md +257 -0
- package/skills/railway/status/references/variables.md +170 -0
- package/skills/railway/templates/SKILL.md +275 -0
- package/skills/railway/templates/references/environment-config.md +183 -0
- package/skills/railway/templates/references/monorepo.md +216 -0
- package/skills/railway/templates/references/railpack.md +257 -0
- package/skills/railway/templates/references/variables.md +170 -0
- package/skills/railway/templates/scripts/railway-api.sh +41 -0
- package/skills/restart/SKILL.md +70 -0
- package/skills/review-pr/SKILL.md +367 -0
- package/skills/roi-calculator/SKILL.md +469 -0
- package/skills/scan/SKILL.md +232 -0
- package/skills/setup/SKILL.md +691 -0
- package/skills/share/SKILL.md +211 -0
- package/skills/solution-architect/SKILL.md +566 -0
- package/skills/sre/SKILL.md +362 -0
- package/skills/superpowers/brainstorming/SKILL.md +96 -0
- package/skills/superpowers/dispatching-parallel-agents/SKILL.md +180 -0
- package/skills/superpowers/executing-plans/SKILL.md +84 -0
- package/skills/superpowers/finishing-a-development-branch/SKILL.md +200 -0
- package/skills/superpowers/receiving-code-review/SKILL.md +213 -0
- package/skills/superpowers/requesting-code-review/SKILL.md +105 -0
- package/skills/superpowers/requesting-code-review/code-reviewer.md +146 -0
- package/skills/superpowers/subagent-driven-development/SKILL.md +242 -0
- package/skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
- package/skills/superpowers/subagent-driven-development/implementer-prompt.md +78 -0
- package/skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/skills/superpowers/systematic-debugging/CREATION-LOG.md +119 -0
- package/skills/superpowers/systematic-debugging/SKILL.md +296 -0
- package/skills/superpowers/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/skills/superpowers/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/superpowers/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/superpowers/systematic-debugging/find-polluter.sh +63 -0
- package/skills/superpowers/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/superpowers/systematic-debugging/test-academic.md +14 -0
- package/skills/superpowers/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/superpowers/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/superpowers/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/superpowers/test-driven-development/SKILL.md +371 -0
- package/skills/superpowers/test-driven-development/testing-anti-patterns.md +299 -0
- package/skills/superpowers/using-git-worktrees/SKILL.md +218 -0
- package/skills/superpowers/using-superpowers/SKILL.md +95 -0
- package/skills/superpowers/verification-before-completion/SKILL.md +139 -0
- package/skills/superpowers/writing-plans/SKILL.md +116 -0
- package/skills/superpowers/writing-skills/SKILL.md +655 -0
- package/skills/superpowers/writing-skills/anthropic-best-practices.md +1150 -0
- package/skills/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/superpowers/writing-skills/graphviz-conventions.dot +172 -0
- package/skills/superpowers/writing-skills/persuasion-principles.md +187 -0
- package/skills/superpowers/writing-skills/render-graphs.js +168 -0
- package/skills/superpowers/writing-skills/testing-skills-with-subagents.md +384 -0
- package/skills/sync/SKILL.md +188 -0
- package/skills/templates/SKILL.md +194 -0
- package/skills/welcome/SKILL.md +136 -0
- package/skills/wizard/SKILL.md +411 -0
- package/templates/CLAUDE.md.managed-block +123 -0
- package/templates/CLAUDE.md.template +111 -0
- package/templates/consulting/engagement-tracker-template.md +181 -0
- package/templates/consulting/executive-summary-template.md +83 -0
- package/templates/consulting/maturity-assessment-template.md +182 -0
- package/templates/consulting/proposal-template.md +209 -0
- package/templates/consulting/roi-model-template.md +139 -0
- package/templates/consulting/solution-architecture-template.md +313 -0
- package/templates/settings.json +130 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# PreToolUse hook (Edit, Write): Warn on edits to protected files.
|
|
3
|
+
# Does NOT block — only injects warnings so Claude thinks twice.
|
|
4
|
+
#
|
|
5
|
+
# stdout is injected as context. Exit 0 always (warnings only).
|
|
6
|
+
|
|
7
|
+
set -euo pipefail
|
|
8
|
+
|
|
9
|
+
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
|
|
10
|
+
|
|
11
|
+
# Extract file path from tool input
|
|
12
|
+
FILE_PATH="${CLAUDE_TOOL_INPUT_FILE_PATH:-}"
|
|
13
|
+
if [ -z "$FILE_PATH" ] && [ -n "${CLAUDE_TOOL_INPUT:-}" ]; then
|
|
14
|
+
FILE_PATH=$(echo "$CLAUDE_TOOL_INPUT" | python3 -c "import json,sys; print(json.load(sys.stdin).get('file_path',''))" 2>/dev/null) || true
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
[ -z "$FILE_PATH" ] && exit 0
|
|
18
|
+
|
|
19
|
+
# Get just the filename and relative path
|
|
20
|
+
filename=$(basename "$FILE_PATH")
|
|
21
|
+
rel_path="${FILE_PATH#$PROJECT_DIR/}"
|
|
22
|
+
|
|
23
|
+
# ---------------------------------------------------------------------------
|
|
24
|
+
# Bug fix scope lock enforcement
|
|
25
|
+
# ---------------------------------------------------------------------------
|
|
26
|
+
# If /fix created a scope lock, enforce Fix Zone / Frozen Zone boundaries.
|
|
27
|
+
# Files in the Fix Zone are allowed. Watch Zone files get a warning.
|
|
28
|
+
# Frozen Zone files get a strong warning (not a hard block — hook can only warn).
|
|
29
|
+
|
|
30
|
+
SCOPE_LOCK="$PROJECT_DIR/.claude/.fix-scope-lock.json"
|
|
31
|
+
if [ -f "$SCOPE_LOCK" ]; then
|
|
32
|
+
# Check if the file being edited is in the fix zone
|
|
33
|
+
IN_FIX_ZONE=false
|
|
34
|
+
IN_WATCH_ZONE=false
|
|
35
|
+
|
|
36
|
+
FIX_ZONE=$(python3 -c "import json; print('\n'.join(json.load(open('$SCOPE_LOCK')).get('fix_zone',[])))" 2>/dev/null) || true
|
|
37
|
+
WATCH_ZONE=$(python3 -c "import json; print('\n'.join(json.load(open('$SCOPE_LOCK')).get('watch_zone',[])))" 2>/dev/null) || true
|
|
38
|
+
FROZEN_PATTERNS=$(python3 -c "import json; print('\n'.join(json.load(open('$SCOPE_LOCK')).get('frozen_zone_patterns',[])))" 2>/dev/null) || true
|
|
39
|
+
|
|
40
|
+
# Check fix zone
|
|
41
|
+
if [ -n "$FIX_ZONE" ]; then
|
|
42
|
+
echo "$FIX_ZONE" | while read zone_file; do
|
|
43
|
+
if [ "$rel_path" = "$zone_file" ] || echo "$rel_path" | grep -q "^$zone_file"; then
|
|
44
|
+
IN_FIX_ZONE=true
|
|
45
|
+
fi
|
|
46
|
+
done
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
# Check watch zone
|
|
50
|
+
if ! $IN_FIX_ZONE && [ -n "$WATCH_ZONE" ]; then
|
|
51
|
+
echo "$WATCH_ZONE" | while read zone_file; do
|
|
52
|
+
if [ "$rel_path" = "$zone_file" ] || echo "$rel_path" | grep -q "^$zone_file"; then
|
|
53
|
+
IN_WATCH_ZONE=true
|
|
54
|
+
fi
|
|
55
|
+
done
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
if $IN_FIX_ZONE; then
|
|
59
|
+
: # Allowed — in Fix Zone
|
|
60
|
+
elif $IN_WATCH_ZONE; then
|
|
61
|
+
echo "⚠️ SCOPE WARNING: ${rel_path} is in the WATCH ZONE for the current bug fix."
|
|
62
|
+
echo "This file is related to the fix but was not expected to need changes."
|
|
63
|
+
echo "Explain WHY this file needs modification before proceeding."
|
|
64
|
+
elif ! $IN_FIX_ZONE && ! $IN_WATCH_ZONE; then
|
|
65
|
+
BUG_DESC=$(python3 -c "import json; print(json.load(open('$SCOPE_LOCK')).get('bug','unknown'))" 2>/dev/null) || true
|
|
66
|
+
echo "🛑 SCOPE VIOLATION: ${rel_path} is in the FROZEN ZONE."
|
|
67
|
+
echo "Bug fix scope: ${BUG_DESC}"
|
|
68
|
+
echo "This file is NOT part of the fix and should NOT be modified."
|
|
69
|
+
echo "If you must modify it, remove .claude/.fix-scope-lock.json first and explain why the scope expanded."
|
|
70
|
+
echo "DO NOT edit this file unless the user explicitly approves the scope change."
|
|
71
|
+
fi
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
# ---------------------------------------------------------------------------
|
|
75
|
+
# Protected file patterns
|
|
76
|
+
# ---------------------------------------------------------------------------
|
|
77
|
+
|
|
78
|
+
# Dependency lock files (modifications should be intentional)
|
|
79
|
+
case "$filename" in
|
|
80
|
+
requirements.txt)
|
|
81
|
+
echo "⚠️ Protected file: ${rel_path}"
|
|
82
|
+
echo "This file defines core dependencies. Removing packages can break the project."
|
|
83
|
+
echo "Only modify if explicitly asked by the user."
|
|
84
|
+
;;
|
|
85
|
+
package-lock.json|yarn.lock|pnpm-lock.yaml)
|
|
86
|
+
echo "⚠️ Lock file: ${rel_path}"
|
|
87
|
+
echo "Lock files should be modified via npm/yarn/pnpm install, not directly."
|
|
88
|
+
;;
|
|
89
|
+
Cargo.lock)
|
|
90
|
+
echo "⚠️ Lock file: ${rel_path}"
|
|
91
|
+
echo "Cargo.lock should be modified via cargo commands, not directly."
|
|
92
|
+
;;
|
|
93
|
+
esac
|
|
94
|
+
|
|
95
|
+
# Environment files (may contain secrets)
|
|
96
|
+
case "$filename" in
|
|
97
|
+
.env|.env.local|.env.production|.env.staging)
|
|
98
|
+
echo "⚠️ Environment file: ${rel_path}"
|
|
99
|
+
echo "May contain secrets. Never commit to git. Verify changes are intentional."
|
|
100
|
+
;;
|
|
101
|
+
esac
|
|
102
|
+
|
|
103
|
+
# Migration files (should not be auto-edited)
|
|
104
|
+
if echo "$rel_path" | grep -qE 'migrations/versions/|alembic/versions/|prisma/migrations/'; then
|
|
105
|
+
echo "⚠️ Migration file: ${rel_path}"
|
|
106
|
+
echo "Existing migrations should not be modified. Create a new migration instead."
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# CI/CD config files — match against rel_path for path-based patterns, filename for simple names
|
|
110
|
+
if echo "$rel_path" | grep -qE '\.github/workflows/|\.gitlab-ci\.yml|Jenkinsfile'; then
|
|
111
|
+
echo "ℹ️ Infrastructure file: ${rel_path}"
|
|
112
|
+
echo "Changes may affect CI/CD pipelines or deployments."
|
|
113
|
+
fi
|
|
114
|
+
case "$filename" in
|
|
115
|
+
Dockerfile|docker-compose.yml|docker-compose.yaml)
|
|
116
|
+
echo "ℹ️ Infrastructure file: ${rel_path}"
|
|
117
|
+
echo "Changes may affect container builds or service topology."
|
|
118
|
+
;;
|
|
119
|
+
esac
|
|
120
|
+
|
|
121
|
+
exit 0
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ci-fix
|
|
3
|
+
description: "Auto-remediate CI, staging, and production failures. 3-attempt retry with investigation. Discord alert on exhaustion. Usage: /ci-fix [ci|staging|prod] [branch]"
|
|
4
|
+
user-invocable: true
|
|
5
|
+
arguments: "<mode> <branch>"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /ci-fix — Unified Auto-Remediation
|
|
9
|
+
|
|
10
|
+
Automatically diagnose and fix CI failures, staging deploy failures, and production deploy failures. Retries up to 3 times. Alerts on Discord `#deployments` if all attempts fail.
|
|
11
|
+
|
|
12
|
+
## Project Context Discovery (Deep)
|
|
13
|
+
|
|
14
|
+
Before attempting any fix, understand the FULL CI/CD landscape.
|
|
15
|
+
|
|
16
|
+
### Step 1: Read existing context
|
|
17
|
+
|
|
18
|
+
Read in this order (skip gracefully if missing):
|
|
19
|
+
1. `CLAUDE.md` — Test Commands table, Infrastructure table
|
|
20
|
+
2. `.claude/project-profile.md` — CI platform, test frameworks (from /calibrate)
|
|
21
|
+
3. `.claude/knowledge/skills/ci-fix.md` — Past CI failures and patterns
|
|
22
|
+
4. `.claude/qa-knowledge/incidents/` — Past incidents from CI failures
|
|
23
|
+
5. `.claude/qa-knowledge/bug-patterns.md` — Known failure patterns
|
|
24
|
+
|
|
25
|
+
### Step 2: Detect CI platform
|
|
26
|
+
|
|
27
|
+
Don't assume GitHub Actions. Detect the actual CI system:
|
|
28
|
+
|
|
29
|
+
| Signal | CI Platform | How to get logs | How to check status | How to retry |
|
|
30
|
+
|--------|------------|----------------|--------------------|----|
|
|
31
|
+
| `.github/workflows/*.yml` | GitHub Actions | `gh run view <id> --log-failed` | `gh run list --branch <b>` | `gh run rerun <id>` |
|
|
32
|
+
| `.gitlab-ci.yml` | GitLab CI | `glab ci view --branch <b>` | `glab ci status` | `glab ci retry` |
|
|
33
|
+
| `Jenkinsfile` | Jenkins | Jenkins API: `/job/<name>/lastBuild/consoleText` | Jenkins API: `/job/<name>/lastBuild/api/json` | Jenkins API: `/job/<name>/build` |
|
|
34
|
+
| `.circleci/config.yml` | CircleCI | `circleci` CLI or API | `circleci` CLI | API trigger |
|
|
35
|
+
| `bitbucket-pipelines.yml` | Bitbucket Pipelines | Bitbucket API | Bitbucket API | API trigger |
|
|
36
|
+
| `.buildkite/pipeline.yml` | Buildkite | `buildkite-agent` or API | API | `bk build retry` |
|
|
37
|
+
| `azure-pipelines.yml` | Azure Pipelines | `az pipelines runs show` | `az pipelines runs list` | `az pipelines run` |
|
|
38
|
+
| `.travis.yml` | Travis CI | Travis API | Travis API | API trigger |
|
|
39
|
+
| `Taskfile.yml` + CI wrapper | Task-based | Depends on wrapper CI | Depends | Depends |
|
|
40
|
+
|
|
41
|
+
If MULTIPLE CI systems detected (e.g., GitHub Actions for CI + ArgoCD for deploy), document both.
|
|
42
|
+
|
|
43
|
+
### Step 3: Detect test infrastructure
|
|
44
|
+
|
|
45
|
+
Map the project's test stack so fixes target the right layer:
|
|
46
|
+
|
|
47
|
+
| Signal | Test Layer | Fix Strategy |
|
|
48
|
+
|--------|-----------|-------------|
|
|
49
|
+
| `pytest.ini` / `pyproject.toml [tool.pytest]` | Python unit/integration | Fix Python code, run `pytest` locally |
|
|
50
|
+
| `jest.config.*` / `vitest.config.*` | JS/TS unit tests | Fix JS/TS code, run `npm test` locally |
|
|
51
|
+
| `playwright.config.*` / `cypress.config.*` | E2E tests | May need running services, check docker-compose |
|
|
52
|
+
| `ruff.toml` / `.flake8` / `.eslintrc.*` | Linting | Auto-fix with `ruff check --fix` / `eslint --fix` |
|
|
53
|
+
| `mypy.ini` / `tsconfig.json` | Type checking | Fix type annotations |
|
|
54
|
+
| `Dockerfile` / `docker-compose.test.yml` | Containerized tests | Build container first, then run |
|
|
55
|
+
| `tox.ini` | Multi-env Python testing | Run specific tox env |
|
|
56
|
+
| `Makefile` with test targets | Make-based | Run `make test` |
|
|
57
|
+
|
|
58
|
+
### Step 4: Detect environment requirements
|
|
59
|
+
|
|
60
|
+
CI often fails because of environment differences. Check:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# What Python/Node/Go version does CI use?
|
|
64
|
+
grep -r "python-version\|node-version\|go-version" .github/workflows/ .gitlab-ci.yml 2>/dev/null
|
|
65
|
+
|
|
66
|
+
# What services does CI spin up? (postgres, redis, etc.)
|
|
67
|
+
grep -r "services:" .github/workflows/ 2>/dev/null
|
|
68
|
+
grep -r "image:" .gitlab-ci.yml 2>/dev/null
|
|
69
|
+
|
|
70
|
+
# What env vars does CI set?
|
|
71
|
+
grep -r "env:" .github/workflows/ 2>/dev/null | grep -v "#"
|
|
72
|
+
|
|
73
|
+
# What secrets are used?
|
|
74
|
+
grep -r "secrets\." .github/workflows/ 2>/dev/null
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Step 5: Check for known flaky patterns
|
|
78
|
+
|
|
79
|
+
Before investigating a failure, check if it's a known issue:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Check past CI fix incidents
|
|
83
|
+
grep -l "ci-fix\|CI\|flaky" .claude/qa-knowledge/incidents/ 2>/dev/null
|
|
84
|
+
|
|
85
|
+
# Check knowledge base for CI patterns
|
|
86
|
+
cat .claude/knowledge/skills/ci-fix.md 2>/dev/null | grep -A3 "## Patterns"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
If a known flaky test matches the failure, report it instead of debugging.
|
|
90
|
+
|
|
91
|
+
### Step 6: Recommend CI improvements
|
|
92
|
+
|
|
93
|
+
After every fix (or on first run), check for CI best practices:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
CI recommendations for {project}:
|
|
97
|
+
⚠ No dependency caching — CI runs will be slow
|
|
98
|
+
Add: actions/cache for node_modules / .venv / cargo
|
|
99
|
+
⚠ No test parallelism — tests run sequentially
|
|
100
|
+
Add: pytest-xdist / jest --workers / go test -parallel
|
|
101
|
+
⚠ No test timeout — flaky tests can hang forever
|
|
102
|
+
Add: timeout-minutes in workflow / pytest --timeout=30
|
|
103
|
+
⚠ No retry for flaky tests — one flake fails the whole run
|
|
104
|
+
Add: pytest-rerunfailures / jest --retry
|
|
105
|
+
⚠ Services not health-checked — tests may start before DB is ready
|
|
106
|
+
Add: health check options to service containers
|
|
107
|
+
⚠ No artifact upload on failure — can't debug after the run
|
|
108
|
+
Add: actions/upload-artifact for test reports on failure
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Mode Detection
|
|
112
|
+
|
|
113
|
+
Parse from arguments:
|
|
114
|
+
- No argument / `ci` → **CI mode** — fix GitHub Actions lint/test/build failures
|
|
115
|
+
- `staging` → **Staging mode** — investigate + fix staging deployment failures
|
|
116
|
+
- `prod` / `production` → **Prod mode** — investigate + fix production deployment failures
|
|
117
|
+
- Optional second arg: branch name (default: current branch)
|
|
118
|
+
|
|
119
|
+
## Architecture
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
Failure detected → /ci-fix invoked
|
|
123
|
+
→ Determine mode (CI / staging / prod)
|
|
124
|
+
→ Attempt 1: diagnose → fix → verify → push/redeploy
|
|
125
|
+
→ Green? DONE
|
|
126
|
+
→ Still failing? Attempt 2 (different strategy)
|
|
127
|
+
→ Attempt 2: re-diagnose → fix → verify → push/redeploy
|
|
128
|
+
→ Green? DONE
|
|
129
|
+
→ Still failing? Attempt 3 (escalate approach)
|
|
130
|
+
→ Attempt 3: deep investigation → fix → verify → push/redeploy
|
|
131
|
+
→ Green? DONE
|
|
132
|
+
→ Still failing? → Discord alert + QA incident file
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## CI Mode (default)
|
|
138
|
+
|
|
139
|
+
Fix GitHub Actions lint, type, test, and build failures.
|
|
140
|
+
|
|
141
|
+
### Per-Attempt Steps
|
|
142
|
+
|
|
143
|
+
#### Step 1: Identify the failure
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
BRANCH=$(git branch --show-current)
|
|
147
|
+
gh run list --branch "$BRANCH" --limit 5 --json databaseId,conclusion,status,name
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Get failed run logs:
|
|
151
|
+
```bash
|
|
152
|
+
gh run view <FAILED_RUN_ID> --log-failed 2>&1 | tail -200
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
#### Step 2: Classify and fix
|
|
156
|
+
|
|
157
|
+
| Category | Indicators | Fix Strategy |
|
|
158
|
+
|----------|-----------|--------------|
|
|
159
|
+
| **Lint** | ruff/eslint errors | Auto-fix tools scoped to specific directories |
|
|
160
|
+
| **Type errors** | tsc/mypy failures | Read error file:line, fix type annotation |
|
|
161
|
+
| **Test failures** | pytest/jest failures | Read failing test + source, fix root cause |
|
|
162
|
+
| **Build failures** | build errors | Read error, fix import/export/config |
|
|
163
|
+
| **Migration** | Alembic/Django errors | Fix migration file |
|
|
164
|
+
| **Dependency** | pip/npm install failures | Fix requirements/package.json |
|
|
165
|
+
|
|
166
|
+
**Attempt escalation:**
|
|
167
|
+
- Attempt 1: Apply the obvious fix (auto-fix tools, direct code fix)
|
|
168
|
+
- Attempt 2: Read more context (surrounding code, related tests, recent commits)
|
|
169
|
+
- Attempt 3: Deep investigation — read git log, compare against last green commit
|
|
170
|
+
|
|
171
|
+
#### Step 3: Verify locally (MANDATORY before pushing)
|
|
172
|
+
|
|
173
|
+
Run ONLY the checks that failed — use commands from CLAUDE.md Test Commands table.
|
|
174
|
+
|
|
175
|
+
#### Step 4: Commit, push, wait for CI
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
git add <only_changed_files>
|
|
179
|
+
git commit -m "$(cat <<'EOF'
|
|
180
|
+
fix: <category> — <what was fixed>
|
|
181
|
+
|
|
182
|
+
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
183
|
+
EOF
|
|
184
|
+
)"
|
|
185
|
+
git push
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Wait for CI result:
|
|
189
|
+
```bash
|
|
190
|
+
sleep 90 && gh run list --branch "$BRANCH" --limit 1 --json conclusion,status
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Staging Mode
|
|
196
|
+
|
|
197
|
+
Investigate and fix staging deployment failures.
|
|
198
|
+
|
|
199
|
+
1. **Diagnose**: Check deployment platform health endpoints (from CLAUDE.md), get deploy logs
|
|
200
|
+
2. **Classify**: Migration failed, missing env var, health timeout, build error, runtime crash
|
|
201
|
+
3. **Fix**: Code fix → verify locally → push. Env var fix → use platform tools.
|
|
202
|
+
4. **Verify**: Wait for deploy, check all health endpoints
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Prod Mode
|
|
207
|
+
|
|
208
|
+
Same as staging but with **extra caution**:
|
|
209
|
+
- NEVER modify production database directly
|
|
210
|
+
- NEVER run destructive commands against production
|
|
211
|
+
- Fix code locally → push to main → platform auto-deploys
|
|
212
|
+
- On attempt 3, consider rollback: `git revert HEAD --no-edit && git push`
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## After 3 Failed Attempts (ALL MODES)
|
|
217
|
+
|
|
218
|
+
### 1. Discord alert (if discord-ops is configured)
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
mcp__discord-mcp__send-message(
|
|
222
|
+
channel: "deployments",
|
|
223
|
+
message: "Auto-Fix Failed — 3 attempts exhausted\n\nMode: {mode}\nBranch: {branch}\nError: {last_error_summary}\n\nAction needed: Manual review required."
|
|
224
|
+
)
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### 2. Write QA incident
|
|
228
|
+
|
|
229
|
+
Create `.claude/qa-knowledge/incidents/{date}-autofix-exhausted-{slug}.md` with root cause, how QA missed it, and regression test recommendation.
|
|
230
|
+
|
|
231
|
+
### 3. Report to user
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
Auto-fix exhausted after 3 attempts ({mode} mode) on `{branch}`.
|
|
235
|
+
QA incident logged.
|
|
236
|
+
Manual review required.
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Rules (ALL MODES)
|
|
242
|
+
|
|
243
|
+
- **NEVER** run lint auto-fix on the entire repo — scope to specific directories
|
|
244
|
+
- **NEVER** modify dependency files unless that's the actual failure
|
|
245
|
+
- **NEVER** add `# type: ignore` or `# noqa` to suppress errors — fix them properly
|
|
246
|
+
- **NEVER** delete or skip tests — fix the underlying issue
|
|
247
|
+
- **NEVER** use `railway up` or equivalent — always push to git for auto-deploy
|
|
248
|
+
- **ALWAYS** verify locally before pushing
|
|
249
|
+
- **ALWAYS** scope fixes narrowly — only touch files that caused the failure
|
|
250
|
+
- **ALWAYS** try a DIFFERENT strategy on each retry
|
|
251
|
+
- Maximum 3 attempts. After that, alert humans.
|
|
252
|
+
- If fix requires architectural changes → report and stop, don't attempt large refactors
|
|
253
|
+
|
|
254
|
+
## Knowledge Base Integration
|
|
255
|
+
|
|
256
|
+
### On every /ci-fix invocation:
|
|
257
|
+
1. **Read** `.claude/knowledge/skills/ci-fix.md` for past failure patterns
|
|
258
|
+
2. **Read** `.claude/qa-knowledge/incidents/` for similar past CI incidents
|
|
259
|
+
3. **Match** current failure against known patterns before investigating
|
|
260
|
+
|
|
261
|
+
### After every fix (success or exhaustion):
|
|
262
|
+
1. **Append** to `.claude/knowledge/skills/ci-fix.md`:
|
|
263
|
+
```
|
|
264
|
+
### {date} — {failure type}
|
|
265
|
+
**CI Platform**: {platform}
|
|
266
|
+
**Category**: {lint | type | test | build | migration | dependency | flaky}
|
|
267
|
+
**Root cause**: {what was wrong}
|
|
268
|
+
**Fix**: {what was done}
|
|
269
|
+
**Attempts**: {N}
|
|
270
|
+
**Was it a known pattern?**: {yes — matched incident X | no — new pattern}
|
|
271
|
+
**Prevention**: {how to avoid next time}
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
2. If failure was a NEW pattern (not in knowledge base):
|
|
275
|
+
- Add to `.claude/qa-knowledge/bug-patterns.md` under CI section
|
|
276
|
+
- Consider: should this become a pre-push check?
|
|
277
|
+
|
|
278
|
+
3. If fix took 3 attempts (exhaustion):
|
|
279
|
+
- Create incident: `.claude/qa-knowledge/incidents/{date}-ci-exhaust-{slug}.md`
|
|
280
|
+
- Flag as systemic if same category failed 3+ times in knowledge base
|
|
281
|
+
|
|
282
|
+
### /calibrate Integration
|
|
283
|
+
|
|
284
|
+
When `/calibrate` runs, it reads CI configuration to understand the project's test pipeline.
|
|
285
|
+
The /ci-fix skill contributes:
|
|
286
|
+
1. **CI platform detection** → /calibrate writes to project profile
|
|
287
|
+
2. **Test infrastructure map** → /calibrate includes in profile "Testing Conventions" section
|
|
288
|
+
3. **Environment requirements** → /calibrate notes version mismatches between local and CI
|
|
289
|
+
4. **Flaky test inventory** → /calibrate includes in recommendations
|
|
290
|
+
5. **CI improvement recommendations** → /calibrate includes in "Recommended Tools" section
|
|
291
|
+
|
|
292
|
+
If `/calibrate` hasn't run, /ci-fix does its own discovery and recommends running `/calibrate`.
|
|
293
|
+
If `/calibrate` has run, /ci-fix reads the profile instead of re-discovering.
|