The import of slice 3 (ADR 0275) was checked against every folder: no report changed since the commit it read, and the tracker holds each report's status, owner, fix, design amendment, replay and closing day. The keys are removed from all 361 reports, cycle.py refuses them in any report, and the playbooks, skills and READMEs that still pointed at them name the tracker instead.
980 B
opened
| opened |
|---|
| 2026-09-30 |
166 — A requirement cannot be optional
What was observed
Making every dependency on ace a provision turned soft dependencies into hard ones. grafana now
requires influxdb-api (a data source), ombi requires sonarr-api, radarr-api and lidarr-api,
home-assistant requires the Servarr APIs and mqtt-topic. Each is optional to the software — grafana
runs without a data source, ombi without lidarr — but a mesh without influxdb cannot assign grafana at
all, and a mesh without lidarr cannot run ombi.
What would be right
A requirement a module can run without: resolved and bound when a provider exists, absent (with its
${bound:…} placeholders refused or defaulted explicitly, never rendered empty) when none does — so
the module description stays true on every mesh.
Re-checked 2026-10-08: still holds. A manifest's requires is still a list of hard requirements; no
optional form exists in the controller's catalogue.