# Delivery feature definitions

Feature definitions are tracked, immutable deployment inputs for behavior changes only. Mutable feature state is held exclusively in the controller SQLite authority; changing a JSON definition never activates a feature.

Definitions default to `OFF`. Strict `loadFeatureDefinitions()` is the CI/config-validation API and rejects missing directories, unreadable or malformed files, schema failures, and duplicate IDs. Runtime callers must use `loadRuntimeFeatureDefinitions()`: it never throws, disables the entire registry on any ambiguity, and reports a bounded machine-readable `invalid-definition` or `definition-unavailable` reason (while a valid registry's absent ID is `missing-definition`). Invalid, missing, stale, or unavailable definitions/state evaluate to `OFF`, preserving the declared fallback. Agents may author these files but must not mutate runtime state. The foreground controller coordinator owns state transitions and exact-SHA readiness.

The offline `temp-user/overdeck-git-automation` package remains inert recovery evidence and is not an implementation source or installer.
