Skip to content

Core concepts

TermMeaning
IncidentA failure you never want back: what triggered it, what happened, and what should have happened.
FixThe commit (or merged pull request) that resolved it. Its parent is "before the fix".
DraftA test a model wrote. It proves nothing until time travel runs it.
Time travelRunning the draft on the commit before the fix and on the fix, three times each, in a fresh sandbox.
ProvenFailed 3 of 3 before the fix and passed 3 of 3 on it. The test is admitted to memory.
MemoryYour proven tests, each tied to its incident and its proof. An incident can have several.
GuardThe pull request check that runs the relevant memory tests on every change.
RiskHow close a change comes to code behind past incidents, shown on every check.
EpicenterThe commit, and pull request, that first introduced the bug, found by bisecting history with the proven test.
Still guardingA weekly re-proof: the fix is undone on today's code and the test must fail again.
StrengthThe share of small changes to the fixed lines that a test catches (mutation testing).

Rules that never bend

  • A model never marks anything proven or safe. Only test runs do.
  • A test that passes before the fix is rejected, however good it looks.
  • Mixed results are inconclusive, never green.
  • Nothing is pushed to your default branch. Tests arrive as pull requests.
  • Sandboxed runs never receive your secrets, and have no network while tests run.

Two kinds of verdict

Time travel decides whether a test is admitted: proven, rejected (it passed before the fix, so it doesn't reproduce the incident) or unproven (mixed results, environment errors, or every redraft failed).

Pull request checks decide whether a change reopens an incident: Recur, Safe, Inconclusive or Skipped. A Recur check fails the pull request in blocking mode and is a warning in advisory mode; an admin can override it with a reason, which is kept in the audit evidence.

Current limits

  • GitHub only. GitLab and Bitbucket are not supported yet.
  • Tests that need live third-party services can't be proven in the sandbox. Run those on your own runners with fixtures.
  • Incidents without a fix stay in Awaiting fix; nothing is proven by guesswork.
Edit this page on GitHub