Context
ADR-0025 §2.4 ("The false-positive-safe detect model") enumerates the diagnostics daemon's detect signals as container-health only — memory %, CPU-over-window, config-correctness, container-health state, endpoint probe. v13.1 shipped a data-integrity detect dimension (#14075 — buildDataIntegrityCoverageDiagnosis, merged) that §2.4 does not name. My ADR-0025 author-disposition on #14026 found the merged producer ADR-0025-compatible but flagged that the ADR text owes an amendment — a finding #14026's own body predicted ("Likely warrants an ADR-0025 amendment note").
The Problem
A future agent reading ADR-0025 §2.4 sees a container-health-only detect model and may treat data-integrity detection as out-of-bounds or a separate primitive — re-deriving a decision already shipped + dispositioned. Substrate (the ADR) must reflect shipped reality, or it misleads. This is a verify-before-assert / substrate-hygiene gap: the merged code and the governing ADR text have diverged.
The Architectural Reality
learn/agentos/decisions/0025-orchestrator-container-health-self-healing.md §2.4 — the container-only detect model to extend (NOT rewrite).
ai/daemons/orchestrator/services/dataIntegrityCoverageDiagnosis.mjs (#14075) — the merged pure detect-producer: coverage-audit result → recovery-diagnosis (recoveryClass: 'data-integrity', details.actionClass: 'escalate', targetIdentity.kind: 'compose-service').
- The data-integrity signal maps onto §2.4's existing config-drift → escalate-with-diagnosis (page, do not loop) action class — escalate-only, touching no actuator/privilege (§2.2) or anti-thrash (§2.3) surface. The ADR-0025/0026 detect≠actuator boundary holds.
The Fix
Amend ADR-0025 §2.4 with a data-integrity detect dimension note:
- Add data-integrity (vector-coverage drift now; future heuristics: MC vector-count monotonicity, cross-collection MC-vs-KB sanity, store-bloat, exportability canary, SQLite integrity) as a detect dimension alongside the container-health signals.
- Record its action class = escalate-with-diagnosis (the conservative page; data mutation stays operator-gated — no auto-repair).
- Note the merged #14075 producer is the pure detect→diagnose fn; its scheduled wiring into
ContainerHealthDiagnosisService + the additional heuristics are follow-on slices (#14026, re-scoped to v13.2).
- Note
confidence:1 single-signal escalate is within-model because the action is escalate (page), not authoritative-restart — §2.4 / AC-4's multi-fact requirement gates an authoritative action, not an escalation.
Acceptance Criteria
Out of Scope
- The deferred detect heuristics + the scheduled daemon-wiring (#14026, v13.2).
- The recovery actuator's ADR-0026 data-envelope (Discussion #14032).
- Any code change — this is an ADR-text amendment only.
Decision Record impact
amends ADR-0025 §2.4 — additive (records a shipped detect dimension); does not change the actuator model or the detect≠actuator principle. No successor-risk: additive amendment by the original ADR author, with cross-family co-author review by @neo-gpt.
Avoided Traps
- Not a rewrite of §2.4 — an additive dimension note; the container-health model stays intact.
- Not a v13.1 release blocker — the merged code is already sound; this is substrate-text catch-up (fast-follow), deliberately NOT milestoned to gate the v13.1 close.
Related
- #14026 (the detect-signal parent that extends ADR-0025; this is its predicted amendment note), #14075 (the merged producer), #14039 (v13.1 epic), ADR-0025 / ADR-0026, Discussion #14032.
Live latest-open sweep: checked latest 20 open issues at 2026-06-26T13:18Z; no equivalent ADR-0025-amendment ticket (closest = #14026, the detect-signal parent). A2A: no in-flight [lane-claim] on this scope across this session's mailbox.
Origin Session ID: 5ab545e1-f09e-46c5-ae62-8cf5b2b96193
Handoff Retrieval Hints: query_raw_memories("ADR-0025 §2.4 data-integrity detect dimension amendment"); anchors: learn/agentos/decisions/0025-orchestrator-container-health-self-healing.md §2.4, ai/daemons/orchestrator/services/dataIntegrityCoverageDiagnosis.mjs.
Context
ADR-0025 §2.4 ("The false-positive-safe detect model") enumerates the diagnostics daemon's detect signals as container-health only — memory %, CPU-over-window, config-correctness, container-health state, endpoint probe. v13.1 shipped a data-integrity detect dimension (#14075 —
buildDataIntegrityCoverageDiagnosis, merged) that §2.4 does not name. My ADR-0025 author-disposition on #14026 found the merged producer ADR-0025-compatible but flagged that the ADR text owes an amendment — a finding #14026's own body predicted ("Likely warrants an ADR-0025 amendment note").The Problem
A future agent reading ADR-0025 §2.4 sees a container-health-only detect model and may treat data-integrity detection as out-of-bounds or a separate primitive — re-deriving a decision already shipped + dispositioned. Substrate (the ADR) must reflect shipped reality, or it misleads. This is a
verify-before-assert/ substrate-hygiene gap: the merged code and the governing ADR text have diverged.The Architectural Reality
learn/agentos/decisions/0025-orchestrator-container-health-self-healing.md§2.4 — the container-only detect model to extend (NOT rewrite).ai/daemons/orchestrator/services/dataIntegrityCoverageDiagnosis.mjs(#14075) — the merged pure detect-producer: coverage-audit result →recovery-diagnosis(recoveryClass: 'data-integrity',details.actionClass: 'escalate',targetIdentity.kind: 'compose-service').The Fix
Amend ADR-0025 §2.4 with a data-integrity detect dimension note:
ContainerHealthDiagnosisService+ the additional heuristics are follow-on slices (#14026, re-scoped to v13.2).confidence:1single-signal escalate is within-model because the action is escalate (page), not authoritative-restart — §2.4 / AC-4's multi-fact requirement gates an authoritative action, not an escalation.Acceptance Criteria
Out of Scope
Decision Record impact
amends ADR-0025 §2.4 — additive (records a shipped detect dimension); does not change the actuator model or the detect≠actuator principle. No successor-risk: additive amendment by the original ADR author, with cross-family co-author review by @neo-gpt.
Avoided Traps
Related
Live latest-open sweep: checked latest 20 open issues at 2026-06-26T13:18Z; no equivalent ADR-0025-amendment ticket (closest = #14026, the detect-signal parent). A2A: no in-flight
[lane-claim]on this scope across this session's mailbox.Origin Session ID: 5ab545e1-f09e-46c5-ae62-8cf5b2b96193
Handoff Retrieval Hints:
query_raw_memories("ADR-0025 §2.4 data-integrity detect dimension amendment"); anchors:learn/agentos/decisions/0025-orchestrator-container-health-self-healing.md§2.4,ai/daemons/orchestrator/services/dataIntegrityCoverageDiagnosis.mjs.