W
woocommerce-code-review
About woocommerce-code-review
A code-review skill for checking WooCommerce changes against project conventions. It highlights backend PHP, frontend JS/TS, testing, and UI-copy violations, with a structured format for reporting findings.
Key features
- 01Backend PHP convention checks
- 02Frontend JS/TS architecture checks
- 03Test and documentation checks
- 04UI sentence-case checks
- 05Structured violation reports
Use cases
- 01Reviewing WooCommerce pull requests
- 02Finding PHP or test convention violations
- 03Checking UI copy and frontend imports
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ woocommerce/ woocommerce --skill woocommerce-code-reviewAfter installing, type/woocommerce-code-reviewin Claude Code to confirm it loaded.
Details
From the project READMEWooCommerce Code Review
Review code changes against WooCommerce coding standards and conventions.
Critical Violations to Flag
Backend PHP Code
Consult the woocommerce-backend-dev skill for detailed standards. Using these standards as guidance, flag these violations and other similar ones:
Architecture & Structure:
- ❌ Standalone functions - Must use class methods (file-entities.md)
- ❌ Using
newfor DI-managed classes - Classes insrc/must use$container->get()(dependency-injection.md) - ❌ Classes outside
src/Internal/- Default location unless explicitly public (file-entities.md)
Naming & Conventions:
- ❌ camelCase naming - Must use snake_case for methods/variables/hooks (code-entities.md)
- ❌ Yoda condition violations - Must follow WordPress Coding Standards (coding-conventions.md)
- ❌ Magic strings with an existing enum constant - New code comparing or assigning enumerated values (order statuses, product types, ...) must use the
Automattic\WooCommerce\Enumsconstants, not raw literals — except in code that can run during install/upgrade (coding-conventions.md)
Documentation:
- ❌ Missing
@sinceannotations - Required for public/protected methods and hooks (code-entities.md) - ❌ Missing docblocks - Required for all hooks and methods (code-entities.md)
- ❌ Verbose docblocks - Keep concise, one line is ideal (code-entities.md)
Data Integrity:
- ❌ Missing validation - Must verify state before deletion/modification (data-integrity.md)
Testing:
- ❌ Using
$instancein tests - Must use$sutvariable name (unit-tests.md) - ❌ Missing
@testdox- Required in test method docblocks (unit-tests.md) - ❌ Test file naming - Must follow convention for
includes/vssrc/(unit-tests.md) - ❌ Cleanup that duplicates the base lifecycle - Identify the test's base class before requesting post-assertion fixture deletion or state restoration; flag cleanup already covered by its transaction or teardown (unit-tests.md)
Frontend JS/TS Code
Architecture & Structure:
- ❌ Barrel self-import (circular dependency) — a JS/TS file anywhere in the monorepo importing from its own package barrel (
from '../',from '../../',from '../index',from '../../index') when that barrel re-exports it. Relevant to SWC TDZ / esbuild tree-shaking / tsc incremental builds. Fix: use the direct module path instead.
UI Text & Copy
Consult the woocommerce-copy-guidelines skill. Flag:
- ❌ Title Case in UI - Must use sentence case (sentence-case.md)
- Wrong: "Save Changes", "Order Details", "Payment Options"
- Correct: "Save changes", "Order details", "Payment options"
- Exceptions: Proper nouns (WooPayments), acronyms (API), brand names
Review Approach
- Scan for critical violations listed above
- Cite specific skill files when flagging issues
- Provide correct examples from the skill documentation
- Group related issues for clarity
- Be constructive - explain why the standard exists when relevant
Output Format
For each violation found:
❌ [Issue Type]: [Specific problem]
Location: [File path and line number]
Standard: [Link to relevant skill file]
Fix: [Brief explanation or example]
Notes
- All detailed standards are in the
woocommerce-backend-dev,woocommerce-dev-cycle, andwoocommerce-copy-guidelinesskills - Consult those skills for complete context and examples
- When in doubt, refer to the specific skill documentation linked above
Comments
Markdown supported