Kanon
Guides

Managing your flag plan

The Flag Plan page tracks every feature flag in your codebase — its purpose, lifecycle, owner, and cleanup schedule.

Why manage flags

Feature flags accumulate. A flag added for a launch stays in the code long after the feature ships. Over time, the codebase fills with dead branches that confuse readers, slow tests, and occasionally cause bugs when someone flips a forgotten flag.

The flag plan makes this visible: every flag has a lifecycle and a cleanup date. The plan tells you which flags are stale and need removal.

Flag statuses

StatusMeaning
ImplementedIn the plan AND in the code, aligned
PlannedIn the plan, not yet in code (will be added)
StaleIn code but marked for cleanup
MissingWas in the plan as implemented, now gone from code
UndocumentedIn code but not in the plan

Flag lifecycles

LifecycleWhen to use
TemporaryLaunch flags, rollout gates — should be removed after full rollout
PermanentConfiguration that stays: per-customer toggles, plan-gated features
ExperimentA/B test flags — remove when the experiment concludes
OpsOperational controls: circuit breakers, maintenance mode
Kill switchEmergency disable for a feature — stays permanently

Working with the plan

Documenting undocumented flags

After a scan, flags found in code but not in the plan show as "undocumented." Click the check icon to add them to the plan with a default lifecycle of "temporary."

Setting cleanup dates

For temporary flags, set a cleanup date. When the date passes, the flag shows a warning: "Cleanup overdue since {date}." This makes tech debt visible.

Creating maintenance tickets

The "Create ticket" button generates a Linear ticket for:

  • Flags to implement (planned but not coded)
  • Flags to clean up (stale or overdue) — includes the gate site count so the developer knows how much code to remove
  • Undocumented flags to decide on (add to plan or remove from code)

Providers detected

The scanner identifies: LaunchDarkly, Unleash, GrowthBook, PostHog, Statsig, Flagsmith, environment variables.

On this page