.ai/skills/mailpoet-dev-cycle/SKILL.md
Linting and code quality workflows for MailPoet development (PHP, JS/TS, CSS/SCSS). Use when fixing code style or following the development workflow.
npx skillsauth add mailpoet/mailpoet mailpoet-dev-cycleInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill covers linting, code quality, and building assets for MailPoet development. For testing, see the separate writing-tests skill.
This is a monorepo. All plugin-level ./do commands MUST be run from the correct subdirectory:
mailpoet/mailpoet-premium/./do: Docker wrapper that forwards commands. Use ./do --test for test commands, ./do --premium for premium.Unless you are explicitly working on the premium plugin, always default to the free plugin directory.
| Document | Purpose | | -------------------------------------------------- | ------------------------------------------------------------------------- | | code-quality.md | JS/TS linting (ESLint), CSS/SCSS linting (Stylelint), Prettier formatting | | php-coding-standards.md | PHP lint, PHPCS, PHPStan static analysis |
All commands below default to the free plugin. Run from the repo root.
# QA (all checks: PHP lint + PHPCS + ESLint + Stylelint)
cd mailpoet && ./do qa
# PHP only (lint + PHPCS)
cd mailpoet && ./do qa:php
# PHPStan static analysis
cd mailpoet && ./do qa:phpstan
# JS/TS linting (ESLint + TypeScript check)
cd mailpoet && ./do qa:lint-javascript
# CSS/SCSS linting (Stylelint)
cd mailpoet && ./do qa:lint-css
# Prettier check / fix
cd mailpoet && ./do qa:prettier-check
cd mailpoet && ./do qa:prettier-write
# Fix a single file (PHPCS or ESLint based on extension)
cd mailpoet && ./do qa:fix-file path/to/file.php
cd mailpoet && ./do qa:fix-file path/to/file.tsx
graph TD
A[Make Changes] --> B[Run Linting]
B --> C{Linting Passes?}
C -->|No| D[Fix Issues]
D --> B
C -->|Yes| E[Run Tests]
E --> F{Tests Pass?}
F -->|No| G[Fix Tests]
G --> E
F -->|Yes| H[Run Prettier]
H --> I{Prettier Clean?}
I -->|No| J["./do qa:prettier-write"]
J --> H
I -->|Yes| K[Commit]
Before committing, run these from the repo root:
cd mailpoet && ./do qa -- all PHP and frontend QA checks passcd mailpoet && ./do qa:prettier-write -- formatting is cleanwriting-tests skill for commands)When working on mailpoet-premium/, substitute the directory:
cd mailpoet-premium && ./do qa
cd mailpoet-premium && ./do qa:phpstan
Or use the root wrapper:
./do --premium qa
development
Use when writing, running, or debugging tests. Use when asked to add test coverage, fix a failing test, or run a test suite.
testing
Use when adding a changelog entry for a branch. Use after completing work on a feature, fix, or improvement that is user-facing.
testing
ALWAYS use when creating a new branch, starting work on a task, or working on a Linear issue. Handles branch naming, Linear lookup, and branch creation. Do NOT run git switch -c or git checkout -b directly.
development
Use when reviewing pull requests or local code changes. Use when asked to review a PR, review code, test changes, verify implementation quality, or do a code review.