Skip to content
Latchkey

How to Manage the Feature Flag Lifecycle

A release flag moves through create, roll out, fully on, then remove; naming its stage keeps it from lingering.

Release flags are temporary. Giving each flag an explicit lifecycle (with an owner and target removal date) and tracking its stage keeps the flag set small and honest.

Lifecycle stages

StageMeaningNext action
NewCreated, default offBuild and merge behind it
Rolling outOn for a subsetWiden while watching metrics
Fully onOn for everyoneSchedule removal
RetiredRemoved from code and toolDone

Track stage in the manifest

flags.yaml
flags:
  new-checkout:
    owner: checkout-team
    stage: rolling-out
    targetRemoval: 2026-08-01

Gotchas

  • A flag stuck at "fully on" with no removal date is permanent tech debt.
  • Long-lived operational flags (kill switches) are legitimate; label them so cleanup checks skip them.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →