FA-73930 / Feature flag rollout bucketing / Member archive
Prerequisite flag chain: Shared prerequisites are mistaken for cycles · case 05
Two flags that both depend on the same base flag report a prerequisite cycle.
Case contract
flags maps key -> {on, off, serve, prereqs:[[key, required variation]]}. Missing flags yield [None, MISSING, key]; revisiting a flag on the current path yields [None, CYCLE, key] (checked before on/off). An off flag serves [off, OFF, None]. Prerequisites are evaluated in order; MISSING/CYCLE results propagate unchanged; the first prerequisite that is OFF or serves a different variation stops evaluation with [off, PREREQUISITE_FAILED, that prerequisite key]. A prerequisite that itself failed counts as serving its off variation. Otherwise [serve, ON, None].
Why this case matters
Prerequisite chains gate dependent features and must fail closed with an actionable reason.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| diamond dependency is not a cycle | [null, "CYCLE", "d"] | ["on", "ON", null] | Failed |
MEMBER ARCHIVE
The complete case is available to members.
This record includes three runnable implementations, regression fixtures, execution results, and source hashes.
Member access is invitation-based. Sign in with your invited account to inspect the sources.
Sign in to the archive ↗