akw-factory-floorsfloors.akwlabs.com · ga

ADR 0015 — Derive a decision's stage from the floor it sits on, never from a flag

ga · floor-software-engineer

Decision

Derive a decision's stage from the floor it sits on, never from a flag

Why

A feature-flag list kept beside the work drifts from it: the flag says beta while the code shipped a month ago, and nothing disagrees because nothing compares them. Deriving the stage from where the decision actually sits makes 'claims a stage it has not reached' unrepresentable. Promotion becomes a move between floors, which is a mailroom event, append-only and reviewable.

Measured

stageFor is total over DecisionFloor, so a new floor is a compile error rather than an undefined badge. 12 decisions seeded at research-preview because none had merged. The generator's --check catches a hand edit, a stale page, and an orphan page with no row.

Inputs and outputs

This decision declares none. Every name in this section, when present, resolves against the capability vocabulary or the floor registry -- a typo fails the generator rather than rendering.

Where it is

Floor floor-software-engineer
Stage ga
Pull request akwlabs-ai/akw-factory-floors#6
Routed 2026-09-02
Id b1092254794d3be1