From ci-failure-interpretation
Interprets GitHub Actions CI failure logs from PHPUnit, PHPStan, ECS, ESLint, TypeScript, Stylelint, Prettier, Jest, Playwright, ludtwig, and Lighthouse. Filters noise and identifies root causes.
npx claudepluginhub shopwarelabs/ai-coding-tools --plugin ci-failure-interpretationThis skill is limited to using the following tools:
| Job name pattern | Tool |
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
| Job name pattern | Tool |
|---|---|
PHPUnit | PHPUnit |
PHP analysis / PHPStan | PHPStan |
PHP lint / ECS / php-cs-fixer | ECS |
lint (in admin/storefront workflow) | ESLint, tsc, Stylelint, or Prettier |
Jest / unit (JS context) | Jest |
acceptance / Playwright | Playwright |
Lighthouse | Lighthouse |
Twig Lint / ludtwig | ludtwig |
When the job name is ambiguous, identify the tool from its output:
| Signature in log | Tool |
|---|---|
There was 1 failure: or There were N errors: | PHPUnit |
[ERROR] Found N errors | PHPStan |
Found N of M files that can be fixed | ECS |
✖ N problems (N errors, N warnings) | ESLint |
error TS followed by 4-digit code | TypeScript (tsc) |
✖ N problems in SCSS context | Stylelint |
Code style issues found | Prettier |
● suite-name › test-name | Jest |
expect(locator).toXxx() failed | Playwright |
Assertion failed. Exiting with status code 1. | Lighthouse |
error[RuleName]: | ludtwig |
These patterns appear in ALL GitHub Actions logs and are never the actual error:
YYYY-MM-DDTHH:MM:SS.NNNNNNNZ — ignore it##[group]Step Name / ##[endgroup] — structural, not errors##[error]Process completed with exit code N. — ALWAYS the last line of a failed step. This is the step exit marker, NOT the actual error. Never report this as the root cause.actions/cache, composer install, npm install, tool downloadsnpm error command failed, socket hang up, ECONNREFUSED — CI environment issues, not code errors (exception: for Playwright these CAN be the actual cause)For detailed GitHub Actions log format knowledge, see references/log-envelope.md.
Detailed failure anatomy, output format, false positives, and real examples for each tool:
| Tool(s) | Reference |
|---|---|
| PHPUnit, PHPStan, ECS | references/php-tools.md |
| ESLint, tsc, Stylelint, Prettier, Jest | references/js-tools.md |
| Playwright, Lighthouse, ludtwig | references/e2e-tools.md |