[
  {
    "score": 32,
    "why": "Both RC hazards but distinct: rendering state accuracy vs keyboard encoding",
    "a": "REQ-HAZARD-RC-ATTACH-TRUTH",
    "b": "REQ-HAZARD-RC-INPUT-KEY-ENCODING"
  },
  {
    "score": 22,
    "why": "Both bound parallelism but different systems: CI jobs vs subnet probes",
    "a": "REQ-CI-WINDOWS-PHASE-A-BOUND",
    "b": "REQ-MESH-6"
  },
  {
    "score": 12,
    "why": "Distinct surfaces: daemon CLI noun vs frontend launcher",
    "a": "REQ-CLI-2",
    "b": "REQ-FRONT-1"
  },
  {
    "score": 38,
    "why": "Same family (daemon failures) but different: pump wedge vs psyche spawn exit",
    "a": "REQ-HAZARD-ATTACH-WEDGE",
    "b": "REQ-HAZARD-LIVEHOST-NONRESIDENT"
  },
  {
    "score": 48,
    "why": "Both liveness consistency but contexts differ: cycle verbs vs list output rendering",
    "a": "REQ-ENDPOINT-CYCLE-HONEST",
    "b": "REQ-LIST-JSON-LIVENESS-PARITY"
  },
  {
    "score": 52,
    "why": "Adjacent: session binding late vs cold session resume, both session waking paths",
    "a": "REQ-LISTEN-SESSION-ID-FALLBACK",
    "b": "REQ-WAKE-RESUME-LEG"
  },
  {
    "score": 8,
    "why": "Totally distinct: documentation of message outcomes vs RC terminal resize behavior",
    "a": "REQ-DOC-DELIVERY-VOCAB",
    "b": "REQ-RC-RESIZE-PRESENTATION-BARRIER"
  },
  {
    "score": 48,
    "why": "Both data consistency but different subsystems: perch fsync vs registry transactional",
    "a": "REQ-HAZARD-PERCH-RECORD-POWER-LOSS",
    "b": "REQ-REGISTRY-APPLY-TRANSACTIONAL"
  },
  {
    "score": 55,
    "why": "Same family cleanup/reaping: ephemeral on exit vs prior harness before resume",
    "a": "REQ-HAZARD-EPHEMERAL-CLEANUP",
    "b": "REQ-RESUME-REAP-PRIOR-HARNESS"
  },
  {
    "score": 28,
    "why": "Both identity/grouping related but different: self-attribution vs list display grouping",
    "a": "REQ-BIND-HONEST-SELF-STAMP",
    "b": "REQ-ENDPOINT-LIST-NODE-GROUPED"
  },
  {
    "score": 35,
    "why": "Self-heal driven-by field vs instance state, same family endpoint state management",
    "a": "REQ-HAZARD-DRIVEN-BY-SELFHEAL",
    "b": "REQ-INST-12"
  },
  {
    "score": 48,
    "why": "Both daemon stopping but distinct: scheduler nonblocking vs stop barrier synchronization",
    "a": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
    "b": "REQ-HAZARD-DAEMON-STOP-BARRIER"
  },
  {
    "score": 58,
    "why": "Both notification behavior: basic notif vs coalescing, genuinely overlap in delivery semantics",
    "a": "REQ-NOTIF-2",
    "b": "REQ-NOTIF-COALESCE"
  },
  {
    "score": 42,
    "why": "Both RC attachment but distinct: attach truth/stale state vs reconnection behavior",
    "a": "REQ-HAZARD-RC-ATTACH-TRUTH",
    "b": "REQ-RC-RECONNECT"
  },
  {
    "score": 52,
    "why": "Both reaping daemons: CI job reap vs stop path psyche reap",
    "a": "REQ-CI-POSTJOB-DAEMON-REAP",
    "b": "REQ-HAZARD-STOP-PATH-PSYCHE-ORPHAN-REAP"
  },
  {
    "score": 56,
    "why": "Both update sequencing: adapter verb vs already-applied detection, plausibly confusable",
    "a": "REQ-UPDATE-ADAPTERS-VERB",
    "b": "REQ-UPDATE-APPLY-ALREADY-APPLIED"
  },
  {
    "score": 38,
    "why": "Both endpoint state transitions but distinct: rest state normalization vs wake waiting",
    "a": "REQ-REST-TERMINAL-NORMALIZE",
    "b": "REQ-WAKE-WAIT"
  },
  {
    "score": 45,
    "why": "Both agent resumption patterns but adjacent: ready resume vs ID adapter reuse",
    "a": "REQ-READY-AGENT-RESUME",
    "b": "REQ-RUN-ID-REUSES-ADAPTER"
  },
  {
    "score": 52,
    "why": "Both resume state management: project rows vs unbound stamping",
    "a": "REQ-RESUME-ROW-PER-PROJECT",
    "b": "REQ-RESUME-UNBOUND-STAMP"
  },
  {
    "score": 35,
    "why": "Both CLI output: human-readable formatting vs message origin attribution",
    "a": "REQ-CLI-4",
    "b": "REQ-MSG-CLI-ORIGIN"
  },
  {
    "score": 18,
    "why": "Distinct: pairing mechanism vs subnet concept",
    "a": "REQ-PAIR-3",
    "b": "REQ-SUBNET-1"
  },
  {
    "score": 22,
    "why": "Distinct: architecture surface definition vs self-healing behavior",
    "a": "REQ-ARCH-2",
    "b": "REQ-HAZARD-DRIVEN-BY-SELFHEAL"
  },
  {
    "score": 28,
    "why": "Both multi-node: psyche env vs RC cross-node attachment",
    "a": "REQ-PSYCHE-SPAWN-ENV-PARITY",
    "b": "REQ-RC-CROSS-NODE-ATTACH"
  },
  {
    "score": 32,
    "why": "Both test infrastructure: tmpdir cleanup vs worker process reaping",
    "a": "REQ-TEST-TMPDIR-HYGIENE",
    "b": "REQ-WORKER-REAP"
  },
  {
    "score": 38,
    "why": "Both identity/instance related but distinct domains",
    "a": "REQ-INST-11",
    "b": "REQ-RC-IDENTITY"
  },
  {
    "score": 26,
    "why": "Both bootstrap/injection but different: mesh bootstrap trap vs seam injection point",
    "a": "REQ-HAZARD-MESH-BOOTSTRAP-TRAP",
    "b": "REQ-SEAM-INJECT"
  },
  {
    "score": 32,
    "why": "Both endpoint command surface but distinct: endpoint noun vs whoami identity",
    "a": "REQ-CLI-1",
    "b": "REQ-WHOAMI-1"
  },
  {
    "score": 35,
    "why": "Both resume state tracking but different: project rows vs branch context",
    "a": "REQ-RESUME-ROW-PER-PROJECT",
    "b": "REQ-STORE-CONTEXT-BRANCH-FILL"
  },
  {
    "score": 42,
    "why": "Session wedging vs update state, same family state deadlock issues",
    "a": "REQ-HAZARD-SESSION-PIN-WEDGE",
    "b": "REQ-UPDATE-APPLY-ALREADY-APPLIED"
  },
  {
    "score": 48,
    "why": "Both messaging: core message concept vs window draining, adjacent",
    "a": "REQ-MSG-1",
    "b": "REQ-SEND-WINDOW-DRAIN-HONOR"
  },
  {
    "score": 58,
    "why": "Both update concept but differ in focus, same family update semantics",
    "a": "REQ-UPD-1",
    "b": "REQ-UPD-5"
  },
  {
    "score": 48,
    "why": "Both boot/stop races: livehost boot race vs psyche orphan reap",
    "a": "REQ-HAZARD-LIVEHOST-BOOT-RACE",
    "b": "REQ-HAZARD-STOP-PATH-PSYCHE-ORPHAN-REAP"
  },
  {
    "score": 55,
    "why": "Both endpoint lifecycle: rest state carry vs lifecycle convergence, adjacent",
    "a": "REQ-HAZARD-BIND-REST-STATE-CARRY",
    "b": "REQ-HAZARD-ENDPOINT-LIFECYCLE"
  },
  {
    "score": 62,
    "why": "Both message delivery: carrier claim vs idle nondelivery, genuinely overlap",
    "a": "REQ-CARRIER-CLAIM-EXCLUSIVE",
    "b": "REQ-HAZARD-IDLE-SILENT-NONDELIVERY"
  },
  {
    "score": 35,
    "why": "Both delivery/action but distinct domains",
    "a": "REQ-IDLE-PARKED-DELIVERY",
    "b": "REQ-PICKER-ONLINE-ACTION"
  },
  {
    "score": 28,
    "why": "Distinct: daemon restart trap vs endpoint role model",
    "a": "REQ-DAEMON-RESTART-SELF-INTERRUPTION",
    "b": "REQ-EP-7"
  },
  {
    "score": 52,
    "why": "Both idempotency/restart: inbox no double vs restart idempotent",
    "a": "REQ-HAZARD-INBOX-NO-DOUBLE",
    "b": "REQ-HAZARD-RESTART-IDEMPOTENT"
  },
  {
    "score": 58,
    "why": "Both PTY control: controller lease vs control reap on exit, adjacent",
    "a": "REQ-HAZARD-CONTROLLER-LEASE",
    "b": "REQ-PRESENCE-CONTROL-REAP-ON-EXIT"
  },
  {
    "score": 32,
    "why": "Both update/delivery semantics but distinct: rollback compat vs inject delivery",
    "a": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
    "b": "REQ-LIVE-AGENT-NO-INJECT-DELIVERY"
  },
  {
    "score": 35,
    "why": "Both daemon identity/consistency but different aspects",
    "a": "REQ-HAZARD-DAEMON-IDENTITY-ENV-SANITIZE",
    "b": "REQ-HAZARD-ROSTER-GHOST"
  },
  {
    "score": 28,
    "why": "Both mesh/join related but distinct: diagnostics vs mesh concept",
    "a": "REQ-JOIN-DIAGNOSTICS",
    "b": "REQ-MESH-1"
  },
  {
    "score": 32,
    "why": "Both endpoint presentation but: list column vs presence concept",
    "a": "REQ-ENDPOINT-LIST-PROJECT-COL",
    "b": "REQ-PRES-1"
  },
  {
    "score": 28,
    "why": "Both process identity but distinct: parent PID vs worker naming",
    "a": "REQ-SELF-DETECT-PARENT-PID",
    "b": "REQ-WORKER-MINTED-NAME"
  },
  {
    "score": 52,
    "why": "Both elevation: self-elevate relaunch vs deferred elevation",
    "a": "REQ-ELEVATE-1",
    "b": "REQ-JOIN-DEFERRED-ELEVATION"
  },
  {
    "score": 32,
    "why": "Both daemon/RC but distinct: daemon foreground vs rc reconnect",
    "a": "REQ-DAEMON-7",
    "b": "REQ-RC-RECONNECT-TRUTH"
  },
  {
    "score": 62,
    "why": "Both signoff buffering: grace period vs echo, genuinely overlap",
    "a": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
    "b": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF"
  },
  {
    "score": 45,
    "why": "Both picker home env but distinct: fork label cwd vs picker home resolution",
    "a": "REQ-PICKER-FORK-LABEL-CWD",
    "b": "REQ-RUN-PICKER-HOME"
  },
  {
    "score": 35,
    "why": "Both endpoint/shell model but: always-on sigil vs job exposure",
    "a": "REQ-EP-9",
    "b": "REQ-SHELL-CLI-SPAWN-JOB-EXPOSURE"
  },
  {
    "score": 38,
    "why": "Both identity/auth but: local API vs node identity concept",
    "a": "REQ-HAZARD-LOCAL-API-AUTH",
    "b": "REQ-NODE-IDENTITY"
  },
  {
    "score": 38,
    "why": "Both event/dispatch but: advertisement vs claim retry",
    "a": "REQ-CONV-2",
    "b": "REQ-DISPATCH-CLAIM-RETRY"
  },
  {
    "score": 52,
    "why": "Both delivery: idle parked vs WAN send, adjacent semantics",
    "a": "REQ-IDLE-PARKED-DELIVERY",
    "b": "REQ-WAN-SEND-DELIVERY"
  },
  {
    "score": 42,
    "why": "Both install/resume: installer config vs adapter session follow",
    "a": "REQ-INSTALL-13",
    "b": "REQ-RESUME-ADAPTER-FOLLOWS-SESSION"
  },
  {
    "score": 38,
    "why": "Both endpoint state but: list filtering vs instance state",
    "a": "REQ-ENDPOINT-LIST-REST-FILTER",
    "b": "REQ-INST-12"
  },
  {
    "score": 35,
    "why": "Both endpoint display: offline visibility vs whoami identity",
    "a": "REQ-PICKER-OFFLINE-NO-VIEW",
    "b": "REQ-WHOAMI-1"
  },
  {
    "score": 48,
    "why": "Both endpoint lifecycle/signoff: lifecycle truth vs grace before signoff",
    "a": "REQ-HAZARD-ENDPOINT-LIFECYCLE",
    "b": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF"
  },
  {
    "score": 62,
    "why": "Both cleanup: soft vs ephemeral, genuinely overlap in scope",
    "a": "REQ-HAZARD-SOFT-CLEANUP",
    "b": "REQ-HAZARD-EPHEMERAL-CLEANUP"
  },
  {
    "score": 42,
    "why": "Both process identity: which-bits vs parent PID",
    "a": "REQ-DAEMON-BITS-AMBIGUITY",
    "b": "REQ-HAZARD-PARENT-PID-PREFER"
  },
  {
    "score": 35,
    "why": "Both pair/worker but: rate limit vs auth",
    "a": "REQ-HAZARD-PAIR-RATE-LIMIT",
    "b": "REQ-WORKER-SID-SYMMETRIC-AUTH"
  },
  {
    "score": 28,
    "why": "Both picker/run but distinct domains",
    "a": "REQ-PICKER-ONLINE-ACTION",
    "b": "REQ-RUN-MULTISUBNET-HOME"
  },
  {
    "score": 68,
    "why": "Both fundamental endpoint model: day-one types vs agent distinction, high overlap",
    "a": "REQ-EP-1",
    "b": "REQ-EP-2"
  },
  {
    "score": 32,
    "why": "Both resume state but: unbound stamp vs shell provenance",
    "a": "REQ-RESUME-UNBOUND-STAMP",
    "b": "REQ-SHELL-LIST-DERIVED-PROVENANCE"
  },
  {
    "score": 28,
    "why": "Both update/write but: atomic tmp collision vs running image",
    "a": "REQ-HAZARD-ATOMIC-TMP-COLLISION",
    "b": "REQ-UPDATE-RUNNING-IMAGE-SURFACE"
  },
  {
    "score": 22,
    "why": "Distinct: shell list vs WAN delivery",
    "a": "REQ-SHELL-LIST-DERIVED-PROVENANCE",
    "b": "REQ-WAN-SPT-HOSTED-DELIVERY"
  },
  {
    "score": 42,
    "why": "Both endpoint cycling but: honest liveness vs picker action",
    "a": "REQ-ENDPOINT-CYCLE-HONEST",
    "b": "REQ-PICKER-ONLINE-ACTION"
  },
  {
    "score": 35,
    "why": "Both listing/filtering but: local merge vs routable count",
    "a": "REQ-ENDPOINT-LIST-MERGE-LOCAL",
    "b": "REQ-SUBNET-COUNT-ROUTABLE"
  },
  {
    "score": 38,
    "why": "Both status/finish but distinct: JSON truth vs endpoint survival",
    "a": "REQ-DAEMON-STATUS-JSON-TRUTH",
    "b": "REQ-UPDATE-FINISH-ENDPOINT-SURVIVAL"
  },
  {
    "score": 32,
    "why": "Both RC/term but: harness refusal vs term concept",
    "a": "REQ-RC-HARNESS-ONLY-REFUSAL",
    "b": "REQ-TERM-2"
  },
  {
    "score": 48,
    "why": "Both spawn hazards: pipe inheritance vs elevation",
    "a": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
    "b": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN"
  },
  {
    "score": 38,
    "why": "Both picker/run but: fork label cwd vs run shortcut",
    "a": "REQ-PICKER-FORK-LABEL-CWD",
    "b": "REQ-RUN-SHORTCUT"
  },
  {
    "score": 28,
    "why": "Both architecture/compat but: wire protocol vs argv handoff",
    "a": "REQ-ARCH-3",
    "b": "REQ-HAZARD-HANDOFF-ARGV-COMPAT"
  },
  {
    "score": 22,
    "why": "Distinct: install day-one vs message binary",
    "a": "REQ-INSTALL-1",
    "b": "REQ-MSG-IDLE-TRANSLATION-BINARY"
  },
  {
    "score": 48,
    "why": "Both adapter update: floor enforcement vs adapter verb",
    "a": "REQ-ADAPTER-FLOOR-ENFORCE",
    "b": "REQ-UPDATE-ADAPTERS-VERB"
  },
  {
    "score": 38,
    "why": "Both write/invariant but distinct: write precedence vs peer address",
    "a": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
    "b": "REQ-PEERADDR-INVARIANT"
  },
  {
    "score": 28,
    "why": "Both RC/pair but distinct domains",
    "a": "REQ-HAZARD-RC-ATTACH-TRUTH",
    "b": "REQ-PAIR-NTP-LOUD-FAIL"
  },
  {
    "score": 32,
    "why": "Both picker/shell but: control line vs list provenance",
    "a": "REQ-PICKER-CONTROL-LINE-STATUS-GATE",
    "b": "REQ-SHELL-LIST-DERIVED-PROVENANCE"
  },
  {
    "score": 35,
    "why": "Both endpoint info but: activity read vs stop resolution",
    "a": "REQ-ACTIVITY-INFO-PULL",
    "b": "REQ-ENDPOINT-STOP-RESOLVES"
  },
  {
    "score": 42,
    "why": "Both PTY/file hazards: conpty DSR vs ebusy rename",
    "a": "REQ-HAZARD-CONPTY-DSR",
    "b": "REQ-HAZARD-EBUSY-RENAME"
  },
  {
    "score": 45,
    "why": "Both instance/presence but: instance state vs liveness",
    "a": "REQ-INST-12",
    "b": "REQ-PRESENCE-LIVENESS-TRUTH"
  },
  {
    "score": 35,
    "why": "Both psyche hooks but: context indirection vs postspawn seam",
    "a": "REQ-PSYCHE-CONTEXT-FILE-INDIRECTION",
    "b": "REQ-SEAM-POSTSPAWN"
  },
  {
    "score": 32,
    "why": "Both stop/viewer but distinct: convoy vs evict",
    "a": "REQ-HAZARD-STOP-RESPAWN-CONVOY",
    "b": "REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT"
  },
  {
    "score": 48,
    "why": "Both environment handling: digest profile vs env substitution",
    "a": "REQ-DIGEST-PROFILE-ENV",
    "b": "REQ-HAZARD-ENV-SUBST"
  },
  {
    "score": 35,
    "why": "Both endpoint lifecycle but: autostart vs teardown",
    "a": "REQ-ENDPOINT-AUTOSTART",
    "b": "REQ-HAZARD-TEARDOWN-DEADEND"
  },
  {
    "score": 32,
    "why": "Both message identity but: ancestry detection vs notification migration",
    "a": "REQ-MSG-SELF-DETECT-ANCESTRY",
    "b": "REQ-NOTIF-MIGRATE"
  },
  {
    "score": 42,
    "why": "Both display: list palette vs project name",
    "a": "REQ-ENDPOINT-LIST-PALETTE",
    "b": "REQ-PICKER-PROJECT-DISPLAY-NAME"
  },
  {
    "score": 28,
    "why": "Both cleanup but: daemon reap vs tmpdir hygiene",
    "a": "REQ-HAZARD-DAEMON-STOP-REAP",
    "b": "REQ-TEST-TMPDIR-HYGIENE"
  },
  {
    "score": 52,
    "why": "Both update: adapter inplace vs update verb",
    "a": "REQ-ADAPTER-UPDATE-INPLACE",
    "b": "REQ-UPD-5"
  },
  {
    "score": 35,
    "why": "Both registry/project but distinct: stall vs reader cutover",
    "a": "REQ-HAZARD-REGISTRY-STALL",
    "b": "REQ-PROJECT-INDEX-READER-CUTOVER"
  },
  {
    "score": 38,
    "why": "Both install/update but: install concept vs update verb",
    "a": "REQ-INSTALL-2",
    "b": "REQ-UPD-5"
  },
  {
    "score": 28,
    "why": "Both net/psyche but distinct",
    "a": "REQ-NET-3",
    "b": "REQ-SEAM-PSYCHE"
  },
  {
    "score": 52,
    "why": "Both RC presentation: key translation vs newline truth",
    "a": "REQ-RC-KEY-VT-TRANSLATE",
    "b": "REQ-RC-NEWLINE-PRESENTATION-TRUTH"
  },
  {
    "score": 32,
    "why": "Both network but: adapter transport vs family gate",
    "a": "REQ-ADAPTER-GH-TRANSPORT",
    "b": "REQ-NET-FAMILY-GATE"
  },
  {
    "score": 28,
    "why": "Both CLI/terminal but: human-readable output vs term concept",
    "a": "REQ-CLI-4",
    "b": "REQ-TERM-1"
  },
  {
    "score": 48,
    "why": "Both update UX but: restart notice vs fetch UX",
    "a": "REQ-UPDATE-APPLY-RESTART-NOTICE",
    "b": "REQ-UPDATE-FETCH-CURRENT-UX"
  },
  {
    "score": 55,
    "why": "Both RC control races: writer reorder vs attach online race",
    "a": "REQ-HAZARD-CONTROLLER-WRITER-REORDER",
    "b": "REQ-HAZARD-RC-ATTACH-ONLINE-RACE"
  },
  {
    "score": 42,
    "why": "Both hazard but: idle delivery vs restart",
    "a": "REQ-HAZARD-IDLE-SILENT-NONDELIVERY",
    "b": "REQ-HAZARD-RESTART-IDEMPOTENT"
  },
  {
    "score": 25,
    "why": "Both UI navigation but: picker back vs RC mouse",
    "a": "REQ-PICKER-BACK-NAV",
    "b": "REQ-RC-MOUSE-FORWARD"
  },
  {
    "score": 28,
    "why": "Both filtering/display but distinct domains",
    "a": "REQ-ENDPOINT-LIST-REST-FILTER",
    "b": "REQ-RC-IDMARKER-DISABLE"
  },
  {
    "score": 62,
    "why": "Both registry staleness: index lock vs clean, genuinely overlap",
    "a": "REQ-HAZARD-STALE-INDEX-LOCK",
    "b": "REQ-HAZARD-REGISTRY-STALE-CLEAN"
  },
  {
    "score": 38,
    "why": "Both render/picker but: lifecycle vs picker concept",
    "a": "REQ-HAZARD-RENDER-LIFECYCLE",
    "b": "REQ-PICKER-5"
  },
  {
    "score": 35,
    "why": "Both install/update but: install config vs update seam",
    "a": "REQ-INSTALL-13",
    "b": "REQ-SEAM-UPDATE"
  },
  {
    "score": 22,
    "why": "Distinct: install day-one vs RC identity",
    "a": "REQ-INSTALL-1",
    "b": "REQ-RC-IDENTITY"
  },
  {
    "score": 32,
    "why": "Both endpoint but: Gateway type vs reachability",
    "a": "REQ-EP-6",
    "b": "REQ-REACH-2"
  },
  {
    "score": 52,
    "why": "Both endpoint state: online truth vs convergence order",
    "a": "REQ-ENDPOINT-ONLINE-TRUTH",
    "b": "REQ-STAMP-CONVERGENCE-ORDER"
  },
  {
    "score": 65,
    "why": "Both deferred drain: blocking vs survive, high overlap",
    "a": "REQ-HAZARD-DEFERRED-DRAIN",
    "b": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN"
  },
  {
    "score": 18,
    "why": "Distinct: API surface vs parser safety",
    "a": "REQ-API-3",
    "b": "REQ-HAZARD-ENVELOPE-PARSER-SAFE"
  },
  {
    "score": 55,
    "why": "Both safety: cascade wipe vs single source",
    "a": "REQ-HAZARD-CASCADE-WIPE-GUARD",
    "b": "REQ-HAZARD-SINGLE-PATH-SOURCE"
  },
  {
    "score": 18,
    "why": "Distinct: CI resource check vs CLI rendering",
    "a": "REQ-CI-FREE-SPACE-PREFLIGHT",
    "b": "REQ-CLI-WIN-VT-ENABLE"
  },
  {
    "score": 48,
    "why": "Both teardown/cleanup: authority vs ephemeral",
    "a": "REQ-ENDPOINT-TEARDOWN-AUTHORITY",
    "b": "REQ-HAZARD-EPHEMERAL-CLEANUP"
  },
  {
    "score": 58,
    "why": "Both broker attach: idempotent replay vs journal resilience, adjacent",
    "a": "REQ-ATTACH-IDEMPOTENT-REPLAY",
    "b": "REQ-BROKER-ATTACH-JOURNAL-RESILIENT"
  },
  {
    "score": 42,
    "why": "Both pair but: rate limit vs pairing concept",
    "a": "REQ-HAZARD-PAIR-RATE-LIMIT",
    "b": "REQ-PAIR-3"
  },
  {
    "score": 52,
    "why": "Both update trial: UPD-3 vs drain drive",
    "a": "REQ-UPD-3",
    "b": "REQ-UPDATE-TRIAL-DRAIN-DRIVE"
  },
  {
    "score": 65,
    "why": "Both write safety: drop file vs precedence, high overlap",
    "a": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
    "b": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE"
  },
  {
    "score": 32,
    "why": "Both update/psyche but: ephemeral driver vs commune flush",
    "a": "REQ-PSYCHE-EPHEMERAL-DRIVER",
    "b": "REQ-UPDATE-FINISH-COMMUNE-FLUSH"
  },
  {
    "score": 55,
    "why": "Both update paths: daemon refresh vs UPD-6",
    "a": "REQ-DAEMON-REFRESH",
    "b": "REQ-UPD-6"
  },
  {
    "score": 42,
    "why": "Both identity: which-bits vs whoami",
    "a": "REQ-DAEMON-BITS-AMBIGUITY",
    "b": "REQ-WHOAMI-IDENTITY-ONLY"
  },
  {
    "score": 42,
    "why": "Both picker/worker but distinct aspects",
    "a": "REQ-PICKER-PURGE-STRUCTURED",
    "b": "REQ-WORKER-PICKER-EXCLUDED"
  },
  {
    "score": 68,
    "why": "Both architecture fundamentals: layers vs SDK surface, high overlap",
    "a": "REQ-ARCH-1",
    "b": "REQ-ARCH-2"
  },
  {
    "score": 55,
    "why": "Both endpoint list: local merge vs node ident",
    "a": "REQ-ENDPOINT-LIST-MERGE-LOCAL",
    "b": "REQ-ENDPOINT-LIST-NODE-IDENT"
  },
  {
    "score": 48,
    "why": "Both delivery: quiet notif vs window drain",
    "a": "REQ-NOTIF-QUIET-DELIVERY",
    "b": "REQ-SEND-WINDOW-DRAIN-HONOR"
  },
  {
    "score": 42,
    "why": "Both instance/rest but distinct subsystems",
    "a": "REQ-INST-4",
    "b": "REQ-REST-TERMINAL-NORMALIZE"
  },
  {
    "score": 28,
    "why": "Both update/identity but distinct domains",
    "a": "REQ-HAZARD-UPDATE-ROLLBACK",
    "b": "REQ-NODE-IDENTITY"
  },
  {
    "score": 42,
    "why": "Both connection/session but: poison scope vs logging",
    "a": "REQ-CONN-POISON-DIAL-SCOPE",
    "b": "REQ-SESSIONS-LOG-ENDPOINT-ATTRIBUTION"
  },
  {
    "score": 32,
    "why": "Both endpoint model but: shell instantiation vs pair concept",
    "a": "REQ-EP-5",
    "b": "REQ-PAIR-6"
  },
  {
    "score": 28,
    "why": "Both spawn/subnet but distinct",
    "a": "REQ-SEAM-POSTSPAWN",
    "b": "REQ-SUBNET-3"
  },
  {
    "score": 35,
    "why": "Both registry/stream but: stall vs opener",
    "a": "REQ-HAZARD-REGISTRY-STALL",
    "b": "REQ-STREAM-OPENER-DURABLE"
  },
  {
    "score": 58,
    "why": "Both adapter behavior: floor vs proof, adjacent features",
    "a": "REQ-ADAPTER-FLOOR-ENFORCE",
    "b": "REQ-ADAPTER-PROOF-DIR-OVERRIDE"
  },
  {
    "score": 48,
    "why": "Both adapter: live update vs manifest concept",
    "a": "REQ-ADAPTER-LIVE-UPDATE",
    "b": "REQ-MANIFEST-2"
  },
  {
    "score": 38,
    "why": "Both instance/shell but distinct",
    "a": "REQ-INST-10",
    "b": "REQ-SHELL-3"
  },
  {
    "score": 42,
    "why": "Both drop file but: documentation vs writer safety",
    "a": "REQ-DOC-ENDPOINT-DROP-RESOLUTION",
    "b": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER"
  },
  {
    "score": 35,
    "why": "Both psyche/soft but: SID custody vs listener preservation",
    "a": "REQ-PSYCHE-SID-CUSTODY",
    "b": "REQ-SOFT-END-PRESERVES-LIVE-LISTENER"
  },
  {
    "score": 28,
    "why": "Both psyche boot but: liveness gate vs role skip",
    "a": "REQ-HAZARD-LIVEHOST-BOOT-LIVENESS-GATE",
    "b": "REQ-PSYCHE-ROLE-OPTIONAL-SKIP"
  }
]
