# Wp Project Triage

> 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.

- Skill: `majiayu000/wp-project-triage` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/wp-project-triage`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/wp-project-triage/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/wp-project-triage

---


# 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

```bash
# 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

```bash
# 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

```bash
# 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

```bash
# 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

