Test quarantine
Move a known flaky test into a visible non-blocking lane so it stops holding up merges while someone fixes it.
What it is
Test quarantine removes a known-unreliable test from the merge-blocking suite without pretending it is healthy. The test still runs in a separate lane, but its failure is reported rather than allowed to veto every pull request. Martin Fowler described the move in 'Eradicating Non-Determinism in Tests': it is a circuit breaker for team productivity while someone fixes the underlying flake.
Use it when a confirmed flaky test is causing repeated false alarms and cannot be repaired immediately. Tag it, attach an owner and issue, record the reason, and give the quarantine an expiry date. Keep its traces and failure rate visible so the repair has evidence behind it.
Gotcha: quarantine easily becomes a graveyard. A skipped test produces no signal, and a forever-nonblocking job slowly turns critical coverage into decoration. Review the list on a schedule, fail when expired quarantines remain, and restore each test to the blocking suite as soon as it is deterministic.
Ask AI for it
Quarantine the known flaky Playwright tests with the @quarantine tag. Run the merge-blocking job with --grep-invert @quarantine and a separate GitHub Actions job with --grep @quarantine and continue-on-error: true. Upload traces and the HTML report from that job, require an issue URL, owner, reason, and ISO expiry date beside every tag, and add a CI check that fails when a quarantine is past its expiry.