Skip to content
Back to skills

Specialist Test Healer

ASecurity

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.

  • 565 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 21, 2026
developmentgit

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 3, 2026

npx -y skills add HoangNguyen0403/agent-skills-standard --skill specialist-test-healer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Specialist Test Healer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Specialist Test Healer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hoangnguyen0403-specialist-test-healer/badge)](https://www.skillsdirectory.com/skills/hoangnguyen0403-specialist-test-healer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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
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

```text
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.

Files in this skill

  • SKILL.md3.7 KB
  • evals/evals.json3.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…