[
  {
    "idx": 1,
    "req_a": "REQ-ACL-DISCOVER-GATE",
    "req_b": "REQ-ACL-SURFACE-VOCAB",
    "title_a": "DISCOVER is a real gated surface: registry resolve/advertise and the resources blurb are filtered pe",
    "title_b": "Access control is granular at the CONTROL SURFACE, not at the endpoint. A rule is (target endpoint x",
    "concepts_a": [
      "access_control",
      "daemon",
      "endpoint",
      "surface_vocab"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "messaging",
      "shell",
      "surface_vocab"
    ],
    "shared_concepts": [
      "access_control",
      "daemon",
      "endpoint",
      "surface_vocab"
    ]
  },
  {
    "idx": 2,
    "req_a": "REQ-ACL-NODE-MODE-SET",
    "req_b": "REQ-ER-CEREMONY-VERB",
    "title_a": "The node's control-surface modes are settable through the engine room and nowhere else (ADR-0052 dec",
    "title_b": "The engine-room ceremony is invocable: `spt endpoint engine-room <subnet> --adapter <id>` runs the o",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "engine_room",
      "surface_vocab"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "engine_room",
      "install",
      "surface_vocab"
    ],
    "shared_concepts": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "engine_room",
      "surface_vocab"
    ]
  },
  {
    "idx": 3,
    "req_a": "REQ-ACL-SUBJECT-CHAIN",
    "req_b": "REQ-HAZARD-WAN-ORIGIN-AUTH",
    "title_a": "One FIRST-MATCH-WINS subject chain decides every access question, with an implicit-open bottom that ",
    "title_b": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-nod",
    "concepts_a": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety",
      "messaging",
      "shell",
      "surface_vocab"
    ],
    "concepts_b": [
      "access_control",
      "endpoint",
      "hazard/safety",
      "psyche",
      "surface_vocab"
    ],
    "shared_concepts": [
      "access_control",
      "endpoint",
      "hazard/safety",
      "surface_vocab"
    ]
  },
  {
    "idx": 4,
    "req_a": "REQ-ADAPTER-ADD-SURFACE-ERRORS",
    "req_b": "REQ-EP-9",
    "title_a": "Bug #1: adapter add runs the install-as-first-update via conduct (cli.rs:6963) which on a non-zero e",
    "title_b": "`#` always-on address sigil: a reserved LEADING sigil marking an AlwaysOnEndpoint, extending the REQ",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "install",
      "messaging",
      "surface_vocab",
      "update"
    ],
    "concepts_b": [
      "endpoint",
      "hazard/safety"
    ],
    "shared_concepts": []
  },
  {
    "idx": 5,
    "req_a": "REQ-ADAPTER-GH-TRANSPORT",
    "req_b": "REQ-HAZARD-ADAPTER-APPLY-SILENT-NOOP",
    "title_a": "The `gh_release` avenue (and `spt adapter add --release`) gain a fetch `transport`: `https` (current",
    "title_b": "A DELEGATED live adapter apply MUST NEVER report success without performing the swap, and the live-u",
    "concepts_a": [
      "adapter",
      "install",
      "shell",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "update"
    ],
    "shared_concepts": [
      "adapter",
      "update"
    ]
  },
  {
    "idx": 6,
    "req_a": "REQ-ADAPTER-LIVE-UPDATE",
    "req_b": "REQ-RUN-SHORTCUT",
    "title_a": "An adapter update is live and daemon-coordinated (the adapter analog of brain self-update, ADR-0004)",
    "title_b": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "messaging",
      "psyche",
      "update"
    ],
    "concepts_b": [
      "adapter",
      "endpoint",
      "install",
      "shell",
      "ui_picker",
      "update"
    ],
    "shared_concepts": [
      "adapter",
      "endpoint",
      "update"
    ]
  },
  {
    "idx": 7,
    "req_a": "REQ-ADAPTER-PROOF-DIR-OVERRIDE",
    "req_b": "REQ-MANIFEST-7",
    "title_a": "The author-time proof commands (`spt adapter digest-proof`, `spt adapter translate-proof`) gain a `-",
    "title_b": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` man",
    "concepts_a": [
      "adapter",
      "install"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "endpoint",
      "ui_picker"
    ],
    "shared_concepts": [
      "adapter"
    ]
  },
  {
    "idx": 8,
    "req_a": "REQ-ADAPTER-UNRESOLVED-HINT-FORM",
    "req_b": "REQ-RUN-ID-REUSES-ADAPTER",
    "title_a": "F-034 leg a (perri/hertz field finding 2026-07-09): the ADAPTER_UNRESOLVED refusal hint must print a",
    "title_b": "D-1 (REMOTE-TRUTH triage \u00a7D-1): `spt endpoint run --id <id>` with NO --adapter, when <id> names an E",
    "concepts_a": [
      "access_control",
      "adapter",
      "messaging"
    ],
    "concepts_b": [
      "adapter",
      "endpoint",
      "ui_picker"
    ],
    "shared_concepts": [
      "adapter"
    ]
  },
  {
    "idx": 9,
    "req_a": "REQ-ADAPTER-UPDATE-INPLACE",
    "req_b": "REQ-SEAM-UPDATE",
    "title_a": "Bug #18: spt adapter update fails at re-register with os error 2 because it derives the install dir ",
    "title_b": "Adapter-update avenue (file-pull / delegated command)",
    "concepts_a": [
      "adapter",
      "install",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "update"
    ],
    "shared_concepts": [
      "adapter",
      "update"
    ]
  },
  {
    "idx": 10,
    "req_a": "REQ-ADAPTER-UPDATE-MESSAGE",
    "req_b": "REQ-INSTALL-9",
    "title_a": "An adapter manifest may declare `[update].message` \u2014 a plain (multi-line) human notice surfaced to s",
    "title_b": "Adapter add from a GitHub release archive: `spt adapter add --release <user/repo> [--tag <tag>] [--a",
    "concepts_a": [
      "access_control",
      "adapter",
      "install",
      "messaging",
      "surface_vocab",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "shell",
      "update"
    ],
    "shared_concepts": [
      "access_control",
      "adapter",
      "update"
    ]
  },
  {
    "idx": 11,
    "req_a": "REQ-ADAPTER-UPDATE-POST",
    "req_b": "REQ-UPDATE-RESTART-SAFE-SWAP",
    "title_a": "Composite adapter update \u2014 an avenue-agnostic `[update.post]` sub-table `{ command, self_verifies }`",
    "title_b": "THE-FORKENING W4 (operator-grilled 2026-07-14; RETIRES findings-backlog seed #12 REQ-UPDATE-ONE-STEP",
    "concepts_a": [
      "access_control",
      "adapter",
      "messaging",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "messaging",
      "update"
    ],
    "shared_concepts": [
      "access_control",
      "adapter",
      "messaging",
      "update"
    ]
  },
  {
    "idx": 12,
    "req_a": "REQ-API-4",
    "req_b": "REQ-INSTALL-11",
    "title_a": "api resolves the adapter manifest (+ profile + install dir) from `--adapter name:profile` via the re",
    "title_b": "Adapter command templates resolve their program against the adapter's install dir BEFORE PATH: a `.s",
    "concepts_a": [
      "adapter",
      "install",
      "psyche"
    ],
    "concepts_b": [
      "adapter",
      "install"
    ],
    "shared_concepts": [
      "adapter",
      "install"
    ]
  },
  {
    "idx": 13,
    "req_a": "REQ-ATTACH-RESIZE-REPAINT",
    "req_b": "REQ-RC-IDMARKER-DISABLE",
    "title_a": "RESCOPED 2026-07-22 by ADR-0047 Amendment 2 (doyle-ratified): this REQ no longer asserts a defect. I",
    "title_b": "Bugs #14 + #7/#8 (marker half): feature-flag the top-right StatusRow endpoint-id marker OFF (rc.rs:1",
    "concepts_a": [
      "access_control",
      "hazard/safety"
    ],
    "concepts_b": [
      "endpoint"
    ],
    "shared_concepts": []
  },
  {
    "idx": 14,
    "req_a": "REQ-BIND-HONEST-SELF-STAMP",
    "req_b": "REQ-NODE-IDENTITY",
    "title_a": "C2-ROOT (F028, doyle RCA 2026-07-03): the identity-attribution ROOT behind REQ-SESSIONS-LOG-ENDPOINT",
    "title_b": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
    "concepts_a": [
      "adapter",
      "endpoint",
      "messaging",
      "psyche"
    ],
    "concepts_b": [],
    "shared_concepts": []
  },
  {
    "idx": 15,
    "req_a": "REQ-BIND-PSYCHE-CUSTODY-SQUAT-GUARD",
    "req_b": "REQ-PSYCHE-ACCOUNT-REFUSAL-EXIT",
    "title_a": "MSG-IDENTITY W1 / F-036 leg c (perri field RCA, doyle ACCEPTED defense-in-depth): a bind whose --set",
    "title_b": "RESERVED EXIT 96 \u2014 account/credential refusal from a psyche_resume turn: the inner tool refused for ",
    "concepts_a": [
      "access_control",
      "endpoint",
      "messaging",
      "psyche"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "psyche",
      "surface_vocab"
    ],
    "shared_concepts": [
      "access_control",
      "endpoint",
      "psyche"
    ]
  },
  {
    "idx": 16,
    "req_a": "REQ-BRAIN-RESUME-NO-CONN-DEADLOCK",
    "req_b": "REQ-RESUME-ADAPTER-FOLLOWS-SESSION",
    "title_a": "UPDATE-WEDGE round 3 (v0.30.5, doyle-ruled Option A 2026-07-09 \u2014 the v0.30.4 field-verify re-wedge, ",
    "title_b": "D-2 (REMOTE-TRUTH triage \u00a7D-2 + operator Q5 @c248afc): a resume-from-history restores the RECORDED s",
    "concepts_a": [
      "adapter",
      "daemon",
      "hazard/safety",
      "messaging",
      "shell",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "endpoint",
      "hazard/safety",
      "ui_picker"
    ],
    "shared_concepts": [
      "adapter",
      "hazard/safety"
    ]
  },
  {
    "idx": 17,
    "req_a": "REQ-BRAIN-RESUME-NO-CONTROL-STEAL",
    "req_b": "REQ-RESUME-ADAPTER-FOLLOWS-SESSION",
    "title_a": "UPDATE-WEDGE round 2 (v0.30.4, doyle-ruled 2026-07-09 \u2014 field incident on the counter-54 fetch--appl",
    "title_b": "D-2 (REMOTE-TRUTH triage \u00a7D-2 + operator Q5 @c248afc): a resume-from-history restores the RECORDED s",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "endpoint",
      "hazard/safety",
      "ui_picker"
    ],
    "shared_concepts": [
      "access_control",
      "adapter",
      "endpoint",
      "hazard/safety"
    ]
  },
  {
    "idx": 18,
    "req_a": "REQ-BROKER-ATTACH-JOURNAL-RESILIENT",
    "req_b": "REQ-CRC-SWAP-OLD-DISPLACE",
    "title_a": "A poisoned EffectJournal mutex or a sick NetHost runtime must NOT permanently brick all future attac",
    "title_b": "C1 (F028, infra; memory crc-swap-old-litter-brick, RCA'd ENLYZEAM + confirmed systemic): crc_swap `.",
    "concepts_a": [
      "endpoint",
      "hazard/safety",
      "update"
    ],
    "concepts_b": [
      "adapter",
      "daemon",
      "endpoint",
      "update"
    ],
    "shared_concepts": [
      "endpoint",
      "update"
    ]
  },
  {
    "idx": 19,
    "req_a": "REQ-BROKER-SCREEN-GRID",
    "req_b": "REQ-HAZARD-RENDER-LIFECYCLE",
    "title_a": "Bugs #6 + #12 + #7/#8-artifacts: the broker is a raw-byte pump with no screen model \u2014 OutputLog repl",
    "title_b": "RC-RENDER-TRUTH W3 (KNOWN-HAZARDS 7.47 \u2014 umbrella conformance seam for ADR-0043): the physical termi",
    "concepts_a": [
      "endpoint",
      "shell"
    ],
    "concepts_b": [
      "access_control",
      "hazard/safety",
      "shell"
    ],
    "shared_concepts": [
      "shell"
    ]
  },
  {
    "idx": 20,
    "req_a": "REQ-CI-POSTJOB-DAEMON-REAP",
    "req_b": "REQ-UPDATE-GH-TRANSPORT",
    "title_a": "A CI job REAPS ITS OWN test-spawned daemons at battery end, in-job, and logs a process census at job",
    "title_b": "THE-FORKENING W1 (ADR-0036, operator-ruled 2026-07-14): the release channel is PRIVATE (`BigscreenVR",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "install",
      "notification",
      "shell"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "install",
      "notification",
      "update"
    ],
    "shared_concepts": [
      "access_control",
      "daemon",
      "install",
      "notification"
    ]
  },
  {
    "idx": 21,
    "req_a": "REQ-CLI-2",
    "req_b": "REQ-ENDPOINT-LIST-REST-FILTER",
    "title_a": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown kee",
    "title_b": "spt endpoint list hides SUSPENDED instances by default; a new --show-all flag reveals them. Status-f",
    "concepts_a": [
      "daemon",
      "endpoint"
    ],
    "concepts_b": [
      "endpoint",
      "hazard/safety"
    ],
    "shared_concepts": [
      "endpoint"
    ]
  },
  {
    "idx": 22,
    "req_a": "REQ-CLI-4",
    "req_b": "REQ-INSTALL-10",
    "title_a": "User-facing CLI output is human-readable: DIRECT-USER commands (e.g. adapter update/list/use) render",
    "title_b": "Windows at-logon autostart runs the daemon in the background with no persistent window: the schedule",
    "concepts_a": [
      "adapter",
      "install",
      "surface_vocab",
      "update"
    ],
    "concepts_b": [
      "daemon"
    ],
    "shared_concepts": []
  },
  {
    "idx": 23,
    "req_a": "REQ-CLI-JSON",
    "req_b": "REQ-HAZARD-ADAPTER-APPLY-SILENT-NOOP",
    "title_a": "A global `--json` flag (clap global=true) honored by the READ/STATUS command set: endpoint list/whoa",
    "title_b": "A DELEGATED live adapter apply MUST NEVER report success without performing the swap, and the live-u",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "notification",
      "shell",
      "surface_vocab"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "update"
    ],
    "shared_concepts": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint"
    ]
  },
  {
    "idx": 24,
    "req_a": "REQ-CONN-POISON-ATTRIBUTION",
    "req_b": "REQ-DAEMON-SERVICE-INSTALL",
    "title_a": "MSG-IDENTITY W6 / F-039 legs b-d (doyle W6 LOCK 2026-07-10, minted per amendment 3): every broker-co",
    "title_b": "F-038 RIDER (flynn nice-to-have, QUEUED not activated): a documented OS-service registration recipe ",
    "concepts_a": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety",
      "messaging",
      "shell"
    ],
    "concepts_b": [
      "daemon",
      "endpoint",
      "install",
      "messaging"
    ],
    "shared_concepts": [
      "daemon",
      "endpoint",
      "messaging"
    ]
  },
  {
    "idx": 25,
    "req_a": "REQ-CONSENT-1",
    "req_b": "REQ-UPD-7",
    "title_a": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, sub",
    "title_b": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from th",
    "concepts_a": [
      "access_control",
      "shell",
      "surface_vocab"
    ],
    "concepts_b": [
      "access_control",
      "notification",
      "update"
    ],
    "shared_concepts": [
      "access_control"
    ]
  },
  {
    "idx": 26,
    "req_a": "REQ-CONTROLLER-LEASE-IDENTITY",
    "req_b": "REQ-HAZARD-REDISPATCH-CONTROL-STEAL",
    "title_a": "RC-RENDER-TRUTH W2 (ADR-0044 decisions 1+2, hertz same-machine --take split-brain RCA P0-A/B, doyle ",
    "title_b": "REDISPATCH-TRUTH W1 (KNOWN-HAZARDS 7.41, hertz field RCA 2026-07-16 \u2014 4/5 endpoints frozen per brain",
    "concepts_a": [
      "access_control",
      "install",
      "notification",
      "shell"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety",
      "shell",
      "update"
    ],
    "shared_concepts": [
      "access_control",
      "shell"
    ]
  },
  {
    "idx": 27,
    "req_a": "REQ-CREATE-BIND-REST-ACTIVE",
    "req_b": "REQ-RUN-NO-DUP-SESSION",
    "title_a": "A successful fresh `endpoint run --create` bind MUST normalize rest intent to active IN THE SAME lif",
    "title_b": "B1 (F028, hall-b diagnosis, verified 0.22.0): `endpoint run --id X --create` on an endpoint with a L",
    "concepts_a": [
      "endpoint",
      "shell",
      "surface_vocab"
    ],
    "concepts_b": [
      "adapter",
      "endpoint",
      "hazard/safety",
      "ui_picker"
    ],
    "shared_concepts": [
      "endpoint"
    ]
  },
  {
    "idx": 28,
    "req_a": "REQ-DAEMON-5",
    "req_b": "REQ-HAZARD-ADAPTER-APPLY-SILENT-NOOP",
    "title_a": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status ",
    "title_b": "A DELEGATED live adapter apply MUST NEVER report success without performing the swap, and the live-u",
    "concepts_a": [
      "daemon"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "update"
    ],
    "shared_concepts": [
      "daemon"
    ]
  },
  {
    "idx": 29,
    "req_a": "REQ-DAEMON-6",
    "req_b": "REQ-HAZARD-CONTROLLER-GAP-RESUME",
    "title_a": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this",
    "title_b": "A serving CONTROLLER whose serve-brain hits a b4 drop-don't-block FORWARD output gap must RESUME-FRO",
    "concepts_a": [
      "daemon"
    ],
    "concepts_b": [
      "access_control",
      "hazard/safety",
      "surface_vocab"
    ],
    "shared_concepts": []
  },
  {
    "idx": 30,
    "req_a": "REQ-DAEMON-9",
    "req_b": "REQ-HAZARD-DAEMON-STOP-REAP",
    "title_a": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed \u2014 e.g. the sys",
    "title_b": "Breap: `spt daemon stop` REAPS the spt-hosted children it spawned \u2014 no orphaned psyche/harness proce",
    "concepts_a": [
      "access_control",
      "daemon",
      "hazard/safety",
      "install",
      "surface_vocab"
    ],
    "concepts_b": [
      "daemon",
      "psyche"
    ],
    "shared_concepts": [
      "daemon"
    ]
  },
  {
    "idx": 31,
    "req_a": "REQ-DAEMON-BITS-AMBIGUITY",
    "req_b": "REQ-HAZARD-TRANSLATE-FAULT-PERMANENT-DEATH",
    "title_a": "SEED (inactive, RCA-first \u2014 do NOT close on agreement): nothing on a node surfaces WHICH BITS ARE SE",
    "title_b": "C-1 hazard (F029; paid-for: B6 + three-version checkpoint-wake breakage): a REAL translation fault (",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "install",
      "shell",
      "surface_vocab",
      "update"
    ],
    "concepts_b": [
      "daemon",
      "endpoint",
      "hazard/safety",
      "surface_vocab"
    ],
    "shared_concepts": [
      "daemon",
      "endpoint",
      "hazard/safety",
      "surface_vocab"
    ]
  },
  {
    "idx": 32,
    "req_a": "REQ-DAEMON-RESTART-SELF-INTERRUPTION",
    "req_b": "REQ-HAZARD-DAEMON-STOP-REAP",
    "title_a": "SEED (inactive \u2014 operator-workflow trap, field-paid 2026-07-25): an spt-hosted context CANNOT restar",
    "title_b": "Breap: `spt daemon stop` REAPS the spt-hosted children it spawned \u2014 no orphaned psyche/harness proce",
    "concepts_a": [
      "access_control",
      "daemon",
      "hazard/safety",
      "install",
      "shell",
      "surface_vocab",
      "update"
    ],
    "concepts_b": [
      "daemon",
      "psyche"
    ],
    "shared_concepts": [
      "daemon"
    ]
  },
  {
    "idx": 33,
    "req_a": "REQ-DAEMON-STATUS-JSON-TRUTH",
    "req_b": "REQ-RC-VT-TEARDOWN",
    "title_a": "D2 (F028, perri F-d): `daemon status --json` truth drift. managed_by/managed_active read null in JSO",
    "title_b": "RC-RENDER-TRUTH W3 (ADR-0043 decision 2, hertz stale-glyphs RCA leg 2 P0): rc display teardown is a ",
    "concepts_a": [
      "daemon",
      "surface_vocab"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "shell"
    ],
    "shared_concepts": [
      "daemon"
    ]
  },
  {
    "idx": 34,
    "req_a": "REQ-DIGEST-FETCHER-STRATEGY",
    "req_b": "REQ-PSYCHE-ROLE-OPTIONAL-SKIP",
    "title_a": "Bug #17 (W6b, closes eel-a end-to-end): [digest] gains a `fetcher` strategy mirroring [history]'s lo",
    "title_b": "W1 (LIFECYCLE-TRUTH): a manifest with NO [session.echo_commune] role SKIPS commune-sync (debug-level",
    "concepts_a": [
      "adapter"
    ],
    "concepts_b": [],
    "shared_concepts": []
  },
  {
    "idx": 35,
    "req_a": "REQ-DISPATCH-CLAIM-RETRY",
    "req_b": "REQ-STREAM-OPENER-DURABLE",
    "title_a": "REDISPATCH-TRUTH W1 (ADR-0038, hertz fix C): dispatcher claims are RETRYABLE and outcomes are CLASSI",
    "title_b": "REDISPATCH-TRUTH W1 (ADR-0038, hertz fix B): stream classification identity is RESTART-DURABLE and i",
    "concepts_a": [
      "access_control",
      "install",
      "shell"
    ],
    "concepts_b": [
      "access_control",
      "hazard/safety"
    ],
    "shared_concepts": [
      "access_control"
    ]
  },
  {
    "idx": 36,
    "req_a": "REQ-DOCS-3",
    "req_b": "REQ-HAZARD-DEFERRED-MANIFEST",
    "title_a": "Di\u00e1taxis structure; one canonical way to do X",
    "title_b": "A pointer-mode (delegated / GhReleaseManaged) adapter whose binary/manifest is not yet extracted is ",
    "concepts_a": [],
    "concepts_b": [
      "access_control",
      "adapter",
      "install",
      "surface_vocab"
    ],
    "shared_concepts": []
  },
  {
    "idx": 37,
    "req_a": "REQ-DRIVEN-BY-OWN-NODE-NORMALIZE",
    "req_b": "REQ-HAZARD-CONTROL-STAMP-CONVERGENCE",
    "title_a": "RC-RENDER-TRUTH v0.38.1 fast-follow leg 1 \u2014 RESHAPED by operator/hertz correction + CONTEXT.md:382-3",
    "title_b": "Control/viewer stamps must CONVERGE to broker session-table truth for every session-backed endpoint,",
    "concepts_a": [
      "access_control",
      "endpoint",
      "surface_vocab",
      "ui_picker"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "ui_picker"
    ],
    "shared_concepts": [
      "access_control",
      "endpoint",
      "ui_picker"
    ]
  },
  {
    "idx": 38,
    "req_a": "REQ-ECHO-DROP-DIR-RESOLVE",
    "req_b": "REQ-SESSION-ADAPTER-RECORDED",
    "title_a": "W1 (LIFECYCLE-TRUTH): fire_echo resolves the manifest commune_dir through the SAME resolver its sibl",
    "title_b": "D-2 (REMOTE-TRUTH triage \u00a7D-2 + operator Q5 @c248afc): the session ledger records the adapter[:profi",
    "concepts_a": [
      "daemon",
      "endpoint",
      "psyche"
    ],
    "concepts_b": [
      "adapter",
      "endpoint",
      "messaging",
      "psyche",
      "shell"
    ],
    "shared_concepts": [
      "endpoint",
      "psyche"
    ]
  },
  {
    "idx": 39,
    "req_a": "REQ-ENDPOINT-AUTOSTART",
    "req_b": "REQ-HAZARD-SHELL-STALE-ONLINE",
    "title_a": "MSG-IDENTITY W5 / F-038 (flynn operator-directed ask 2026-07-10, SPT-CORE-NEEDS #7 + deployah field-",
    "title_b": "A shell instance's ONLINE-ness is DERIVED (recorded status AND its recorded `shell.pid` not provably",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "messaging",
      "surface_vocab"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "engine_room",
      "hazard/safety",
      "install",
      "shell",
      "surface_vocab",
      "update"
    ],
    "shared_concepts": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "surface_vocab"
    ]
  },
  {
    "idx": 40,
    "req_a": "REQ-ENDPOINT-CYCLE-HONEST",
    "req_b": "REQ-SPAWN-COLLISION-GUARD-LIVE-DUP",
    "title_a": "REGISTRY-LIFECYCLE W3 (ADR-0041 decision 6, operator deployah stop/run wedge): cycle verbs share ONE",
    "title_b": "W4 (LIFECYCLE-TRUTH): single-flight wake per endpoint \u2014 the WAKE/RESUME respawn seam must not launch",
    "concepts_a": [
      "access_control",
      "endpoint"
    ],
    "concepts_b": [
      "daemon",
      "endpoint"
    ],
    "shared_concepts": [
      "endpoint"
    ]
  },
  {
    "idx": 41,
    "req_a": "REQ-ENDPOINT-LIST-PALETTE",
    "req_b": "REQ-ENDPOINT-LIST-PROJECT-COL",
    "title_a": "Bugs #11 + #15 (display): spt endpoint list renders status as plain text while the picker turns the ",
    "title_b": "#8: spt endpoint list gains a second column <project>/ (the endpoint's LATEST project) -> 4 columns ",
    "concepts_a": [
      "endpoint",
      "ui_picker"
    ],
    "concepts_b": [
      "adapter",
      "endpoint",
      "ui_picker"
    ],
    "shared_concepts": [
      "endpoint",
      "ui_picker"
    ]
  },
  {
    "idx": 42,
    "req_a": "REQ-ENDPOINT-LIST-PALETTE",
    "req_b": "REQ-TRANSLATE-BINARY-LIVENESS-DECAY",
    "title_a": "Bugs #11 + #15 (display): spt endpoint list renders status as plain text while the picker turns the ",
    "title_b": "SUPERSEDED by REQ-TRANSLATE-COMMIT-MISS-TOLERANCE (F029 C-1). B6 (F028, perri F-e) was ROOT-PINNED a",
    "concepts_a": [
      "endpoint",
      "ui_picker"
    ],
    "concepts_b": [
      "hazard/safety"
    ],
    "shared_concepts": []
  },
  {
    "idx": 43,
    "req_a": "REQ-ENDPOINT-LIST-RENDER-POLISH",
    "req_b": "REQ-PICKER-3",
    "title_a": "A6 (F028, operator, 4 asks): `spt endpoint list` render polish. (a) the 'Shared subnets' line is NOT",
    "title_b": "A self-owned subnet row reconciles its status to the LIVE roster: a Subnet-category row whose endpoi",
    "concepts_a": [
      "endpoint",
      "ui_picker"
    ],
    "concepts_b": [
      "endpoint"
    ],
    "shared_concepts": [
      "endpoint"
    ]
  },
  {
    "idx": 44,
    "req_a": "REQ-ENDPOINT-MESSAGE-ONLY-DISPLAY",
    "req_b": "REQ-INST-11",
    "title_a": "An online agent-family endpoint with NO session surface reads as message-reachable, not as a harness",
    "title_b": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
    "concepts_a": [
      "access_control",
      "adapter",
      "endpoint",
      "messaging",
      "surface_vocab",
      "ui_picker"
    ],
    "concepts_b": [],
    "shared_concepts": []
  },
  {
    "idx": 45,
    "req_a": "REQ-ENDPOINT-ONLINE-TRUTH",
    "req_b": "REQ-PICKER-CONTROL-LINE-STATUS-GATE",
    "title_a": "REGISTRY-LIFECYCLE W2 (ADR-0041 decisions 1+2, emphasys C1 P0): ONLINE is earned, not declared \u2014 cmd",
    "title_b": "A2 (F028, operator #2): the picker confirm-panel 'controlled locally' line renders for OFFLINE endpo",
    "concepts_a": [
      "access_control",
      "endpoint",
      "psyche",
      "shell"
    ],
    "concepts_b": [
      "access_control",
      "endpoint",
      "ui_picker"
    ],
    "shared_concepts": [
      "access_control",
      "endpoint"
    ]
  },
  {
    "idx": 46,
    "req_a": "REQ-ENDPOINT-STOP-OFFLINE",
    "req_b": "REQ-PUMP-PEER-ISOLATION",
    "title_a": "H3: `spt endpoint stop <id>` marks the endpoint OFFLINE (alive=false), not merely de-readied. cmd_st",
    "title_b": "PUMP-TRUTH W2 (architectural, operator ruling 2026-07-08): one peer must NOT block or poison all oth",
    "concepts_a": [
      "daemon",
      "endpoint"
    ],
    "concepts_b": [
      "access_control",
      "hazard/safety"
    ],
    "shared_concepts": []
  },
  {
    "idx": 47,
    "req_a": "REQ-ENDPOINT-TEARDOWN-AUTHORITY",
    "req_b": "REQ-HAZARD-ENDPOINT-LIFECYCLE",
    "title_a": "TEARDOWN-AUTHORITY W1 (ADR-0045; two hertz field RCAs 2026-07-19, doyle code-verified + ruled): ONE ",
    "title_b": "REGISTRY-LIFECYCLE W2 (KNOWN-HAZARDS 7.45 \u2014 the umbrella conformance seam for ADR-0041): endpoint li",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "shell"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety"
    ],
    "shared_concepts": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety"
    ]
  },
  {
    "idx": 48,
    "req_a": "REQ-EP-1",
    "req_b": "REQ-ER-RESERVED-ENDPOINT",
    "title_a": "Day-one endpoint types; open type system",
    "title_b": "A node has exactly ONE engine-room endpoint, and 'exactly one' is STRUCTURAL rather than policed: th",
    "concepts_a": [
      "endpoint"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "endpoint",
      "engine_room",
      "surface_vocab"
    ],
    "shared_concepts": [
      "endpoint"
    ]
  },
  {
    "idx": 49,
    "req_a": "REQ-EP-7",
    "req_b": "REQ-RESUME-CONTEXT-PULL",
    "title_a": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-contex",
    "title_b": "Adapter-callable resume-context pull verb + not-yet-synthesized commune/signoff drop append (legacy-",
    "concepts_a": [
      "access_control",
      "endpoint",
      "messaging",
      "psyche"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "psyche"
    ],
    "shared_concepts": [
      "access_control",
      "endpoint",
      "psyche"
    ]
  },
  {
    "idx": 50,
    "req_a": "REQ-ER-BRINGUP-PROMPT",
    "req_b": "REQ-ER-RULESET-TABLE",
    "title_a": "Bare `spt rc engine-room` prompts interactively for the bring-up TOTP instead of attaching straight ",
    "title_b": "The engine room presents access rulesets as TABLES (ADR-0052 decision 3). The rendering is a require",
    "concepts_a": [
      "access_control",
      "daemon",
      "endpoint",
      "shell"
    ],
    "concepts_b": [
      "access_control",
      "endpoint",
      "messaging",
      "surface_vocab"
    ],
    "shared_concepts": [
      "access_control",
      "endpoint"
    ]
  },
  {
    "idx": 51,
    "req_a": "REQ-ER-CONTROLLER-BOUND-POSTURE",
    "req_b": "REQ-HAZARD-CONTROLLER-RETAKE-FLOOR",
    "title_a": "The engine room is empowered ONLY while a controller is attached, and losing that controller drops i",
    "title_b": "`become_controller` should STRUCTURALLY refuse a controller re-take whose `from_seq` falls below the",
    "concepts_a": [
      "access_control",
      "daemon",
      "engine_room",
      "hazard/safety"
    ],
    "concepts_b": [
      "access_control",
      "hazard/safety"
    ],
    "shared_concepts": [
      "access_control",
      "hazard/safety"
    ]
  },
  {
    "idx": 52,
    "req_a": "REQ-ER-RC-INTENT-LOCKS",
    "req_b": "REQ-HAZARD-INJECT-WORKER-POISON",
    "title_a": "The engine room's attach surface is locked by INTENT: rc --view is denied even same-node, remote att",
    "title_b": "The per-session inject-worker floor Mutex is SHARED by the inject worker (open/flush) and the contro",
    "concepts_a": [
      "access_control",
      "daemon",
      "surface_vocab"
    ],
    "concepts_b": [
      "hazard/safety"
    ],
    "shared_concepts": []
  },
  {
    "idx": 53,
    "req_a": "REQ-GOSSIP-CONTROLLED-ANY",
    "req_b": "REQ-PRESENCE-CONTROL-REAP-ON-EXIT",
    "title_a": "Bug #3: a locally-controlled endpoint gossips controller_node = None so remote viewers show it free ",
    "title_b": "B3 (F028, hall-b diagnosis + deferred #11 seed; BROADENED perri F-b CONFIRMED): dead-pid ONLINE deca",
    "concepts_a": [
      "endpoint",
      "hazard/safety"
    ],
    "concepts_b": [
      "daemon",
      "endpoint"
    ],
    "shared_concepts": [
      "endpoint"
    ]
  },
  {
    "idx": 54,
    "req_a": "REQ-HAZARD-ADAPTER-APPLY-SILENT-NOOP",
    "req_b": "REQ-RESUME-ADAPTER-FOLLOWS-SESSION",
    "title_a": "A DELEGATED live adapter apply MUST NEVER report success without performing the swap, and the live-u",
    "title_b": "D-2 (REMOTE-TRUTH triage \u00a7D-2 + operator Q5 @c248afc): a resume-from-history restores the RECORDED s",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "endpoint",
      "hazard/safety",
      "ui_picker"
    ],
    "shared_concepts": [
      "access_control",
      "adapter",
      "endpoint",
      "hazard/safety"
    ]
  },
  {
    "idx": 55,
    "req_a": "REQ-HAZARD-ATTACH-WEDGE",
    "req_b": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
    "title_a": "A legitimately dead PTY child (real crash/kill) + an undrained operator pump must NOT wedge the brok",
    "title_b": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a s",
    "concepts_a": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety"
    ],
    "concepts_b": [
      "surface_vocab"
    ],
    "shared_concepts": []
  },
  {
    "idx": 56,
    "req_a": "REQ-HAZARD-ATTACH-WEDGE",
    "req_b": "REQ-SPAWN-COLLISION-GUARD-LIVE-DUP",
    "title_a": "A legitimately dead PTY child (real crash/kill) + an undrained operator pump must NOT wedge the brok",
    "title_b": "W4 (LIFECYCLE-TRUTH): single-flight wake per endpoint \u2014 the WAKE/RESUME respawn seam must not launch",
    "concepts_a": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety"
    ],
    "concepts_b": [
      "daemon",
      "endpoint"
    ],
    "shared_concepts": [
      "daemon",
      "endpoint"
    ]
  },
  {
    "idx": 57,
    "req_a": "REQ-HAZARD-BIND-REST-STATE-CARRY",
    "req_b": "REQ-PRESENCE-CONTROL-REAP-ON-EXIT",
    "title_a": "GATEWAY-LIVENESS DEFECT A (flynn field bug 2026-07-09, confirmed independent): a re-bind MUST preser",
    "title_b": "B3 (F028, hall-b diagnosis + deferred #11 seed; BROADENED perri F-b CONFIRMED): dead-pid ONLINE deca",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "hazard/safety",
      "ui_picker"
    ],
    "concepts_b": [
      "daemon",
      "endpoint"
    ],
    "shared_concepts": [
      "daemon"
    ]
  },
  {
    "idx": 58,
    "req_a": "REQ-HAZARD-BOUNDARY-READY-STRAND",
    "req_b": "REQ-SPAWN-COLLISION-GUARD-LIVE-DUP",
    "title_a": "C-2 (F029, SEAM-2 pinned \u2014 B6's SECOND HALF, the live-wake blocker; perri wakep9 vs wakep4 gate-stat",
    "title_b": "W4 (LIFECYCLE-TRUTH): single-flight wake per endpoint \u2014 the WAKE/RESUME respawn seam must not launch",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "hazard/safety"
    ],
    "concepts_b": [
      "daemon",
      "endpoint"
    ],
    "shared_concepts": [
      "daemon"
    ]
  },
  {
    "idx": 59,
    "req_a": "REQ-HAZARD-BRAIN-RESTART-LIFECYCLE-REHYDRATE",
    "req_b": "REQ-PSYCHE-LEGACY-RESIDENT-SWEEP",
    "title_a": "B4 (deepest): a bare brain restart (broker survives) REHYDRATES the live-agent lifecycle so post-res",
    "title_b": "W5 (F030; doyle+perri 2026-07-04): a dirty daemon upgrade from <=v0.24.0 strands a RESIDENT psyche w",
    "concepts_a": [
      "adapter",
      "daemon",
      "endpoint",
      "psyche"
    ],
    "concepts_b": [
      "adapter",
      "daemon",
      "psyche",
      "update"
    ],
    "shared_concepts": [
      "adapter",
      "daemon",
      "psyche"
    ]
  },
  {
    "idx": 60,
    "req_a": "REQ-HAZARD-BRAIN-RESTART-PSYCHE-DUP",
    "req_b": "REQ-HAZARD-STOP-PATH-PSYCHE-ORPHAN-REAP",
    "title_a": "A bare brain restart leaves EXACTLY ONE `{id}-psyche` process per endpoint \u2014 no duplicate. On an abr",
    "title_b": "Endpoint-stop and brain-death reconcile MUST reap a brain-less perch's orphan detached Psyche via th",
    "concepts_a": [
      "adapter",
      "daemon",
      "endpoint",
      "psyche"
    ],
    "concepts_b": [
      "daemon",
      "endpoint",
      "hazard/safety",
      "install",
      "psyche",
      "shell",
      "surface_vocab",
      "update"
    ],
    "shared_concepts": [
      "daemon",
      "endpoint",
      "psyche"
    ]
  },
  {
    "idx": 61,
    "req_a": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
    "req_b": "REQ-HAZARD-RESTART-IDEMPOTENT",
    "title_a": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process t",
    "title_b": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
    "concepts_a": [
      "daemon",
      "endpoint",
      "hazard/safety",
      "update"
    ],
    "concepts_b": [],
    "shared_concepts": []
  },
  {
    "idx": 62,
    "req_a": "REQ-HAZARD-BROKER-SEED-WIRE-SKEW",
    "req_b": "REQ-RESUME-CONTEXT-PULL",
    "title_a": "A daemon-state wire-format change (e.g. the v0.9.0 adapter-agnostic Seed) does NOT take effect until",
    "title_b": "Adapter-callable resume-context pull verb + not-yet-synthesized commune/signoff drop append (legacy-",
    "concepts_a": [
      "adapter",
      "daemon",
      "hazard/safety",
      "surface_vocab",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "psyche"
    ],
    "shared_concepts": [
      "adapter",
      "daemon",
      "hazard/safety"
    ]
  },
  {
    "idx": 63,
    "req_a": "REQ-HAZARD-COMMUNE-INGEST-BLACKHOLE",
    "req_b": "REQ-HAZARD-INFO-RMW-LOST-UPDATE",
    "title_a": "F-032 (perri field finding 2026-07-08, LEGACY-SPT-PARITY-GAP, data-loss): commune/signoff ingest MUS",
    "title_b": "Concurrent info.json writers must serialize under the per-perch lock (5.16): an unlocked whole-recor",
    "concepts_a": [
      "access_control",
      "adapter",
      "endpoint",
      "hazard/safety",
      "surface_vocab"
    ],
    "concepts_b": [
      "daemon",
      "hazard/safety",
      "update"
    ],
    "shared_concepts": [
      "hazard/safety"
    ]
  },
  {
    "idx": 64,
    "req_a": "REQ-HAZARD-CONPTY-DSR",
    "req_b": "REQ-SHELL-4",
    "title_a": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
    "title_b": "Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, rel",
    "concepts_a": [],
    "concepts_b": [
      "access_control",
      "shell",
      "surface_vocab"
    ],
    "shared_concepts": []
  },
  {
    "idx": 65,
    "req_a": "REQ-HAZARD-CONTROL-STAMP-LIFETIME",
    "req_b": "REQ-HAZARD-REDISPATCH-CONTROL-STEAL",
    "title_a": "#2: a control/viewer stamp never outlives its session \u2014 every teardown path clears what attach stamp",
    "title_b": "REDISPATCH-TRUTH W1 (KNOWN-HAZARDS 7.41, hertz field RCA 2026-07-16 \u2014 4/5 endpoints frozen per brain",
    "concepts_a": [
      "endpoint",
      "hazard/safety",
      "ui_picker"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety",
      "shell",
      "update"
    ],
    "shared_concepts": [
      "endpoint",
      "hazard/safety"
    ]
  },
  {
    "idx": 66,
    "req_a": "REQ-HAZARD-CONTROLLER-IRRECOVERABLE-BEHIND",
    "req_b": "REQ-HAZARD-VIEWER-RING-ROLL-SNAP",
    "title_a": "DEFERRED EDGE of REQ-HAZARD-CONTROLLER-GAP-RESUME: when a serving controller falls behind the live r",
    "title_b": "A read-only rc --view VIEWER whose serving brain falls behind the live ring under a hard flood and r",
    "concepts_a": [
      "daemon",
      "hazard/safety",
      "surface_vocab"
    ],
    "concepts_b": [
      "endpoint",
      "ui_picker"
    ],
    "shared_concepts": []
  },
  {
    "idx": 67,
    "req_a": "REQ-HAZARD-CORRUPT-PERCH-COHERENCE",
    "req_b": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
    "title_a": "Corrupt (present-but-unparseable) info.json is NOT absent: liveness/status readers agree a destroyed",
    "title_b": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + inf",
    "concepts_a": [
      "daemon",
      "hazard/safety"
    ],
    "concepts_b": [
      "daemon",
      "endpoint",
      "psyche"
    ],
    "shared_concepts": [
      "daemon"
    ]
  },
  {
    "idx": 68,
    "req_a": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
    "req_b": "REQ-KICK-1",
    "title_a": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + inf",
    "title_b": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the in",
    "concepts_a": [
      "daemon",
      "endpoint",
      "psyche"
    ],
    "concepts_b": [
      "access_control",
      "endpoint",
      "surface_vocab",
      "ui_picker"
    ],
    "shared_concepts": [
      "endpoint"
    ]
  },
  {
    "idx": 69,
    "req_a": "REQ-HAZARD-DAEMON-IDENTITY-ENV-SANITIZE",
    "req_b": "REQ-OPID-MINTER-NAMESPACE",
    "title_a": "MSG-IDENTITY W1 / F-036 leg a (perri field RCA 2026-07-09/10, psyche seat-theft \u2014 doyle ACCEPTED pri",
    "title_b": "A-4a (REMOTE-TRUTH triage \u00a7A + ADR-0034 Decision 1 + Amendments 1 & 2): the broker effect journal's ",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "messaging",
      "psyche",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "endpoint",
      "notification",
      "psyche",
      "shell",
      "surface_vocab",
      "update"
    ],
    "shared_concepts": [
      "access_control",
      "daemon",
      "endpoint",
      "psyche",
      "update"
    ]
  },
  {
    "idx": 70,
    "req_a": "REQ-HAZARD-DAEMON-STOP-REAP",
    "req_b": "REQ-HAZARD-RESTART-IDEMPOTENT",
    "title_a": "Breap: `spt daemon stop` REAPS the spt-hosted children it spawned \u2014 no orphaned psyche/harness proce",
    "title_b": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
    "concepts_a": [
      "daemon",
      "psyche"
    ],
    "concepts_b": [],
    "shared_concepts": []
  },
  {
    "idx": 71,
    "req_a": "REQ-HAZARD-DEFERRED-MANIFEST",
    "req_b": "REQ-INSTALL-9",
    "title_a": "A pointer-mode (delegated / GhReleaseManaged) adapter whose binary/manifest is not yet extracted is ",
    "title_b": "Adapter add from a GitHub release archive: `spt adapter add --release <user/repo> [--tag <tag>] [--a",
    "concepts_a": [
      "access_control",
      "adapter",
      "install",
      "surface_vocab"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "shell",
      "update"
    ],
    "shared_concepts": [
      "access_control",
      "adapter"
    ]
  },
  {
    "idx": 72,
    "req_a": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
    "req_b": "REQ-RESIDENT-SERVICE",
    "title_a": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn o",
    "title_b": "ResidentService substrate (ADR-0049, design ratified 2026-07-26): a daemon-supervised binary an adap",
    "concepts_a": [
      "daemon",
      "hazard/safety",
      "shell"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "install",
      "shell",
      "surface_vocab",
      "update"
    ],
    "shared_concepts": [
      "daemon",
      "hazard/safety",
      "shell"
    ]
  },
  {
    "idx": 73,
    "req_a": "REQ-HAZARD-DRIVEN-BY-SELFHEAL",
    "req_b": "REQ-HAZARD-LIVEHOST-NONRESIDENT",
    "title_a": "An spt-hosted endpoint's ONLINE+CONTROLLED state (`driven_by`) must CLEAR even when the detach IPC i",
    "title_b": "A daemon-hosted Psyche that spawns then EXITS IMMEDIATELY is a host failure, surfaced like a spawn f",
    "concepts_a": [
      "endpoint",
      "hazard/safety"
    ],
    "concepts_b": [
      "daemon",
      "hazard/safety",
      "psyche",
      "surface_vocab"
    ],
    "shared_concepts": [
      "hazard/safety"
    ]
  },
  {
    "idx": 74,
    "req_a": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
    "req_b": "REQ-SEAM-CAPABILITY",
    "title_a": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
    "title_b": "Hostable endpoint-types capability declaration",
    "concepts_a": [],
    "concepts_b": [
      "endpoint"
    ],
    "shared_concepts": []
  },
  {
    "idx": 75,
    "req_a": "REQ-HAZARD-ENDPOINT-LIFECYCLE",
    "req_b": "REQ-HAZARD-STOP-PATH-PSYCHE-ORPHAN-REAP",
    "title_a": "REGISTRY-LIFECYCLE W2 (KNOWN-HAZARDS 7.45 \u2014 the umbrella conformance seam for ADR-0041): endpoint li",
    "title_b": "Endpoint-stop and brain-death reconcile MUST reap a brain-less perch's orphan detached Psyche via th",
    "concepts_a": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety"
    ],
    "concepts_b": [
      "daemon",
      "endpoint",
      "hazard/safety",
      "install",
      "psyche",
      "shell",
      "surface_vocab",
      "update"
    ],
    "shared_concepts": [
      "daemon",
      "endpoint",
      "hazard/safety"
    ]
  },
  {
    "idx": 76,
    "req_a": "REQ-HAZARD-ENDPOINT-RUN-ATTACH-OUTPUT",
    "req_b": "REQ-SESSION-ADAPTER-RECORDED",
    "title_a": "A clean `spt rc` attach to a LIVE spt-hosted (`endpoint run`) harness must DELIVER the harness's PTY",
    "title_b": "D-2 (REMOTE-TRUTH triage \u00a7D-2 + operator Q5 @c248afc): the session ledger records the adapter[:profi",
    "concepts_a": [
      "endpoint",
      "hazard/safety",
      "psyche"
    ],
    "concepts_b": [
      "adapter",
      "endpoint",
      "messaging",
      "psyche",
      "shell"
    ],
    "shared_concepts": [
      "endpoint",
      "psyche"
    ]
  },
  {
    "idx": 77,
    "req_a": "REQ-HAZARD-GEN-START-NOW",
    "req_b": "REQ-LISTEN-SESSION-ID-FALLBACK",
    "title_a": "gen_start = now() on cold-start and handoff (2.4)",
    "title_b": "F-034 leg c (perri/hertz field finding 2026-07-09): a session that goes live LATE (hours after Sessi",
    "concepts_a": [],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "psyche"
    ],
    "shared_concepts": []
  },
  {
    "idx": 78,
    "req_a": "REQ-HAZARD-HOSTED-LIVENESS-RECONCILE",
    "req_b": "REQ-SPAWN-COLLISION-GUARD-LIVE-DUP",
    "title_a": "B2 KEYSTONE: a daemon-hosted (spt-hosted) endpoint's info.json status is RECONCILED to real liveness",
    "title_b": "W4 (LIFECYCLE-TRUTH): single-flight wake per endpoint \u2014 the WAKE/RESUME respawn seam must not launch",
    "concepts_a": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety",
      "psyche"
    ],
    "concepts_b": [
      "daemon",
      "endpoint"
    ],
    "shared_concepts": [
      "daemon",
      "endpoint"
    ]
  },
  {
    "idx": 79,
    "req_a": "REQ-HAZARD-INFO-JSON-TORN-READ",
    "req_b": "REQ-MANIFEST-4",
    "title_a": "State-file reads tolerate concurrent writes (1.2)",
    "title_b": "Keyword hints \u2014 [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one",
    "concepts_a": [],
    "concepts_b": [
      "adapter",
      "daemon",
      "messaging"
    ],
    "shared_concepts": []
  },
  {
    "idx": 80,
    "req_a": "REQ-HAZARD-INJECT-SETTLE-REARM",
    "req_b": "REQ-HAZARD-REGISTRY-CONCURRENT",
    "title_a": "post-0.29.0 (KNOWN-HAZARDS 7.37): the Layer-1 settle-gate must RE-ARM before every delivery on an OB",
    "title_b": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
    "concepts_a": [
      "access_control",
      "hazard/safety",
      "shell"
    ],
    "concepts_b": [
      "endpoint",
      "messaging",
      "surface_vocab"
    ],
    "shared_concepts": []
  },
  {
    "idx": 81,
    "req_a": "REQ-HAZARD-LISTEN-ORPHAN",
    "req_b": "REQ-MSG-INJECT-LEG-DROP-VISIBLE",
    "title_a": "W4 (LIFECYCLE-TRUTH, KNOWN-HAZARDS): `api listen --parent-pid N` watches parent liveness and exits l",
    "title_b": "SEED (inactive \u2014 observability): a silently-dropped delivery leg must be DISTINGUISHABLE from an hon",
    "concepts_a": [
      "hazard/safety"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety",
      "messaging",
      "shell",
      "surface_vocab"
    ],
    "shared_concepts": [
      "hazard/safety"
    ]
  },
  {
    "idx": 82,
    "req_a": "REQ-HAZARD-LIVEHOST-BOOT-RACE",
    "req_b": "REQ-HAZARD-RESTART-IDEMPOTENT",
    "title_a": "The brain's daemon-hosted Psyche lifecycle surfaces a host-FAILURE on the live perch (harness-diagno",
    "title_b": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
    "concepts_a": [
      "adapter",
      "daemon",
      "endpoint",
      "install",
      "psyche",
      "surface_vocab"
    ],
    "concepts_b": [],
    "shared_concepts": []
  },
  {
    "idx": 83,
    "req_a": "REQ-HAZARD-LIVEHOST-NONRESIDENT",
    "req_b": "REQ-SPOOL-TAKE-AUDIT",
    "title_a": "A daemon-hosted Psyche that spawns then EXITS IMMEDIATELY is a host failure, surfaced like a spawn f",
    "title_b": "W5 (LIFECYCLE-TRUTH, RCA cost: proving WHO took delivered=1 rows burned an hour): the spool records ",
    "concepts_a": [
      "daemon",
      "hazard/safety",
      "psyche",
      "surface_vocab"
    ],
    "concepts_b": [
      "psyche",
      "surface_vocab"
    ],
    "shared_concepts": [
      "psyche",
      "surface_vocab"
    ]
  },
  {
    "idx": 84,
    "req_a": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
    "req_b": "REQ-HAZARD-WORKER-PATH",
    "title_a": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null",
    "title_b": "Single source of truth for Worker/Psyche perch location (1.5)",
    "concepts_a": [
      "daemon",
      "notification",
      "psyche"
    ],
    "concepts_b": [
      "psyche"
    ],
    "shared_concepts": [
      "psyche"
    ]
  },
  {
    "idx": 85,
    "req_a": "REQ-HAZARD-PSYCHE-RESIDENCY-EXPECTATION",
    "req_b": "REQ-WORKER-PICKER-EXCLUDED",
    "title_a": "W3 (F030 hazard; paid-for: hall-bf churn ordinal 6491+ + adapter v0.13.2 bad-ship brick 2026-07-04):",
    "title_b": "V-2 (WORKER-TRUTH triage, operator rider): non-drivable endpoint classes never render as `spt endpoi",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "psyche"
    ],
    "concepts_b": [
      "endpoint",
      "psyche",
      "surface_vocab",
      "ui_picker"
    ],
    "shared_concepts": [
      "endpoint",
      "psyche"
    ]
  },
  {
    "idx": 86,
    "req_a": "REQ-HAZARD-RC-ATTACH-TRUTH",
    "req_b": "REQ-HAZARD-RC-EOF",
    "title_a": "RC-RENDER-TRUTH W1 (KNOWN-HAZARDS 7.46 \u2014 umbrella conformance seam for ADR-0042): an rc surface answ",
    "title_b": "A severed broker stream during a live rc session surfaces GRACEFULLY, never as a raw io error that c",
    "concepts_a": [
      "access_control",
      "daemon",
      "hazard/safety",
      "messaging",
      "surface_vocab"
    ],
    "concepts_b": [
      "daemon",
      "hazard/safety",
      "messaging",
      "surface_vocab"
    ],
    "shared_concepts": [
      "daemon",
      "hazard/safety",
      "messaging",
      "surface_vocab"
    ]
  },
  {
    "idx": 87,
    "req_a": "REQ-HAZARD-REDISPATCH-STALL",
    "req_b": "REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK",
    "title_a": "REDISPATCH-STALL W1 (KNOWN-HAZARDS 7.43, hertz v0.34 field RCA 2026-07-16 \u2014 recurrent 20-30s PTY/RC ",
    "title_b": "UPDATE-WEDGE round-4 (hertz RCA, root reproduced + source-pinned on Windows 2026-07-09): EVERY write",
    "concepts_a": [
      "access_control",
      "hazard/safety",
      "install"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "hazard/safety",
      "update"
    ],
    "shared_concepts": [
      "access_control",
      "hazard/safety"
    ]
  },
  {
    "idx": 88,
    "req_a": "REQ-HAZARD-RENDER-LIFECYCLE",
    "req_b": "REQ-SCREENGRID-REPAINT-MODE-REPLAY",
    "title_a": "RC-RENDER-TRUTH W3 (KNOWN-HAZARDS 7.47 \u2014 umbrella conformance seam for ADR-0043): the physical termi",
    "title_b": "RC-RENDER-TRUTH W3 (ADR-0043 decision 4, hertz stale-glyphs RCA leg 4 P1): ScreenGrid cold repaint r",
    "concepts_a": [
      "access_control",
      "hazard/safety",
      "shell"
    ],
    "concepts_b": [
      "access_control",
      "shell"
    ],
    "shared_concepts": [
      "access_control",
      "shell"
    ]
  },
  {
    "idx": 89,
    "req_a": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
    "req_b": "REQ-UPDATE-APPLY-RESTART-NOTICE",
    "title_a": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gat",
    "title_b": "`spt update apply` prints a LOUD restart-required notice whenever the surviving broker will keep run",
    "concepts_a": [
      "access_control",
      "hazard/safety",
      "update"
    ],
    "concepts_b": [
      "adapter",
      "daemon",
      "messaging",
      "surface_vocab",
      "update"
    ],
    "shared_concepts": [
      "update"
    ]
  },
  {
    "idx": 90,
    "req_a": "REQ-HAZARD-SESSION-PIN-WEDGE",
    "req_b": "REQ-SEAM-UPDATE",
    "title_a": "A perch PINNED to a DEAD session-id self-heals instead of wedging forever. authenticate() (spt/src/a",
    "title_b": "Adapter-update avenue (file-pull / delegated command)",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "hazard/safety"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "update"
    ],
    "shared_concepts": [
      "access_control",
      "adapter"
    ]
  },
  {
    "idx": 91,
    "req_a": "REQ-HAZARD-SHELL-STALE-ONLINE",
    "req_b": "REQ-PRESENCE-LIVENESS-TRUTH",
    "title_a": "A shell instance's ONLINE-ness is DERIVED (recorded status AND its recorded `shell.pid` not provably",
    "title_b": "A node's gossiped per-endpoint registry Status reflects real liveness, so a remote viewer never pain",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "engine_room",
      "hazard/safety",
      "install",
      "shell",
      "surface_vocab",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "endpoint"
    ],
    "shared_concepts": [
      "access_control",
      "daemon",
      "endpoint"
    ]
  },
  {
    "idx": 92,
    "req_a": "REQ-HAZARD-SPOOL-SENTINEL-CREATE-FAIL",
    "req_b": "REQ-LIVE-AGENT-NO-INJECT-DELIVERY",
    "title_a": "A persistent failure to (re)create the spool has-messages sentinel is SURFACED, never silently swall",
    "title_b": "F-033 RE-SCOPED (doyle re-ruling 2026-07-10 after the #82 gate falsified the original premise \u2014 the ",
    "concepts_a": [
      "access_control",
      "messaging",
      "surface_vocab"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "messaging",
      "shell"
    ],
    "shared_concepts": [
      "access_control",
      "messaging"
    ]
  },
  {
    "idx": 93,
    "req_a": "REQ-HAZARD-TEMPLATE-ARGV-FILL",
    "req_b": "REQ-SESSION-ADAPTER-RECORDED",
    "title_a": "Command-template substitution fills argv ELEMENTS, not a re-tokenized string: spt-core currently `fi",
    "title_b": "D-2 (REMOTE-TRUTH triage \u00a7D-2 + operator Q5 @c248afc): the session ledger records the adapter[:profi",
    "concepts_a": [
      "adapter",
      "notification",
      "psyche",
      "shell"
    ],
    "concepts_b": [
      "adapter",
      "endpoint",
      "messaging",
      "psyche",
      "shell"
    ],
    "shared_concepts": [
      "adapter",
      "psyche",
      "shell"
    ]
  },
  {
    "idx": 94,
    "req_a": "REQ-HAZARD-UNHOST-PSYCHE-REAP",
    "req_b": "REQ-PSYCHE-TURN-STREAM-EVIDENCE",
    "title_a": "On un-host, the detached `{id}-psyche` HARNESS PROCESS is reaped \u2014 not just its in-brain pulse-drive",
    "title_b": "A failed psyche turn preserves BOTH captured streams as evidence: TurnError::Failed carries the chil",
    "concepts_a": [
      "daemon",
      "endpoint",
      "psyche"
    ],
    "concepts_b": [
      "adapter",
      "psyche",
      "surface_vocab"
    ],
    "shared_concepts": [
      "psyche"
    ]
  },
  {
    "idx": 95,
    "req_a": "REQ-HAZARD-VIEWER-RING-ROLL-SNAP",
    "req_b": "REQ-KICK-1",
    "title_a": "A read-only rc --view VIEWER whose serving brain falls behind the live ring under a hard flood and r",
    "title_b": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the in",
    "concepts_a": [
      "endpoint",
      "ui_picker"
    ],
    "concepts_b": [
      "access_control",
      "endpoint",
      "surface_vocab",
      "ui_picker"
    ],
    "shared_concepts": [
      "endpoint",
      "ui_picker"
    ]
  },
  {
    "idx": 96,
    "req_a": "REQ-HAZARD-WORKER-PATH",
    "req_b": "REQ-READY-AGENT-RESUME",
    "title_a": "Single source of truth for Worker/Psyche perch location (1.5)",
    "title_b": "An offline ReadyAgent shows in `spt endpoint run`'s picker Resume-from-history and resumes correctly",
    "concepts_a": [
      "psyche"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "psyche",
      "ui_picker"
    ],
    "shared_concepts": [
      "psyche"
    ]
  },
  {
    "idx": 97,
    "req_a": "REQ-HOST-RUN-1",
    "req_b": "REQ-WORKER-SID-SYMMETRIC-AUTH",
    "title_a": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template",
    "title_b": "W-2 (WORKER-TRUTH triage, operator-ruled 2026-07-06): worker verbs go sid-symmetric with every sibli",
    "concepts_a": [
      "adapter",
      "endpoint",
      "shell",
      "ui_picker"
    ],
    "concepts_b": [
      "adapter",
      "endpoint",
      "psyche"
    ],
    "shared_concepts": [
      "adapter",
      "endpoint"
    ]
  },
  {
    "idx": 98,
    "req_a": "REQ-INST-1",
    "req_b": "REQ-MIGRATE-1",
    "title_a": "endpoint ID vs instance split (adapter-agnostic ID)",
    "title_b": "Auto-detect and migrate a legacy claude_skill_owl install",
    "concepts_a": [
      "adapter",
      "endpoint"
    ],
    "concepts_b": [
      "install"
    ],
    "shared_concepts": []
  },
  {
    "idx": 99,
    "req_a": "REQ-INST-11",
    "req_b": "REQ-PUMP-PEER-ISOLATION",
    "title_a": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
    "title_b": "PUMP-TRUTH W2 (architectural, operator ruling 2026-07-08): one peer must NOT block or poison all oth",
    "concepts_a": [],
    "concepts_b": [
      "access_control",
      "hazard/safety"
    ],
    "shared_concepts": []
  },
  {
    "idx": 100,
    "req_a": "REQ-INST-14",
    "req_b": "REQ-INSTALL-12",
    "title_a": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projecti",
    "title_b": "Durable active-profile pointer for bind-time profile selection (ADR-0021): adapters/active-profiles.",
    "concepts_a": [
      "access_control",
      "daemon",
      "endpoint"
    ],
    "concepts_b": [
      "adapter",
      "daemon",
      "install",
      "update"
    ],
    "shared_concepts": [
      "daemon"
    ]
  },
  {
    "idx": 101,
    "req_a": "REQ-INST-2",
    "req_b": "REQ-WORKER-SID-SYMMETRIC-AUTH",
    "title_a": "Per-node files, synced Psyche mind",
    "title_b": "W-2 (WORKER-TRUTH triage, operator-ruled 2026-07-06): worker verbs go sid-symmetric with every sibli",
    "concepts_a": [
      "psyche"
    ],
    "concepts_b": [
      "adapter",
      "endpoint",
      "psyche"
    ],
    "shared_concepts": [
      "psyche"
    ]
  },
  {
    "idx": 102,
    "req_a": "REQ-INST-5",
    "req_b": "REQ-INSTALL-BOOTSTRAP-VERB",
    "title_a": "Two-tier context sync (live to all, project to same-project)",
    "title_b": "THE-FORKENING W1 (ADR-0036 \u00a73, bootstrap shape b operator-ruled): virgin-box install = `gh release d",
    "concepts_a": [],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "install",
      "update"
    ],
    "shared_concepts": []
  },
  {
    "idx": 103,
    "req_a": "REQ-INST-9",
    "req_b": "REQ-INSTALL-7",
    "title_a": "Multi-subnet membership (same-user N subnets; cross-user seam)",
    "title_b": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-",
    "concepts_a": [],
    "concepts_b": [
      "daemon",
      "install"
    ],
    "shared_concepts": []
  },
  {
    "idx": 104,
    "req_a": "REQ-INSTALL-12",
    "req_b": "REQ-INSTALL-5",
    "title_a": "Durable active-profile pointer for bind-time profile selection (ADR-0021): adapters/active-profiles.",
    "title_b": "Non-interactive install path: the install path doubles as every adapter's pack-in on-demand install ",
    "concepts_a": [
      "adapter",
      "daemon",
      "install",
      "update"
    ],
    "concepts_b": [
      "adapter",
      "install"
    ],
    "shared_concepts": [
      "adapter",
      "install"
    ]
  },
  {
    "idx": 105,
    "req_a": "REQ-INSTALL-3",
    "req_b": "REQ-PICKER-ADAPTER-DESCRIPTION",
    "title_a": "Idempotent + interactive-optional first run",
    "title_b": "The Create-new adapter-CHOICE screen of `spt endpoint run`'s picker shows a right-hand Description p",
    "concepts_a": [],
    "concepts_b": [
      "adapter",
      "endpoint",
      "install",
      "ui_picker",
      "update"
    ],
    "shared_concepts": []
  },
  {
    "idx": 106,
    "req_a": "REQ-INSTALL-8",
    "req_b": "REQ-RELEASE-MUSL-ARTIFACT",
    "title_a": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl ",
    "title_b": "MUSL-TIER W3 (CI build + signed release + update-set publish + self-update E2E): release.yml gains a",
    "concepts_a": [
      "daemon",
      "install"
    ],
    "concepts_b": [
      "access_control",
      "install",
      "update"
    ],
    "shared_concepts": [
      "install"
    ]
  },
  {
    "idx": 107,
    "req_a": "REQ-JOIN-TWO-PHASE",
    "req_b": "REQ-SUBNET-ADMIN-SEED-REPLICATION",
    "title_a": "`spt subnet join` is two-phase (meet-before-code) so the entered code is FRESH at the ceremony regar",
    "title_b": "Every member node holds BOTH subnet seeds \u2014 the admin seed replicates at join exactly as the member ",
    "concepts_a": [
      "access_control",
      "daemon"
    ],
    "concepts_b": [
      "access_control",
      "surface_vocab"
    ],
    "shared_concepts": [
      "access_control"
    ]
  },
  {
    "idx": 108,
    "req_a": "REQ-LISTEN-SEED-CONSUME-AFTER-BIND",
    "req_b": "REQ-PSYCHE-SID-CUSTODY",
    "title_a": "F-034 leg b (perri/hertz field finding 2026-07-09, hertz's HEADLINE): `api listen` must NOT consume ",
    "title_b": "W2 (F030, design \u00a73): the psyche mints and keeps its OWN session id, stored in the nested {id}-psych",
    "concepts_a": [
      "access_control",
      "adapter"
    ],
    "concepts_b": [
      "psyche"
    ],
    "shared_concepts": []
  },
  {
    "idx": 109,
    "req_a": "REQ-LIVENESS-ORACLE-SOUND",
    "req_b": "REQ-PICKER-WINDOW-TITLE",
    "title_a": "TEARDOWN-AUTHORITY W2 (todlando W1 gate-round-0 finding, doyle-scoped from the LANDED W1 code 2026-0",
    "title_b": "B-5 (F029, operator): `spt endpoint run`'s interactive picker window/tab is untitled \u2014 hard to find ",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "psyche",
      "shell"
    ],
    "concepts_b": [
      "endpoint",
      "install",
      "shell",
      "ui_picker"
    ],
    "shared_concepts": [
      "endpoint",
      "shell"
    ]
  },
  {
    "idx": 110,
    "req_a": "REQ-MANIFEST-6",
    "req_b": "REQ-STORE-1",
    "title_a": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed",
    "title_b": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, ",
    "concepts_a": [
      "adapter",
      "install"
    ],
    "concepts_b": [
      "daemon"
    ],
    "shared_concepts": []
  },
  {
    "idx": 111,
    "req_a": "REQ-MESH-2",
    "req_b": "REQ-SUBNET-2",
    "title_a": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known ad",
    "title_b": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
    "concepts_a": [
      "access_control"
    ],
    "concepts_b": [
      "daemon",
      "surface_vocab"
    ],
    "shared_concepts": []
  },
  {
    "idx": 112,
    "req_a": "REQ-MSG-5",
    "req_b": "REQ-MSG-SENDER-STAMP",
    "title_a": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user",
    "title_b": "Daemon-stamped authenticated sender: a NEW additive `WanMessage.sender_proven` field (serde-default)",
    "concepts_a": [
      "access_control",
      "daemon",
      "endpoint",
      "messaging"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "messaging"
    ],
    "shared_concepts": [
      "access_control",
      "daemon",
      "endpoint",
      "messaging"
    ]
  },
  {
    "idx": 113,
    "req_a": "REQ-MSG-INJECT-LEG-DROP-VISIBLE",
    "req_b": "REQ-SHELL-1",
    "title_a": "SEED (inactive \u2014 observability): a silently-dropped delivery leg must be DISTINGUISHABLE from an hon",
    "title_b": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-",
    "concepts_a": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety",
      "messaging",
      "shell",
      "surface_vocab"
    ],
    "concepts_b": [
      "adapter",
      "shell"
    ],
    "shared_concepts": [
      "shell"
    ]
  },
  {
    "idx": 114,
    "req_a": "REQ-NOTIF-1",
    "req_b": "REQ-NOTIF-DRAIN-ROW-VALIDITY",
    "title_a": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes",
    "title_b": "A spooled notify envelope is validated against its notif row at DELIVERY time \u2014 a copy outliving its",
    "concepts_a": [
      "notification",
      "surface_vocab",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety",
      "messaging",
      "notification",
      "surface_vocab",
      "update"
    ],
    "shared_concepts": [
      "notification",
      "surface_vocab",
      "update"
    ]
  },
  {
    "idx": 115,
    "req_a": "REQ-NOTIF-MIGRATE",
    "req_b": "REQ-PSYCHE-ACCOUNT-REFUSAL-EXIT",
    "title_a": "One-shot field migration: on first run the new binary auto-dismisses existing rows with from_id = sp",
    "title_b": "RESERVED EXIT 96 \u2014 account/credential refusal from a psyche_resume turn: the inner tool refused for ",
    "concepts_a": [
      "notification",
      "psyche",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "psyche",
      "surface_vocab"
    ],
    "shared_concepts": [
      "psyche"
    ]
  },
  {
    "idx": 116,
    "req_a": "REQ-PAIR-2",
    "req_b": "REQ-SUBNET-ADMIN-SEED-REPLICATION",
    "title_a": "Local trust store with TOFU + warn-on-change",
    "title_b": "Every member node holds BOTH subnet seeds \u2014 the admin seed replicates at join exactly as the member ",
    "concepts_a": [],
    "concepts_b": [
      "access_control",
      "surface_vocab"
    ],
    "shared_concepts": []
  },
  {
    "idx": 117,
    "req_a": "REQ-PICKER-1",
    "req_b": "REQ-PICKER-2",
    "title_a": "The picker renders a FOUR-state endpoint status (extending the W2 online/offline duality): the list-",
    "title_b": "The picker's project-history loader reads the git-backed context store, not the bare working tree: d",
    "concepts_a": [
      "daemon",
      "endpoint",
      "ui_picker"
    ],
    "concepts_b": [
      "endpoint",
      "ui_picker"
    ],
    "shared_concepts": [
      "endpoint",
      "ui_picker"
    ]
  },
  {
    "idx": 118,
    "req_a": "REQ-PICKER-2",
    "req_b": "REQ-PICKER-UX-V013",
    "title_a": "The picker's project-history loader reads the git-backed context store, not the bare working tree: d",
    "title_b": "`spt endpoint run` picker UX (v0.13.0 operator dogfooding): (1) SKIP the first screen \u2014 open directl",
    "concepts_a": [
      "endpoint",
      "ui_picker"
    ],
    "concepts_b": [
      "daemon",
      "endpoint",
      "ui_picker"
    ],
    "shared_concepts": [
      "endpoint",
      "ui_picker"
    ]
  },
  {
    "idx": 119,
    "req_a": "REQ-PICKER-4",
    "req_b": "REQ-PICKER-ONLINE-ACTION",
    "title_a": "The picker's Subnet category renders the canonical node LABEL, not bare key-hex: a subnet row's node",
    "title_b": "The `spt endpoint run` picker shows the correct action for an ALREADY-ONLINE endpoint \u2014 Attach, NOT ",
    "concepts_a": [
      "ui_picker"
    ],
    "concepts_b": [
      "access_control",
      "endpoint",
      "ui_picker"
    ],
    "shared_concepts": [
      "ui_picker"
    ]
  },
  {
    "idx": 120,
    "req_a": "REQ-PICKER-ADAPTER-DESCRIPTION",
    "req_b": "REQ-PICKER-REMOTE-WAKE",
    "title_a": "The Create-new adapter-CHOICE screen of `spt endpoint run`'s picker shows a right-hand Description p",
    "title_b": "C-2 (REMOTE-TRUTH triage \u00a7C-2 #4 + addendum @3442ce5): a REMOTE suspended picker row offers `Wake no",
    "concepts_a": [
      "adapter",
      "endpoint",
      "install",
      "ui_picker",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "shell",
      "ui_picker"
    ],
    "shared_concepts": [
      "adapter",
      "endpoint",
      "ui_picker"
    ]
  },
  {
    "idx": 121,
    "req_a": "REQ-PICKER-CHANGE-ADAPTER-FLOW",
    "req_b": "REQ-PICKER-NODE-GROUPING",
    "title_a": "B-2 (F029, operator; LARGEST item): `ConfirmOption::ChangeAdapter` wrongly routes into the CREATE fl",
    "title_b": "Bug #13: the endpoint run Subnet tab shows a machine once PER shared subnet (subnet_rows data.rs:253",
    "concepts_a": [
      "adapter",
      "endpoint",
      "ui_picker",
      "update"
    ],
    "concepts_b": [
      "endpoint"
    ],
    "shared_concepts": [
      "endpoint"
    ]
  },
  {
    "idx": 122,
    "req_a": "REQ-PICKER-CHOOSE-DEDUP-ALL",
    "req_b": "REQ-PICKER-PURGE-SHORTCUT",
    "title_a": "A4 (F028, operator #5): choose-project duplicate rows. model.rs:314-337 build_project_choices dedups",
    "title_b": "C-3 (REMOTE-TRUTH triage \u00a7C-3 #8): the pick-existing list gains an `x` purge shortcut \u2014 on an OFFLIN",
    "concepts_a": [],
    "concepts_b": [
      "access_control",
      "adapter",
      "endpoint",
      "hazard/safety",
      "ui_picker"
    ],
    "shared_concepts": []
  },
  {
    "idx": 123,
    "req_a": "REQ-PICKER-CURRENT-DIR-LABEL",
    "req_b": "REQ-PICKER-PROJECT-DISPLAY-NAME",
    "title_a": "A-2/A-3 (F029, operator, semantic pair): the Choose-project rows must self-identify the CURRENT DIR.",
    "title_b": "A1 (F028, operator #1/#4/#6-display): `github-com-*` 'ghost' project entries are NOT phantoms \u2014 proj",
    "concepts_a": [
      "ui_picker"
    ],
    "concepts_b": [
      "endpoint",
      "surface_vocab"
    ],
    "shared_concepts": []
  },
  {
    "idx": 124,
    "req_a": "REQ-PICKER-NODE-GROUPING",
    "req_b": "REQ-PICKER-PROJECT-HISTORY-TRUTH",
    "title_a": "Bug #13: the endpoint run Subnet tab shows a machine once PER shared subnet (subnet_rows data.rs:253",
    "title_b": "#1: picker project history is derived from sessions.log cwds (newest->oldest, deduped by project_id_",
    "concepts_a": [
      "endpoint"
    ],
    "concepts_b": [
      "psyche",
      "ui_picker"
    ],
    "shared_concepts": []
  },
  {
    "idx": 125,
    "req_a": "REQ-PICKER-ONLINE-ACTION",
    "req_b": "REQ-PICKER-SHORTCUT-LABEL-FILENAME",
    "title_a": "The `spt endpoint run` picker shows the correct action for an ALREADY-ONLINE endpoint \u2014 Attach, NOT ",
    "title_b": "B-4 (F029, operator): the confirm-panel shortcut option label is a static `New/Update spt-<id> short",
    "concepts_a": [
      "access_control",
      "endpoint",
      "ui_picker"
    ],
    "concepts_b": [
      "ui_picker",
      "update"
    ],
    "shared_concepts": [
      "ui_picker"
    ]
  },
  {
    "idx": 126,
    "req_a": "REQ-PICKER-PURGE-STRUCTURED",
    "req_b": "REQ-RC-DISPLAY-SOLE-WRITER",
    "title_a": "RC-RENDER-TRUTH W3 (ADR-0043 decision 3, hertz stale-glyphs RCA leg 3 P0): core verbs invoked from i",
    "title_b": "TEARDOWN-AUTHORITY W5 (hertz RCA 3 bug 1, 2026-07-19 \u2014 REPRODUCED on 0.38.1 CLI + 0.38.1 broker; doy",
    "concepts_a": [
      "access_control",
      "endpoint",
      "shell",
      "ui_picker"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "endpoint",
      "hazard/safety",
      "shell",
      "surface_vocab"
    ],
    "shared_concepts": [
      "access_control",
      "endpoint",
      "shell"
    ]
  },
  {
    "idx": 127,
    "req_a": "REQ-PICKER-START-PROJECT-CHOICE",
    "req_b": "REQ-PICKER-WINDOW-TITLE",
    "title_a": "#5: after 'Start now' in the endpoint picker, swap the bottom Options panel to a 'Choose project' li",
    "title_b": "B-5 (F029, operator): `spt endpoint run`'s interactive picker window/tab is untitled \u2014 hard to find ",
    "concepts_a": [
      "endpoint",
      "ui_picker"
    ],
    "concepts_b": [
      "endpoint",
      "install",
      "shell",
      "ui_picker"
    ],
    "shared_concepts": [
      "endpoint",
      "ui_picker"
    ]
  },
  {
    "idx": 128,
    "req_a": "REQ-PRESENCE-LIVENESS-TRUTH",
    "req_b": "REQ-WORKER-LIST-VISIBILITY",
    "title_a": "A node's gossiped per-endpoint registry Status reflects real liveness, so a remote viewer never pain",
    "title_b": "V-1 (WORKER-TRUTH triage, operator rider): worker perches leave the DEFAULT `spt endpoint list` view",
    "concepts_a": [
      "access_control",
      "daemon",
      "endpoint"
    ],
    "concepts_b": [
      "daemon",
      "endpoint"
    ],
    "shared_concepts": [
      "daemon",
      "endpoint"
    ]
  },
  {
    "idx": 129,
    "req_a": "REQ-PSYCHE-CRASHLOOP-BACKOFF-SHUTDOWN",
    "req_b": "REQ-UPDATE-FINISH-ENDPOINT-SURVIVAL",
    "title_a": "C3 (F028, perri F-h): psyche wrapper crash-loop has no backoff, and `endpoint shutdown` misses a wed",
    "title_b": "W3 (LIFECYCLE-TRUTH): daemon restart no longer massacres hosted endpoints \u2014 daemon start RE-RUNS pre",
    "concepts_a": [
      "endpoint",
      "psyche",
      "surface_vocab"
    ],
    "concepts_b": [
      "adapter",
      "daemon",
      "endpoint",
      "psyche"
    ],
    "shared_concepts": [
      "endpoint",
      "psyche"
    ]
  },
  {
    "idx": 130,
    "req_a": "REQ-PSYCHE-LEGACY-RESIDENT-SWEEP",
    "req_b": "REQ-UPDATE-RUNNING-IMAGE-SURFACE",
    "title_a": "W5 (F030; doyle+perri 2026-07-04): a dirty daemon upgrade from <=v0.24.0 strands a RESIDENT psyche w",
    "title_b": "`spt` surfaces the RUNNING broker image version beside the on-disk version so an updated-looking nod",
    "concepts_a": [
      "adapter",
      "daemon",
      "psyche",
      "update"
    ],
    "concepts_b": [
      "daemon",
      "install",
      "shell",
      "surface_vocab",
      "update"
    ],
    "shared_concepts": [
      "daemon",
      "update"
    ]
  },
  {
    "idx": 131,
    "req_a": "REQ-PSYCHE-SID-CUSTODY",
    "req_b": "REQ-WORKER-SID-SYMMETRIC-AUTH",
    "title_a": "W2 (F030, design \u00a73): the psyche mints and keeps its OWN session id, stored in the nested {id}-psych",
    "title_b": "W-2 (WORKER-TRUTH triage, operator-ruled 2026-07-06): worker verbs go sid-symmetric with every sibli",
    "concepts_a": [
      "psyche"
    ],
    "concepts_b": [
      "adapter",
      "endpoint",
      "psyche"
    ],
    "shared_concepts": [
      "psyche"
    ]
  },
  {
    "idx": 132,
    "req_a": "REQ-PUMP-STAGE-TRUTH",
    "req_b": "REQ-WAN-SEND-DELIVERY",
    "title_a": "MESH-RECOVERY W1 (ADR-0039, RCA wave 3 \u2014 the acceptance surface, same contract): peer-failure teleme",
    "title_b": "Bug #9/#10: cross-node spt send reports SENT(WAN) but does not deliver, even on stable-IP pairs. Rea",
    "concepts_a": [
      "access_control",
      "daemon",
      "surface_vocab",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "endpoint"
    ],
    "shared_concepts": [
      "access_control"
    ]
  },
  {
    "idx": 133,
    "req_a": "REQ-RC-IDENTITY",
    "req_b": "REQ-RC-IDMARKER-DISABLE",
    "title_a": "`spt rc` overlays a persistent endpoint-identity marker so the operator always groks which endpoint ",
    "title_b": "Bugs #14 + #7/#8 (marker half): feature-flag the top-right StatusRow endpoint-id marker OFF (rc.rs:1",
    "concepts_a": [
      "endpoint"
    ],
    "concepts_b": [
      "endpoint"
    ],
    "shared_concepts": [
      "endpoint"
    ]
  },
  {
    "idx": 134,
    "req_a": "REQ-RC-SINGLE-PUMP-BRAIN",
    "req_b": "REQ-RC-VT-TEARDOWN",
    "title_a": "RC-RENDER-TRUTH v0.38.1 fast-follow leg 2 (hertz v0.38.0 field repro 2, hertz RCA confirmed + doyle-",
    "title_b": "RC-RENDER-TRUTH W3 (ADR-0043 decision 2, hertz stale-glyphs RCA leg 2 P0): rc display teardown is a ",
    "concepts_a": [
      "access_control"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "shell"
    ],
    "shared_concepts": [
      "access_control"
    ]
  },
  {
    "idx": 135,
    "req_a": "REQ-REL-2",
    "req_b": "REQ-UPD-9",
    "title_a": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metad",
    "title_b": "`gh_release` adapter [update] avenue (optional signing): an adapter declares `[update] avenue = \"gh_",
    "concepts_a": [
      "adapter",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "install",
      "update"
    ],
    "shared_concepts": [
      "adapter",
      "update"
    ]
  },
  {
    "idx": 136,
    "req_a": "REQ-RESIDENT-SERVICE",
    "req_b": "REQ-UPDATE-RUNNING-IMAGE-SURFACE",
    "title_a": "ResidentService substrate (ADR-0049, design ratified 2026-07-26): a daemon-supervised binary an adap",
    "title_b": "`spt` surfaces the RUNNING broker image version beside the on-disk version so an updated-looking nod",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "install",
      "shell",
      "surface_vocab",
      "update"
    ],
    "concepts_b": [
      "daemon",
      "install",
      "shell",
      "surface_vocab",
      "update"
    ],
    "shared_concepts": [
      "daemon",
      "install",
      "shell",
      "surface_vocab",
      "update"
    ]
  },
  {
    "idx": 137,
    "req_a": "REQ-RESUME-CONTEXT-PULL",
    "req_b": "REQ-UPDATE-FINISH-COMMUNE-FLUSH",
    "title_a": "Adapter-callable resume-context pull verb + not-yet-synthesized commune/signoff drop append (legacy-",
    "title_b": "DEFERRED (post-LIFECYCLE-TRUTH, operator-ruled 2026-07-07 \u2014 mint now, impl a FUTURE milestone): make",
    "concepts_a": [
      "access_control",
      "adapter",
      "daemon",
      "endpoint",
      "hazard/safety",
      "psyche"
    ],
    "concepts_b": [
      "daemon",
      "endpoint",
      "hazard/safety",
      "psyche",
      "shell",
      "surface_vocab",
      "update"
    ],
    "shared_concepts": [
      "daemon",
      "endpoint",
      "hazard/safety",
      "psyche"
    ]
  },
  {
    "idx": 138,
    "req_a": "REQ-RUN-EMPTY-CREATE",
    "req_b": "REQ-TERM-ECHO-CLAMP-WINDOW",
    "title_a": "`spt endpoint run` / bare `spt` routes a TOTALLY-EMPTY scope straight to the endpoint-creation flow:",
    "title_b": "SEED (DAEMON-LIFECYCLE W3 rideout, field-grounded 2026-07-22): the hosted-TUI echo CLAMP WINDOW \u2014 a ",
    "concepts_a": [
      "adapter",
      "endpoint",
      "ui_picker"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "hazard/safety"
    ],
    "shared_concepts": []
  },
  {
    "idx": 139,
    "req_a": "REQ-SCREENGRID-REPAINT-MODE-REPLAY",
    "req_b": "REQ-TERM-3",
    "title_a": "RC-RENDER-TRUTH W3 (ADR-0043 decision 4, hertz stale-glyphs RCA leg 4 P1): ScreenGrid cold repaint r",
    "title_b": "Byte-stream remote terminal streaming for v1",
    "concepts_a": [
      "access_control",
      "shell"
    ],
    "concepts_b": [
      "shell"
    ],
    "shared_concepts": [
      "shell"
    ]
  },
  {
    "idx": 140,
    "req_a": "REQ-SEAM-UPDATE",
    "req_b": "REQ-UPDATE-ONE-SHOT-FINISH",
    "title_a": "Adapter-update avenue (file-pull / delegated command)",
    "title_b": "W3 (LIFECYCLE-TRUTH): update apply works daemonless and one command finishes the cycle. ROOT (operat",
    "concepts_a": [
      "access_control",
      "adapter",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "endpoint",
      "update"
    ],
    "shared_concepts": [
      "access_control",
      "update"
    ]
  },
  {
    "idx": 141,
    "req_a": "REQ-SHELL-1",
    "req_b": "REQ-SHELL-4",
    "title_a": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-",
    "title_b": "Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, rel",
    "concepts_a": [
      "adapter",
      "shell"
    ],
    "concepts_b": [
      "access_control",
      "shell",
      "surface_vocab"
    ],
    "shared_concepts": [
      "shell"
    ]
  },
  {
    "idx": 142,
    "req_a": "REQ-START-5",
    "req_b": "REQ-WHOAMI-1",
    "title_a": "Adapter-agnostic harness-hosted seed + bind-time adapter/profile resolution (ADR-0021): `api seed` c",
    "title_b": "The `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read",
    "concepts_a": [
      "adapter",
      "daemon",
      "install"
    ],
    "concepts_b": [
      "endpoint",
      "messaging",
      "surface_vocab"
    ],
    "shared_concepts": []
  },
  {
    "idx": 143,
    "req_a": "REQ-SUBNET-ADMIN-SEED-REPLICATION",
    "req_b": "REQ-SUBNET-REVOKE-ADMIN-GATE",
    "title_a": "Every member node holds BOTH subnet seeds \u2014 the admin seed replicates at join exactly as the member ",
    "title_b": "`spt subnet revoke` (both forms, --force-rotate-seed included) requires the subnet's CURRENT admin T",
    "concepts_a": [
      "access_control",
      "surface_vocab"
    ],
    "concepts_b": [
      "access_control",
      "surface_vocab"
    ],
    "shared_concepts": [
      "access_control",
      "surface_vocab"
    ]
  },
  {
    "idx": 144,
    "req_a": "REQ-UPD-1",
    "req_b": "REQ-UPDATE-GH-TRANSPORT",
    "title_a": "Peer-propagated update over P2P",
    "title_b": "THE-FORKENING W1 (ADR-0036, operator-ruled 2026-07-14): the release channel is PRIVATE (`BigscreenVR",
    "concepts_a": [
      "access_control",
      "update"
    ],
    "concepts_b": [
      "access_control",
      "daemon",
      "install",
      "notification",
      "update"
    ],
    "shared_concepts": [
      "access_control",
      "update"
    ]
  },
  {
    "idx": 145,
    "req_a": "REQ-UPD-6",
    "req_b": "REQ-UPD-9",
    "title_a": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient pl",
    "title_b": "`gh_release` adapter [update] avenue (optional signing): an adapter declares `[update] avenue = \"gh_",
    "concepts_a": [
      "update"
    ],
    "concepts_b": [
      "access_control",
      "adapter",
      "install",
      "update"
    ],
    "shared_concepts": [
      "update"
    ]
  },
  {
    "idx": 146,
    "req_a": "REQ-UPDATE-APPLY-ALREADY-APPLIED",
    "req_b": "REQ-UPDATE-FINISH-COMMUNE-FLUSH",
    "title_a": "`spt update apply` classifies an already-staged / already-applied state as a friendly exit-0 no-op i",
    "title_b": "DEFERRED (post-LIFECYCLE-TRUTH, operator-ruled 2026-07-07 \u2014 mint now, impl a FUTURE milestone): make",
    "concepts_a": [
      "access_control",
      "messaging",
      "update"
    ],
    "concepts_b": [
      "daemon",
      "endpoint",
      "hazard/safety",
      "psyche",
      "shell",
      "surface_vocab",
      "update"
    ],
    "shared_concepts": [
      "update"
    ]
  },
  {
    "idx": 147,
    "req_a": "REQ-UPDATE-GH-TRANSPORT",
    "req_b": "REQ-UPDATE-RUNNING-IMAGE-SURFACE",
    "title_a": "THE-FORKENING W1 (ADR-0036, operator-ruled 2026-07-14): the release channel is PRIVATE (`BigscreenVR",
    "title_b": "`spt` surfaces the RUNNING broker image version beside the on-disk version so an updated-looking nod",
    "concepts_a": [
      "access_control",
      "daemon",
      "install",
      "notification",
      "update"
    ],
    "concepts_b": [
      "daemon",
      "install",
      "shell",
      "surface_vocab",
      "update"
    ],
    "shared_concepts": [
      "daemon",
      "install",
      "update"
    ]
  }
]