the-internet-tests

ADR-0004 — Isolate flaky-demo and not-ci tests from the gates

Context

This repository deliberately contains unstable tests. The flake lab exists to study the patterns that make suites unreliable — races, animations, nondeterministic copy, shifting layout — and those examples are only instructive if they actually misbehave. A demo app page that randomizes its own content cannot be made reliable by better waiting; that is the lesson.

That creates a direct conflict with the gates. A suite that fails at random trains people to ignore red, which is the exact habit the repository argues against. The tempting resolutions are both wrong: deleting the unstable examples removes the teaching material, and retrying until green teaches that flakiness is a retry budget rather than a defect.

Decision

Keep the unstable material and tag it out of the gates rather than removing it or papering over it:

Everything unmarked is expected to be deterministic, and a failure there is a real defect. Never widen a tag to silence a genuine failure: the triage order is recorded in ../flakiness-guide.md, and retagging is the last step, taken only once the nondeterminism is understood and attributable to the application rather than the test.

Consequences