wordpress-router
wordpress/agent-skills
Classify WordPress codebases and route to the correct workflow for plugins, themes, blocks, and WP core.
What is wordpress-router?
WordPress Router identifies the type of WordPress project (plugin, theme, block theme, Gutenberg blocks, or WP core) and routes you to the appropriate domain skill and workflow. Use this at the start of most WordPress tasks to pick the right guardrails and next steps.
- Runs automated project triage to detect WordPress project kind and structure
- Identifies available tooling (PHP/Composer, Node, @wordpress/scripts, WP-CLI)
- Detects test frameworks present (PHPUnit, Playwright, wp-env)
- Routes to domain-specific workflows based on project type and user intent
- Applies version constraints and guardrails before making changes
- Recommends lint/test/build commands based on repo conventions
How to install wordpress-router
npx skills add https://github.com/wordpress/agent-skills --skill wordpress-router- Node.js available in the environment
- Bash shell access
- WP-CLI installed (required for some workflows)
- Access to the WordPress project root directory
How to use wordpress-router
- 1.Run the project triage script: `node skills/wp-project-triage/scripts/detect_wp_project.mjs`
- 2.Read the triage output to identify the primary project kind(s) and available tooling
- 3.Consult the decision tree in `skills/wordpress-router/references/decision-tree.md` based on your intent
- 4.Apply the recommended guardrails and version constraints
- 5.Delegate to the appropriate domain skill(s) for your specific task
- 6.Re-run triage if you create or restructure significant files to verify routing
Use cases
- Starting a WordPress plugin modification to determine the correct build and test workflow
- Analyzing a block theme to route to theme.json or Gutenberg block skills
- Classifying a WP core checkout to apply appropriate security and performance workflows
- Identifying test infrastructure in a plugin to run the correct verification commands
- Disambiguating a mixed codebase (e.g., plugin with custom blocks) to apply multiple domain skills
- WordPress plugin developers
- Theme developers (classic and block themes)
- Gutenberg block developers
- WordPress core contributors
- Full-site editing (FSE) developers
wordpress-router FAQ
Inspect the root directory for composer.json, package.json, style.css, block.json, theme.json, or wp-content/ to manually identify the project type. You can also add ignore rules to the triage script if the repo is very large.
Use WordPress Router first to classify the codebase and confirm the correct workflow. Then delegate to domain skills (blocks, theme.json, REST API, WP-CLI, etc.) based on the routing decision.
The triage script is filesystem-based and works with standard WordPress checkouts. For WordPress.com-specific workflows, the routing output will indicate if special constraints apply.
Targets WordPress 7.0+ with PHP 7.4.0+. The triage script will detect version hints from the codebase and apply appropriate guardrails.
If routing is unclear, ask: 'Is this intended to be a WordPress plugin, a theme (classic/block), or a full site repo?' to disambiguate before proceeding.
Full instructions (SKILL.md)
Source of truth, from wordpress/agent-skills.
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 7.0+ (PHP 7.4.0+). 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
- Run the project triage script:
node skills/wp-project-triage/scripts/detect_wp_project.mjs
- 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.
- Route to domain workflows based on user intent + repo kind:
- For the decision tree, read:
skills/wordpress-router/references/decision-tree.md.
- For the decision tree, read:
- 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/.
- root
- 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?”
Related skills
More from wordpress/agent-skills and the wider catalog.

wp-abilities-api
Register and expose WordPress abilities via PHP and REST API for agent and client consumption.

wp-abilities-audit
Audit WordPress plugin REST surfaces and propose Abilities API registrations in standardized markdown documents.

wp-abilities-verify
Verify WordPress plugin Abilities API registrations for correctness, permissions, and schema compliance.

wp-block-development
Develop WordPress Gutenberg blocks with block.json, registration, rendering, and deprecation workflows.

wp-block-themes
Develop WordPress block themes: theme.json, templates, patterns, and Site Editor debugging.

wp-interactivity-api
Build and debug WordPress Interactivity API features with data-wp-* directives, store management, and hydration.