agents/skills/shopify-trello-qa/SKILL.md
Verify a developer's finished Shopify theme ticket and render a verdict. Dogfood the posted preview theme and Customizer (desktop + mobile) against the card's acceptance criteria and Figma, then PASS it (approve the PR, move to Ready for Release) or FAIL it (request changes, attach repro, reassign the dev, move to Development). Read-only: never implements, commits, deploys, or opens a PR. Use when asked to 'QA this Shopify card', 'verify the Ready for Testing card', or 'sign off on this theme ticket'. Non-Shopify apps use trello-qa; building a ticket uses shopify-trello-delivery.
npx skillsauth add carterdea/dots shopify-trello-qaInstall 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.
Take a developer's finished Shopify theme ticket and decide whether it is releasable. The deliverable is a verdict, not theme code: the Trello card, the GitHub PR review, the QA report comment, and the evidence all agree on PASS or FAIL.
This skill is for Shopify theme tickets; non-Shopify web apps belong to trello-qa. It does the opposite job of shopify-trello-delivery: that skill builds a theme change, deploys a preview, and opens a PR; this one verifies a preview theme someone else deployed and moves the card forward or kicks it back.
This skill is read-only on the theme. It never edits Liquid/assets, never commits, never pushes, never runs shopify theme push or any deploy, and never changes a PR's code. Its only writes are to Trello (comment, attachment, checklist, assignment, move) and a single GitHub PR review (approve or request-changes).
trello-cli skill for Trello auth, card/comment/checklist reads, comments, attachments, member assignment, list discovery, moves, and mutation verification.agent-browser skill for all browser QA, viewport sizing, interaction, console/network inspection, and screenshots — strongly preferred. Invoke that skill first and drive the agent-browser CLI. Fall back to mcp__claude-in-chrome__* only if agent-browser can't run.dogfood skill for systematic exploration of the touched surface, the regression sweep, and structured reproduction evidence (numbered steps, screenshots, repro video) on any failure.gh) to read the PR (read-only) and leave one PR review.shopify-dev, shopify-liquid, shopify-admin, shopify-storefront-graphql) only to confirm how a theme feature or app is expected to behave — never to change or deploy the theme. (Do not use shopify-dev-theme; QA does not create or deploy themes.)shopify theme push, no theme creation, no dev server. If you want to fix the bug, stop — QA reports it; the developer fixes it.preview_theme_id=<id> and any path/hash) and the Customizer URL from the Trello comment or PR. If no preview theme URL opens (missing, expired, deleted, theme-limit reaped), do not deploy your own — treat the card as blocked: comment asking the developer to re-deploy and post a working preview theme URL, reassign them, leave the card in review, and stop.www but customers see www, test the canonical storefront URL.dogfood-style reproduction per failing criterion: numbered steps, before/after screenshots, repro video for interaction bugs.code-simplifier / de-slop (duplicated Liquid/JS, nested ternaries, slop comments, stray scratch files, etc.) as inline PR comments — but never let them change the PASS/FAIL verdict. Without GitHub access, fold them into the Trello comment. You observe these; you never run those skills or edit the theme. (Shopify-generated JSON headers are not slop — don't flag them.)Use subagents for read-only parallel work: ticket intake (criteria, PR link, preview theme URL, Customizer URL, preview_theme_id, Figma links, original developer), Figma reference capture, and PR-diff review for scope/missing-criteria signals. Keep the browser QA session, the verdict, the GitHub PR review, and all Trello comments/attachments/moves in the lead agent.
Hard gate. Two checks before anything else:
shopify.theme.toml store, README, remote slug) — abbreviations count (a Reeis label matches reeis-air-conditioning-shopify). If none matches, stop and report the mismatch.Ready for Testing, or the board's closest handoff list). If it's still in development, already in Ready for Release, or shipped, stop and report.trello auth status.shopify.theme.toml for store/environment context (read-only).preview_theme_id the developer posted.node-id= URLs). Description links win unless a later comment explicitly supersedes them.AGENTS.md, CLAUDE.md, CONTRIBUTING.md) only for expected behavior. Change nothing.preview_theme_id=<id> and any relevant path/hash, plus the Customizer URL.node-id (701-56 → 701:56); use get_design_context for the node and get_screenshot for a reference image. If the Figma file has separate desktop and mobile frames, capture both. If Figma MCP can't open the file, say so and fall back to ticket screenshots.gh pr view <number> --json headRefName,baseRefName,url,state,title,author,additions,deletions,files and gh pr diff <number> to understand what changed.Only run this when the QA has GitHub access to the repo (confirm with gh auth status and a successful gh pr view). With no access, skip GitHub and record any observations for the Trello comment instead.
Do not run code-simplifier or de-slop, and do not edit the theme. You are only noting evidence in the diff that the developer skipped those passes. These observations are never a reason to FAIL — they're a courtesy heads-up kept separate from the acceptance-criteria verdict, so an approved card can still carry them.
Scan gh pr diff <number> for the tells those skills exist to catch:
assign/loops that could be hoisted, dead code, one-off inline styles where a theme token/class exists, unclear names.NOTES/PLAN/IDEAS/TODO.md), any casts in theme JS that only paper over types, defensive guards on trusted paths, mock-heavy tests with no real assertions, fake/uncited metrics.Do not flag Shopify-generated JSON schema headers — those are expected, not slop. Keep the bar high: flag clear, line-locatable instances, not stylistic preference. A clean diff gets no note.
Where to post, in order of preference:
gh pr review call in step 7, create one review carrying both the verdict and the line comments: gh api repos/<owner>/<repo>/pulls/<number>/reviews --method POST --input <payload.json>, where the payload has event (APPROVE or REQUEST_CHANGES), the verdict body, and a comments array of { "path", "line", "side": "RIGHT", "body" } — one per finding, each referencing a line present in the diff. Prefix each comment body with code hygiene (non-blocking):.file:line — note.file:line — note.Invoke the dogfood skill to drive the preview theme systematically, on a desktop viewport (1440x1000) and a mobile viewport (430x932x3,mobile,touch).
agent-browser, read the console and network panel; flag JS errors, failed requests, broken/404 assets the change introduced.<card-short>-desktop.png and <card-short>-mobile.png taken from the preview theme URL (including preview_theme_id), showing the criteria met. Name them so it's clear they are implementation screenshots, not Figma references.dogfood — numbered repro steps, before/after screenshots, and a gif/video for interaction bugs. Self-contained so the developer can act on it.code hygiene (non-blocking): comments as one review via the reviews API; otherwise a plain gh pr review <number> --approve --body "<short sign-off>".<card-short>-desktop.png and <card-short>-mobile.png to the card.trello lists list --board <board-id>, move by ID, re-fetch to confirm idList).code hygiene (non-blocking): comments into one review via the reviews API; otherwise a plain gh pr review <number> --request-changes --body "<failing criteria summary>". (Hygiene notes ride along but are not the reason for the changes request — the failing criteria are.)trello members add --card <card-id> --member <member-id>).State the verdict (PASS or FAIL), which criteria passed and which failed, the viewports tested, the preview theme URL used, where the card moved, and that screenshots/repro were posted to both the PR review and the Trello card. Name anything that blocked verification. Keep it concise and always include the Trello card URL.
preview_theme_id, Figma links, original developer.idList.preview_theme_id, Figma links, original developer.idList.PASS:
**QA: PASS** ✅
**PR:** <pr-url>
**Preview:** <preview-theme-url with preview_theme_id>
**Customizer:** <customizer-url>
**Figma:** <figma-url if compared>
**Viewports:** desktop 1440x1000, mobile 430x932
**Acceptance criteria**
- [x] <criterion 1>
- [x] <criterion 2>
No console errors introduced; no regressions in adjacent sections. Desktop and mobile screenshots attached. Approving the PR and moving to Ready for Release.
<!-- Include only when you have no GitHub access and found hygiene tells: -->
**Code hygiene (non-blocking)** — looks like code-simplifier/de-slop may not have been run:
- <file:line — note>
FAIL:
**QA: FAIL** ❌
**PR:** <pr-url>
**Preview:** <preview-theme-url with preview_theme_id>
**Customizer:** <customizer-url>
**Figma:** <figma-url if compared>
**Viewports:** desktop 1440x1000, mobile 430x932
**Acceptance criteria**
- [x] <criterion that passed>
- [ ] <criterion that failed> — see repro below
**Issue 1 — <short title>** (<viewport>)
1. <step>
2. <step>
3. Expected: <…> Actual: <…>
(screenshots / repro video attached)
Requested changes on the PR and moved back to Development in Progress, reassigned to @<developer>.
<!-- Include only when you have no GitHub access and found hygiene tells: -->
**Code hygiene (non-blocking)** — looks like code-simplifier/de-slop may not have been run:
- <file:line — note>
Discover real list names per board; these are the current Shopify defaults:
trello lists list --board <board-id> before moving — Shopify boards use "Ready for Testing," not "Ready for Review."development
Add net-new product, workflow, platform, or developer-experience features as small vertical slices. Use this skill whenever the user asks to build a new feature, add a new page/route/API/workflow/job/eval/operator path, enrich an existing feature with a new user-visible capability, or plan feature architecture before coding. This skill maps the files to change or create, defines the authoritative contract, specifies tests, and gives a QA plan before treating the feature as done.
development
Verify a developer's finished Trello ticket on a non-Shopify web app and render a verdict. Dogfood the posted preview (desktop + mobile) against the card's acceptance criteria, then PASS it (approve the PR, move to Ready for Release) or FAIL it (request changes, attach repro, reassign the dev, move to Development). Read-only: never implements, commits, or opens a PR. Use when asked to 'QA this card', 'test before release', or 'sign off on this ticket'. Shopify themes use shopify-trello-qa; building a ticket uses trello-delivery.
development
Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to execute. Strictly read-only on source code — never implements, fixes, or refactors anything itself. Use when asked to audit a codebase, find improvement opportunities (bugs, security, performance, test coverage, tech debt, migrations, DX), suggest features or where to take the project next (roadmap, product direction), or generate handoff plans for another agent to implement.
development
Refactor codebases by collapsing orchestration, tightening typed boundaries, deleting broad context leakage, and adding ratchet tests