woocommerce-finalize

작성자: automattic

WooCommerce 플러그인을 위한 사전 릴리스 코드 건강 및 추적성 감사. 코드 리뷰 후 실행되며, 죽은 코드, 중복, 구조적 복잡성 등을 중점적으로 확인합니다…

npx skills add https://github.com/automattic/claude-woocommerce-toolkit --skill woocommerce-finalize

WooCommerce Plugin Finalization Review

You are performing a pre-release code health and traceability audit of a WooCommerce plugin. This skill focuses on structural concerns that static checklists do not catch.

This skill runs after code review. UX compliance and security auditing are handled by separate review checklists. Do not duplicate that work here.

Foundation References

Read these before starting -- they define the standards you are auditing against:

  • references/coding-standards.md -- WordPress PHP coding standards, naming, structure
  • references/security.md -- Security baseline, database patterns
  • references/woocommerce-apis.md -- HPOS, CRUD, data stores, payment gateway patterns
  • references/ux-guidelines.md -- UX/copy conventions

Overview

This skill runs two review tracks, then synthesizes findings into a machine-readable task list.

The two tracks:

  1. Code Health -- Dead code, duplication, structural complexity
  2. Traceability Analysis -- End-to-end verification through every code layer

Step 0: Locate and Inventory the Plugin

  1. Find the plugin root (main PHP file with Plugin Name: header)
  2. Build complete file inventory (PHP, JS, CSS, templates, assets, config)
  3. Identify architecture (classic PHP+jQuery, React+REST, or hybrid)
  4. Map WooCommerce integration points (settings API, product tabs, checkout, payment, shipping)
  5. Check for custom post types, taxonomies, tables, REST endpoints, AJAX handlers

Step 0.5: Verify Testing

Finalization should not begin until tests pass. If a testing report exists in the plugin root (testing-report.md), verify:

  1. Report is recent (within 12 hours)
  2. Overall status is passing
  3. PHPStan ran at level 7 or higher

If no testing report exists, recommend the user run their test suite first.


Step 1: Run Review Tracks

Track 1: Code Health

Sweep the entire codebase for structural and maintenance issues that accumulate over time and are not caught by standards enforcement during development.

Dead Code

  • Uncalled functions (defined but never referenced anywhere in the codebase)
  • Unused imports, use statements, and variables
  • Commented-out code blocks (more than 3 lines)
  • Unreachable code after unconditional return, throw, exit, die
  • Unused class methods (especially private/protected with no internal callers)

Duplication

  • Functions or methods with >80% similar logic (candidates for extraction)
  • Copy-pasted blocks across files (especially validation, sanitization, or API call patterns)
  • Repeated inline SQL or query patterns that should be a shared method
  • Identical or near-identical AJAX/REST handler implementations

Structural Complexity

  • Functions longer than 50 lines (candidates for decomposition)
  • Nesting deeper than 3 levels (if/foreach/try stacking)
  • God classes with >10 public methods or >300 lines
  • Classes with mixed responsibilities (e.g., a gateway class that also handles admin UI rendering)
  • Circular dependencies between classes

For each finding: category, file/line, impact description, suggested fix.

Severity:

IssueLevel
Unreachable code hiding a bugHigh
God class / circular dependencyHigh
>80% duplicated logic across filesMedium
Functions >50 linesMedium
Commented-out code blocksLow
Unused private methodsLow

Track 2: Traceability Analysis

Trace every UI interaction through the full stack:

UI (HTML/JS) -> AJAX/REST Handler -> Business Logic -> Data Access -> Database

For each layer boundary:

  • Map all connections (caller -> callee with arguments)
  • Verify connections exist and signatures match
  • Check parameter naming consistency between layers
  • Verify data transformations are symmetric (serialize <-> deserialize)
  • Confirm null/empty handling at every boundary

Payment Gateway Trace Paths (required for payment plugins)

These specific paths must be fully traced if the plugin is a payment gateway:

  1. Payment flow: checkout form (JS) -> process_payment() -> payment API call -> webhook/IPN handler -> order status update
  2. Refund flow: admin refund button -> process_refund() -> refund API call -> order note + status
  3. Settings flow: settings form (admin) -> process_admin_options() / save -> get_option() -> checkout form display
  4. Token flow: tokenize (JS/API) -> WC_Payment_Token creation -> saved token display -> token reuse at checkout
  5. Webhook flow: incoming webhook -> signature verification -> event routing -> order lookup -> status update

For each path: document the full chain of calls, flag any broken links, missing error handling, or data that crosses a boundary without validation.

Report: verified paths, broken paths, suspicious paths.


Step 2: Synthesize Task List

Deliverable: finalization-tasks.md

Machine-readable task list for agents or developers:

# Finalization Tasks for [Plugin Name]

## Critical Priority
### TASK-OPT-001: [Brief description]
- **File:** [path]
- **Lines:** [N-M]
- **Issue:** [What's wrong]
- **Fix:** [What to do, with before/after code]
- **Status:** [ ] Not started

## High Priority
### TASK-TRC-001: [Brief description]
...

Task ID scheme: TASK-OPT-### (code health), TASK-TRC-### (traceability).


Step 3: Save and Present

  1. Save finalization-tasks.md to the plugin's output folder
  2. Present a concise summary: count of findings per track, top 3 highest-priority items
  3. Offer to start on highest-priority items

Important Notes

  • Be thorough but honest -- flag false positives as uncertain
  • Give credit for things done well (clean trace paths, well-structured code)
  • Context matters -- admin-only vs customer-facing code changes severity weighting
  • Traceability analysis is the crown jewel -- most hidden bugs live at layer boundaries
  • Do not duplicate UX or security findings -- those are covered by other review skills

automattic의 다른 스킬

testing-js
automattic
자바스크립트 파일의 구문 오류를 확인하기 위한 지침
setup
automattic
dn CLI가 설치 및 구성되었는지 확인합니다. 사용자가 domain-names 플러그인을 처음 설치할 때나 dn 명령어가 CLI 때문에 실패할 때 사용합니다.
studio-cli
automattic
Studio CLI를 사용하여 로컬 WordPress 사이트, 인증 및 미리보기 사이트를 관리하세요. Studio CLI 명령을 실행하거나 관리해야 할 때 이 스킬을 호출하세요.
dn-info
automattic
등록된 도메인의 상세 정보를 dn CLI를 사용하여 조회합니다. 사용자가 만료일, 네임서버, 연락처 등의 도메인 세부 정보를 확인하려 할 때 사용하세요.
qa
automattic
추출된 WXR 콘텐츠를 원본 소스 사이트와 페이지별로 비교합니다. 누락된 텍스트, 제목, 이미지, 링크를 찾아냅니다. WXR을 패치하거나… 수정하여 해결합니다.
add-skill
automattic
a8c-design 플러그인에 새 스킬을 추가합니다. Claude Code 스킬을 구축했으며 이를 공유 Automattic a8c-design 플러그인에 기여하려는 경우 사용합니다 —…
design-foundations
automattic
해방된 사이트에서 일관된 디자인 기반 JSON을 구축합니다 — 근거 추적과 함께 의미론적 색상/타이포그래피/간격 역할을 포함합니다. 부분 스캐폴드를 사용합니다…
wp-phpstan
automattic
WordPress 프로젝트(플러그인/테마/사이트)에서 PHPStan 정적 분석을 설정, 실행 또는 수정할 때 사용: phpstan.neon 설정, 기준선,…