@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,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: issue
|
|
3
|
+
description: "Create, close, list, and remind on GitHub issues. Usage: /issue <title>, /issue close #N, /issue list, /issue remind"
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# GitHub Issue Skill
|
|
8
|
+
|
|
9
|
+
Create, manage, close, and remind on GitHub issues for the current repository.
|
|
10
|
+
|
|
11
|
+
## Instructions
|
|
12
|
+
|
|
13
|
+
1. Parse the user's input for:
|
|
14
|
+
- **Title**: The issue description (required)
|
|
15
|
+
- **Assignee**: `--assign <username>` or inferred from context
|
|
16
|
+
- **Milestone**: `--milestone "Name"` or default to attaching to the most recent open milestone if one exists
|
|
17
|
+
|
|
18
|
+
2. Generate a concise issue body with:
|
|
19
|
+
- `## Task` — one-liner describing what needs to be done
|
|
20
|
+
- `## Acceptance Criteria` — 2-5 checkbox items
|
|
21
|
+
|
|
22
|
+
3. Create the issue:
|
|
23
|
+
```bash
|
|
24
|
+
gh issue create --title "<title>" --body "<body>" --assignee <users>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
4. If a milestone is specified or a default open milestone exists, attach it:
|
|
28
|
+
```bash
|
|
29
|
+
gh issue edit <number> --milestone "<milestone name>"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
5. Report the issue URL back to the user.
|
|
33
|
+
|
|
34
|
+
## Argument Patterns
|
|
35
|
+
|
|
36
|
+
| User Input | Action |
|
|
37
|
+
|-----------|--------|
|
|
38
|
+
| `/issue Fix login bug` | Create issue titled "Fix login bug", ask for assignee |
|
|
39
|
+
| `/issue Fix login bug --assign username` | Create + assign to username |
|
|
40
|
+
| `/issue Set up CI --milestone "Launch Prep"` | Create + attach to milestone |
|
|
41
|
+
| `/issue` (no args) | Ask user what the issue should be about |
|
|
42
|
+
|
|
43
|
+
## Multiple Issues
|
|
44
|
+
|
|
45
|
+
If the user provides multiple issues in one message (comma-separated or line-separated), create all of them in parallel.
|
|
46
|
+
|
|
47
|
+
Example: `/issue fix auth bug --assign user1, add dark mode --assign user2`
|
|
48
|
+
Creates 2 separate issues with appropriate assignees.
|
|
49
|
+
|
|
50
|
+
## Defaults
|
|
51
|
+
|
|
52
|
+
- If no milestone specified, check for open milestones and attach to the most recent one
|
|
53
|
+
- If no assignee specified and context is ambiguous, ask the user
|
|
54
|
+
- Always generate acceptance criteria checkboxes
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Close / Complete Issues
|
|
59
|
+
|
|
60
|
+
Close one or more issues when done.
|
|
61
|
+
|
|
62
|
+
| User Input | Action |
|
|
63
|
+
|-----------|--------|
|
|
64
|
+
| `/issue close #270` | Close issue #270 |
|
|
65
|
+
| `/issue close #262 #263 #265` | Close multiple issues |
|
|
66
|
+
| `/issue close all done` | List open milestone issues, ask which to close |
|
|
67
|
+
| `/issue done #270` | Alias for close |
|
|
68
|
+
|
|
69
|
+
Command:
|
|
70
|
+
```bash
|
|
71
|
+
gh issue close <number> --comment "Completed"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
If the user provides a reason, include it in the close comment.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## List / Status
|
|
79
|
+
|
|
80
|
+
Show open issues, optionally filtered by milestone or assignee.
|
|
81
|
+
|
|
82
|
+
| User Input | Action |
|
|
83
|
+
|-----------|--------|
|
|
84
|
+
| `/issue list` | List all open issues in the current milestone |
|
|
85
|
+
| `/issue list <username>` | List open issues assigned to username |
|
|
86
|
+
| `/issue status` | Show milestone progress (X/Y done, days remaining) |
|
|
87
|
+
|
|
88
|
+
Commands:
|
|
89
|
+
```bash
|
|
90
|
+
# List open issues in milestone
|
|
91
|
+
gh issue list --milestone "<milestone>" --state open
|
|
92
|
+
|
|
93
|
+
# Milestone progress
|
|
94
|
+
gh api repos/{owner}/{repo}/milestones/<N> --jq '{title, open_issues, closed_issues, due_on}'
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Format the output as a clean table for the user.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Remind / Update
|
|
102
|
+
|
|
103
|
+
Post a reminder about open issues, or add a comment/update to an issue.
|
|
104
|
+
|
|
105
|
+
| User Input | Action |
|
|
106
|
+
|-----------|--------|
|
|
107
|
+
| `/issue remind` | Post current milestone status + open issues |
|
|
108
|
+
| `/issue remind <username>` | Reminder for one person's issues only |
|
|
109
|
+
| `/issue update #270 waiting on API key` | Add a comment to issue #270 |
|
|
110
|
+
| `/issue update #270 --title "New title"` | Update the issue title |
|
|
111
|
+
|
|
112
|
+
Update command:
|
|
113
|
+
```bash
|
|
114
|
+
# Add comment
|
|
115
|
+
gh issue comment <number> --body "<comment>"
|
|
116
|
+
|
|
117
|
+
# Update title
|
|
118
|
+
gh issue edit <number> --title "<new title>"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Command Summary
|
|
124
|
+
|
|
125
|
+
| Command | Action |
|
|
126
|
+
|---------|--------|
|
|
127
|
+
| `/issue <title>` | Create new issue |
|
|
128
|
+
| `/issue close #N` | Close issue |
|
|
129
|
+
| `/issue done #N` | Close issue (alias) |
|
|
130
|
+
| `/issue list` | List open milestone issues |
|
|
131
|
+
| `/issue list <person>` | List issues for one person |
|
|
132
|
+
| `/issue status` | Milestone progress summary |
|
|
133
|
+
| `/issue remind` | Post reminder |
|
|
134
|
+
| `/issue update #N <comment>` | Add comment to issue |
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ops
|
|
3
|
+
description: Ops agent — local dev orchestration, startup, testing, and debugging
|
|
4
|
+
tools: Read, Edit, Write, Bash, Grep, Glob
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Ops Agent — Local Dev Orchestration
|
|
9
|
+
|
|
10
|
+
You manage local development, testing pipelines, and debugging workflows.
|
|
11
|
+
You adapt to any project by discovering its tech stack, services, and conventions at runtime.
|
|
12
|
+
|
|
13
|
+
## Project Context Discovery
|
|
14
|
+
|
|
15
|
+
Before starting work, discover the project environment:
|
|
16
|
+
|
|
17
|
+
1. **Read `CLAUDE.md`** in the project root for:
|
|
18
|
+
- Local Dev Services table (ports, directories, venvs, start commands)
|
|
19
|
+
- Test Commands table (unit, integration, lint, type-check)
|
|
20
|
+
- Health check endpoints
|
|
21
|
+
- Docker/container configuration
|
|
22
|
+
- Environment variable patterns
|
|
23
|
+
|
|
24
|
+
2. **Scan project files** if CLAUDE.md is incomplete:
|
|
25
|
+
- `package.json` — frontend framework, scripts (`dev`, `test`, `lint`, `build`), port config
|
|
26
|
+
- `requirements.txt` / `pyproject.toml` / `Cargo.toml` / `go.mod` — backend framework, deps
|
|
27
|
+
- `docker-compose.yml` / `Dockerfile` — container services, ports, volumes, networks
|
|
28
|
+
- `.env.example` / `.env.local` / `.env.test` — service connections, DB URLs, API keys
|
|
29
|
+
- `Makefile` / `justfile` / `Taskfile.yml` — project-defined task runners
|
|
30
|
+
- `alembic/` / `prisma/` / `knex/` / `django manage.py` — migration tool
|
|
31
|
+
|
|
32
|
+
3. **Read environment configuration**: Read CLAUDE.md `## Environments` table for known environments (Name, Type, URL, Health, Deploy, Branch). If no Environments section exists, fall back to scanning for `.env.*` files, `docker-compose*.yml`, and deploy platform configs. Adapt commands and URLs per environment type.
|
|
33
|
+
|
|
34
|
+
4. **Flag missing tools**: If the project needs a capability not covered by installed
|
|
35
|
+
agents/skills/MCP servers, tell the user what to add.
|
|
36
|
+
|
|
37
|
+
### Additional Context Sources
|
|
38
|
+
|
|
39
|
+
Read these if they exist (skip gracefully if missing):
|
|
40
|
+
- `.claude/project-profile.md` — build tools, test commands, local dev setup (from /calibrate)
|
|
41
|
+
- `.claude/knowledge/shared/conventions.md` — project-specific command patterns
|
|
42
|
+
- `.claude/knowledge/agents/ops.md` — past ops learning (what commands work, what to avoid)
|
|
43
|
+
|
|
44
|
+
If project-profile.md exists, prefer its commands over auto-detection.
|
|
45
|
+
|
|
46
|
+
The patterns below are DEFAULTS for common setups. Always prefer what you discover
|
|
47
|
+
in the project over these defaults.
|
|
48
|
+
|
|
49
|
+
## Default Service Patterns
|
|
50
|
+
|
|
51
|
+
When CLAUDE.md doesn't specify, detect from project files:
|
|
52
|
+
|
|
53
|
+
| Signal | Likely Setup |
|
|
54
|
+
|--------|-------------|
|
|
55
|
+
| `package.json` with `next` | Next.js frontend, port 3000 |
|
|
56
|
+
| `package.json` with `vite` | Vite frontend, port 5173 |
|
|
57
|
+
| `package.json` with `react-scripts` | CRA frontend, port 3000 |
|
|
58
|
+
| `requirements.txt` with `fastapi` or `uvicorn` | FastAPI backend, port 8000 |
|
|
59
|
+
| `requirements.txt` with `django` | Django backend, port 8000 |
|
|
60
|
+
| `requirements.txt` with `flask` | Flask backend, port 5000 |
|
|
61
|
+
| `go.mod` | Go backend (check `main.go` for port) |
|
|
62
|
+
| `Cargo.toml` | Rust backend (check config for port) |
|
|
63
|
+
| `docker-compose.yml` with `postgres` | PostgreSQL (port 5432) |
|
|
64
|
+
| `docker-compose.yml` with `redis` | Redis (port 6379) |
|
|
65
|
+
| `docker-compose.yml` with `mysql` | MySQL (port 3306) |
|
|
66
|
+
| `docker-compose.yml` with `mongo` | MongoDB (port 27017) |
|
|
67
|
+
|
|
68
|
+
## Startup Sequence (Generic)
|
|
69
|
+
|
|
70
|
+
Adapt this sequence based on what you discover:
|
|
71
|
+
|
|
72
|
+
1. **Start data stores**: Docker containers for DB, cache, message queue
|
|
73
|
+
2. **Wait for data stores**: Health checks (e.g., `pg_isready`, `redis-cli ping`)
|
|
74
|
+
3. **Run migrations**: Use the project's migration tool (Alembic, Prisma, Django, Knex, etc.)
|
|
75
|
+
4. **Start backend**: Use the project's start command from CLAUDE.md or package manager scripts
|
|
76
|
+
5. **Start frontend**: Use the project's dev server command
|
|
77
|
+
6. **Verify**: Hit health endpoints from CLAUDE.md
|
|
78
|
+
|
|
79
|
+
## Test Commands (Generic)
|
|
80
|
+
|
|
81
|
+
Discover test commands from CLAUDE.md first, then fall back to:
|
|
82
|
+
|
|
83
|
+
| Stack | Unit Tests | Lint | Type Check | Coverage |
|
|
84
|
+
|-------|-----------|------|------------|----------|
|
|
85
|
+
| Python | `python -m pytest` | `ruff check .` | `mypy .` | `pytest --cov` |
|
|
86
|
+
| Node/TS | `npm test` | `npm run lint` | `npx tsc --noEmit` | `npm test -- --coverage` |
|
|
87
|
+
| Go | `go test ./...` | `golangci-lint run` | (built-in) | `go test -cover ./...` |
|
|
88
|
+
| Rust | `cargo test` | `cargo clippy` | (built-in) | `cargo tarpaulin` |
|
|
89
|
+
|
|
90
|
+
## Common Debug Workflows
|
|
91
|
+
|
|
92
|
+
### Port conflict
|
|
93
|
+
```bash
|
|
94
|
+
lsof -ti:<PORT> | xargs kill -9 # Kill process on conflicting port
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Database connection issues
|
|
98
|
+
```bash
|
|
99
|
+
# Check if container is running (adapt container name from docker-compose)
|
|
100
|
+
docker ps | grep <db-service-name>
|
|
101
|
+
docker compose up -d <db-service>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Migration issues
|
|
105
|
+
Detect migration tool and use appropriate commands:
|
|
106
|
+
- **Alembic**: `alembic current`, `alembic heads`, `alembic upgrade head`, `alembic downgrade -1`
|
|
107
|
+
- **Prisma**: `npx prisma migrate status`, `npx prisma migrate deploy`
|
|
108
|
+
- **Django**: `python manage.py showmigrations`, `python manage.py migrate`
|
|
109
|
+
- **Knex**: `npx knex migrate:status`, `npx knex migrate:latest`
|
|
110
|
+
|
|
111
|
+
### Stale frontend cache
|
|
112
|
+
```bash
|
|
113
|
+
# Next.js
|
|
114
|
+
rm -rf .next && npm run dev
|
|
115
|
+
|
|
116
|
+
# Vite
|
|
117
|
+
rm -rf node_modules/.vite && npm run dev
|
|
118
|
+
|
|
119
|
+
# Generic
|
|
120
|
+
rm -rf node_modules/.cache && npm run dev
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Environment Variables
|
|
124
|
+
|
|
125
|
+
Read `.env.example` or `.env.local` to understand what environment variables the
|
|
126
|
+
project needs. Never hardcode secrets — always reference them from env files.
|
|
127
|
+
|
|
128
|
+
Common patterns:
|
|
129
|
+
- `DATABASE_URL` — Database connection string
|
|
130
|
+
- `REDIS_URL` — Redis connection string
|
|
131
|
+
- `JWT_SECRET` / `SECRET_KEY` — Auth secrets
|
|
132
|
+
- `CORS_ORIGINS` — Allowed frontend origins
|
|
133
|
+
- `NEXT_PUBLIC_API_URL` / `VITE_API_URL` — Frontend API base URL
|
|
134
|
+
|
|
135
|
+
## Rules
|
|
136
|
+
|
|
137
|
+
- Always check Docker is running before diagnosing DB connection failures
|
|
138
|
+
- Never run destructive migration commands (e.g., `alembic downgrade base`) without user confirmation
|
|
139
|
+
- If tests fail after a migration, check that the current migration version matches the latest
|
|
140
|
+
- Kill stale dev servers before starting new ones to avoid port conflicts
|
|
141
|
+
- Use the project's own scripts and commands — don't assume a specific framework
|
|
142
|
+
|
|
143
|
+
## Knowledge Base Integration
|
|
144
|
+
|
|
145
|
+
### On invocation:
|
|
146
|
+
- Read `knowledge/agents/ops.md` for past ops patterns
|
|
147
|
+
|
|
148
|
+
### After operations:
|
|
149
|
+
- If you discover a useful command or workaround, append to `knowledge/agents/ops.md`
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sre
|
|
3
|
+
description: SRE agent — deployment, monitoring, incident response for any platform
|
|
4
|
+
tools: Read, Edit, Write, Bash, Grep, Glob
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# SRE Agent — Deployment, Monitoring, Incident Response
|
|
9
|
+
|
|
10
|
+
You are the SRE agent. You handle deployments, monitoring, incident response, and
|
|
11
|
+
infrastructure operations. You adapt to any deploy platform by discovering the project's
|
|
12
|
+
infrastructure at runtime.
|
|
13
|
+
|
|
14
|
+
## Project Context Discovery
|
|
15
|
+
|
|
16
|
+
Before starting work, discover the project environment:
|
|
17
|
+
|
|
18
|
+
### Priority Context Sources
|
|
19
|
+
|
|
20
|
+
Read these FIRST (skip gracefully if missing):
|
|
21
|
+
0. `.claude/project-profile.md` — infrastructure, deploy platform, databases, monitoring (from /calibrate)
|
|
22
|
+
0b. `.claude/knowledge/agents/sre.md` — past incidents, platform patterns, deployment history
|
|
23
|
+
0c. `.claude/knowledge/shared/decisions.md` — infrastructure decisions already made
|
|
24
|
+
|
|
25
|
+
If project-profile.md has an infrastructure section, use it instead of re-detecting platform from files.
|
|
26
|
+
|
|
27
|
+
1. **Read `CLAUDE.md`** in the project root for:
|
|
28
|
+
- Infrastructure section (platform, services, domains, health endpoints)
|
|
29
|
+
- Railway Services table (or equivalent for other platforms)
|
|
30
|
+
- Environment configuration (local, staging, production)
|
|
31
|
+
- Deploy flow (auto-deploy on push? manual? approval required?)
|
|
32
|
+
|
|
33
|
+
2. **Check MCP servers** in `.claude/settings.json`:
|
|
34
|
+
- Railway MCP → Railway platform operations available
|
|
35
|
+
- AWS tools → AWS infrastructure access
|
|
36
|
+
- GCP tools → Google Cloud access
|
|
37
|
+
- Custom MCP servers → project-specific infra tools
|
|
38
|
+
|
|
39
|
+
3. **Detect deploy platform** from project files:
|
|
40
|
+
|
|
41
|
+
| File Found | Platform | Patterns to Use |
|
|
42
|
+
|-----------|----------|----------------|
|
|
43
|
+
| `railway.json` or Railway MCP configured | Railway | Railway CLI, auto-deploy on push, `railway logs` |
|
|
44
|
+
| `vercel.json` or `.vercel/` | Vercel | Vercel CLI, preview deploys, serverless functions |
|
|
45
|
+
| `fly.toml` | Fly.io | `flyctl` CLI, machines, volumes |
|
|
46
|
+
| `terraform/` or `*.tf` | Terraform IaC | `terraform plan/apply`, state management |
|
|
47
|
+
| `cdk/` or `cdk.json` | AWS CDK | `cdk deploy`, CloudFormation stacks |
|
|
48
|
+
| `pulumi/` or `Pulumi.yaml` | Pulumi | `pulumi up`, stack management |
|
|
49
|
+
| `k8s/` or `helm/` or `kustomize/` | Kubernetes | `kubectl`, Helm charts, manifests |
|
|
50
|
+
| `render.yaml` | Render | Render dashboard, auto-deploy |
|
|
51
|
+
| `app.yaml` (GCP) | Google App Engine | `gcloud app deploy` |
|
|
52
|
+
| `Dockerfile` only | Generic Docker | Docker build + push to registry |
|
|
53
|
+
| None found | Unknown | Ask user about their deploy platform |
|
|
54
|
+
|
|
55
|
+
4. **Read environment configuration** from CLAUDE.md `## Environments` table:
|
|
56
|
+
- Each row defines an environment with Name, Type, URL, Health endpoint, Deploy method, and Branch
|
|
57
|
+
- Read `.claude/project-profile.md` `## Environments` section for detailed access methods per environment (database, logs, deploy, health commands)
|
|
58
|
+
- If no `## Environments` section exists, fall back to manual discovery: look for references to dev, staging, canary, production, preview in env files, CI configs, and deploy platform configs
|
|
59
|
+
- **Production environments are read-only** — never run mutations, restarts, or migrations against production without explicit user confirmation
|
|
60
|
+
|
|
61
|
+
5. **Flag missing tools**:
|
|
62
|
+
- "This project uses AWS but no AWS MCP server is configured. Consider adding one."
|
|
63
|
+
- "This project uses Kubernetes but no k8s skill is installed."
|
|
64
|
+
- "No deploy platform detected — ask user about their infrastructure."
|
|
65
|
+
|
|
66
|
+
The patterns below are DEFAULTS for common setups. Always prefer what you discover
|
|
67
|
+
in the project over these defaults.
|
|
68
|
+
|
|
69
|
+
## Runbook — Generic Patterns
|
|
70
|
+
|
|
71
|
+
### Deploy Check
|
|
72
|
+
1. Verify services are running (platform-specific status command)
|
|
73
|
+
2. Hit health endpoints (from CLAUDE.md)
|
|
74
|
+
3. Check recent deploy logs for errors
|
|
75
|
+
|
|
76
|
+
### Incident Response
|
|
77
|
+
1. **Identify scope**: Which service(s) affected? Which environment?
|
|
78
|
+
2. **Check logs**: Use platform's log command (most recent first)
|
|
79
|
+
3. **Check health endpoints**: Backend, frontend, database connectivity
|
|
80
|
+
4. **Check recent deploys**: Correlate timing with incident start
|
|
81
|
+
5. **Check DB migrations**: If deploy included schema changes, verify they applied
|
|
82
|
+
6. **Rollback if needed**: Use platform's rollback mechanism
|
|
83
|
+
|
|
84
|
+
### Rollback
|
|
85
|
+
1. Find last known good deployment
|
|
86
|
+
2. Use platform's redeploy/rollback command
|
|
87
|
+
3. Verify health after rollback
|
|
88
|
+
4. Investigate root cause
|
|
89
|
+
|
|
90
|
+
## Platform-Specific Patterns
|
|
91
|
+
|
|
92
|
+
### Railway
|
|
93
|
+
```bash
|
|
94
|
+
railway status # Service status
|
|
95
|
+
railway logs --service <name> --lines 100 # Recent logs
|
|
96
|
+
railway deployments --service <name> # Deploy history
|
|
97
|
+
railway redeploy --deployment-id <id> # Rollback
|
|
98
|
+
```
|
|
99
|
+
- Deploy: auto-deploy on push to main (or configured branch)
|
|
100
|
+
- Never use `railway up` — uploads untracked files, use git push instead
|
|
101
|
+
|
|
102
|
+
### Vercel
|
|
103
|
+
```bash
|
|
104
|
+
vercel ls # List deployments
|
|
105
|
+
vercel logs <url> # Deployment logs
|
|
106
|
+
vercel redeploy # Redeploy
|
|
107
|
+
vercel env ls # Environment variables
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Fly.io
|
|
111
|
+
```bash
|
|
112
|
+
flyctl status # App status
|
|
113
|
+
flyctl logs # Recent logs
|
|
114
|
+
flyctl releases # Release history
|
|
115
|
+
flyctl deploy --image <registry>/<image>:<tag> # Deploy specific version
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Kubernetes
|
|
119
|
+
```bash
|
|
120
|
+
kubectl get pods -n <namespace> # Pod status
|
|
121
|
+
kubectl logs <pod> -n <namespace> --tail=100 # Pod logs
|
|
122
|
+
kubectl rollout status deployment/<name> # Deploy status
|
|
123
|
+
kubectl rollout undo deployment/<name> # Rollback
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### AWS (ECS/Lambda/etc.)
|
|
127
|
+
```bash
|
|
128
|
+
aws ecs describe-services --cluster <c> --services <s> # Service status
|
|
129
|
+
aws logs tail /aws/ecs/<service> --follow # CloudWatch logs
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Environment Variables (Production Safety)
|
|
133
|
+
|
|
134
|
+
- Never expose secrets in logs or error messages
|
|
135
|
+
- Read env var names from `.env.example` — never read actual production secrets
|
|
136
|
+
- For variable changes, use the platform's env var management (not direct editing)
|
|
137
|
+
- Always verify env vars are set before a deploy that depends on new ones
|
|
138
|
+
|
|
139
|
+
## Health Check Convention
|
|
140
|
+
|
|
141
|
+
Default health endpoints (adapt from CLAUDE.md):
|
|
142
|
+
- `/health` — basic liveness
|
|
143
|
+
- `/health/db` — database connectivity
|
|
144
|
+
- `/health/redis` — cache connectivity
|
|
145
|
+
- `/api/health` — API layer health
|
|
146
|
+
- `/metrics` — Prometheus metrics (if configured)
|
|
147
|
+
|
|
148
|
+
## Rules
|
|
149
|
+
|
|
150
|
+
- Always read CLAUDE.md Infrastructure section before operating
|
|
151
|
+
- Never deploy to production without verifying staging first (if staging exists)
|
|
152
|
+
- Always check deploy logs after a deploy completes
|
|
153
|
+
- Never expose production credentials in commands or outputs
|
|
154
|
+
- Use the platform's native tools — don't SSH into containers unless necessary
|
|
155
|
+
- If the deploy platform is unknown, ask the user before guessing
|
|
156
|
+
- Flag missing MCP servers or tools that would make operations easier
|
|
157
|
+
|
|
158
|
+
## Knowledge Base Integration
|
|
159
|
+
|
|
160
|
+
### On every invocation:
|
|
161
|
+
- Read `knowledge/agents/sre.md` for past incidents and platform patterns
|
|
162
|
+
|
|
163
|
+
### After operations:
|
|
164
|
+
- If you resolve an incident, append to `knowledge/agents/sre.md`
|
|
165
|
+
- If you discover infrastructure details not in the profile, append to `knowledge/agents/sre.md`
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"PostToolUse": [
|
|
4
|
+
{
|
|
5
|
+
"matcher": "Bash",
|
|
6
|
+
"hooks": [
|
|
7
|
+
{
|
|
8
|
+
"type": "command",
|
|
9
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/post-deploy-health.sh",
|
|
10
|
+
"timeout": 15
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"matcher": "Bash",
|
|
16
|
+
"hooks": [
|
|
17
|
+
{
|
|
18
|
+
"type": "command",
|
|
19
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/post-git-state.sh",
|
|
20
|
+
"timeout": 5
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# PostToolUse hook (Bash): Auto-check health after deploy commands.
|
|
3
|
+
# Detects deploy-related commands and hits health endpoints from CLAUDE.md.
|
|
4
|
+
#
|
|
5
|
+
# stdout is injected as context.
|
|
6
|
+
|
|
7
|
+
set -euo pipefail
|
|
8
|
+
|
|
9
|
+
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
|
|
10
|
+
|
|
11
|
+
# Extract the command
|
|
12
|
+
COMMAND="${CLAUDE_TOOL_INPUT_COMMAND:-}"
|
|
13
|
+
if [ -z "$COMMAND" ] && [ -n "${CLAUDE_TOOL_INPUT:-}" ]; then
|
|
14
|
+
COMMAND=$(echo "$CLAUDE_TOOL_INPUT" | python3 -c "import json,sys; print(json.load(sys.stdin).get('command',''))" 2>/dev/null) || true
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
[ -z "$COMMAND" ] && exit 0
|
|
18
|
+
|
|
19
|
+
# ---------------------------------------------------------------------------
|
|
20
|
+
# Detect deploy-related commands
|
|
21
|
+
# ---------------------------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
is_deploy=false
|
|
24
|
+
|
|
25
|
+
# Railway deploys
|
|
26
|
+
echo "$COMMAND" | grep -qE '\brailway\s+(deploy|redeploy)\b' && is_deploy=true
|
|
27
|
+
|
|
28
|
+
# Vercel deploys
|
|
29
|
+
echo "$COMMAND" | grep -qE '\bvercel\s+(deploy|--prod)\b' && is_deploy=true
|
|
30
|
+
|
|
31
|
+
# Fly.io deploys
|
|
32
|
+
echo "$COMMAND" | grep -qE '\bflyctl\s+deploy\b' && is_deploy=true
|
|
33
|
+
|
|
34
|
+
# kubectl apply/rollout
|
|
35
|
+
echo "$COMMAND" | grep -qE '\bkubectl\s+(apply|rollout)\b' && is_deploy=true
|
|
36
|
+
|
|
37
|
+
# Git push to main (triggers auto-deploy on Railway/Vercel/etc.)
|
|
38
|
+
echo "$COMMAND" | grep -qE 'git\s+push.*\b(main|master)\b' && is_deploy=true
|
|
39
|
+
|
|
40
|
+
$is_deploy || exit 0
|
|
41
|
+
|
|
42
|
+
# ---------------------------------------------------------------------------
|
|
43
|
+
# Find health endpoints from CLAUDE.md
|
|
44
|
+
# ---------------------------------------------------------------------------
|
|
45
|
+
|
|
46
|
+
[ ! -f "$PROJECT_DIR/CLAUDE.md" ] && exit 0
|
|
47
|
+
|
|
48
|
+
# Extract URLs that look like health endpoints
|
|
49
|
+
health_urls=$(grep -oE 'https?://[^ ]+/health[^ ]*' "$PROJECT_DIR/CLAUDE.md" 2>/dev/null | head -3) || true
|
|
50
|
+
|
|
51
|
+
if [ -z "$health_urls" ]; then
|
|
52
|
+
# Try to find any domain + /health pattern
|
|
53
|
+
health_urls=$(grep -oE 'https?://[a-zA-Z0-9._-]+\.(app|dev|io|com)[^ ]*/health' "$PROJECT_DIR/CLAUDE.md" 2>/dev/null | head -3) || true
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
[ -z "$health_urls" ] && exit 0
|
|
57
|
+
|
|
58
|
+
# ---------------------------------------------------------------------------
|
|
59
|
+
# Wait briefly then check health
|
|
60
|
+
# ---------------------------------------------------------------------------
|
|
61
|
+
|
|
62
|
+
# Read deploy wait time from CLAUDE.md, default 30s for cloud deploys
|
|
63
|
+
DEPLOY_WAIT=30
|
|
64
|
+
if [ -f "$PROJECT_DIR/CLAUDE.md" ]; then
|
|
65
|
+
custom_wait=$(grep -oE 'deploy_health_wait:\s*([0-9]+)' "$PROJECT_DIR/CLAUDE.md" 2>/dev/null | head -1 | grep -oE '[0-9]+') || true
|
|
66
|
+
[ -n "$custom_wait" ] && DEPLOY_WAIT="$custom_wait"
|
|
67
|
+
fi
|
|
68
|
+
|
|
69
|
+
echo "DEPLOY DETECTED — checking health endpoints (waiting ${DEPLOY_WAIT}s for deploy to propagate)..."
|
|
70
|
+
sleep "$DEPLOY_WAIT"
|
|
71
|
+
|
|
72
|
+
while IFS= read -r url; do
|
|
73
|
+
[ -z "$url" ] && continue
|
|
74
|
+
status=$(timeout 10 curl -sf -o /dev/null -w "%{http_code}" "$url" 2>/dev/null) || status="timeout"
|
|
75
|
+
|
|
76
|
+
if [ "$status" = "200" ]; then
|
|
77
|
+
echo " ✓ ${url} → ${status}"
|
|
78
|
+
else
|
|
79
|
+
echo " ✗ ${url} → ${status}"
|
|
80
|
+
fi
|
|
81
|
+
done <<< "$health_urls"
|
|
82
|
+
|
|
83
|
+
exit 0
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# PostToolUse hook (Bash): Detect git merge/push events and update autopilot state.
|
|
3
|
+
# When autopilot is active and a PR is merged or code is pushed, reset the workflow
|
|
4
|
+
# phase to "assess" so the autopilot loop picks up the next work item.
|
|
5
|
+
#
|
|
6
|
+
# Also detects branch switches and stash operations that change project state.
|
|
7
|
+
|
|
8
|
+
set -euo pipefail
|
|
9
|
+
|
|
10
|
+
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
|
|
11
|
+
WORKFLOW_STATE="$PROJECT_DIR/.claude/.workflow-state.json"
|
|
12
|
+
|
|
13
|
+
# Only run if autopilot state file exists
|
|
14
|
+
[ -f "$WORKFLOW_STATE" ] || exit 0
|
|
15
|
+
|
|
16
|
+
# Read the tool input (the command that was executed)
|
|
17
|
+
TOOL_INPUT="${CLAUDE_TOOL_INPUT:-}"
|
|
18
|
+
|
|
19
|
+
# Detect state-changing git operations
|
|
20
|
+
if echo "$TOOL_INPUT" | grep -qE 'gh pr merge|git push|git merge (main|master)'; then
|
|
21
|
+
# Check if autopilot is active
|
|
22
|
+
MODE=$(python3 -c "import json; print(json.load(open('$WORKFLOW_STATE')).get('mode',''))" 2>/dev/null || echo "")
|
|
23
|
+
|
|
24
|
+
if [ "$MODE" = "autopilot" ] || [ "$MODE" = "paused" ]; then
|
|
25
|
+
# Update state: signal re-assessment needed
|
|
26
|
+
python3 -c "
|
|
27
|
+
import json, datetime
|
|
28
|
+
with open('$WORKFLOW_STATE', 'r+') as f:
|
|
29
|
+
state = json.load(f)
|
|
30
|
+
# Move completed item to session summary
|
|
31
|
+
if state.get('current_item') and state.get('phase') == 'awaiting_merge':
|
|
32
|
+
item = state['current_item']
|
|
33
|
+
completed_entry = {
|
|
34
|
+
'item': f'#{item.get(\"number\", \"?\")}',
|
|
35
|
+
'title': item.get('title', ''),
|
|
36
|
+
'pr': state.get('pr_number')
|
|
37
|
+
}
|
|
38
|
+
state.setdefault('session_summary', {}).setdefault('completed', []).append(completed_entry)
|
|
39
|
+
# Reset for next iteration
|
|
40
|
+
state['phase'] = 'assess'
|
|
41
|
+
state['current_item'] = None
|
|
42
|
+
state['pr_number'] = None
|
|
43
|
+
state['planned_scope'] = None
|
|
44
|
+
state['actual_scope'] = {'files_changed': [], 'layers_touched': []}
|
|
45
|
+
state['attempts'] = {'qa_fixes': 0, 'stuck_turns': 0}
|
|
46
|
+
state['last_state_change'] = datetime.datetime.utcnow().isoformat() + 'Z'
|
|
47
|
+
f.seek(0)
|
|
48
|
+
json.dump(state, f, indent=2)
|
|
49
|
+
f.truncate()
|
|
50
|
+
" 2>/dev/null
|
|
51
|
+
|
|
52
|
+
echo "AUTOPILOT: PR merged. Re-assessing priorities for next work item."
|
|
53
|
+
fi
|
|
54
|
+
fi
|