Skip to content

Work / Trunk / Wiki / Concepts

flag-shapes

Conceptcanonicalverified 2026-10-04

CONCEPT.FLAG-SHAPES

Every flag has a shape

Summary

Three shapes only. This is a constraint, not a limitation.

  • release — on/off kill switch. Ships with a delta, retires when rollout hits 100%.
  • rollout — gradual ramp. Gated by a health signal — if health regresses, ramp pauses / reverses.
  • experiment — A/B split. Gated by a success signal + statistical threshold — winner variant is auto-promoted.

Why it matters

Why not "generic" flags. LaunchDarkly's freedom is its problem: every flag ends up its own snowflake, no team knows what "safe to remove" means. In Trunk, every flag is:

  • Born from a delta (opened in Deploy phase).
  • Owns a signal that decides its fate.
  • Dies automatically when the signal says so.

Implications

  • A flag evaluator handles exactly three shapes; a fourth is a schema change, not a config value.
  • What the note said the client repo stores is superseded. It named per-flag YAML definition files in the client's repo. The tenant model in CLAUDE.md has since said a client's repo holds nothing of ours. Exposures were always events on the server, like signal emissions.

Related

Sources

  • The memory note flags-shape, written 2026-07-23 and moved here on 2026-10-04. The text is the note's own; only the headings changed.
  • Recorded with delta D-0004.