From superpowers-sage
Analyzes Sage/Acorn/Lando WordPress projects: inventories service providers, ACF blocks, routes, Livewire components, packages, Lando config, runner type, and design tools. Provides onboarding overview for new or returning developers.
npx claudepluginhub codigodoleo/superpowers-sage --plugin superpowers-sageThis skill uses the workspace's default tool permissions.
Analyze a Sage/Acorn project's current state and present a clear overview with next steps.
Guides Sage/Acorn WordPress projects with gerund workflows, Lando commands, architectural preferences, skill routing, Roots ecosystem conventions, and query-first patterns. Use first in relevant sessions.
Scaffolds CLAUDE.md and .claude/rules for Craft CMS projects (plugin, site, module, hybrid, monorepo) by detecting type from composer.json, .ddev/config.yaml, templates, and modules.
Detects WordPress repo type (plugin/theme/block theme/WP core/Gutenberg/full site), scans for tooling/tests/versions, outputs structured JSON to guide workflows and guardrails.
Share bugs, ideas, or general feedback.
Analyze a Sage/Acorn project's current state and present a clear overview with next steps.
Scan the project using native tools (Glob, Grep, Read — no bash pipes needed):
Sage themes: Use Grep with pattern "roots/acorn" on glob **/composer.json (excluding vendor/node_modules).
Acorn version: Use Glob to find **/composer.lock (excluding vendor), then Read it and extract the roots/acorn version from the packages array.
Service Providers: Use Glob with pattern **/app/Providers/*.php (excluding vendor). Extract filenames from paths.
ACF Blocks: Use Glob with pattern **/app/Blocks/*.php (excluding vendor). Extract filenames from paths.
Routes: Use Glob with patterns **/routes/web.php and **/routes/api.php (excluding vendor).
Livewire components: Use Glob with pattern **/app/Livewire/*.php (excluding vendor). Extract filenames from paths.
Installed packages (theme): Use Glob to find the theme's composer.json (the one containing "roots/acorn"), then Read it and extract the require block.
Lando config: Use Read on .lando.yml (top-level only).
Runner detection: After reading .lando.yml:
.lando.yml exists at repo root (Read succeeded):
→ runner: Lando
→ isolation: branch+commit-per-phase
→ reason: Lando mounts /app to a fixed path; worktrees require
re-mounting per worktree — incompatible..lando.yml does not exist (Read returned not-found or file is absent):
→ runner: docker-compose / bare-metal
→ isolation: worktree-per-component (default building behavior)Record the detected runner for use in Step 3.
Use ToolSearch to check for available design MCPs:
mcp__paper__ — Paper.design MCP (preferred when the user works from paper.design)mcp__stitch__ — Stitch (Google) MCPmcp__figma__ — Figma MCPmcp__playwright__ — Playwright MCP for screenshotsReport which design tools are available.
After detecting design tools, before suggesting next steps:
Use ToolSearch to search for mcp__plugin_playwright_playwright__browser_take_screenshot.
If NOT found, output this message and stop completely. Do not suggest any next steps. Do not proceed to step 2.
⛔ STOP — Playwright MCP is required
Visual verification is mandatory in this workflow.
/building and /verifying cannot proceed without Playwright.
Install:
claude mcp add playwright -- npx -y @anthropic/playwright-mcp
After installing, restart this session and run /onboarding again.
Look for docs/plans/*/plan.md files with status: in-progress. For each:
Read the branch: field from frontmatter (if present)
Cross-check against git:
git branch --merged main — if the plan's branch appears, the work was merged; plan frontmatter should be status: completed, not in-progressgh pr list --state=merged --head <branch> — if a merged PR exists for the branch, same conclusionIf the plan claims in-progress but git says the branch is merged: flag this as stale plan and offer to update frontmatter:
⚠️ Plan "{title}" at {path} claims status: in-progress, but branch {branch}
was merged to main in commit {sha}. Update to status: completed? [y/N]
For branches claimed as merged in any reported context, always verify with git branch --merged main before saying so. Never report a merge without git confirmation.
Report active plans that survive this cross-check with accurate status.
## Project: {theme-name}
### Stack
- Acorn: {version} | PHP: {version} | Node: {version}
- Tailwind: {v3 or v4} | Database: {mysql/mariadb}
- Runner: {Lando → isolation: branch+commit-per-phase | docker-compose/bare-metal → isolation: worktree-per-component}
### Installed Packages
{list from composer.json — highlight: acf-composer, livewire, poet, navi}
### What's Configured
- Service Providers: {count} ({names})
- ACF Blocks: {count} ({names})
- Routes: {web.php? api.php?}
- Livewire: {installed or not}
### Design Tools
- Paper: {available/not available} (preferred when designs live on paper.design)
- Stitch: {available/not available}
- Figma: {available/not available}
- Playwright: {available/not available}
### Active Plans
{list or "No active plans"}
### Branch Status
- Current branch: {output of `git branch --show-current`}
- {If on main/master}: ⚠️ Start a feature branch before implementing: `git checkout -b feat/<topic>-YYYY-MM-DD`
- {If on feature branch}: ✅ Working on `{branch}` — aligned with workflow
### Lando Services
{services and URLs from proxy config}
Based on project state:
/architecture-discovery then /plan-generator to prepare first feature plan/building to resume implementation/reviewing for health check/debugging