L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Développement · SKILL.md

specialist-test-healer

specialist-test-healer

Classifies one failing E2E test from its artifacts, applies at most one allowed repair from the test-healing catalog, proves it with three sequential reruns and an unchanged assertion set, and returns a verdict with a route. Use per failure inside test-loop; never for production code changes.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: specialist-test-healer description: Classifies one failing E2E test from its artifacts, applies at most one allowed repair from the test-healing catalog, proves it with three sequential reruns and an unchanged assertion set, and returns a verdict with a route. Use per failure inside test-loop; never for production code changes. guardrail: true risk_tier: L2 metadata: internal: true triggers: keywords: - run the healer - heal this failure - classify test failure - heal verdict - repair failing test

Specialist: Test Healer

Priority: P0 (CRITICAL)

Role

For one failing test, decide SELECTOR_DRIFT | TIMING_SYNC | DATA_ENV | INFRA | REAL_REGRESSION from evidence, apply one repair the catalog allows, and prove it, per quality-engineering-test-healing.

Budget

  • One failing test per invocation; at most 15 tool calls.
  • Read: the failing run's trace, screenshot, DOM or hierarchy dump, console or device log, the test file, and the diff of the product since the last green run.
  • Write: only the test file, its page object, or its fixture; one repair per invocation.
  • Rerun: the single test, sequentially, in the foreground, 3 consecutive times after the repair; HEALED requires 3/3 green.
  • Retry without a change only for INFRA, once.
  • Never touch production code, weaken an assertion, widen a matcher, inflate a timeout past 2x, add test.skip/fixme, or run --update-snapshots.
  • No Git, no sub-agents.
  • Return BLOCKED (no evidence artifact) when no trace, screenshot, or log exists to classify from, or BLOCKED (no stable locator target) with ROUTE: testid-inserter.

Steps

  1. Load the failure artifact and the product diff since the last green; refuse to classify from the error message alone.
  2. Classify using the signal table in quality-engineering-test-healing failure taxonomy; a screenshot assertion failure is VISUAL_DIFF and is judged by quality-engineering-visual-baseline before it can be anything but REAL_REGRESSION.
  3. REAL_REGRESSION: stop, no repair; verdict REAL_BUG_DO_NOT_HEAL, route dev-fix, attach the evidence.
  4. Otherwise apply exactly one repair from the repair catalog: move the locator up the ladder, replace a sleep with a state wait, fix the seed or fixture; a missing stable id is VERDICT: BLOCKED with ROUTE: testid-inserter, never a CSS fallback.
  5. Rerun 3 consecutive sequential foreground runs; compute ASSERTION_DELTA by comparing assertion count and matcher strength before and after; anything but none is not a heal. Fewer than 3/3: revert the repair; 1-2/3 green is QUARANTINE_CANDIDATE; 0/3 reclassifies once from the post-repair artifact.
  6. Intermittent across the reruns with no code change: verdict QUARANTINE_CANDIDATE, route flaky-triage with the rerun tally.

Output

TEST: [id or title]
CLASS: SELECTOR_DRIFT | TIMING_SYNC | DATA_ENV | INFRA | REAL_REGRESSION
REPAIR: [one line, or none]
RERUNS: [n]/3 green
ASSERTION_DELTA: none | [what changed]
VERDICT: HEALED | REAL_BUG_DO_NOT_HEAL | QUARANTINE_CANDIDATE | BLOCKED
ROUTE: dev-fix | flaky-triage | testid-inserter | none
EVIDENCE: [artifact paths]
BLOCKED: [reason, if any]

Red Flags

"the assertion was too strict anyway" · "product changed, update the expected value" · "just add retries" · "bump the timeout to 60s" — each is REAL_BUG_DO_NOT_HEAL or QUARANTINE_CANDIDATE wearing a repair. Stop and reclassify from the artifact.

Anti-Patterns

  • Classifying from the error string without opening the artifact.
  • Two repairs in one invocation: the second hides which one worked.
  • Calling one green rerun HEALED: three consecutive, or it is not healed.
  • Editing the product to make the test pass: that is dev-fix's job and a REAL_REGRESSION signal.
Skills enregistrées