/absolute-deflake
Flaky test fixes: detect nondeterministic tests empirically (repeat/shuffle/parallel runs), diagnose the root cause, fix it — never retry/skip/sleep — and verify across many randomized runs. Triggers on "absolute deflake", "fix flaky tests", "CI is flaky", "this test fails
$ npx -y skills add absolutelyskilled/absolutelyskilled --skill absolute-deflake --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/absolute-deflake
Context preview
The summary Claude sees to decide when to auto-load this skill.
Flaky test fixes: detect nondeterministic tests empirically (repeat/shuffle/parallel runs), diagnose the root cause, fix it — never retry/skip/sleep — and verify across many randomized runs. Triggers on "absolute deflake", "fix flaky tests", "CI is flaky", "this test fails
SKILL.md
absolute-deflake.SKILL.mdname: absolute-deflake
version: 0.5.0
description: >
Flaky test fixes: detect nondeterministic tests empirically (repeat/shuffle/parallel runs), diagnose the root cause, fix it — never retry/skip/sleep — and verify across many randomized runs.
Triggers on "absolute deflake", "fix flaky tests", "CI is flaky", "this test fails randomly/intermittently".
category: workflow
tags:
- workflow
- testing
- flaky-tests
- maintenance
platforms:
- claude-code
- gemini-cli
- openai-codex
- mcp
user-invocable: true
argument-hint: "[target]"
license: MIT
maintainers:
- github: maddhruv
> Start your first response with the 🧪 emoji.
Absolute Deflake
Find tests that pass and fail nondeterministically, diagnose the **root cause** of each, and fix it — not by retrying or skipping, but by removing the source of nondeterminism. Output is evidence (failure rate per test) → cause → fix, verified by repeated runs.
Runs the shared engine in **`references/health-engine.md`** — read it for the DETECT → SCAN → TRIAGE → FIX → VERIFY → REPORT loop and the safety contract. This file covers only what's specific to flaky tests.
---
When to use
- "Our CI is flaky", "this test fails randomly", "fix the intermittent failures".
- A test passes locally but fails in CI (or vice versa), or fails ~1 in N runs.
- Burning down a backlog of `retry`/`skip`-marked tests that mask real flakiness.
Not for tests that fail *deterministically* — that's a real bug or a real regression (`/absolute work` for a fix, or just fix it). `deflake` targets *nondeterministic* failures.
---
What it scans
Establish flakiness empirically — a test isn't flaky because someone said so. Use `preferences.health.deflakeRuns` from config as the default N for repeat-runs (else 20):
| Ecosystem | Repeat-run / detect | |---|---| | Jest/Vitest | run suite N× (`--run` loop), randomize order (`--shuffle` / `testSequencer`) | | pytest | `pytest-randomly` + `pytest --count=N` (`pytest-repeat`); `-p no:randomly` to A/B | | Go | `go test -count=N -shuffle=on ./...`, `-race` |
Also mine signals: existing `retry`/`flaky`/`skip` annotations, CI history if reachable, and run the suite both **in isolation** and **in full/parallel** — order- and concurrency- dependent failures only show one way. Record a **failure rate** per suspect test.
---
Common root causes (diagnose, don't guess)
| Cause | Tell | Fix | |---|---|---| | Test-order / shared state | passes alone, fails in suite (or vice versa) | isolate state; reset/teardown between tests | | Time / clock | fails near midnight, DST, or under load | fake timers / inject clock; no real `sleep` | | Async race / missing await | fails under parallelism or slow CI | await the actual condition; no fixed timeouts | | Randomness | fails ~X% with no pattern | seed the RNG; fix the seed in tests | | Network / external I/O | fails offline or on slow links | mock/stub the boundary | | Unordered collections | fails on map/set iteration order | sort before asserting | | Resource leak / port reuse | fails on repeat or parallel runs | unique resources; clean up |
---
Risk ranking (TRIAGE)
| Wave | Class | Default | |---|---|---| | 1 | clear, isolated cause (seed, await, fake clock, sort) | fix now | | 2 | shared-state / ordering — needs fixture refactor | fix this pass, per test | | 3 | flakiness pointing at a **real product race**, not just the test | gated — surface; may be a genuine bug to fix in code |
A flaky test sometimes means the *code* has a race, not the test. Don't "stabilize" the test into hiding a real concurrency bug — flag wave-3 cases for a real fix.
---
Fix & verify
- Fix the **cause**. Then prove it: re-run the test **many times** (and shuffled / parallel /
with `-race`) — green once is not deflaked; green across N randomized runs is.
- Remove the `retry`/`skip`/`flaky` annotation that was masking it once the cause is fixed.
- **Never** "fix" by adding retries, raising timeouts blindly, `sleep`, or skipping the test —
that hides flakiness, doesn't remove it.
- Re-run the **full** suite to confirm the fix didn't destabilize neighbors.
---
Gotchas
1. **Retry/skip as a fix.** Masks the flake, ships the nondeterminism. Forbidden here. 2. **`sleep` to dodge a race.** Slows the suite and still flakes under load. Await the condition. 3. **One green run = done.** Flakes are probabilistic — verify with many randomized runs. 4. **Stabilizing a real product race.** If the *code* races, fix the code, not just the assertion. 5. **Ignoring order/parallel dimension.** Run isolated *and* in-suite; the bug hides in whichever you skip.
---
Companion commands
- **`/absolute upgrade`** — a flaky suite makes upgrade verification unreliable; deflake first.
- **`/absolute debt`** — flaky-test annotations are test debt; this clears them at the root.
- **`/absolute work`** — when the flake is a genuine product-code race needing real design.
Read more
name: absolute-deflake version: 0.5.0 description: > Flaky test fixes: detect nondeterministic tests empirically (repeat/shuffle/parallel runs), diagnose the root cause, fix it — never retry/skip/sleep — and verify across many randomized runs. Triggers on "absolute deflake", "fix flaky tests", "CI is flaky", "this test fails randomly/intermittently". category: workflow tags: - workflow - testing - flaky-tests - maintenance platforms: - claude-code - gemini-cli - openai-codex - mcp user-invocable: true argument-hint: "[target]" license: MIT maintainers: - github: maddhruv
> Start your first response with the 🧪 emoji.
Absolute Deflake
Find tests that pass and fail nondeterministically, diagnose the **root cause** of each, and fix it — not by retrying or skipping, but by removing the source of nondeterminism. Output is evidence (failure rate per test) → cause → fix, verified by repeated runs.
Runs the shared engine in **`references/health-engine.md`** — read it for the DETECT → SCAN → TRIAGE → FIX → VERIFY → REPORT loop and the safety contract. This file covers only what's specific to flaky tests.
---
When to use
- "Our CI is flaky", "this test fails randomly", "fix the intermittent failures".
- A test passes locally but fails in CI (or vice versa), or fails ~1 in N runs.
- Burning down a backlog of `retry`/`skip`-marked tests that mask real flakiness.
Not for tests that fail *deterministically* — that's a real bug or a real regression (`/absolute work` for a fix, or just fix it). `deflake` targets *nondeterministic* failures.
---
What it scans
Establish flakiness empirically — a test isn't flaky because someone said so. Use `preferences.health.deflakeRuns` from config as the default N for repeat-runs (else 20):
| Ecosystem | Repeat-run / detect | |---|---| | Jest/Vitest | run suite N× (`--run` loop), randomize order (`--shuffle` / `testSequencer`) | | pytest | `pytest-randomly` + `pytest --count=N` (`pytest-repeat`); `-p no:randomly` to A/B | | Go | `go test -count=N -shuffle=on ./...`, `-race` |
Also mine signals: existing `retry`/`flaky`/`skip` annotations, CI history if reachable, and run the suite both **in isolation** and **in full/parallel** — order- and concurrency- dependent failures only show one way. Record a **failure rate** per suspect test.
---
Common root causes (diagnose, don't guess)
| Cause | Tell | Fix | |---|---|---| | Test-order / shared state | passes alone, fails in suite (or vice versa) | isolate state; reset/teardown between tests | | Time / clock | fails near midnight, DST, or under load | fake timers / inject clock; no real `sleep` | | Async race / missing await | fails under parallelism or slow CI | await the actual condition; no fixed timeouts | | Randomness | fails ~X% with no pattern | seed the RNG; fix the seed in tests | | Network / external I/O | fails offline or on slow links | mock/stub the boundary | | Unordered collections | fails on map/set iteration order | sort before asserting | | Resource leak / port reuse | fails on repeat or parallel runs | unique resources; clean up |
---
Risk ranking (TRIAGE)
| Wave | Class | Default | |---|---|---| | 1 | clear, isolated cause (seed, await, fake clock, sort) | fix now | | 2 | shared-state / ordering — needs fixture refactor | fix this pass, per test | | 3 | flakiness pointing at a **real product race**, not just the test | gated — surface; may be a genuine bug to fix in code |
A flaky test sometimes means the *code* has a race, not the test. Don't "stabilize" the test into hiding a real concurrency bug — flag wave-3 cases for a real fix.
---
Fix & verify
- Fix the **cause**. Then prove it: re-run the test **many times** (and shuffled / parallel /
with `-race`) — green once is not deflaked; green across N randomized runs is.
- Remove the `retry`/`skip`/`flaky` annotation that was masking it once the cause is fixed.
- **Never** "fix" by adding retries, raising timeouts blindly, `sleep`, or skipping the test —
that hides flakiness, doesn't remove it.
- Re-run the **full** suite to confirm the fix didn't destabilize neighbors.
---
Gotchas
1. **Retry/skip as a fix.** Masks the flake, ships the nondeterminism. Forbidden here. 2. **`sleep` to dodge a race.** Slows the suite and still flakes under load. Await the condition. 3. **One green run = done.** Flakes are probabilistic — verify with many randomized runs. 4. **Stabilizing a real product race.** If the *code* races, fix the code, not just the assertion. 5. **Ignoring order/parallel dimension.** Run isolated *and* in-suite; the bug hides in whichever you skip.
---
Companion commands
- **`/absolute upgrade`** — a flaky suite makes upgrade verification unreliable; deflake first.
- **`/absolute debt`** — flaky-test annotations are test debt; this clears them at the root.
- **`/absolute work`** — when the flake is a genuine product-code race needing real design.
A development workflow engine for AI coding agents. Eleven separate skills — a one-time absolute-init (interview + stack detection → config), a build loop you run every day (think → spec → plan → build → polish → document), plus an engineering-health family
Repo: absolutelyskilled/absolutelyskilled
Other skills on absolute.
- /absolute-audit
Vulnerability and security scan (defensive, your own repo): dependency CVEs plus risky code patterns (secrets, injection, weak authz), severity x reachability triaged and remediated without suppressing. Complements the built-in /security-review. Triggers on "absolute audit",
Open skill - /absolute-debt
Lint and typecheck debt paydown: clear pre-existing repo-wide lint/type violations and suppressions (@ts-ignore, # type: ignore) one rule per wave, fixing causes not symptoms. Runs on green main. For diff-scoped quality use absolute-simplify. Triggers on "absolute debt", "fix
Open skill - /absolute-docs
Diátaxis-driven documentation for AI coding agents: write, improve, or audit tutorials, how-tos, reference, explanation, and developer docs (README, CONTRIBUTING, ADRs). Detects the docs stack; gates on the outline before writing prose; verifies every claim against the code
Open skill - /absolute-init
One-time setup for absolute: interview how you want it to behave (output style, autonomy, TDD strictness, spec dir, families) + detect the stack once, then write `.absolute.config.json` (project, committed) and `~/.absolute/config.json` (user defaults + per-project overrides).
Open skill - /absolute-prune
Dead code and dependency cleanup, repo-wide: unused deps, unreferenced exports, unreachable code, orphaned files — removed only with tool evidence, in reversible waves. Runs on green main. For diff-scoped cleanup use absolute-simplify. Triggers on "absolute prune", "remove dead
Open skill - /absolute-simplify
Use when the user wants to simplify, clean up, refactor, tidy, or refine code — their staged/unstaged git changes or a target file/path. Reduces complexity, flattens nesting, removes redundancy and dead code, scores each change by value (holding low-value churn), then runs tests
Open skill

