Work / Trunk / Wiki / Concepts
flag-shapes
Conceptcanonicalverified 2026-10-04
CONCEPT.FLAG-SHAPESEvery 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.mdhas 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.