@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,344 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: onboard
|
|
3
|
+
description: "Session onboarding — project briefing, work prioritization, and guided setup. Usage: /onboard"
|
|
4
|
+
user-invocable: true
|
|
5
|
+
arguments: ""
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Onboard Skill — Session Start Intelligence
|
|
9
|
+
|
|
10
|
+
Helps users get oriented at the start of a session. Detects project state, gathers
|
|
11
|
+
deep context, and suggests what to work on — prioritized by the nature of the project.
|
|
12
|
+
Works for both greenfield and brownfield projects.
|
|
13
|
+
|
|
14
|
+
**Key principle: Do the legwork, don't be pushy.** Gather context silently, present a
|
|
15
|
+
clear picture, let the user drive.
|
|
16
|
+
|
|
17
|
+
## Execution Steps
|
|
18
|
+
|
|
19
|
+
### 1. Detect Project State
|
|
20
|
+
|
|
21
|
+
Check these signals to determine greenfield vs brownfield:
|
|
22
|
+
|
|
23
|
+
| Signal | Greenfield | Brownfield |
|
|
24
|
+
|--------|-----------|------------|
|
|
25
|
+
| `CLAUDE.md` exists | No | Yes |
|
|
26
|
+
| Source code dirs (`src/`, `app/`, `backend/`, `frontend/`) | None | Present |
|
|
27
|
+
| `package.json` or `requirements.txt` | None | Present |
|
|
28
|
+
| Git history | 0-2 commits | Many commits |
|
|
29
|
+
| `.claude/plans/` has files | No | Maybe |
|
|
30
|
+
|
|
31
|
+
### 2A. Greenfield Flow
|
|
32
|
+
|
|
33
|
+
If the project is greenfield (no meaningful code):
|
|
34
|
+
|
|
35
|
+
1. Ask the user ONE question using AskUserQuestion:
|
|
36
|
+
- "What are you building? (1-2 sentences — what it does and who it's for)"
|
|
37
|
+
|
|
38
|
+
2. Based on their answer, suggest a tech stack:
|
|
39
|
+
- Check if any config files hint at preferences (empty `package.json`, `requirements.txt`, etc.)
|
|
40
|
+
- Suggest a stack that matches their description
|
|
41
|
+
- Ask them to confirm or adjust
|
|
42
|
+
|
|
43
|
+
3. Take action:
|
|
44
|
+
- Run `/scan` to scaffold CLAUDE.md with detected/chosen stack
|
|
45
|
+
- Create a project plan via `/planning` if the feature is non-trivial
|
|
46
|
+
- Or scaffold directly if it's simple enough
|
|
47
|
+
|
|
48
|
+
4. Present next steps:
|
|
49
|
+
- "Project scaffolded. Run `/planning <feature>` to plan your first feature."
|
|
50
|
+
- "Or just tell me what to build and I'll get started."
|
|
51
|
+
|
|
52
|
+
### 2B. Brownfield Flow
|
|
53
|
+
|
|
54
|
+
If the project has existing code:
|
|
55
|
+
|
|
56
|
+
#### Step 0: Toolkit Update Check (ALWAYS run first)
|
|
57
|
+
|
|
58
|
+
Check if the claude-agents toolkit has been updated since this project last synced.
|
|
59
|
+
This is the ONLY reliable way to surface toolkit changes to the user — hook stdout
|
|
60
|
+
is unreliable (known Claude Code bugs #13650, #27467 cause silent drops).
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Read the per-project last-seen SHA
|
|
64
|
+
TOOLKIT_DIR="$HOME/.claude-agents"
|
|
65
|
+
LAST_SEEN_FILE=".claude/.toolkit-last-seen-sha"
|
|
66
|
+
CURRENT_SHA=$(cd "$TOOLKIT_DIR" && git rev-parse HEAD 2>/dev/null)
|
|
67
|
+
LAST_SEEN_SHA=$(cat "$LAST_SEEN_FILE" 2>/dev/null || echo "")
|
|
68
|
+
|
|
69
|
+
# Compare — if different, toolkit has changed since last session
|
|
70
|
+
if [ -n "$LAST_SEEN_SHA" ] && [ -n "$CURRENT_SHA" ] && [ "$LAST_SEEN_SHA" != "$CURRENT_SHA" ]; then
|
|
71
|
+
# Get commit count and details
|
|
72
|
+
cd "$TOOLKIT_DIR"
|
|
73
|
+
COMMIT_COUNT=$(git rev-list --count "$LAST_SEEN_SHA..$CURRENT_SHA" 2>/dev/null || echo "0")
|
|
74
|
+
CHANGELOG=$(git log --format=" • %s" "$LAST_SEEN_SHA..$CURRENT_SHA" 2>/dev/null | grep -iE "feat:|fix:|breaking:|new:" | head -5)
|
|
75
|
+
NEW_SKILLS=$(git diff --diff-filter=A --name-only "$LAST_SEEN_SHA..$CURRENT_SHA" -- "skills/*/SKILL.md" 2>/dev/null | sed 's|skills/||;s|/SKILL.md||' | tr '\n' ', ' | sed 's/,$//')
|
|
76
|
+
UPDATED_AGENTS=$(git diff --diff-filter=M --name-only "$LAST_SEEN_SHA..$CURRENT_SHA" -- "agents/*.md" 2>/dev/null | sed 's|agents/||;s|\.md||' | tr '\n' ', ' | sed 's/,$//')
|
|
77
|
+
fi
|
|
78
|
+
|
|
79
|
+
# Also check if project hasn't been calibrated yet
|
|
80
|
+
HAS_PROFILE=false
|
|
81
|
+
[ -f ".claude/project-profile.md" ] && HAS_PROFILE=true
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**If toolkit has changes, show them FIRST in the briefing:**
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
🔧 Toolkit updated ({COMMIT_COUNT} new commits since last session)
|
|
88
|
+
{CHANGELOG}
|
|
89
|
+
{if NEW_SKILLS: " New skills: {NEW_SKILLS}"}
|
|
90
|
+
{if UPDATED_AGENTS: " Updated agents: {UPDATED_AGENTS}"}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**If project hasn't been calibrated, show the hint:**
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
💡 This project hasn't been calibrated yet. Run /calibrate to deep-learn your
|
|
97
|
+
codebase and configure MCP servers, agents, and workflows.
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**After showing, update the stored SHA:**
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
echo "$CURRENT_SHA" > ".claude/.toolkit-last-seen-sha"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
#### Step 1: Deep Context Gathering (no user interaction — run ALL of these)
|
|
107
|
+
|
|
108
|
+
Use **parallel tool calls** where possible to gather all context fast.
|
|
109
|
+
|
|
110
|
+
**Git state (local — fast)**:
|
|
111
|
+
```bash
|
|
112
|
+
git branch --show-current
|
|
113
|
+
git status --short
|
|
114
|
+
git log --oneline -20 # recent commits for work history
|
|
115
|
+
git log --oneline --since="3 days ago" # what happened since last session
|
|
116
|
+
git stash list
|
|
117
|
+
git branch -a --sort=-committerdate | head -10 # recent branches
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**GitHub state (if `gh` available)**:
|
|
121
|
+
|
|
122
|
+
**Step 1 — fast list (run all in parallel):**
|
|
123
|
+
```bash
|
|
124
|
+
# My open PRs — NO comments field (bot comments are huge HTML and cause errors)
|
|
125
|
+
gh pr list --author @me --json number,title,state,reviewDecision,updatedAt,headRefName,labels --limit 10
|
|
126
|
+
|
|
127
|
+
# PRs requesting my review (--review-requested is NOT a valid flag; use --search)
|
|
128
|
+
gh pr list --search "review-requested:@me" --json number,title,author,createdAt --limit 5
|
|
129
|
+
|
|
130
|
+
# My assigned issues — get labels for prioritization
|
|
131
|
+
gh issue list --assignee @me --json number,title,labels,createdAt,updatedAt --limit 10
|
|
132
|
+
|
|
133
|
+
# Recent merged PRs (context on what shipped recently)
|
|
134
|
+
gh pr list --state merged --limit 5 --json number,title,mergedAt,author
|
|
135
|
+
|
|
136
|
+
# Open issues (unassigned — available to pick up)
|
|
137
|
+
gh issue list --json number,title,labels,assignees --limit 10
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Step 2 — fetch comment details for PRs that need attention:**
|
|
141
|
+
|
|
142
|
+
IMPORTANT: After Step 1, for each PR with `reviewDecision: CHANGES_REQUESTED`
|
|
143
|
+
or updated in the last 3 days, fetch its comments individually. This avoids
|
|
144
|
+
pulling massive bot comments in bulk while still getting the detail you need.
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Run ONE per PR that needs attention (replace <NUMBER> with actual PR number):
|
|
148
|
+
gh pr view <NUMBER> --json comments,reviews --jq '{
|
|
149
|
+
comments: [.comments[] | {author: .author.login, age: .createdAt, body: .body[0:200]}] | .[-3:],
|
|
150
|
+
reviews: [.reviews[] | {author: .author.login, state: .state, body: .body[0:200]}] | .[-3:]
|
|
151
|
+
}'
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
This gives you: who commented, when, and the first 200 chars of each comment.
|
|
155
|
+
Include these details in the 🟡 Waiting on you section of the briefing.
|
|
156
|
+
|
|
157
|
+
**Project state**:
|
|
158
|
+
```bash
|
|
159
|
+
ls .claude/plans/*.md # active plans
|
|
160
|
+
cat CLAUDE.md | head -5 # project identity
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Environment health** (read CLAUDE.md `## Environments` table):
|
|
164
|
+
|
|
165
|
+
If the `## Environments` section exists in CLAUDE.md, validate each environment:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# For EACH environment in the Environments table:
|
|
169
|
+
|
|
170
|
+
# Type: development (local)
|
|
171
|
+
docker ps --format '{{.Names}} {{.Status}}' # container health
|
|
172
|
+
curl -sf {URL}{Health} > /dev/null && echo "✓" || echo "✗" # local health endpoint
|
|
173
|
+
# Check migration status (Alembic/Prisma/Drizzle — detect from project)
|
|
174
|
+
ls .env.local > /dev/null 2>&1 # env file exists
|
|
175
|
+
|
|
176
|
+
# Type: staging
|
|
177
|
+
curl -sf {URL}{Health} -o /dev/null -w "%{http_code}" # health endpoint
|
|
178
|
+
# Check deploy platform accessibility (Railway MCP query, vercel whoami, etc.)
|
|
179
|
+
|
|
180
|
+
# Type: production (READ-ONLY — never run mutations)
|
|
181
|
+
curl -sf {URL}{Health} -o /dev/null -w "%{http_code}" # health endpoint only
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Fallback**: If no `## Environments` section exists in CLAUDE.md (project not yet calibrated), fall back to basic checks:
|
|
185
|
+
```bash
|
|
186
|
+
docker ps --format '{{.Names}} {{.Status}}' # container health
|
|
187
|
+
ls .env.local > /dev/null 2>&1 # env file exists
|
|
188
|
+
# Check node_modules / venv freshness
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Include environment status in the briefing output. Add to the existing tier format:
|
|
192
|
+
|
|
193
|
+
In **🔴 Fix first** tier, add environment failures:
|
|
194
|
+
```
|
|
195
|
+
🔴 Fix first:
|
|
196
|
+
local — postgres container stopped
|
|
197
|
+
→ Run: docker compose up -d postgres
|
|
198
|
+
staging — health check failed (503 at https://staging.myapp.com/health)
|
|
199
|
+
→ Check: Railway dashboard or run /sre logs staging
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
When all environments are healthy, show as a compact status line before the tiers:
|
|
203
|
+
```
|
|
204
|
+
Environments: local ✓ | staging ✓ | production ✓
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
#### Step 2: Analyze & Prioritize
|
|
208
|
+
|
|
209
|
+
Read the project's CLAUDE.md to understand the **nature of the project** and use that
|
|
210
|
+
to weight priorities. Different projects care about different things:
|
|
211
|
+
|
|
212
|
+
| Project Nature | Higher Priority | Lower Priority |
|
|
213
|
+
|----------------|----------------|----------------|
|
|
214
|
+
| Production app (users depend on it) | Prod bugs, failing CI, security issues | Feature requests, tech debt |
|
|
215
|
+
| Early-stage startup | New features, user feedback | Test coverage, docs |
|
|
216
|
+
| Internal tool | Requested features, reliability | Polish, edge cases |
|
|
217
|
+
| Library/SDK | Breaking changes, test failures | New features |
|
|
218
|
+
| CLI tool | UX bugs, install issues | Performance |
|
|
219
|
+
|
|
220
|
+
**Smart prioritization rules**:
|
|
221
|
+
- Issues with labels like `bug`, `critical`, `urgent`, `P0`, `security` → always 🔴
|
|
222
|
+
- Issues with labels like `feature`, `enhancement` → 🔵 or ⚪ depending on age
|
|
223
|
+
- Stale PRs (no activity > 7 days) → escalate to 🟡
|
|
224
|
+
- PRs with `CHANGES_REQUESTED` → 🟡 (someone is waiting)
|
|
225
|
+
- Branches with work but no PR → might be abandoned or mid-feature
|
|
226
|
+
|
|
227
|
+
#### Step 3: Build the Briefing
|
|
228
|
+
|
|
229
|
+
Organize findings into 4 tiers — **only show tiers that have items**:
|
|
230
|
+
|
|
231
|
+
**🔴 Fix first** (blocking — things that prevent work):
|
|
232
|
+
- Docker containers expected but not running
|
|
233
|
+
- Migration mismatch (local behind head)
|
|
234
|
+
- CI/CD failing on current branch
|
|
235
|
+
- MCP servers disconnected
|
|
236
|
+
- Critical bugs in production
|
|
237
|
+
- Security issues
|
|
238
|
+
|
|
239
|
+
**🟡 Waiting on you** (aging — things others are waiting for):
|
|
240
|
+
- PR review comments unaddressed > 24h (show who commented, when)
|
|
241
|
+
- PRs requesting your review (show author, title, age)
|
|
242
|
+
- Issues assigned with approaching deadlines
|
|
243
|
+
- Stale PRs with no activity > 7 days (show PR number, title, days stale)
|
|
244
|
+
|
|
245
|
+
**🔵 Continue** (continuity — what you were doing last):
|
|
246
|
+
- Uncommitted changes (you were mid-work) — list the files changed
|
|
247
|
+
- Active plan file (you were mid-feature) — show which step
|
|
248
|
+
- Current branch != main (you were on a feature) — show branch purpose
|
|
249
|
+
- Recent commits that suggest in-progress work
|
|
250
|
+
- Last session's work summary (group recent commits by area)
|
|
251
|
+
|
|
252
|
+
**⚪ Available** (opportunity — things you could pick up):
|
|
253
|
+
- Open issues nobody's assigned to (prioritized by label/nature)
|
|
254
|
+
- PRs from teammates that need review
|
|
255
|
+
- Next phase of an active plan
|
|
256
|
+
- Recently merged PRs that might need follow-up (docs, tests, cleanup)
|
|
257
|
+
|
|
258
|
+
#### Step 4: Present the Briefing
|
|
259
|
+
|
|
260
|
+
Format as a structured message with actionable detail:
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
Here's where things stand:
|
|
264
|
+
|
|
265
|
+
🔴 Fix first:
|
|
266
|
+
Docker redis is stopped — backend cache won't connect
|
|
267
|
+
→ Run: docker compose up -d redis
|
|
268
|
+
|
|
269
|
+
🟡 Waiting on you:
|
|
270
|
+
PR #245 "Fix auth token refresh" — 2 unresolved comments from @motred (3 days ago)
|
|
271
|
+
Last comment: "Need to handle the edge case where token is expired but refresh fails"
|
|
272
|
+
PR #251 by @teammate needs your review (opened 2 days ago)
|
|
273
|
+
"Add rate limiting to API endpoints"
|
|
274
|
+
|
|
275
|
+
🔵 Continue from last session:
|
|
276
|
+
Branch: feature/oauth-support (3 uncommitted files: auth.ts, login.tsx, test_auth.py)
|
|
277
|
+
Plan: oauth-support.md — Step 3/5 (implementing token refresh)
|
|
278
|
+
Last commits:
|
|
279
|
+
• 2h ago: "add refresh token endpoint"
|
|
280
|
+
• 5h ago: "implement token storage in context"
|
|
281
|
+
|
|
282
|
+
⚪ Available to pick up:
|
|
283
|
+
Issue #89 "Add password reset flow" (bug, assigned to nobody, 5 days old)
|
|
284
|
+
Issue #92 "Update onboarding copy" (enhancement, unassigned, 2 days old)
|
|
285
|
+
Plan: golden-dataset-pipeline.md — Phase 5 not started
|
|
286
|
+
|
|
287
|
+
What would you like to tackle?
|
|
288
|
+
|
|
289
|
+
🛠 Available workflows:
|
|
290
|
+
/planning <feature> → /implement → /qa → /review-pr → /pr Feature development
|
|
291
|
+
/fix <bug|#issue> → /review-pr → /pr Bug fix (formal pipeline)
|
|
292
|
+
/fix --hotfix → /pr Critical bug (expedited)
|
|
293
|
+
/calibrate Deep-learn project (first time)
|
|
294
|
+
/autopilot Autonomous work loop
|
|
295
|
+
/qa [full|staging|prod] Run QA checks
|
|
296
|
+
/review-pr [#N] Review a PR
|
|
297
|
+
/incident <description> Something broken? Auto-triage + route
|
|
298
|
+
/ci-fix Fix failing CI
|
|
299
|
+
/sre [status|debug|deploy-check] SRE operations
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
**Key formatting rules**:
|
|
303
|
+
- Show PR/issue numbers so user can reference them
|
|
304
|
+
- Show who is waiting and how long (creates urgency naturally)
|
|
305
|
+
- Show file names for uncommitted changes (reminds user what they were doing)
|
|
306
|
+
- Show plan progress as "Step X/Y" or "Phase X"
|
|
307
|
+
- Group recent commits by feature area (auth, billing, UI, etc.)
|
|
308
|
+
- For stale PRs, show how many days since last activity
|
|
309
|
+
- Include actionable next steps where obvious (run commands, review links)
|
|
310
|
+
|
|
311
|
+
#### Step 5: Route Based on User's Choice
|
|
312
|
+
|
|
313
|
+
- If user picks a red flag → route to ops agent or provide the fix command
|
|
314
|
+
- If user picks a PR → route to code-reviewer or read the PR comments
|
|
315
|
+
- If user picks continuing work → read the plan, route to appropriate agent
|
|
316
|
+
- If user picks an issue → read the issue, route to /planning or direct fix
|
|
317
|
+
- If user says "just fix the red flags" → fix them all, then re-present
|
|
318
|
+
- If user says something specific → hand off to normal triage
|
|
319
|
+
|
|
320
|
+
### 3. Edge Cases
|
|
321
|
+
|
|
322
|
+
- **No git repo**: Skip all git/GitHub context. Just check for code files.
|
|
323
|
+
- **No GitHub CLI**: Skip PR/issue context. Show git-only state.
|
|
324
|
+
- **No Docker**: Skip container health. Show other context.
|
|
325
|
+
- **User interrupts**: If user types something specific at any point, stop
|
|
326
|
+
onboarding and let triage handle their request normally.
|
|
327
|
+
- **Nothing to report**: If everything is clean (main branch, no uncommitted,
|
|
328
|
+
no PRs, no issues), just say "Everything looks clean. What would you like to work on?"
|
|
329
|
+
- **Too much to show**: If there are 10+ items across tiers, show top 3 per tier
|
|
330
|
+
and note "X more items — ask to see full list"
|
|
331
|
+
|
|
332
|
+
## Rules
|
|
333
|
+
|
|
334
|
+
- **Max 1 question** before presenting findings (brownfield: 0 questions)
|
|
335
|
+
- **Never auto-start work** — always present and let user choose
|
|
336
|
+
- **Degrade gracefully** — if a tool is missing, skip that context source
|
|
337
|
+
- **Respect user's time** — if they have a specific task, get out of the way
|
|
338
|
+
- **Toolkit updates go first** — always run Step 0 and show toolkit changes before
|
|
339
|
+
the project briefing. This is the only reliable way users see what changed.
|
|
340
|
+
- **Calibration hint** — if `.claude/project-profile.md` doesn't exist, always show
|
|
341
|
+
the `/calibrate` hint. Don't skip it.
|
|
342
|
+
- **Show the PR/issue content** — don't just count them, summarize what they're about
|
|
343
|
+
- **Prioritize by project nature** — read CLAUDE.md to understand what matters most
|
|
344
|
+
- **Use parallel tool calls** — gather all context sources simultaneously for speed
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scan
|
|
3
|
+
description: "Scan codebase and auto-populate CLAUDE.md with project context (services, ports, test commands, infrastructure). Usage: /scan [section]"
|
|
4
|
+
user-invocable: true
|
|
5
|
+
arguments: "<section>"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Codebase Scanner
|
|
9
|
+
|
|
10
|
+
Scans the project and populates CLAUDE.md with structured sections that agents read at runtime. This is how generic agents learn your specific project.
|
|
11
|
+
|
|
12
|
+
## When This Runs
|
|
13
|
+
|
|
14
|
+
- **First install**: `install.sh --setup` triggers a scan automatically
|
|
15
|
+
- **On demand**: User runs `/scan` to refresh after codebase changes
|
|
16
|
+
- **Targeted**: `/scan services` to only update the Local Dev Services section
|
|
17
|
+
|
|
18
|
+
## What Gets Scanned
|
|
19
|
+
|
|
20
|
+
### 1. Local Dev Services
|
|
21
|
+
|
|
22
|
+
Detect running services and their configuration:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Check for frontend frameworks
|
|
26
|
+
if [ -f "frontend/package.json" ] || [ -f "package.json" ]; then
|
|
27
|
+
# Read scripts.dev from package.json
|
|
28
|
+
# Detect framework: Next.js (port 3000), Vite (5173), CRA (3000), Vue (5173)
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
# Check for backend frameworks
|
|
32
|
+
if [ -f "backend/requirements.txt" ] || [ -f "requirements.txt" ]; then
|
|
33
|
+
# Detect FastAPI/Django/Flask
|
|
34
|
+
# Default ports: FastAPI 8000, Django 8000, Flask 5000
|
|
35
|
+
fi
|
|
36
|
+
if [ -f "backend/pyproject.toml" ]; then
|
|
37
|
+
# Read [tool.poetry] or [project] for framework hints
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
# Check docker-compose.yml for service definitions
|
|
41
|
+
if [ -f "docker-compose.yml" ] || [ -f "docker-compose.yaml" ]; then
|
|
42
|
+
# Extract service names, ports, build contexts
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
# Check for Procfile (Heroku/Railway)
|
|
46
|
+
if [ -f "Procfile" ]; then
|
|
47
|
+
# Extract web/worker commands
|
|
48
|
+
fi
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Output the **Local Dev Services** table:
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
## Local Dev Services
|
|
55
|
+
|
|
56
|
+
| Service | Port | Directory | Start Command |
|
|
57
|
+
|----------|------|-----------|---------------|
|
|
58
|
+
| Frontend | 3000 | frontend/ | cd frontend && npm run dev |
|
|
59
|
+
| Backend | 8000 | backend/ | cd backend && source .venv/bin/activate && uvicorn app.main:app --reload --port 8000 |
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 2. Test Commands
|
|
63
|
+
|
|
64
|
+
Detect test frameworks and commands:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Python tests
|
|
68
|
+
# Look for: pytest.ini, setup.cfg [tool:pytest], pyproject.toml [tool.pytest]
|
|
69
|
+
# Check for: ruff.toml, .flake8, mypy.ini
|
|
70
|
+
|
|
71
|
+
# JavaScript/TypeScript tests
|
|
72
|
+
# Look for: jest.config.*, vitest.config.*, playwright.config.*, cypress.config.*
|
|
73
|
+
# Read package.json scripts: test, lint, type-check, build
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Output the **Test Commands** table:
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
## Test Commands
|
|
80
|
+
|
|
81
|
+
| What | Command | Directory |
|
|
82
|
+
|------|---------|-----------|
|
|
83
|
+
| Backend tests | pytest | backend/ |
|
|
84
|
+
| Backend lint | ruff check . | backend/ |
|
|
85
|
+
| Frontend tests | npm test | frontend/ |
|
|
86
|
+
| Frontend lint | npm run lint | frontend/ |
|
|
87
|
+
| Type check | npx tsc --noEmit | frontend/ |
|
|
88
|
+
| E2E tests | npx playwright test | frontend/ |
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 3. Infrastructure
|
|
92
|
+
|
|
93
|
+
Detect deployment configuration:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Railway
|
|
97
|
+
[ -f "railway.json" ] || [ -f "railway.toml" ]
|
|
98
|
+
|
|
99
|
+
# Vercel
|
|
100
|
+
[ -f "vercel.json" ] || [ -f ".vercel/project.json" ]
|
|
101
|
+
|
|
102
|
+
# Fly.io
|
|
103
|
+
[ -f "fly.toml" ]
|
|
104
|
+
|
|
105
|
+
# AWS
|
|
106
|
+
[ -d ".aws" ] || [ -f "samconfig.toml" ] || [ -f "serverless.yml" ]
|
|
107
|
+
|
|
108
|
+
# Docker/Kubernetes
|
|
109
|
+
[ -f "Dockerfile" ] || [ -d "k8s" ]
|
|
110
|
+
|
|
111
|
+
# GitHub Actions
|
|
112
|
+
ls .github/workflows/*.yml 2>/dev/null
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Output the **Infrastructure** table:
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
## Infrastructure
|
|
119
|
+
|
|
120
|
+
| Platform | Service | Notes |
|
|
121
|
+
|----------|---------|-------|
|
|
122
|
+
| Railway | backend, frontend | Auto-deploy on push to main |
|
|
123
|
+
| GitHub Actions | CI/CD | Lint, test, deploy |
|
|
124
|
+
|
|
125
|
+
Health endpoints: /health, /api/health
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### 4. Domain
|
|
129
|
+
|
|
130
|
+
Scan for domain entities and business rules:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Look for model files
|
|
134
|
+
# SQLAlchemy: models/*.py, models.py
|
|
135
|
+
# Django: */models.py
|
|
136
|
+
# Prisma: prisma/schema.prisma
|
|
137
|
+
# TypeORM: entities/*.ts
|
|
138
|
+
|
|
139
|
+
# Look for enum/status definitions
|
|
140
|
+
# State machines, workflow logic
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Output the **Domain** section:
|
|
144
|
+
|
|
145
|
+
```markdown
|
|
146
|
+
## Domain
|
|
147
|
+
|
|
148
|
+
{App name} is a {detected description} with the following core entities:
|
|
149
|
+
- {Entity1} (statuses: {enum values})
|
|
150
|
+
- {Entity2}
|
|
151
|
+
|
|
152
|
+
Business rules detected:
|
|
153
|
+
- {Rule from enum constraints, validators, etc.}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Section 5: Environments
|
|
157
|
+
|
|
158
|
+
Detect project environments and populate the `## Environments` section in CLAUDE.md.
|
|
159
|
+
|
|
160
|
+
**Detection steps:**
|
|
161
|
+
|
|
162
|
+
1. Scan for `.env.*` files in project root:
|
|
163
|
+
```bash
|
|
164
|
+
ls .env.* 2>/dev/null | grep -v '.env.example' | grep -v '.env.local'
|
|
165
|
+
```
|
|
166
|
+
Extract environment names from suffixes (`.env.staging` → staging, `.env.production` → production).
|
|
167
|
+
|
|
168
|
+
2. Scan CI/CD configs for deploy targets:
|
|
169
|
+
```bash
|
|
170
|
+
# GitHub Actions
|
|
171
|
+
grep -r 'environment:' .github/workflows/*.yml 2>/dev/null | grep -oP 'environment:\s*\K\w+'
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
3. Scan deploy platform configs:
|
|
175
|
+
- `railway.json` → Railway environments
|
|
176
|
+
- `vercel.json` → preview + production
|
|
177
|
+
- `fly.toml` / `fly.*.toml` → Fly.io environments
|
|
178
|
+
- Terraform `environments/` directories
|
|
179
|
+
|
|
180
|
+
4. ALWAYS include `local` as `development` environment using data from Local Dev Services table.
|
|
181
|
+
|
|
182
|
+
5. For each environment, populate:
|
|
183
|
+
- **Name**: environment identifier
|
|
184
|
+
- **Type**: `development` | `staging` | `production` | `preview` | `canary`
|
|
185
|
+
- **URL**: from env files, deploy config, or `<!-- TODO -->`
|
|
186
|
+
- **Health**: from Infrastructure section health endpoints or `<!-- TODO -->`
|
|
187
|
+
- **Deploy**: trigger method (manual, branch push, CI/CD)
|
|
188
|
+
- **Branch**: associated git branch or `—`
|
|
189
|
+
|
|
190
|
+
**Output format in CLAUDE.md:**
|
|
191
|
+
|
|
192
|
+
```markdown
|
|
193
|
+
## Environments
|
|
194
|
+
|
|
195
|
+
| Name | Type | URL | Health | Deploy | Branch |
|
|
196
|
+
|------|------|-----|--------|--------|--------|
|
|
197
|
+
| local | development | http://localhost:{port} | /health | manual | — |
|
|
198
|
+
| {name} | {type} | {url} | {health} | {deploy} | {branch} |
|
|
199
|
+
|
|
200
|
+
Access notes: {platform details, env var file locations}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**If no remote environments detected:** Write only the local row with a comment:
|
|
204
|
+
```markdown
|
|
205
|
+
<!-- No remote environments detected. Run /calibrate for full discovery with platform MCP queries. -->
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## How It Updates CLAUDE.md
|
|
209
|
+
|
|
210
|
+
1. Read existing CLAUDE.md
|
|
211
|
+
2. For each section being updated:
|
|
212
|
+
- If the section exists with `<!-- TODO: -->` placeholders → replace with scanned data
|
|
213
|
+
- If the section exists with real content → **DO NOT overwrite** (user has customized it)
|
|
214
|
+
- If the section doesn't exist → append it
|
|
215
|
+
3. Write back the updated CLAUDE.md
|
|
216
|
+
|
|
217
|
+
**CRITICAL**: Never overwrite sections that the user has already filled in. Only populate empty/placeholder sections.
|
|
218
|
+
|
|
219
|
+
## Arguments
|
|
220
|
+
|
|
221
|
+
| User Input | Action |
|
|
222
|
+
|-----------|--------|
|
|
223
|
+
| `/scan` | Full scan — all 5 sections |
|
|
224
|
+
| `/scan services` | Only scan and update Local Dev Services |
|
|
225
|
+
| `/scan tests` | Only scan and update Test Commands |
|
|
226
|
+
| `/scan infra` | Only scan and update Infrastructure |
|
|
227
|
+
| `/scan domain` | Only scan and update Domain |
|
|
228
|
+
| `/scan environments` | Only scan and update Environments |
|
|
229
|
+
|
|
230
|
+
## If No CLAUDE.md Exists
|
|
231
|
+
|
|
232
|
+
Create one from the template at `~/.claude-agents/templates/CLAUDE.md.template`, then populate it with scanned data.
|