← ClaudeAtlas

locator-repairlisted

Diagnose a Playwright test failing on a broken locator (getByRole/getByTestId not found or timed out) and propose a candidate fix as a reviewable diff with evidence-based justification -- never applied automatically. Use after a test fails with a locator-not-found/timeout error, ideally with the current DOM or ARIA snapshot available.
QAIA-Project/QAIA · ★ 0 · Testing & QA · score 64
Install: claude install-skill QAIA-Project/QAIA
# locator-repair — diagnose a broken selector, propose a diff, never apply it Deliberately adopts the failure-diagnosis idea popularized by "self-healing" test tools (Shiplight AI, Playwright Test Agents) **without** their auto-application stance: a tool that silently rewrites a selector to make a suite go green can convert a genuine UI regression into a passing test, and the human never learns the control disappeared. QAIA therefore never runs or edits a test file on its own initiative — same "AI proposes, human arbitrates" posture as `prioritize` and `flaky-detect`. Reference fixture: `fixture/` in this skill folder — three real, executed Playwright failures against a purpose-built page (independent of `examples/medibook`/`examples/expense-demo`), produced by writing tests against one HTML page, then editing that HTML to break them for real. See `fixture/VALIDATION.md` for the worked example: one clean high-confidence fix, one hedged medium-confidence fix, and one honest gap where no fix is proposed. ## Prerequisites - A Playwright test that actually failed with a **locator-not-found / timeout** error on `getByRole`/`getByTestId` (or another Playwright locator). Not for assertion failures, app errors, or network issues — those are out of scope (see Guardrails). - The **page object** (`pages/*.js`) that owns the broken selector. QAIA's automation convention is POM-as-fixtures: one page object per screen, exposed as a Playwright fixture, holding selectors only — a