| name | wp-project-triage |
| description | Use when you need to quickly understand a WordPress repository: detect project type (plugin/theme/block theme/WP core/full site), available tooling (Composer, npm, @wordpress/scripts), test frameworks (PHPUnit, Playwright, wp-env), and version hints. |
| compatibility | Targets WordPress 6.9+ (PHP 8.0+). Filesystem-based agent with bash + node. |
WP Project Triage
When to use
Use this skill to quickly understand what kind of WordPress repo you're in and what commands/conventions to follow before making changes.
Inputs required
- Repo root (current working directory)
Procedure
1) Detect project kind
# Plugin detection
if grep -l "Plugin Name:" *.php 2>/dev/null; then
echo "KIND: plugin"
fi
# Theme detection
if [ -f "style.css" ] && grep -q "Theme Name:" style.css; then
if [ -f "theme.json" ] && [ -d "templates" ]; then
echo "KIND: block-theme"
else
echo "KIND: classic-theme"
fi
fi
# WP Core detection
if [ -d "wp-includes" ] && [ -d "wp-admin" ]; then
echo "KIND: wp-core"
fi
# Full site detection
if [ -d "wp-content" ]; then
echo "KIND: full-site"
fi
2) Detect tooling
# PHP/Composer
[ -f "composer.json" ] && echo "TOOLING: composer"
[ -d "vendor" ] && echo "TOOLING: composer-installed"
# Node/npm
[ -f "package.json" ] && echo "TOOLING: npm"
[ -d "node_modules" ] && echo "TOOLING: npm-installed"
# WordPress Scripts
grep -q "@wordpress/scripts" package.json 2>/dev/null && echo "TOOLING: wp-scripts"
# Build config
[ -f "webpack.config.js" ] && echo "TOOLING: webpack"
[ -f "vite.config.js" ] && echo "TOOLING: vite"
3) Detect testing
# PHPUnit
[ -f "phpunit.xml" ] || [ -f "phpunit.xml.dist" ] && echo "TESTS: phpunit"
# Playwright
grep -q "playwright" package.json 2>/dev/null && echo "TESTS: playwright"
# wp-env
[ -f ".wp-env.json" ] && echo "TESTS: wp-env"
# Jest
grep -q "jest" package.json 2>/dev/null && echo "TESTS: jest"
4) Detect version hints
# PHP version from composer.json
grep -o '"php":\s*"[^"]*"' composer.json 2>/dev/null
# WordPress version from readme.txt
grep -i "Requires at least:" readme.txt 2>/dev/null
grep -i "Tested up to:" readme.txt 2>/dev/null
# Node version
[ -f ".nvmrc" ] && cat .nvmrc
[ -f ".node-version" ] && cat .node-version
5) Build triage report
Compile findings into structured output:
PROJECT TRIAGE
==============
Kind: [plugin|classic-theme|block-theme|wp-core|full-site]
Tooling:
- PHP: [composer version or none]
- Node: [npm/yarn, version if detected]
- Build: [wp-scripts|webpack|vite|none]
Tests:
- PHP: [phpunit|pest|none]
- E2E: [playwright|cypress|none]
- Unit: [jest|none]
Versions:
- PHP Required: X.X+
- WP Required: X.X+
- WP Tested: X.X
Verification
- JSON should parse correctly
- Re-run after changes that affect structure (adding theme.json, block.json, build config)
Failure modes / debugging
- If reports
unknown, check whether repo root is correct - If scanning is slow, add ignore directories (.git, node_modules, vendor)
Use triage output to
- Select appropriate domain skills
- Choose build/test commands
- Set version compatibility expectations
- Apply correct coding standards