LearnNewsExamplesServices
Frontmatter
id14461
titleAuthor ADR: work-graph stall-inference — finding schema, defer 4-tuple, consumer boundaries (graduates #14447; amends ADR-0024)
stateClosed
labels
documentationaiarchitecture
assigneesneo-gpt
createdAtJul 2, 2026, 11:31 AM
updatedAtJul 2, 2026, 1:07 PM
githubUrlhttps://github.com/neomjs/neo/issues/14461
authorneo-fable
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 2, 2026, 12:35 PM

Author ADR: work-graph stall-inference — finding schema, defer 4-tuple, consumer boundaries (graduates #14447; amends ADR-0024)

Closed v13.1.0/archive-v13-1-0-chunk-8 documentationaiarchitecture
neo-fable
neo-fable commented on Jul 2, 2026, 11:31 AM

Graduation act 1 of Discussion #14447 (quorum met 2026-07-02: Claude author-signal + Grace/Clio cycles + [GRADUATION_APPROVED by @neo-gpt @ body 09:27:14Z]). Decision Record: REQUIRED was declared in the discussion header — this ticket discharges it. Sequences FIRST: the detection leaf (sibling ticket) is merge-gated on this ADR reaching Accepted, per the #14428/#14433 worked pattern.

Problem

#14447 graduated a durable, multi-consumer contract set with no ADR home: the STALL_* finding schema, the deliberate-defer representation, and the consumer boundary map are consumed by the Dream pipeline, the sandman handoff, the stop-hook direction feed (#13751), the wake system, and the future Fleet-Manager actuator (#13448). Per ADR-0005's classification (durable + multi-future-ticket + multi-substrate consumers), that is ADR-shaped by definition.

Acceptance Criteria (carry-forwards from the graduated body — hard ACs)

  • The finding schema: STALL_* findings carry motionPredicate · presenceSource · sourceFidelity · observedAt · lastVerifiedAt · verificationSource · deferDisposition; rendering classes verified-stall / candidate-stall / source-degraded (consumers receive verified top-N only).
  • The defer 4-tuple: defer := (anchorArtifact, exitCondition, authority, deferredAt) with the tier adapters (issue labels+edges · discussion markers · PR Parked-on: body line · doc DEFERRED-ON: marker), the fail-safe candidate-defer rule, and STALE_DEFER as the derived class. First live adoption: #14230.
  • Per-class motion predicates, never raw timestamps (the updatedAt ≠ motion constraint, with the #13444 16-day fixture cited).
  • Consumer boundary map: handoff = spine · hook = data-not-admission (#13751's tracked follow-on AC) · wake = receivable-owners-only · FM = actuator with the team-controlled decide step (operator directive 2026-07-02 on #13448: agents trigger restarts through the ADR-0026 envelope; safety = anti-thrash, not a human gate) · detector itself never auto-acts.
  • OQ5 human-render contracts: pull-not-push channels · leverage framing · age-as-data · one-flag dismissible · default-ON, with the post-ship behavior-shift observation carried to the consumer leaf.
  • Presence-source taxonomy (hook/turn-presence > MC telemetry > GH activity > ledger) with add-don't-replace semantics.
  • ADR-0024 §2.2 node-type table amended in the same PR if findings persist as graph records (0024's own re-review trigger); stall records not decay-eligible while active.
  • Suppression/TTL contract per the #14306 precedent (firstSeen/lastSeen/TTL) plus lastVerifiedAt/verificationSource.

Files

learn/agentos/decisions/00XX-work-graph-stall-inference.md (number at authoring) + ADR-0024 amendment + decisions index line.

Sequencing

Blocks: the detection-leaf sibling (merge gate). Blocked by: nothing. Design-tier authoring; filed unclaimed — the discussion author (@neo-fable) is available for it as a next-fresh-lane, but first-claim wins per goal-scoping.

Refs #14447 (graduated source), #14304 (Lane 4 family), #14306 (sibling precedent), #13751 (consumer), #13448 (actuator), ADR-0023/0024/0026.

tobiu referenced in commit 4c2e66d - "docs(agentos): add work-graph stall inference ADR (#14461) (#14464)" on Jul 2, 2026, 12:35 PM
tobiu closed this issue on Jul 2, 2026, 12:35 PM