Skip to content

09 -- Derived requirements

Each row is a requirement that flows out of a safety constraint and into the backlog. The Backlog column links to docs/backlog.md. Entries marked enforced are pinned by a test in tests/unit/ or tests/integration/; the remaining entries are asserted in code review or carried by the backlog.

ID Requirement From Backlog ADR Status
DR-1 The self-model widens its capability quantiles in proportion to estimator covariance and exposes a confidence_low flag when the estimator has diverged. SC-1 BL-035 ADR-0010 review
DR-2 state_transition refuses trigger=mission when the thermal estimator's headroom_c is below the profile threshold. The FSM guard fails closed on missing context. SC-2 BL-014, BL-022 ADR-0001, ADR-0010, ADR-0018 enforced
DR-3 The comms estimator's state accessor returns LIMITED when loss or throughput is out of envelope; this is the value that adapters consume. SC-3 BL-030 ADR-0010 review
DR-4 Every adapter's encode includes the source timestamp and refuses to encode if the underlying estimate is older than the adapter's max_age. JSON adapters refuse decode payloads larger than max_payload_len. SC-4 BL-024..BL-036 ADR-0011 enforced
DR-5 inference_cloud returns a structured CapExhausted payload, the InferenceFallback ladder routes to the local mock on cloud failure, and AnthropicClient.call is bounded by timeout_s. SC-5 BL-021 ADR-0005 enforced
DR-6 The audit handler uses WatchedFileHandler and fsyncs after every emit. The systemd ExecStop and the daily flush timer call nous flush, which checkpoints the SQLite WAL and fsyncs the audit handler. SC-6 BL-038 ADR-0002, ADR-0008 enforced
DR-7 The OAuth issuer defaults to single_client=true; disabling lockdown emits a startup warning and lands in the audit log. SC-7 BL-019 ADR-0008 review
DR-8 CallCap.increment fails closed (raises CapExhausted) on a corrupted persistence file. Concurrent writers cannot race the truncate/write window. SC-5 BL-021 ADR-0005 enforced
DR-9 The policy classifier's additive-surface rule defaults unknown tools to STATEFUL, so guarded mode refuses them without an explicit allow regex. SC-7, additive-surface BL-038 ADR-0007 enforced
DR-10 The position EKF and biometric Kalman validate inputs; NaN, Inf, and out-of-range observations are rejected without poisoning the central estimate. SC-1 BL-026, BL-029 ADR-0010 enforced