Skip to content
Owner: @lop • live

SLI States

This map keeps every initiative’s SLI state and guardrails obvious. Place your initiative or Read the Verify-in-10 guide.

StateEntry signalsExit signalsSLI guardrail
FramingProblem statement logged, owner + decider named, success metric sketchedScope, exit metric, and next artifact agreed; risks loggedAge in Framing < 5 business days
BuildAcceptance criteria frozen, team staffed, backlog item sized ≤ 3 daysWorking change behind flag or draft PR merged to default branchNo more than 3 concurrent Build streams per team
VerifyChange deployed to test/stage, telemetry hooks on, release note draft startedAcceptance checks green, Sev-1/2 regressions = 0, release note finalEach Verify cycle closes inside 48 hours
ReadyVerification finished, release owner assigned, rollback testedPack shipped or feature enabled for target audienceRelease queue < 2 business days; < 1 skipped retro follow-up
Live / WatchChange is in prod or publicMetrics stable for the agreed watch windowError budget consumed < 20%; page/issue feedback triaged daily

How to use this map

  1. Tag every initiative in the planning doc or kanban we expose publicly. If a stream lacks a state, it is invisible by default.
  2. Review once a week (calendar it) and note anything that breached its SLI. A breached guardrail is a decision prompt, not a scarlet letter.
  3. Escalate by state:
  4. Publish the board (screenshot or embed) wherever leadership expects status so the SLI legend is obvious.

Keeping SLI guardrails honest

  • Age-based SLIs (Framing, Ready) — Track the first day in-state; anything older than the guardrail gets highlighted in yellow until resolved.
  • WIP SLIs (Build) — Count human owners, not cards. Two people pairing on one change = one stream.
  • Time-bound SLIs (Verify) — Start the clock when code hits the validation environment, not when somebody “starts testing.”
  • Quality SLIs (Live/Watch) — Tie them to the page or service telemetry. If we promise error budget < 20%, paste the chart right under the status block.

When to update this page

  • Add a new state only when you have a distinct entry/exit signal and a measurable guardrail.
  • Retire a state if it lives purely in tooling (e.g., CI automation) and the audience never acts on it.
  • Re-run pnpm run nav:sync after editing so the Start navigation stays honest.

Text © CC BY-NC 4.0 • Code samples MIT • Views are my own.