home / skills / automattic / agent-skills / wordpress-router

wordpress-router skill

/skills/wordpress-router

This skill identifies WordPress codebase type (plugin, theme, block, or full site) and routes tasks to the correct domain workflow.

npx playbooks add skill automattic/agent-skills --skill wordpress-router

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
2.2 KB
---
name: wordpress-router
description: "Use when the user asks about WordPress codebases (plugins, themes, block themes, Gutenberg blocks, WP core checkouts) and you need to quickly classify the repo and route to the correct workflow/skill (blocks, theme.json, REST API, WP-CLI, performance, security, testing, release packaging)."
compatibility: "Targets WordPress 6.9+ (PHP 7.2.24+). Filesystem-based agent with bash + node. Some workflows require WP-CLI."
---

# WordPress Router

## When to use

Use this skill at the start of most WordPress tasks to:

- identify what kind of WordPress codebase this is (plugin vs theme vs block theme vs WP core checkout vs full site),
- pick the right workflow and guardrails,
- delegate to the most relevant domain skill(s).

## Inputs required

- Repo root (current working directory).
- The user’s intent (what they want changed) and any constraints (WP version targets, WP.com specifics, release requirements).

## Procedure

1. Run the project triage script:
   - `node skills/wp-project-triage/scripts/detect_wp_project.mjs`
2. Read the triage output and classify:
   - primary project kind(s),
   - tooling available (PHP/Composer, Node, @wordpress/scripts),
   - tests present (PHPUnit, Playwright, wp-env),
   - any version hints.
3. Route to domain workflows based on user intent + repo kind:
   - For the decision tree, read: `skills/wordpress-router/references/decision-tree.md`.
4. Apply guardrails before making changes:
   - Confirm any version constraints if unclear.
   - Prefer the repo’s existing tooling and conventions for builds/tests.

## Verification

- Re-run the triage script if you create or restructure significant files.
- Run the repo’s lint/test/build commands that the triage output recommends (if available).

## Failure modes / debugging

- If triage reports `kind: unknown`, inspect:
  - root `composer.json`, `package.json`, `style.css`, `block.json`, `theme.json`, `wp-content/`.
- If the repo is huge, consider narrowing scanning scope or adding ignore rules to the triage script.

## Escalation

- If routing is ambiguous, ask one question:
  - “Is this intended to be a WordPress plugin, a theme (classic/block), or a full site repo?”

Overview

This skill classifies WordPress codebases and routes requests to the correct domain workflow. It quickly identifies whether a repo is a plugin, theme (classic or block), block theme, full site checkout, or WP core checkout and surfaces relevant tooling, tests, and version hints. Use it at the start of WordPress tasks to choose the right guardrails and delegate to specialized skills.

How this skill works

Run the included project triage script to detect project kind, available toolchains (PHP/Composer, Node, @wordpress/scripts), and test suites. Read the triage output to map primary project kinds and tooling, then consult the decision tree to pick the workflow to invoke. Before making changes, confirm version constraints and prefer the repo's existing build and test conventions.

When to use it

  • At the start of any task touching a WordPress repository to determine routing.
  • When the repo type is unclear (plugin vs theme vs full site vs WP core).
  • Before running automated changes so the correct build/test commands are used.
  • When you need to pick specialized workflows like blocks, theme.json, REST API, or packaging.
  • When preparing a release or diagnosing CI/test failures tied to project structure.

Best practices

  • Always run the triage script: node skills/wp-project-triage/scripts/detect_wp_project.mjs.
  • Prefer the repository’s existing tooling and conventions for builds, tests, and packaging.
  • Confirm WordPress version targets and platform-specific constraints before edits.
  • Re-run triage after creating or moving significant files to keep classification accurate.
  • If triage returns unknown, inspect root files: composer.json, package.json, style.css, block.json, theme.json, wp-content/.

Example use cases

  • User asks to add a Gutenberg block to a repo: classify repo and route to blocks workflow.
  • User requests performance improvements: detect theme vs plugin and route to performance checks.
  • Prepare a release: verify packaging scripts and tests, then route to release packaging workflow.
  • Security audit request: identify project kind and available test suites, then delegate to security checks.
  • CI failing after restructuring: re-run triage, identify missing tooling hints, and suggest fixes.

FAQ

What inputs does the skill need?

It needs the repo root and the user’s intent plus any constraints like WP version targets.

What if the triage reports kind: unknown?

Manually inspect top-level files (composer.json, package.json, style.css, block.json, theme.json, wp-content/) or ask the user whether it’s a plugin, theme, or full site.