@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,275 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pr
|
|
3
|
+
description: Run QA, create a GitHub PR, and manage post-merge workflow. Never push directly to main.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /pr — Ship Code Safely
|
|
8
|
+
|
|
9
|
+
## CRITICAL SAFETY RULE — Destructive Operations
|
|
10
|
+
**NEVER** delete projects, services, repos, databases, or large infrastructure sections on Railway, GitHub (ArthTech-AI org), or any platform without asking the user **3 separate times** for explicit confirmation. This includes `railway delete`, `gh repo delete`, `rm -rf`, `DROP DATABASE`, service removal, etc. When in doubt, ASK.
|
|
11
|
+
|
|
12
|
+
## Project Context Discovery
|
|
13
|
+
|
|
14
|
+
Before creating any PR, understand the project's conventions. This ensures PRs match the team's
|
|
15
|
+
expectations regardless of platform.
|
|
16
|
+
|
|
17
|
+
### Step 1: Read existing context
|
|
18
|
+
|
|
19
|
+
Read in this order (skip gracefully if missing):
|
|
20
|
+
1. `CLAUDE.md` — Critical Rules, test commands, infrastructure
|
|
21
|
+
2. `.claude/project-profile.md` — Coding conventions, commit style, PR process
|
|
22
|
+
3. `.claude/knowledge/shared/conventions.md` — Learned team conventions
|
|
23
|
+
4. `.claude/knowledge/skills/pr.md` — Past PR patterns for this project
|
|
24
|
+
|
|
25
|
+
### Step 2: Detect source control platform
|
|
26
|
+
|
|
27
|
+
| Signal | Platform | PR Command |
|
|
28
|
+
|--------|----------|-----------|
|
|
29
|
+
| `.git/config` contains `github.com` | GitHub | `gh pr create` |
|
|
30
|
+
| `.git/config` contains `gitlab.com` or GitLab self-hosted | GitLab | `glab mr create` |
|
|
31
|
+
| `.git/config` contains `bitbucket.org` | Bitbucket | Bitbucket API |
|
|
32
|
+
| `.git/config` contains `dev.azure.com` | Azure DevOps | `az repos pr create` |
|
|
33
|
+
|
|
34
|
+
Default: GitHub (most common). If platform can't be detected, ask user.
|
|
35
|
+
|
|
36
|
+
### Step 3: Detect commit and PR conventions
|
|
37
|
+
|
|
38
|
+
**From git history (most reliable — the team's actual practice):**
|
|
39
|
+
```bash
|
|
40
|
+
# Detect commit style from last 20 commits
|
|
41
|
+
git log --oneline -20 --format="%s"
|
|
42
|
+
# Look for patterns:
|
|
43
|
+
# "feat: ..." / "fix: ..." → Conventional Commits
|
|
44
|
+
# "Add feature X" / "Fix bug Y" → Freeform imperative
|
|
45
|
+
# "[JIRA-123] Fix bug" → Ticket-prefixed
|
|
46
|
+
# "#123 Fix bug" → Issue-prefixed
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**From config files:**
|
|
50
|
+
- `commitlint.config.js` → Conventional Commits enforced
|
|
51
|
+
- `.czrc` / `.cz.json` → Commitizen configured (conventional)
|
|
52
|
+
- `.github/PULL_REQUEST_TEMPLATE.md` → Custom PR template exists (use it!)
|
|
53
|
+
- `.github/CODEOWNERS` → Auto-reviewer assignment rules
|
|
54
|
+
|
|
55
|
+
**From project-profile.md (if /calibrate has run):**
|
|
56
|
+
- Commit style: conventional | freeform | ticket-prefixed
|
|
57
|
+
- PR merge strategy: squash | merge commit | rebase
|
|
58
|
+
- Branch naming: feature/* | feat/* | JIRA-*
|
|
59
|
+
|
|
60
|
+
### Step 4: Detect PR requirements
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Check if branch protection requires reviews
|
|
64
|
+
gh api repos/{owner}/{repo}/branches/main/protection --jq '.required_pull_request_reviews.required_approving_review_count' 2>/dev/null
|
|
65
|
+
|
|
66
|
+
# Check if status checks are required
|
|
67
|
+
gh api repos/{owner}/{repo}/branches/main/protection --jq '.required_status_checks.contexts[]' 2>/dev/null
|
|
68
|
+
|
|
69
|
+
# Check if CODEOWNERS exists
|
|
70
|
+
test -f .github/CODEOWNERS && echo "CODEOWNERS found — auto-reviewers will be assigned"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Step 5: Build PR template
|
|
74
|
+
|
|
75
|
+
Based on discovery, construct the right PR format:
|
|
76
|
+
|
|
77
|
+
**If `.github/PULL_REQUEST_TEMPLATE.md` exists:**
|
|
78
|
+
- Use it as the base template
|
|
79
|
+
- Fill in the sections from QA results and change analysis
|
|
80
|
+
|
|
81
|
+
**If project uses conventional commits:**
|
|
82
|
+
- PR title: `{type}({scope}): {description}` (match commit style)
|
|
83
|
+
- PR body: include breaking changes section if type is `feat!` or `fix!`
|
|
84
|
+
|
|
85
|
+
**If project uses ticket-prefixed commits:**
|
|
86
|
+
- PR title: `[TICKET-123] Description`
|
|
87
|
+
- PR body: include ticket link
|
|
88
|
+
|
|
89
|
+
**Default template (no conventions detected):**
|
|
90
|
+
- Summary (1-3 bullets)
|
|
91
|
+
- QA Results
|
|
92
|
+
- Test plan
|
|
93
|
+
- Closes #N
|
|
94
|
+
|
|
95
|
+
### Step 6: Recommend improvements
|
|
96
|
+
|
|
97
|
+
If missing, suggest:
|
|
98
|
+
```
|
|
99
|
+
PR process recommendations for {project}:
|
|
100
|
+
⚠ No PULL_REQUEST_TEMPLATE.md — consider adding one for consistent PRs
|
|
101
|
+
⚠ No CODEOWNERS file — PRs won't auto-assign reviewers
|
|
102
|
+
⚠ No branch protection on main — anyone can push directly
|
|
103
|
+
⚠ No required status checks — PRs can merge without CI passing
|
|
104
|
+
⚠ No commit convention detected — consider conventional commits for changelogs
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
This skill orchestrates the full pre-merge workflow: QA checks, PR creation, and post-merge cleanup.
|
|
108
|
+
|
|
109
|
+
## Argument Parsing
|
|
110
|
+
|
|
111
|
+
| Input | Action |
|
|
112
|
+
|-------|--------|
|
|
113
|
+
| `/pr` | Full workflow — QA + commit + push + PR |
|
|
114
|
+
| `/pr --skip-qa` | Skip QA step — used when called from `/fix` or `/implement` which already ran QA. Only runs a quick sanity check (lint + type check). |
|
|
115
|
+
|
|
116
|
+
## Pre-Merge Workflow
|
|
117
|
+
|
|
118
|
+
### Step 0: Run /precheck (toolkit projects only)
|
|
119
|
+
|
|
120
|
+
If this is the claude-agents toolkit itself (check if `tests/run.sh` exists):
|
|
121
|
+
|
|
122
|
+
1. Invoke `/precheck` to run local mechanical tests
|
|
123
|
+
2. **If /precheck FAILS** — stop, fix failures, do NOT proceed
|
|
124
|
+
3. **If /precheck PASSES** — continue to Step 1
|
|
125
|
+
|
|
126
|
+
This catches CI failures in 30 seconds instead of a 4-minute remote round-trip.
|
|
127
|
+
Skip this step for non-toolkit projects (they don't have the test harness).
|
|
128
|
+
|
|
129
|
+
### Step 1: QA Gate
|
|
130
|
+
|
|
131
|
+
**If `--skip-qa` flag is set** (called from `/fix` or `/implement` which already ran QA):
|
|
132
|
+
|
|
133
|
+
Run a **quick sanity check only** — no full QA run:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# Read CLAUDE.md Test Commands table for lint and type check commands
|
|
137
|
+
# Examples:
|
|
138
|
+
# Python: ruff check . && mypy .
|
|
139
|
+
# Node: npm run lint && npx tsc --noEmit
|
|
140
|
+
# Go: golangci-lint run && go vet ./...
|
|
141
|
+
# Rust: cargo clippy && cargo check
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
If sanity check fails → show failures, ask user to fix. Do NOT run full QA.
|
|
145
|
+
If sanity check passes → continue to Step 2.
|
|
146
|
+
|
|
147
|
+
**If no `--skip-qa` flag** (called standalone):
|
|
148
|
+
|
|
149
|
+
Run the full QA framework in commit mode:
|
|
150
|
+
|
|
151
|
+
1. Invoke the `/qa` skill (commit mode) using the Skill tool
|
|
152
|
+
2. Wait for QA results
|
|
153
|
+
3. **If /qa FAILS** — stop immediately, show the failures, do NOT create PR
|
|
154
|
+
4. **If /qa PASSES** — continue to Step 2
|
|
155
|
+
|
|
156
|
+
**Why the split**: `/fix` and `/implement` both have their own QA step where the user
|
|
157
|
+
chooses the QA level. Running `/qa commit` again in `/pr` would be redundant. The quick
|
|
158
|
+
sanity check catches last-second issues (uncommitted lint errors, type mismatches from
|
|
159
|
+
a bad merge) without re-running the full test suite.
|
|
160
|
+
|
|
161
|
+
### Step 2: Stage and commit
|
|
162
|
+
|
|
163
|
+
1. Check `git status` for unstaged changes
|
|
164
|
+
2. Stage relevant files (never stage `.env`, credentials, or large binaries)
|
|
165
|
+
3. Create a commit with a descriptive message if there are uncommitted changes
|
|
166
|
+
|
|
167
|
+
### Step 3: Find or create GitHub issue
|
|
168
|
+
|
|
169
|
+
Before creating the PR, ensure a tracking issue exists:
|
|
170
|
+
|
|
171
|
+
1. **Check for existing issue** — search in this order:
|
|
172
|
+
a. If a PR already exists for this branch (`gh pr list --head <branch> --json body --limit 1`),
|
|
173
|
+
extract the issue number from `Closes #N` in the PR body
|
|
174
|
+
b. Search open issues for the branch name: `gh issue list --search "Branch: <branch-name>" --state open --json number,title --limit 1`
|
|
175
|
+
c. Search open issues by title keywords (derive from branch name, e.g., `fix/safari-audio` → "safari audio"):
|
|
176
|
+
`gh issue list --search "<keywords> in:title" --state open --json number,title --limit 3`
|
|
177
|
+
- If exactly 1 match, reuse it
|
|
178
|
+
- If multiple matches, show them to the user and ask which to link (or create new)
|
|
179
|
+
|
|
180
|
+
2. **If no existing issue found** — create one with `gh issue create`:
|
|
181
|
+
- Title: concise description of what the change does
|
|
182
|
+
- Body: problem statement, solution summary, and a branch marker line:
|
|
183
|
+
```
|
|
184
|
+
Branch: <branch-name>
|
|
185
|
+
```
|
|
186
|
+
This marker enables reliable lookup on future `/pr` runs.
|
|
187
|
+
|
|
188
|
+
3. Note the issue number for the PR body
|
|
189
|
+
|
|
190
|
+
### Step 4: Push and create PR
|
|
191
|
+
|
|
192
|
+
1. Push current branch to origin: `git push -u origin <branch>`
|
|
193
|
+
2. Create a GitHub PR with:
|
|
194
|
+
- A concise title (under 70 chars) summarizing the change
|
|
195
|
+
- A body with:
|
|
196
|
+
- `## Summary` — 1-3 bullet points of what changed and why
|
|
197
|
+
- `## QA Results` — paste the /qa commit summary (pass/fail counts)
|
|
198
|
+
- `## Test plan` — checklist of what to verify
|
|
199
|
+
- `Closes #<issue-number>` — auto-closes the issue on merge
|
|
200
|
+
3. Return the PR URL to the user
|
|
201
|
+
|
|
202
|
+
### Step 5: Never push directly to main
|
|
203
|
+
|
|
204
|
+
If on main branch, refuse and ask user to create a feature branch first.
|
|
205
|
+
|
|
206
|
+
## Post-Merge Workflow
|
|
207
|
+
|
|
208
|
+
After the PR is merged (user confirms or asks to clean up):
|
|
209
|
+
|
|
210
|
+
1. Verify the linked issue was auto-closed (the `Closes #N` in the PR body handles this)
|
|
211
|
+
2. If the issue wasn't auto-closed, close it manually: `gh issue close <number> --reason completed`
|
|
212
|
+
3. Delete the remote branch: `git push origin --delete <branch>`
|
|
213
|
+
4. Delete the local branch: `git branch -d <branch>`
|
|
214
|
+
5. Checkout main: `git checkout main`
|
|
215
|
+
6. Pull latest: `git pull origin main`
|
|
216
|
+
7. **Run `/onboard`** — invoke the onboard skill to present project status (open PRs, GH issues, memory context) and recommend what to work on next
|
|
217
|
+
|
|
218
|
+
## What Happens After Merge (automated by CI/CD)
|
|
219
|
+
|
|
220
|
+
The user doesn't need to do anything — GitHub Actions handles:
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
Merge to main
|
|
224
|
+
→ CI checks run again
|
|
225
|
+
→ Deploy to staging → smoke test staging
|
|
226
|
+
→ If staging healthy → deploy to production
|
|
227
|
+
→ Health check production → Discord notification
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
If Discord reports issues, tell the user to run `/sre` to investigate.
|
|
231
|
+
|
|
232
|
+
## Continuation (Workflow Chaining)
|
|
233
|
+
|
|
234
|
+
After the PR is created:
|
|
235
|
+
|
|
236
|
+
**If autopilot is active** (check `.claude/.workflow-state.json` mode == "autopilot"):
|
|
237
|
+
- Update workflow state: `phase: "awaiting_merge"`, `pr_number: N`
|
|
238
|
+
- Present PR summary with risk assessment
|
|
239
|
+
- **STOP HERE** — never merge without human approval
|
|
240
|
+
- When user says "merged", "continue", or "next": the post-git-state hook
|
|
241
|
+
will reset phase to "assess" and the autopilot loop continues
|
|
242
|
+
|
|
243
|
+
**If guided mode** (no autopilot or mode != "autopilot"):
|
|
244
|
+
- Present: "PR #N created. After merge, run `/onboard` to see what's next."
|
|
245
|
+
- Offer the post-merge cleanup steps (delete branch, checkout main, pull)
|
|
246
|
+
|
|
247
|
+
## Knowledge Base Integration
|
|
248
|
+
|
|
249
|
+
### On every /pr invocation:
|
|
250
|
+
1. **Read** `.claude/knowledge/shared/conventions.md` — use correct commit style
|
|
251
|
+
2. **Read** `.claude/knowledge/skills/pr.md` — past PR patterns
|
|
252
|
+
3. **Read** `.github/PULL_REQUEST_TEMPLATE.md` — use project's own template
|
|
253
|
+
|
|
254
|
+
### After PR created:
|
|
255
|
+
1. **Append** to `.claude/knowledge/skills/pr.md`:
|
|
256
|
+
```
|
|
257
|
+
### {date} — PR #{number}
|
|
258
|
+
**Branch**: {branch}
|
|
259
|
+
**Type**: {bug fix | feature | refactor}
|
|
260
|
+
**Files**: {count}
|
|
261
|
+
**Reviewers**: {auto-assigned from CODEOWNERS or manual}
|
|
262
|
+
**Template used**: {custom | default | conventional}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### /calibrate Integration
|
|
266
|
+
|
|
267
|
+
When `/calibrate` runs, it reads the project's git history and PR configuration.
|
|
268
|
+
The /pr skill contributes:
|
|
269
|
+
1. **Commit convention detection** → /calibrate writes to project profile
|
|
270
|
+
2. **PR template existence** → /calibrate notes in recommendations
|
|
271
|
+
3. **Branch protection rules** → /calibrate notes in recommendations
|
|
272
|
+
4. **CODEOWNERS rules** → /calibrate notes reviewer patterns
|
|
273
|
+
|
|
274
|
+
If `/calibrate` hasn't run, /pr does its own discovery and uses what it finds.
|
|
275
|
+
If `/calibrate` has run, /pr reads conventions from `project-profile.md` directly.
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: precheck
|
|
3
|
+
description: "Run local tests before pushing. Catches CI failures locally in 30s instead of 4min round-trip. Usage: /precheck"
|
|
4
|
+
user-invocable: true
|
|
5
|
+
arguments: ""
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /precheck — Local CI Before Push
|
|
9
|
+
|
|
10
|
+
Run the mechanical test suite locally before creating a PR. Catches failures
|
|
11
|
+
in 30 seconds instead of a 4-minute CI round-trip.
|
|
12
|
+
|
|
13
|
+
**Run this EVERY TIME before pushing.**
|
|
14
|
+
|
|
15
|
+
## Execution
|
|
16
|
+
|
|
17
|
+
### Step 1: Detect what changed
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# What files changed on this branch vs main?
|
|
21
|
+
CHANGED=$(git diff main...HEAD --name-only 2>/dev/null || git diff HEAD~1 --name-only)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Step 2: Pick the right test suites
|
|
25
|
+
|
|
26
|
+
Based on what changed, run only the relevant suites:
|
|
27
|
+
|
|
28
|
+
| Files Changed | Suite | Why |
|
|
29
|
+
|--------------|-------|-----|
|
|
30
|
+
| `hooks/triage-router.sh` | `--suite 09` | Triage output format tests |
|
|
31
|
+
| `hooks/*.sh` (any hook) | `--suite 09` | Hook execution tests |
|
|
32
|
+
| `skills/*/SKILL.md` | `--suite 20` | Skill runtime safety (frontmatter, brackets) |
|
|
33
|
+
| `agents/*.md` | `--suite 19,20` | Brownfield classification + skill safety |
|
|
34
|
+
| `install.sh` | `--suite 01,02,03,04,19` | Install flow tests |
|
|
35
|
+
| `portable.manifest` | `--suite 01,02` | Manifest consistency |
|
|
36
|
+
| `tests/fixtures/**` | `--suite 19` | Brownfield fixture tests |
|
|
37
|
+
| Multiple categories | `--mechanical` | Run all mechanical tests |
|
|
38
|
+
|
|
39
|
+
### Step 3: Run the tests
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Must be on a feature branch (test runner refuses main)
|
|
43
|
+
BRANCH=$(git branch --show-current)
|
|
44
|
+
if [ "$BRANCH" = "main" ]; then
|
|
45
|
+
echo "Switch to a feature branch first: git checkout -b fix/my-change"
|
|
46
|
+
exit 1
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
# Run the selected suites
|
|
50
|
+
bash tests/run.sh --suite {selected_suites} --scenario a
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Step 4: Report and write marker
|
|
54
|
+
|
|
55
|
+
If all pass:
|
|
56
|
+
```bash
|
|
57
|
+
# Write precheck marker (triage router checks this before allowing /pr)
|
|
58
|
+
mkdir -p "$CLAUDE_PROJECT_DIR/.claude"
|
|
59
|
+
echo "$(date +%s) $(git rev-parse --short HEAD 2>/dev/null || echo 'unknown')" > "$CLAUDE_PROJECT_DIR/.claude/.precheck-passed"
|
|
60
|
+
```
|
|
61
|
+
```
|
|
62
|
+
✓ Precheck passed ({N} tests, {time}s)
|
|
63
|
+
Ready to push.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
If any fail:
|
|
67
|
+
```bash
|
|
68
|
+
# Remove stale marker on failure
|
|
69
|
+
rm -f "$CLAUDE_PROJECT_DIR/.claude/.precheck-passed" 2>/dev/null || true
|
|
70
|
+
```
|
|
71
|
+
```
|
|
72
|
+
✗ Precheck FAILED
|
|
73
|
+
|
|
74
|
+
Failed tests:
|
|
75
|
+
{test name} — {failure reason}
|
|
76
|
+
|
|
77
|
+
Fix these before pushing. Do NOT push with failing tests.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Step 5: If all pass, ship it
|
|
81
|
+
|
|
82
|
+
After tests pass, run the full ship sequence. Do NOT ask — just do it.
|
|
83
|
+
|
|
84
|
+
**5.1: Stage and commit** (if uncommitted changes exist)
|
|
85
|
+
```bash
|
|
86
|
+
git add {relevant files — never .env or credentials}
|
|
87
|
+
git commit -m "{descriptive message}
|
|
88
|
+
|
|
89
|
+
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**5.2: Push**
|
|
93
|
+
```bash
|
|
94
|
+
git push -u origin {branch}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**5.3: Create PR**
|
|
98
|
+
```bash
|
|
99
|
+
gh pr create --title "{title}" --body "{body}"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**5.4: Merge**
|
|
103
|
+
```bash
|
|
104
|
+
# IMPORTANT: Never use --auto. It's not enabled on this repo.
|
|
105
|
+
gh pr merge --squash
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**5.5: Cleanup**
|
|
109
|
+
```bash
|
|
110
|
+
git checkout main
|
|
111
|
+
git pull
|
|
112
|
+
git branch -d {branch}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**5.6: Report**
|
|
116
|
+
```
|
|
117
|
+
✓ Shipped: PR #{number} merged to main
|
|
118
|
+
Tests: {N} passed, 0 failed
|
|
119
|
+
Files: {changed files summary}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Full sequence (copy-paste safe)
|
|
123
|
+
|
|
124
|
+
The entire ship flow as a single sequence — test, commit, push, PR, merge, cleanup:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# 1. Test
|
|
128
|
+
bash tests/run.sh --suite {suites} --scenario a
|
|
129
|
+
|
|
130
|
+
# 2. Commit (if needed)
|
|
131
|
+
git add {files}
|
|
132
|
+
git commit -m "{message}"
|
|
133
|
+
|
|
134
|
+
# 3. Push + PR
|
|
135
|
+
git push -u origin {branch}
|
|
136
|
+
gh pr create --title "{title}" --body "{body}"
|
|
137
|
+
|
|
138
|
+
# 4. Merge (NEVER use --auto)
|
|
139
|
+
gh pr merge --squash
|
|
140
|
+
|
|
141
|
+
# 5. Cleanup
|
|
142
|
+
git checkout main && git pull && git branch -d {branch}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Common Failures
|
|
146
|
+
|
|
147
|
+
| Failure | Cause | Fix |
|
|
148
|
+
|---------|-------|-----|
|
|
149
|
+
| "classify_file returns IDENTICAL" | Agent fixture is stale — you changed an agent file | Update the fixture: `cp agents/{name}.md tests/fixtures/claude-setups/poweruser/.claude/agents/` |
|
|
150
|
+
| "regex-unsafe [brackets] in arguments" | Skill frontmatter has `[brackets]` | Replace `[x]` with `<x>` in SKILL.md arguments/description |
|
|
151
|
+
| "compact SPEED reminder" | Triage router compact output changed | Update test assertion in `09-triage-router-output.sh` |
|
|
152
|
+
| "STALE/MODIFIED classification wrong" | Agent grew too much, ratio shifted | Check fixture agent size vs toolkit — restore original fixture if needed |
|
|
153
|
+
|
|
154
|
+
## Rules
|
|
155
|
+
|
|
156
|
+
- **Always run before pushing.** No exceptions.
|
|
157
|
+
- **Fix failures before pushing.** Don't push hoping CI will pass.
|
|
158
|
+
- **If you changed agent files**, also run `--suite 19` (brownfield fixtures).
|
|
159
|
+
- **If you changed the triage router**, also run `--suite 09`.
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa
|
|
3
|
+
description: "Run QA checks. Usage: /qa (commit), /qa full (comprehensive), /qa staging (deployed), /qa prod (read-only)."
|
|
4
|
+
user-invocable: true
|
|
5
|
+
arguments: "<mode>"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Universal QA Framework
|
|
9
|
+
|
|
10
|
+
## Mode Detection
|
|
11
|
+
|
|
12
|
+
Parse the mode from the argument:
|
|
13
|
+
- No argument / empty / "commit" → **commit** mode
|
|
14
|
+
- "full" → **full** mode
|
|
15
|
+
- "staging" → **staging** deployment verification
|
|
16
|
+
- "prod" / "production" → **prod** deployment verification
|
|
17
|
+
|
|
18
|
+
## Mode: {{ mode }}
|
|
19
|
+
|
|
20
|
+
You are the Chief QA Agent. Execute the QA framework in **{{ mode }}** mode.
|
|
21
|
+
|
|
22
|
+
### Quick Reference
|
|
23
|
+
- **commit mode**: Analyze `git diff HEAD~1`, run targeted checks on changed files only, spawn 2-4 agents, generate 5-8 test scenarios, produce targeted report (~1-3 min)
|
|
24
|
+
- **full mode**: Analyze `git diff main...HEAD`, run ALL checks across full codebase, spawn ALL worker agents, generate 10-15 test scenarios, comprehensive report (~10-20 min)
|
|
25
|
+
- **staging mode**: Resolve staging URLs from CLAUDE.md Infrastructure table, run health + smoke + E2E against deployed staging
|
|
26
|
+
- **prod mode**: Resolve production URLs from CLAUDE.md, READ-ONLY health + smoke (NO mutations)
|
|
27
|
+
|
|
28
|
+
### Execution Steps
|
|
29
|
+
|
|
30
|
+
1. **Read configuration**: Load `CLAUDE.md` for test commands, services, infrastructure. Also load `qa-manifest.yml` if it exists.
|
|
31
|
+
|
|
32
|
+
2. **Analyze changes**:
|
|
33
|
+
- commit mode: `git diff HEAD~1 --name-only`
|
|
34
|
+
- full mode: `git diff main...HEAD --name-only` + `git log --oneline -10`
|
|
35
|
+
- staging/prod: `git log --oneline -1` (just for commit hash in report)
|
|
36
|
+
|
|
37
|
+
2b. **Find related test files with explore-light** (cost: 1x Haiku):
|
|
38
|
+
|
|
39
|
+
Before planning which agents to spawn, find what tests already exist for the changed files:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
subagent_type: "explore-light"
|
|
43
|
+
prompt: "For each of these changed files, find:
|
|
44
|
+
1. Existing test files that test this code (by import, naming convention, or directory)
|
|
45
|
+
2. Whether the test file has been updated in this diff (or is stale)
|
|
46
|
+
3. Related files that SHOULD be tested but might not have tests
|
|
47
|
+
|
|
48
|
+
Changed files: {from step 2}
|
|
49
|
+
Return: mapping of source file → test file (or 'NO TEST' if missing)"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Use the results to:
|
|
53
|
+
- Skip spawning test agents for files that have no tests (flag as coverage gap instead)
|
|
54
|
+
- Focus test agents on files that DO have tests (verify they still pass)
|
|
55
|
+
- Identify new code without tests (recommend adding them)
|
|
56
|
+
|
|
57
|
+
3. **Plan test strategy** using the directory heuristic:
|
|
58
|
+
| Changed files in... | Spawn agent... |
|
|
59
|
+
|---------------------|----------------|
|
|
60
|
+
| Backend directory | backend-qa (Haiku): lint, type check, tests |
|
|
61
|
+
| Frontend directory | frontend-qa (Haiku): lint, type check, tests, build |
|
|
62
|
+
| Frontend pages/routes or E2E tests | e2e-qa (Sonnet): Playwright/Cypress |
|
|
63
|
+
| Schema/type files (both sides) | contract-qa (Haiku): schema diff |
|
|
64
|
+
| Migration files | contract-qa: migration validation |
|
|
65
|
+
| Domain-specific files | domain-qa (Sonnet): business logic checks |
|
|
66
|
+
| 5+ files changed (commit) or full mode | code-review (Sonnet): architectural review |
|
|
67
|
+
|
|
68
|
+
4. **Generate test scenarios**: Think like real users. What user-facing behavior changed? What edge cases matter? What could break elsewhere?
|
|
69
|
+
|
|
70
|
+
5. **Create team and spawn agents**: Use TeamCreate + TaskCreate + Task tool. Spawn ALL agents in ONE message for maximum parallelism.
|
|
71
|
+
|
|
72
|
+
6. **Collect results**: Monitor TaskList, collect SendMessage results from all agents.
|
|
73
|
+
|
|
74
|
+
7. **Run coverage audit**: Review if existing tests still match the codebase. Flag new code without tests, stale tests, dead tests.
|
|
75
|
+
|
|
76
|
+
8. **Produce report**: Structured QA report with change analysis, check results, failures, warnings, coverage, E2E results, domain quality, code review, scenario results, and actionable next steps.
|
|
77
|
+
|
|
78
|
+
9. **Cleanup**: Shutdown all agents, TeamDelete, stop QA-started servers.
|
|
79
|
+
|
|
80
|
+
### Three-Layer Test Strategy
|
|
81
|
+
Every QA run uses three complementary layers:
|
|
82
|
+
1. **Baseline Tests** — existing test suites (regression anchor, same every run)
|
|
83
|
+
2. **Generated Scenarios** — fresh every run, thinks like real users based on diff
|
|
84
|
+
3. **Coverage Audit** — reviews if existing tests still match the codebase
|
|
85
|
+
|
|
86
|
+
### Important Notes
|
|
87
|
+
- Read CLAUDE.md for ALL project-specific paths, commands, ports, and conventions
|
|
88
|
+
- Generated scenarios are NOT persisted as test files — they're one-off explorations
|
|
89
|
+
- If a generated scenario catches a bug, recommend adding a permanent baseline test
|
|
90
|
+
- Domain validation Tier 3 is ADVISORY ONLY — never gates deployment
|
|
91
|
+
- Use 600000ms timeout for E2E Bash calls
|
|
92
|
+
|
|
93
|
+
## Continuation (Workflow Chaining)
|
|
94
|
+
|
|
95
|
+
After QA completes:
|
|
96
|
+
|
|
97
|
+
**If autopilot is active** (check `.claude/.workflow-state.json` mode == "autopilot"):
|
|
98
|
+
- If QA **passed**: proceed to `/review-pr` then `/pr`
|
|
99
|
+
- Detect change type: if `.claude/.fix-scope-lock.json` exists → bug fix, else → feature
|
|
100
|
+
- Run `/review-pr --type {bug|feature}` for automated review
|
|
101
|
+
- If review passes → update workflow state: `phase: "pr"`, create PR
|
|
102
|
+
- If review has blocking issues → attempt fix, re-run QA + review
|
|
103
|
+
- If QA **failed**: attempt fix (max 2 rounds), then re-run QA
|
|
104
|
+
- If still failing after 2 attempts: STOP, report failures, wait for human
|
|
105
|
+
- Update workflow state: `phase: "blocked"`, increment `attempts.qa_fixes`
|
|
106
|
+
|
|
107
|
+
**If guided mode** (no autopilot or mode != "autopilot"):
|
|
108
|
+
- If QA **passed**:
|
|
109
|
+
- Detect change type:
|
|
110
|
+
- `.claude/.fix-scope-lock.json` exists → this is a **bug fix**
|
|
111
|
+
- `.claude/plans/*.md` was referenced → this is a **feature**
|
|
112
|
+
- Neither → ask user or default to feature
|
|
113
|
+
- Present:
|
|
114
|
+
```
|
|
115
|
+
QA passed. Next step: code review before creating PR.
|
|
116
|
+
|
|
117
|
+
Detected: {bug fix | feature}
|
|
118
|
+
Recommended: /review-pr {--type bug | --type feature}
|
|
119
|
+
|
|
120
|
+
This will check: {scope compliance + regression test (bug) | plan completeness + test coverage (feature)}
|
|
121
|
+
Then: /pr to create the pull request.
|
|
122
|
+
|
|
123
|
+
Run /review-pr now? Or skip to /pr?
|
|
124
|
+
```
|
|
125
|
+
- If user says "skip" → proceed to `/pr` directly
|
|
126
|
+
- If user approves → run `/review-pr`, then suggest `/pr`
|
|
127
|
+
- If QA **failed**: "QA found N failures. Here's what went wrong: [details]. Should I fix and re-run?"
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa-incident
|
|
3
|
+
description: "Manually create a QA incident from a known issue. Usage: /qa-incident <description>"
|
|
4
|
+
user-invocable: true
|
|
5
|
+
arguments: "<description>"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Create QA Incident
|
|
9
|
+
|
|
10
|
+
Manually log a production incident or known issue to the QA knowledge base, so the next `/qa` run generates a regression test for it.
|
|
11
|
+
|
|
12
|
+
## Process
|
|
13
|
+
|
|
14
|
+
1. **Parse the description** from the argument.
|
|
15
|
+
|
|
16
|
+
2. **Ask clarifying questions** (use AskUserQuestion):
|
|
17
|
+
- Severity: high / medium / low
|
|
18
|
+
- Affected files (if known)
|
|
19
|
+
- Root cause (if known)
|
|
20
|
+
|
|
21
|
+
3. **Create incident file** at `.claude/qa-knowledge/incidents/{date}-{slug}.md`:
|
|
22
|
+
|
|
23
|
+
```markdown
|
|
24
|
+
---
|
|
25
|
+
date: {today YYYY-MM-DD}
|
|
26
|
+
severity: {from user}
|
|
27
|
+
status: uncovered
|
|
28
|
+
affected_files:
|
|
29
|
+
- {from user, or "unknown"}
|
|
30
|
+
---
|
|
31
|
+
# {Title from description}
|
|
32
|
+
|
|
33
|
+
## Root Cause
|
|
34
|
+
{From user, or "To be investigated"}
|
|
35
|
+
|
|
36
|
+
## How QA Missed It
|
|
37
|
+
{Infer from context, or "Unknown -- needs investigation"}
|
|
38
|
+
|
|
39
|
+
## Regression Test Recommendation
|
|
40
|
+
{Suggest based on description and affected files}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
4. **Confirm to user**: "Incident logged. Next `/qa` run will generate a regression test targeting this issue."
|
|
44
|
+
|
|
45
|
+
## If No Description Provided
|
|
46
|
+
|
|
47
|
+
Ask: "Describe the issue you want to log (e.g., 'admin page crashes when user has no sessions')"
|
|
48
|
+
|
|
49
|
+
## If Knowledge Base Doesn't Exist
|
|
50
|
+
|
|
51
|
+
Create the directory structure first:
|
|
52
|
+
```bash
|
|
53
|
+
mkdir -p .claude/qa-knowledge/incidents
|
|
54
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa-learn
|
|
3
|
+
description: "Review QA knowledge base stats, prune stale entries, show learning metrics. Usage: /qa-learn [prune]"
|
|
4
|
+
user-invocable: true
|
|
5
|
+
arguments: "<command>"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# QA Learning Review
|
|
9
|
+
|
|
10
|
+
Review the self-improving QA system's accumulated knowledge.
|
|
11
|
+
|
|
12
|
+
## Default: Show Stats
|
|
13
|
+
|
|
14
|
+
Read and summarize the QA knowledge base:
|
|
15
|
+
|
|
16
|
+
1. **Incidents**: Count files in `.claude/qa-knowledge/incidents/`. Show covered vs uncovered.
|
|
17
|
+
2. **Promoted tests**: Count files in `.claude/qa-knowledge/promoted-tests/`. List test file paths.
|
|
18
|
+
3. **Bug patterns**: Count patterns in `.claude/qa-knowledge/bug-patterns.md`.
|
|
19
|
+
4. **Coverage gaps**: Count gaps in `.claude/qa-knowledge/coverage-gaps.md`.
|
|
20
|
+
5. **Challenger log**: Count entries in `.claude/qa-knowledge/challenger-log.md`. Show hit rate (attacks that found issues / total attacks).
|
|
21
|
+
|
|
22
|
+
Present as a structured table:
|
|
23
|
+
|
|
24
|
+
| Metric | Count | Details |
|
|
25
|
+
|--------|-------|---------|
|
|
26
|
+
| Incidents (uncovered) | N | {list titles} |
|
|
27
|
+
| Incidents (covered) | N | {list titles} |
|
|
28
|
+
| Promoted tests | N | {list file paths} |
|
|
29
|
+
| Bug patterns | N | |
|
|
30
|
+
| Coverage gaps | N | |
|
|
31
|
+
| Challenger attacks (total) | N | |
|
|
32
|
+
| Challenger hit rate | X% | {found issues / total} |
|
|
33
|
+
|
|
34
|
+
## `/qa-learn prune`
|
|
35
|
+
|
|
36
|
+
Remove stale entries:
|
|
37
|
+
1. Incidents with `status: covered` older than 30 days -> archive or delete
|
|
38
|
+
2. Promoted tests whose source test file no longer exists -> remove provenance
|
|
39
|
+
3. Coverage gaps that now have test coverage -> remove
|
|
40
|
+
4. Challenger log entries older than 90 days -> truncate
|
|
41
|
+
|
|
42
|
+
Report what was pruned.
|
|
43
|
+
|
|
44
|
+
## If Knowledge Base Doesn't Exist
|
|
45
|
+
|
|
46
|
+
If `.claude/qa-knowledge/` doesn't exist, report:
|
|
47
|
+
"QA knowledge base not initialized. Run `/qa commit` or `/qa full` to start accumulating knowledge."
|