Skip to content

ALL-LIFE0002 · feature_flag_debt

Count feature flags that lack a current lifecycle decision.

This is a deterministic rule for all languages. Read its implementation.

Count flags whose decision date is due or whose age exceeds the threshold without an explicit permanent role, owner, tested states, and cleanup plan. The result measures stale control paths rather than all flags.

Findings retain declaration, states, owner, creation, decision date, usage, and cleanup plan. The value is the number of flags past their decision without a permanent role.

Permanent operational and permission controls remain valid when labeled, owned, tested in at least two states, and governed by a cleanup plan. maximum_age_days is how long a flag may live without a decision and permanent_labels names the roles that are allowed to live forever, which are the operational and permission controls a system genuinely needs.

Three expired experiment flags without owners produce 3. A documented permanent emergency control does not count.

  • Cites “Feature Toggles”
  • Cites “Feature Toggles”, categories and carrying cost
  • Cites “Software Engineering at Google”, deprecation and change management