drogna

A demonstration harness. Every number in it is invented.

V1 record — describes retired software; superseded for V2 by srd.md, constitution 2.0.0 and ADR-0027.

ADR-0026: The third wall-clock exemption is resource sampling, and the socket stops at the door

Status: Accepted Date: 28 August 2026 Requirements: SRD FR-70, FR-72, FR-73; Constitution Principle I (amended to 1.6.0 by this record); C-21 Raised by: SRD §5.12, which owes this record before the operator plane is built. The decisions were taken by the owner on 28 August 2026, by structured interview; this record is the argument and the bound.

Context

Two of the operator plane's requirements touch surfaces the constitution guards.

FR-70 asks the system controller to sample each container's processor and memory use and publish it, so the display can show where the harness saturates as the rate rises. Utilisation is inherently a per-host-second measure: there is no simulation- time reading of a CPU. Principle I permits wall-clock time in exactly two bounded places — heartbeat emission and liveness evaluation (ADR-0006), and display interpolation between clock samples (ADR-0007) — and states that a third request "is evidence the principle is being eroded and must be argued on its own merits, never by analogy to these two". This is that argument.

FR-72 asks the controller to dispatch process-level lifecycle — stopping, starting and restarting a component's container — which requires the container runtime socket. Whoever holds that socket holds the deployment: it is the widest capability in the harness, and the SRD names it a deliberate trust surface wanting its own bound.

Decision

The exemption, and its bound

Principle I gains a third bounded exemption: container resource sampling, confined to the system controller's sampler module. The constitution moves to 1.6.0. The bound has three parts, and each is what keeps this an exemption rather than an erosion:

The socket, and its reach

The runtime socket is mounted into C-21's container and no other. No component gains it incidentally; the compose configuration names it once, on the controller.

Lifecycle commands may target any component except three: the proxy, the controller itself, and the broker. The exclusions are each an argument, not a list:

Everything else — the loop services, the sensors, the stores, the clock — is fair game, which is the teaching value FR-72 exists for. A command naming an excluded component is refused with the exclusion named, in the house style. The exclusion list is configuration validated against schema, so a destination can narrow it further but the three names above are the floor.

Reachability of the commands is ADR-0025's subject: the plane, socket commands included, sits behind the boundary's clearance.

Alternatives rejected

Consequences