﻿2026-06-13T10:36:05.3851497Z Current runner version: '2.335.1'
2026-06-13T10:36:05.3856797Z Runner name: 'kitsubito'
2026-06-13T10:36:05.3857336Z Runner group name: 'Default'
2026-06-13T10:36:05.3858061Z Machine name: 'KITSUBITO'
2026-06-13T10:36:05.3860156Z ##[group]GITHUB_TOKEN Permissions
2026-06-13T10:36:05.3862224Z Contents: read
2026-06-13T10:36:05.3862640Z Metadata: read
2026-06-13T10:36:05.3863021Z Packages: read
2026-06-13T10:36:05.3863392Z ##[endgroup]
2026-06-13T10:36:05.3865086Z Secret source: Actions
2026-06-13T10:36:05.3865635Z Prepare workflow directory
2026-06-13T10:36:05.4336443Z Prepare all required actions
2026-06-13T10:36:05.4369967Z Getting action download info
2026-06-13T10:36:05.9234376Z Download action repository 'actions/checkout@v5' (SHA:93cb6efe18208431cddfb8368fd83d5badbf9bfd)
2026-06-13T10:36:06.6558851Z Complete job name: traceability
2026-06-13T10:36:06.7475233Z ##[group]Run actions/checkout@v5
2026-06-13T10:36:06.7476105Z with:
2026-06-13T10:36:06.7476540Z   repository: SaberMage/spt-core
2026-06-13T10:36:06.7480469Z   token: ***
2026-06-13T10:36:06.7480895Z   ssh-strict: true
2026-06-13T10:36:06.7481308Z   ssh-user: git
2026-06-13T10:36:06.7481736Z   persist-credentials: true
2026-06-13T10:36:06.7482202Z   clean: true
2026-06-13T10:36:06.7482618Z   sparse-checkout-cone-mode: true
2026-06-13T10:36:06.7483118Z   fetch-depth: 1
2026-06-13T10:36:06.7483519Z   fetch-tags: false
2026-06-13T10:36:06.7483938Z   show-progress: true
2026-06-13T10:36:06.7484366Z   lfs: false
2026-06-13T10:36:06.7484772Z   submodules: false
2026-06-13T10:36:06.7485220Z   set-safe-directory: true
2026-06-13T10:36:06.7485920Z ##[endgroup]
2026-06-13T10:36:06.8496702Z Syncing repository: SaberMage/spt-core
2026-06-13T10:36:06.8498322Z ##[group]Getting Git version info
2026-06-13T10:36:06.8499295Z Working directory is '/home/reavus/actions-runner/_work/spt-core/spt-core'
2026-06-13T10:36:06.8500293Z [command]/usr/bin/git version
2026-06-13T10:36:06.8521822Z git version 2.43.0
2026-06-13T10:36:06.8538822Z ##[endgroup]
2026-06-13T10:36:06.8549864Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/c8afcd92-fe21-427c-9036-7111a84ee2aa' before making global git config changes
2026-06-13T10:36:06.8551099Z Adding repository directory to the temporary git global config as a safe directory
2026-06-13T10:36:06.8552875Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-13T10:36:06.8584038Z [command]/usr/bin/git config --local --get remote.origin.url
2026-06-13T10:36:06.8601959Z https://github.com/SaberMage/spt-core
2026-06-13T10:36:06.8611952Z ##[group]Removing previously created refs, to avoid conflicts
2026-06-13T10:36:06.8614183Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2026-06-13T10:36:06.8640888Z HEAD
2026-06-13T10:36:06.8671085Z ##[endgroup]
2026-06-13T10:36:06.8671758Z [command]/usr/bin/git submodule status
2026-06-13T10:36:06.8850874Z ##[group]Cleaning the repository
2026-06-13T10:36:06.8852782Z [command]/usr/bin/git clean -ffdx
2026-06-13T10:36:09.9990438Z Removing .adapter-notify/
2026-06-13T10:36:09.9991170Z Removing target/
2026-06-13T10:36:10.0004016Z [command]/usr/bin/git reset --hard HEAD
2026-06-13T10:36:10.0329924Z HEAD is now at 6b98561 Merge 77e0fb1bc77f8f2f500c9bdadcd65e158b5d4c11 into b189513c697e4305452b836bcdc14ce1b573c7b4
2026-06-13T10:36:10.0335524Z ##[endgroup]
2026-06-13T10:36:10.0338422Z ##[group]Disabling automatic garbage collection
2026-06-13T10:36:10.0342248Z [command]/usr/bin/git config --local gc.auto 0
2026-06-13T10:36:10.0370179Z ##[endgroup]
2026-06-13T10:36:10.0370681Z ##[group]Setting up auth
2026-06-13T10:36:10.0376176Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-13T10:36:10.0407060Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2026-06-13T10:36:10.0618137Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-13T10:36:10.0653660Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2026-06-13T10:36:10.0851442Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-13T10:36:10.0877937Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-13T10:36:10.1066076Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-13T10:36:10.1098211Z ##[endgroup]
2026-06-13T10:36:10.1098640Z ##[group]Fetching the repository
2026-06-13T10:36:10.1106654Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +6b98561f05ce91955413fa74b34fd72d1fc225f1:refs/remotes/pull/8/merge
2026-06-13T10:36:10.5783685Z ##[endgroup]
2026-06-13T10:36:10.5784247Z ##[group]Determining the checkout info
2026-06-13T10:36:10.5785012Z ##[endgroup]
2026-06-13T10:36:10.5789865Z [command]/usr/bin/git sparse-checkout disable
2026-06-13T10:36:10.5833671Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-13T10:36:10.5857353Z ##[group]Checking out the ref
2026-06-13T10:36:10.5860599Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/8/merge
2026-06-13T10:36:10.5899541Z HEAD is now at 6b98561 Merge 77e0fb1bc77f8f2f500c9bdadcd65e158b5d4c11 into b189513c697e4305452b836bcdc14ce1b573c7b4
2026-06-13T10:36:10.5902520Z ##[endgroup]
2026-06-13T10:36:10.5935201Z [command]/usr/bin/git log -1 --format=%H
2026-06-13T10:36:10.5954419Z 6b98561f05ce91955413fa74b34fd72d1fc225f1
2026-06-13T10:36:10.6155362Z ##[group]Run WANT=0.1.2
2026-06-13T10:36:10.6155652Z [36;1mWANT=0.1.2[0m
2026-06-13T10:36:10.6155877Z [36;1mBIN="$HOME/.local/bin/traceable-reqs"[0m
2026-06-13T10:36:10.6156291Z [36;1mif [ -x "$BIN" ] && "$BIN" --version | grep -q " $WANT\$"; then[0m
2026-06-13T10:36:10.6156763Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-13T10:36:10.6157121Z [36;1melse[0m
2026-06-13T10:36:10.6157501Z [36;1m  # Build OUTSIDE the checkout: a clone inside it gets adopted by[0m
2026-06-13T10:36:10.6158018Z [36;1m  # the spt-core cargo workspace and refuses to build.[0m
2026-06-13T10:36:10.6158424Z [36;1m  SRC="$RUNNER_TEMP/tr-src"[0m
2026-06-13T10:36:10.6158744Z [36;1m  rm -rf "$SRC"[0m
2026-06-13T10:36:10.6159135Z [36;1m  git clone --depth 1 --branch "v$WANT" \[0m
2026-06-13T10:36:10.6159707Z [36;1m    "https://x-access-token:${GH_TOKEN}@github.com/BigscreenVR/traceable-reqs" "$SRC"[0m
2026-06-13T10:36:10.6160368Z [36;1m  cargo build --release --manifest-path "$SRC/rust/Cargo.toml"[0m
2026-06-13T10:36:10.6160819Z [36;1m  mkdir -p "$HOME/.local/bin"[0m
2026-06-13T10:36:10.6161219Z [36;1m  cp "$SRC/rust/target/release/traceable-reqs" "$BIN"[0m
2026-06-13T10:36:10.6161630Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-13T10:36:10.6161997Z [36;1mfi[0m
2026-06-13T10:36:10.6162303Z [36;1m./traceable-reqs --version[0m
2026-06-13T10:36:10.6178574Z shell: /usr/bin/bash -e {0}
2026-06-13T10:36:10.6178810Z env:
2026-06-13T10:36:10.6179477Z   GH_TOKEN: ***
2026-06-13T10:36:10.6179668Z ##[endgroup]
2026-06-13T10:36:10.6288156Z traceable-reqs 0.1.2
2026-06-13T10:36:10.6340585Z ##[group]Run ./traceable-reqs check --json
2026-06-13T10:36:10.6340913Z [36;1m./traceable-reqs check --json[0m
2026-06-13T10:36:10.6353945Z shell: /usr/bin/bash -e {0}
2026-06-13T10:36:10.6354172Z ##[endgroup]
2026-06-13T10:36:10.6651343Z {
2026-06-13T10:36:10.6652110Z   "schemaVersion": 1,
2026-06-13T10:36:10.6652439Z   "summary": {
2026-06-13T10:36:10.6652831Z     "requirementCount": 189,
2026-06-13T10:36:10.6653245Z     "completeCount": 189,
2026-06-13T10:36:10.6653636Z     "incompleteCount": 0,
2026-06-13T10:36:10.6654009Z     "findingCount": 0
2026-06-13T10:36:10.6654333Z   },
2026-06-13T10:36:10.6654643Z   "requirements": [
2026-06-13T10:36:10.6655511Z     {
2026-06-13T10:36:10.6655845Z       "id": "REQ-API-1",
2026-06-13T10:36:10.6656318Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-13T10:36:10.6656791Z       "requiredStages": [
2026-06-13T10:36:10.6657082Z         "impl",
2026-06-13T10:36:10.6657330Z         "unit",
2026-06-13T10:36:10.6657649Z         "int"
2026-06-13T10:36:10.6657882Z       ],
2026-06-13T10:36:10.6658121Z       "stages": {
2026-06-13T10:36:10.6658379Z         "doc": {
2026-06-13T10:36:10.6658632Z           "complete": false,
2026-06-13T10:36:10.6658937Z           "evidence": []
2026-06-13T10:36:10.6659358Z         },
2026-06-13T10:36:10.6659601Z         "impl": {
2026-06-13T10:36:10.6659853Z           "complete": true,
2026-06-13T10:36:10.6660148Z           "evidence": [
2026-06-13T10:36:10.6660430Z             {
2026-06-13T10:36:10.6660711Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T10:36:10.6661079Z               "line": 15
2026-06-13T10:36:10.6661500Z             }
2026-06-13T10:36:10.6661727Z           ]
2026-06-13T10:36:10.6661974Z         },
2026-06-13T10:36:10.6662228Z         "int": {
2026-06-13T10:36:10.6662471Z           "complete": true,
2026-06-13T10:36:10.6662767Z           "evidence": [
2026-06-13T10:36:10.6663033Z             {
2026-06-13T10:36:10.6663328Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T10:36:10.6663701Z               "line": 13
2026-06-13T10:36:10.6663972Z             }
2026-06-13T10:36:10.6664214Z           ]
2026-06-13T10:36:10.6664447Z         },
2026-06-13T10:36:10.6664684Z         "unit": {
2026-06-13T10:36:10.6664946Z           "complete": true,
2026-06-13T10:36:10.6665246Z           "evidence": [
2026-06-13T10:36:10.6665518Z             {
2026-06-13T10:36:10.6665785Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T10:36:10.6666152Z               "line": 471
2026-06-13T10:36:10.6666438Z             },
2026-06-13T10:36:10.6666682Z             {
2026-06-13T10:36:10.6666964Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T10:36:10.6667337Z               "line": 509
2026-06-13T10:36:10.6667614Z             },
2026-06-13T10:36:10.6667846Z             {
2026-06-13T10:36:10.6668127Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T10:36:10.6668490Z               "line": 576
2026-06-13T10:36:10.6668762Z             }
2026-06-13T10:36:10.6669091Z           ]
2026-06-13T10:36:10.6669324Z         }
2026-06-13T10:36:10.6669545Z       }
2026-06-13T10:36:10.6669781Z     },
2026-06-13T10:36:10.6670017Z     {
2026-06-13T10:36:10.6670289Z       "id": "REQ-API-2",
2026-06-13T10:36:10.6670748Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-13T10:36:10.6671257Z       "requiredStages": [
2026-06-13T10:36:10.6671539Z         "impl",
2026-06-13T10:36:10.6671783Z         "unit",
2026-06-13T10:36:10.6672035Z         "int"
2026-06-13T10:36:10.6672273Z       ],
2026-06-13T10:36:10.6672505Z       "stages": {
2026-06-13T10:36:10.6672769Z         "doc": {
2026-06-13T10:36:10.6673031Z           "complete": false,
2026-06-13T10:36:10.6673331Z           "evidence": []
2026-06-13T10:36:10.6673598Z         },
2026-06-13T10:36:10.6673830Z         "impl": {
2026-06-13T10:36:10.6674088Z           "complete": true,
2026-06-13T10:36:10.6674379Z           "evidence": [
2026-06-13T10:36:10.6674946Z             {
2026-06-13T10:36:10.6675239Z               "path": "crates/spt-store/src/history.rs",
2026-06-13T10:36:10.6675607Z               "line": 15
2026-06-13T10:36:10.6675869Z             },
2026-06-13T10:36:10.6676111Z             {
2026-06-13T10:36:10.6676397Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.6676774Z               "line": 20
2026-06-13T10:36:10.6677046Z             },
2026-06-13T10:36:10.6677294Z             {
2026-06-13T10:36:10.6677580Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.6677935Z               "line": 139
2026-06-13T10:36:10.6678202Z             },
2026-06-13T10:36:10.6678831Z             {
2026-06-13T10:36:10.6679289Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.6679641Z               "line": 21
2026-06-13T10:36:10.6679909Z             },
2026-06-13T10:36:10.6680157Z             {
2026-06-13T10:36:10.6680464Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.6680845Z               "line": 38
2026-06-13T10:36:10.6681136Z             },
2026-06-13T10:36:10.6681379Z             {
2026-06-13T10:36:10.6681675Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.6682056Z               "line": 190
2026-06-13T10:36:10.6682352Z             },
2026-06-13T10:36:10.6682648Z             {
2026-06-13T10:36:10.6683043Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.6683466Z               "line": 232
2026-06-13T10:36:10.6683696Z             },
2026-06-13T10:36:10.6683877Z             {
2026-06-13T10:36:10.6684100Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.6684395Z               "line": 262
2026-06-13T10:36:10.6684639Z             },
2026-06-13T10:36:10.6684958Z             {
2026-06-13T10:36:10.6685222Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T10:36:10.6685585Z               "line": 17
2026-06-13T10:36:10.6685799Z             },
2026-06-13T10:36:10.6685999Z             {
2026-06-13T10:36:10.6686281Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T10:36:10.6686609Z               "line": 30
2026-06-13T10:36:10.6686820Z             },
2026-06-13T10:36:10.6687063Z             {
2026-06-13T10:36:10.6687334Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T10:36:10.6687640Z               "line": 63
2026-06-13T10:36:10.6687859Z             },
2026-06-13T10:36:10.6688061Z             {
2026-06-13T10:36:10.6688364Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T10:36:10.6688734Z               "line": 76
2026-06-13T10:36:10.6689082Z             }
2026-06-13T10:36:10.6689368Z           ]
2026-06-13T10:36:10.6689645Z         },
2026-06-13T10:36:10.6689906Z         "int": {
2026-06-13T10:36:10.6690187Z           "complete": true,
2026-06-13T10:36:10.6690497Z           "evidence": [
2026-06-13T10:36:10.6690806Z             {
2026-06-13T10:36:10.6691147Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T10:36:10.6691553Z               "line": 14
2026-06-13T10:36:10.6691838Z             },
2026-06-13T10:36:10.6692100Z             {
2026-06-13T10:36:10.6692401Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T10:36:10.6692768Z               "line": 187
2026-06-13T10:36:10.6693054Z             }
2026-06-13T10:36:10.6693297Z           ]
2026-06-13T10:36:10.6693542Z         },
2026-06-13T10:36:10.6693793Z         "unit": {
2026-06-13T10:36:10.6694045Z           "complete": true,
2026-06-13T10:36:10.6694326Z           "evidence": [
2026-06-13T10:36:10.6694599Z             {
2026-06-13T10:36:10.6694879Z               "path": "crates/spt-store/src/history.rs",
2026-06-13T10:36:10.6695252Z               "line": 42
2026-06-13T10:36:10.6695513Z             },
2026-06-13T10:36:10.6695754Z             {
2026-06-13T10:36:10.6696037Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.6696354Z               "line": 254
2026-06-13T10:36:10.6696550Z             },
2026-06-13T10:36:10.6696940Z             {
2026-06-13T10:36:10.6697217Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.6697575Z               "line": 517
2026-06-13T10:36:10.6697837Z             },
2026-06-13T10:36:10.6698066Z             {
2026-06-13T10:36:10.6698343Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.6698728Z               "line": 528
2026-06-13T10:36:10.6699074Z             },
2026-06-13T10:36:10.6699613Z             {
2026-06-13T10:36:10.6699923Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.6700271Z               "line": 660
2026-06-13T10:36:10.6700515Z             },
2026-06-13T10:36:10.6700990Z             {
2026-06-13T10:36:10.6701263Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.6701589Z               "line": 672
2026-06-13T10:36:10.6701827Z             },
2026-06-13T10:36:10.6702040Z             {
2026-06-13T10:36:10.6702280Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T10:36:10.6702595Z               "line": 141
2026-06-13T10:36:10.6702833Z             },
2026-06-13T10:36:10.6703033Z             {
2026-06-13T10:36:10.6703290Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T10:36:10.6703586Z               "line": 185
2026-06-13T10:36:10.6703820Z             }
2026-06-13T10:36:10.6704021Z           ]
2026-06-13T10:36:10.6704219Z         }
2026-06-13T10:36:10.6704420Z       }
2026-06-13T10:36:10.6704615Z     },
2026-06-13T10:36:10.6704821Z     {
2026-06-13T10:36:10.6705050Z       "id": "REQ-API-3",
2026-06-13T10:36:10.6705374Z       "title": "commune/signoff are file-drops, not commands",
2026-06-13T10:36:10.6705750Z       "requiredStages": [
2026-06-13T10:36:10.6705994Z         "impl",
2026-06-13T10:36:10.6706203Z         "unit",
2026-06-13T10:36:10.6706412Z         "int"
2026-06-13T10:36:10.6706621Z       ],
2026-06-13T10:36:10.6706810Z       "stages": {
2026-06-13T10:36:10.6707021Z         "doc": {
2026-06-13T10:36:10.6707273Z           "complete": false,
2026-06-13T10:36:10.6707510Z           "evidence": []
2026-06-13T10:36:10.6707734Z         },
2026-06-13T10:36:10.6707931Z         "impl": {
2026-06-13T10:36:10.6708149Z           "complete": true,
2026-06-13T10:36:10.6708378Z           "evidence": [
2026-06-13T10:36:10.6708589Z             {
2026-06-13T10:36:10.6709181Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T10:36:10.6709728Z               "line": 27
2026-06-13T10:36:10.6710126Z             },
2026-06-13T10:36:10.6710511Z             {
2026-06-13T10:36:10.6710907Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.6711380Z               "line": 374
2026-06-13T10:36:10.6711837Z             }
2026-06-13T10:36:10.6712234Z           ]
2026-06-13T10:36:10.6712492Z         },
2026-06-13T10:36:10.6747572Z         "int": {
2026-06-13T10:36:10.6748162Z           "complete": true,
2026-06-13T10:36:10.6748462Z           "evidence": [
2026-06-13T10:36:10.6748728Z             {
2026-06-13T10:36:10.6749184Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T10:36:10.6749561Z               "line": 261
2026-06-13T10:36:10.6749828Z             }
2026-06-13T10:36:10.6750071Z           ]
2026-06-13T10:36:10.6750295Z         },
2026-06-13T10:36:10.6750528Z         "unit": {
2026-06-13T10:36:10.6750782Z           "complete": true,
2026-06-13T10:36:10.6751073Z           "evidence": [
2026-06-13T10:36:10.6751349Z             {
2026-06-13T10:36:10.6751662Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T10:36:10.6752032Z               "line": 280
2026-06-13T10:36:10.6752303Z             },
2026-06-13T10:36:10.6752551Z             {
2026-06-13T10:36:10.6752870Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.6753248Z               "line": 701
2026-06-13T10:36:10.6753519Z             }
2026-06-13T10:36:10.6753753Z           ]
2026-06-13T10:36:10.6753988Z         }
2026-06-13T10:36:10.6754218Z       }
2026-06-13T10:36:10.6754450Z     },
2026-06-13T10:36:10.6754695Z     {
2026-06-13T10:36:10.6755395Z       "id": "REQ-ARCH-1",
2026-06-13T10:36:10.6755761Z       "title": "Many small acyclically-layered crates",
2026-06-13T10:36:10.6756158Z       "requiredStages": [
2026-06-13T10:36:10.6756458Z         "impl"
2026-06-13T10:36:10.6756715Z       ],
2026-06-13T10:36:10.6756958Z       "stages": {
2026-06-13T10:36:10.6757225Z         "doc": {
2026-06-13T10:36:10.6757521Z           "complete": false,
2026-06-13T10:36:10.6757739Z           "evidence": []
2026-06-13T10:36:10.6757931Z         },
2026-06-13T10:36:10.6758102Z         "impl": {
2026-06-13T10:36:10.6758417Z           "complete": true,
2026-06-13T10:36:10.6758622Z           "evidence": [
2026-06-13T10:36:10.6759037Z             {
2026-06-13T10:36:10.6759232Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-13T10:36:10.6759488Z               "line": 16
2026-06-13T10:36:10.6759677Z             },
2026-06-13T10:36:10.6759845Z             {
2026-06-13T10:36:10.6760054Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-13T10:36:10.6760311Z               "line": 12
2026-06-13T10:36:10.6760497Z             },
2026-06-13T10:36:10.6760670Z             {
2026-06-13T10:36:10.6760864Z               "path": "crates/spt-store/src/lib.rs",
2026-06-13T10:36:10.6761093Z               "line": 12
2026-06-13T10:36:10.6761275Z             }
2026-06-13T10:36:10.6761441Z           ]
2026-06-13T10:36:10.6761599Z         },
2026-06-13T10:36:10.6761765Z         "int": {
2026-06-13T10:36:10.6761943Z           "complete": false,
2026-06-13T10:36:10.6762146Z           "evidence": []
2026-06-13T10:36:10.6762332Z         },
2026-06-13T10:36:10.6762496Z         "unit": {
2026-06-13T10:36:10.6762683Z           "complete": false,
2026-06-13T10:36:10.6762882Z           "evidence": []
2026-06-13T10:36:10.6763064Z         }
2026-06-13T10:36:10.6763222Z       }
2026-06-13T10:36:10.6763384Z     },
2026-06-13T10:36:10.6763546Z     {
2026-06-13T10:36:10.6763708Z       "id": "REQ-ARCH-2",
2026-06-13T10:36:10.6763989Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-13T10:36:10.6764299Z       "requiredStages": [
2026-06-13T10:36:10.6764496Z         "impl"
2026-06-13T10:36:10.6764665Z       ],
2026-06-13T10:36:10.6764827Z       "stages": {
2026-06-13T10:36:10.6765006Z         "doc": {
2026-06-13T10:36:10.6765187Z           "complete": false,
2026-06-13T10:36:10.6765387Z           "evidence": []
2026-06-13T10:36:10.6765569Z         },
2026-06-13T10:36:10.6765735Z         "impl": {
2026-06-13T10:36:10.6765912Z           "complete": true,
2026-06-13T10:36:10.6766103Z           "evidence": [
2026-06-13T10:36:10.6766288Z             {
2026-06-13T10:36:10.6766490Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-13T10:36:10.6766747Z               "line": 18
2026-06-13T10:36:10.6766928Z             }
2026-06-13T10:36:10.6767096Z           ]
2026-06-13T10:36:10.6767252Z         },
2026-06-13T10:36:10.6767410Z         "int": {
2026-06-13T10:36:10.6767585Z           "complete": false,
2026-06-13T10:36:10.6767785Z           "evidence": []
2026-06-13T10:36:10.6767975Z         },
2026-06-13T10:36:10.6768133Z         "unit": {
2026-06-13T10:36:10.6768319Z           "complete": false,
2026-06-13T10:36:10.6768510Z           "evidence": []
2026-06-13T10:36:10.6768692Z         }
2026-06-13T10:36:10.6768848Z       }
2026-06-13T10:36:10.6769082Z     },
2026-06-13T10:36:10.6769248Z     {
2026-06-13T10:36:10.6769416Z       "id": "REQ-ARCH-3",
2026-06-13T10:36:10.6769711Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-13T10:36:10.6770043Z       "requiredStages": [
2026-06-13T10:36:10.6770237Z         "impl",
2026-06-13T10:36:10.6770409Z         "unit"
2026-06-13T10:36:10.6770585Z       ],
2026-06-13T10:36:10.6770752Z       "stages": {
2026-06-13T10:36:10.6770920Z         "doc": {
2026-06-13T10:36:10.6771100Z           "complete": false,
2026-06-13T10:36:10.6771296Z           "evidence": []
2026-06-13T10:36:10.6771476Z         },
2026-06-13T10:36:10.6771648Z         "impl": {
2026-06-13T10:36:10.6771954Z           "complete": true,
2026-06-13T10:36:10.6772155Z           "evidence": [
2026-06-13T10:36:10.6772340Z             {
2026-06-13T10:36:10.6772541Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T10:36:10.6772791Z               "line": 34
2026-06-13T10:36:10.6772971Z             },
2026-06-13T10:36:10.6773133Z             {
2026-06-13T10:36:10.6773333Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T10:36:10.6773581Z               "line": 41
2026-06-13T10:36:10.6773762Z             }
2026-06-13T10:36:10.6773930Z           ]
2026-06-13T10:36:10.6774091Z         },
2026-06-13T10:36:10.6774253Z         "int": {
2026-06-13T10:36:10.6774558Z           "complete": false,
2026-06-13T10:36:10.6774751Z           "evidence": []
2026-06-13T10:36:10.6774935Z         },
2026-06-13T10:36:10.6775094Z         "unit": {
2026-06-13T10:36:10.6775277Z           "complete": true,
2026-06-13T10:36:10.6775468Z           "evidence": [
2026-06-13T10:36:10.6775647Z             {
2026-06-13T10:36:10.6775848Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T10:36:10.6776087Z               "line": 51
2026-06-13T10:36:10.6776266Z             },
2026-06-13T10:36:10.6776434Z             {
2026-06-13T10:36:10.6776634Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T10:36:10.6776881Z               "line": 71
2026-06-13T10:36:10.6777064Z             },
2026-06-13T10:36:10.6777225Z             {
2026-06-13T10:36:10.6777421Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T10:36:10.6777661Z               "line": 83
2026-06-13T10:36:10.6777840Z             }
2026-06-13T10:36:10.6778004Z           ]
2026-06-13T10:36:10.6778154Z         }
2026-06-13T10:36:10.6778317Z       }
2026-06-13T10:36:10.6778478Z     },
2026-06-13T10:36:10.6778632Z     {
2026-06-13T10:36:10.6778793Z       "id": "REQ-ARCH-4",
2026-06-13T10:36:10.6779179Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-13T10:36:10.6779489Z       "requiredStages": [
2026-06-13T10:36:10.6779675Z         "impl",
2026-06-13T10:36:10.6779877Z         "unit"
2026-06-13T10:36:10.6780037Z       ],
2026-06-13T10:36:10.6780196Z       "stages": {
2026-06-13T10:36:10.6780375Z         "doc": {
2026-06-13T10:36:10.6780556Z           "complete": false,
2026-06-13T10:36:10.6780763Z           "evidence": []
2026-06-13T10:36:10.6780951Z         },
2026-06-13T10:36:10.6781117Z         "impl": {
2026-06-13T10:36:10.6781298Z           "complete": true,
2026-06-13T10:36:10.6781499Z           "evidence": [
2026-06-13T10:36:10.6781679Z             {
2026-06-13T10:36:10.6781875Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6782124Z               "line": 157
2026-06-13T10:36:10.6782313Z             },
2026-06-13T10:36:10.6782476Z             {
2026-06-13T10:36:10.6782671Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6782909Z               "line": 180
2026-06-13T10:36:10.6783102Z             },
2026-06-13T10:36:10.6783261Z             {
2026-06-13T10:36:10.6783452Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6783688Z               "line": 200
2026-06-13T10:36:10.6783869Z             },
2026-06-13T10:36:10.6784032Z             {
2026-06-13T10:36:10.6798518Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6798814Z               "line": 215
2026-06-13T10:36:10.6799110Z             },
2026-06-13T10:36:10.6799284Z             {
2026-06-13T10:36:10.6799485Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6799732Z               "line": 265
2026-06-13T10:36:10.6799932Z             }
2026-06-13T10:36:10.6800123Z           ]
2026-06-13T10:36:10.6800285Z         },
2026-06-13T10:36:10.6800447Z         "int": {
2026-06-13T10:36:10.6800638Z           "complete": false,
2026-06-13T10:36:10.6800843Z           "evidence": []
2026-06-13T10:36:10.6801025Z         },
2026-06-13T10:36:10.6801195Z         "unit": {
2026-06-13T10:36:10.6801590Z           "complete": true,
2026-06-13T10:36:10.6801803Z           "evidence": [
2026-06-13T10:36:10.6801989Z             {
2026-06-13T10:36:10.6802184Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6802437Z               "line": 326
2026-06-13T10:36:10.6802624Z             },
2026-06-13T10:36:10.6802794Z             {
2026-06-13T10:36:10.6802986Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6803224Z               "line": 336
2026-06-13T10:36:10.6803409Z             },
2026-06-13T10:36:10.6803568Z             {
2026-06-13T10:36:10.6803758Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6804130Z               "line": 347
2026-06-13T10:36:10.6804311Z             },
2026-06-13T10:36:10.6804477Z             {
2026-06-13T10:36:10.6804670Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6804895Z               "line": 358
2026-06-13T10:36:10.6805065Z             },
2026-06-13T10:36:10.6805229Z             {
2026-06-13T10:36:10.6805423Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6805657Z               "line": 370
2026-06-13T10:36:10.6805839Z             },
2026-06-13T10:36:10.6806005Z             {
2026-06-13T10:36:10.6806187Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6806421Z               "line": 383
2026-06-13T10:36:10.6806605Z             },
2026-06-13T10:36:10.6806798Z             {
2026-06-13T10:36:10.6806981Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6807213Z               "line": 394
2026-06-13T10:36:10.6807394Z             },
2026-06-13T10:36:10.6807556Z             {
2026-06-13T10:36:10.6807752Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6807985Z               "line": 411
2026-06-13T10:36:10.6808162Z             },
2026-06-13T10:36:10.6808329Z             {
2026-06-13T10:36:10.6808520Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.6808758Z               "line": 539
2026-06-13T10:36:10.6809002Z             }
2026-06-13T10:36:10.6809178Z           ]
2026-06-13T10:36:10.6809341Z         }
2026-06-13T10:36:10.6809502Z       }
2026-06-13T10:36:10.6809665Z     },
2026-06-13T10:36:10.6809825Z     {
2026-06-13T10:36:10.6809997Z       "id": "REQ-CLI-1",
2026-06-13T10:36:10.6811208Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-13T10:36:10.6812453Z       "requiredStages": [
2026-06-13T10:36:10.6812654Z         "impl",
2026-06-13T10:36:10.6812830Z         "unit"
2026-06-13T10:36:10.6813002Z       ],
2026-06-13T10:36:10.6813165Z       "stages": {
2026-06-13T10:36:10.6813340Z         "doc": {
2026-06-13T10:36:10.6813532Z           "complete": false,
2026-06-13T10:36:10.6813741Z           "evidence": []
2026-06-13T10:36:10.6813932Z         },
2026-06-13T10:36:10.6814095Z         "impl": {
2026-06-13T10:36:10.6814285Z           "complete": true,
2026-06-13T10:36:10.6814486Z           "evidence": [
2026-06-13T10:36:10.6814676Z             {
2026-06-13T10:36:10.6814871Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6815118Z               "line": 200
2026-06-13T10:36:10.6815306Z             },
2026-06-13T10:36:10.6815469Z             {
2026-06-13T10:36:10.6815668Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6815902Z               "line": 864
2026-06-13T10:36:10.6816094Z             },
2026-06-13T10:36:10.6816260Z             {
2026-06-13T10:36:10.6816441Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6816676Z               "line": 1244
2026-06-13T10:36:10.6816865Z             },
2026-06-13T10:36:10.6817029Z             {
2026-06-13T10:36:10.6817362Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6817603Z               "line": 2447
2026-06-13T10:36:10.6817802Z             }
2026-06-13T10:36:10.6817974Z           ]
2026-06-13T10:36:10.6818140Z         },
2026-06-13T10:36:10.6818317Z         "int": {
2026-06-13T10:36:10.6818506Z           "complete": false,
2026-06-13T10:36:10.6818722Z           "evidence": []
2026-06-13T10:36:10.6818909Z         },
2026-06-13T10:36:10.6819165Z         "unit": {
2026-06-13T10:36:10.6819356Z           "complete": true,
2026-06-13T10:36:10.6819558Z           "evidence": [
2026-06-13T10:36:10.6819747Z             {
2026-06-13T10:36:10.6819943Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6820357Z               "line": 5811
2026-06-13T10:36:10.6820557Z             }
2026-06-13T10:36:10.6820737Z           ]
2026-06-13T10:36:10.6820910Z         }
2026-06-13T10:36:10.6821095Z       }
2026-06-13T10:36:10.6821267Z     },
2026-06-13T10:36:10.6821453Z     {
2026-06-13T10:36:10.6821658Z       "id": "REQ-CLI-2",
2026-06-13T10:36:10.6822484Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-13T10:36:10.6823323Z       "requiredStages": [
2026-06-13T10:36:10.6823548Z         "impl",
2026-06-13T10:36:10.6823763Z         "unit"
2026-06-13T10:36:10.6823943Z       ],
2026-06-13T10:36:10.6824120Z       "stages": {
2026-06-13T10:36:10.6824310Z         "doc": {
2026-06-13T10:36:10.6824511Z           "complete": false,
2026-06-13T10:36:10.6824732Z           "evidence": []
2026-06-13T10:36:10.6824916Z         },
2026-06-13T10:36:10.6825097Z         "impl": {
2026-06-13T10:36:10.6825308Z           "complete": true,
2026-06-13T10:36:10.6825544Z           "evidence": [
2026-06-13T10:36:10.6825734Z             {
2026-06-13T10:36:10.6825957Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.6826228Z               "line": 345
2026-06-13T10:36:10.6826443Z             },
2026-06-13T10:36:10.6826626Z             {
2026-06-13T10:36:10.6826848Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-13T10:36:10.6827125Z               "line": 78
2026-06-13T10:36:10.6827359Z             },
2026-06-13T10:36:10.6827536Z             {
2026-06-13T10:36:10.6827769Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T10:36:10.6828040Z               "line": 239
2026-06-13T10:36:10.6828277Z             },
2026-06-13T10:36:10.6828486Z             {
2026-06-13T10:36:10.6828691Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6829029Z               "line": 358
2026-06-13T10:36:10.6829254Z             },
2026-06-13T10:36:10.6847688Z             {
2026-06-13T10:36:10.6847921Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6848174Z               "line": 908
2026-06-13T10:36:10.6848375Z             },
2026-06-13T10:36:10.6848594Z             {
2026-06-13T10:36:10.6848789Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6849118Z               "line": 1435
2026-06-13T10:36:10.6849327Z             },
2026-06-13T10:36:10.6849496Z             {
2026-06-13T10:36:10.6849678Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6849916Z               "line": 1514
2026-06-13T10:36:10.6850097Z             },
2026-06-13T10:36:10.6850269Z             {
2026-06-13T10:36:10.6850459Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6850679Z               "line": 1575
2026-06-13T10:36:10.6850855Z             }
2026-06-13T10:36:10.6851036Z           ]
2026-06-13T10:36:10.6851204Z         },
2026-06-13T10:36:10.6851374Z         "int": {
2026-06-13T10:36:10.6851557Z           "complete": false,
2026-06-13T10:36:10.6851766Z           "evidence": []
2026-06-13T10:36:10.6851966Z         },
2026-06-13T10:36:10.6852136Z         "unit": {
2026-06-13T10:36:10.6852643Z           "complete": true,
2026-06-13T10:36:10.6852881Z           "evidence": [
2026-06-13T10:36:10.6853095Z             {
2026-06-13T10:36:10.6853324Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T10:36:10.6853601Z               "line": 309
2026-06-13T10:36:10.6853816Z             },
2026-06-13T10:36:10.6853982Z             {
2026-06-13T10:36:10.6854197Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6854434Z               "line": 5949
2026-06-13T10:36:10.6854632Z             }
2026-06-13T10:36:10.6854819Z           ]
2026-06-13T10:36:10.6854994Z         }
2026-06-13T10:36:10.6855171Z       }
2026-06-13T10:36:10.6855352Z     },
2026-06-13T10:36:10.6855777Z     {
2026-06-13T10:36:10.6855957Z       "id": "REQ-CLI-3",
2026-06-13T10:36:10.6856801Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-13T10:36:10.6857642Z       "requiredStages": [
2026-06-13T10:36:10.6857842Z         "impl",
2026-06-13T10:36:10.6858010Z         "unit"
2026-06-13T10:36:10.6858185Z       ],
2026-06-13T10:36:10.6858353Z       "stages": {
2026-06-13T10:36:10.6858524Z         "doc": {
2026-06-13T10:36:10.6858715Z           "complete": false,
2026-06-13T10:36:10.6858911Z           "evidence": []
2026-06-13T10:36:10.6859236Z         },
2026-06-13T10:36:10.6859411Z         "impl": {
2026-06-13T10:36:10.6859594Z           "complete": true,
2026-06-13T10:36:10.6859787Z           "evidence": [
2026-06-13T10:36:10.6859967Z             {
2026-06-13T10:36:10.6860151Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6860390Z               "line": 858
2026-06-13T10:36:10.6860576Z             }
2026-06-13T10:36:10.6860738Z           ]
2026-06-13T10:36:10.6860887Z         },
2026-06-13T10:36:10.6861052Z         "int": {
2026-06-13T10:36:10.6861229Z           "complete": false,
2026-06-13T10:36:10.6861444Z           "evidence": []
2026-06-13T10:36:10.6861639Z         },
2026-06-13T10:36:10.6861807Z         "unit": {
2026-06-13T10:36:10.6862006Z           "complete": true,
2026-06-13T10:36:10.6862202Z           "evidence": [
2026-06-13T10:36:10.6862404Z             {
2026-06-13T10:36:10.6862602Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6862846Z               "line": 5776
2026-06-13T10:36:10.6863054Z             }
2026-06-13T10:36:10.6863240Z           ]
2026-06-13T10:36:10.6863418Z         }
2026-06-13T10:36:10.6863598Z       }
2026-06-13T10:36:10.6863779Z     },
2026-06-13T10:36:10.6863965Z     {
2026-06-13T10:36:10.6864166Z       "id": "REQ-CONSENT-1",
2026-06-13T10:36:10.6865187Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-13T10:36:10.6866227Z       "requiredStages": [
2026-06-13T10:36:10.6866437Z         "impl",
2026-06-13T10:36:10.6866647Z         "unit"
2026-06-13T10:36:10.6866924Z       ],
2026-06-13T10:36:10.6867100Z       "stages": {
2026-06-13T10:36:10.6867291Z         "doc": {
2026-06-13T10:36:10.6867491Z           "complete": false,
2026-06-13T10:36:10.6867709Z           "evidence": []
2026-06-13T10:36:10.6867913Z         },
2026-06-13T10:36:10.6868092Z         "impl": {
2026-06-13T10:36:10.6868284Z           "complete": true,
2026-06-13T10:36:10.6868517Z           "evidence": [
2026-06-13T10:36:10.6868721Z             {
2026-06-13T10:36:10.6869045Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6869319Z               "line": 27
2026-06-13T10:36:10.6869519Z             },
2026-06-13T10:36:10.6869704Z             {
2026-06-13T10:36:10.6869923Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6870379Z               "line": 75
2026-06-13T10:36:10.6870583Z             },
2026-06-13T10:36:10.6870779Z             {
2026-06-13T10:36:10.6870993Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6871250Z               "line": 98
2026-06-13T10:36:10.6871447Z             },
2026-06-13T10:36:10.6871636Z             {
2026-06-13T10:36:10.6871846Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T10:36:10.6872133Z               "line": 82
2026-06-13T10:36:10.6872329Z             },
2026-06-13T10:36:10.6872529Z             {
2026-06-13T10:36:10.6872758Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T10:36:10.6873162Z               "line": 109
2026-06-13T10:36:10.6873362Z             },
2026-06-13T10:36:10.6873561Z             {
2026-06-13T10:36:10.6873786Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T10:36:10.6874039Z               "line": 127
2026-06-13T10:36:10.6874240Z             },
2026-06-13T10:36:10.6874430Z             {
2026-06-13T10:36:10.6874650Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T10:36:10.6874893Z               "line": 142
2026-06-13T10:36:10.6875097Z             },
2026-06-13T10:36:10.6875280Z             {
2026-06-13T10:36:10.6875487Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6875733Z               "line": 5413
2026-06-13T10:36:10.6875929Z             }
2026-06-13T10:36:10.6876104Z           ]
2026-06-13T10:36:10.6876292Z         },
2026-06-13T10:36:10.6876472Z         "int": {
2026-06-13T10:36:10.6876668Z           "complete": false,
2026-06-13T10:36:10.6876892Z           "evidence": []
2026-06-13T10:36:10.6877126Z         },
2026-06-13T10:36:10.6877307Z         "unit": {
2026-06-13T10:36:10.6877522Z           "complete": true,
2026-06-13T10:36:10.6877736Z           "evidence": [
2026-06-13T10:36:10.6877941Z             {
2026-06-13T10:36:10.6878180Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6878459Z               "line": 334
2026-06-13T10:36:10.6878666Z             },
2026-06-13T10:36:10.6878863Z             {
2026-06-13T10:36:10.6879163Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6879426Z               "line": 380
2026-06-13T10:36:10.6879625Z             },
2026-06-13T10:36:10.6879821Z             {
2026-06-13T10:36:10.6880051Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6880337Z               "line": 391
2026-06-13T10:36:10.6880603Z             },
2026-06-13T10:36:10.6880794Z             {
2026-06-13T10:36:10.6881007Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T10:36:10.6881271Z               "line": 165
2026-06-13T10:36:10.6881468Z             },
2026-06-13T10:36:10.6881649Z             {
2026-06-13T10:36:10.6881858Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T10:36:10.6882116Z               "line": 184
2026-06-13T10:36:10.6882317Z             },
2026-06-13T10:36:10.6882492Z             {
2026-06-13T10:36:10.6882711Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T10:36:10.6882966Z               "line": 204
2026-06-13T10:36:10.6883165Z             },
2026-06-13T10:36:10.6883364Z             {
2026-06-13T10:36:10.6883567Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6883811Z               "line": 6129
2026-06-13T10:36:10.6884013Z             }
2026-06-13T10:36:10.6884189Z           ]
2026-06-13T10:36:10.6884365Z         }
2026-06-13T10:36:10.6884543Z       }
2026-06-13T10:36:10.6884737Z     },
2026-06-13T10:36:10.6884914Z     {
2026-06-13T10:36:10.6885104Z       "id": "REQ-CONSENT-2",
2026-06-13T10:36:10.6886052Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-13T10:36:10.6887185Z       "requiredStages": [
2026-06-13T10:36:10.6887401Z         "impl",
2026-06-13T10:36:10.6887590Z         "unit"
2026-06-13T10:36:10.6887781Z       ],
2026-06-13T10:36:10.6887966Z       "stages": {
2026-06-13T10:36:10.6888158Z         "doc": {
2026-06-13T10:36:10.6888354Z           "complete": false,
2026-06-13T10:36:10.6888577Z           "evidence": []
2026-06-13T10:36:10.6888782Z         },
2026-06-13T10:36:10.6889034Z         "impl": {
2026-06-13T10:36:10.6889246Z           "complete": true,
2026-06-13T10:36:10.6889466Z           "evidence": [
2026-06-13T10:36:10.6889695Z             {
2026-06-13T10:36:10.6889914Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6890329Z               "line": 140
2026-06-13T10:36:10.6890534Z             },
2026-06-13T10:36:10.6890720Z             {
2026-06-13T10:36:10.6890940Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6891202Z               "line": 165
2026-06-13T10:36:10.6891391Z             },
2026-06-13T10:36:10.6891586Z             {
2026-06-13T10:36:10.6891798Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6892056Z               "line": 199
2026-06-13T10:36:10.6892276Z             },
2026-06-13T10:36:10.6892461Z             {
2026-06-13T10:36:10.6892676Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6892924Z               "line": 241
2026-06-13T10:36:10.6893129Z             },
2026-06-13T10:36:10.6893320Z             {
2026-06-13T10:36:10.6893531Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6893783Z               "line": 269
2026-06-13T10:36:10.6893987Z             },
2026-06-13T10:36:10.6894175Z             {
2026-06-13T10:36:10.6894381Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6894668Z               "line": 300
2026-06-13T10:36:10.6894874Z             },
2026-06-13T10:36:10.6895060Z             {
2026-06-13T10:36:10.6895273Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6895546Z               "line": 5278
2026-06-13T10:36:10.6895752Z             },
2026-06-13T10:36:10.6895936Z             {
2026-06-13T10:36:10.6896137Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6896381Z               "line": 5336
2026-06-13T10:36:10.6896588Z             }
2026-06-13T10:36:10.6896783Z           ]
2026-06-13T10:36:10.6896982Z         },
2026-06-13T10:36:10.6897163Z         "int": {
2026-06-13T10:36:10.6897369Z           "complete": false,
2026-06-13T10:36:10.6897597Z           "evidence": []
2026-06-13T10:36:10.6897802Z         },
2026-06-13T10:36:10.6897984Z         "unit": {
2026-06-13T10:36:10.6898188Z           "complete": true,
2026-06-13T10:36:10.6898422Z           "evidence": [
2026-06-13T10:36:10.6898619Z             {
2026-06-13T10:36:10.6898851Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6899229Z               "line": 419
2026-06-13T10:36:10.6899427Z             },
2026-06-13T10:36:10.6899617Z             {
2026-06-13T10:36:10.6899825Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6900092Z               "line": 436
2026-06-13T10:36:10.6900293Z             },
2026-06-13T10:36:10.6900469Z             {
2026-06-13T10:36:10.6900698Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6900956Z               "line": 472
2026-06-13T10:36:10.6901157Z             },
2026-06-13T10:36:10.6901332Z             {
2026-06-13T10:36:10.6901548Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.6901820Z               "line": 516
2026-06-13T10:36:10.6902018Z             },
2026-06-13T10:36:10.6902208Z             {
2026-06-13T10:36:10.6902411Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6902663Z               "line": 7196
2026-06-13T10:36:10.6902864Z             },
2026-06-13T10:36:10.6903045Z             {
2026-06-13T10:36:10.6903246Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.6903489Z               "line": 7278
2026-06-13T10:36:10.6903856Z             }
2026-06-13T10:36:10.6904047Z           ]
2026-06-13T10:36:10.6904228Z         }
2026-06-13T10:36:10.6904424Z       }
2026-06-13T10:36:10.6904610Z     },
2026-06-13T10:36:10.6904777Z     {
2026-06-13T10:36:10.6905004Z       "id": "REQ-CONV-1",
2026-06-13T10:36:10.6906830Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-13T10:36:10.6908434Z       "requiredStages": [
2026-06-13T10:36:10.6908644Z         "impl",
2026-06-13T10:36:10.6908825Z         "unit"
2026-06-13T10:36:10.6909096Z       ],
2026-06-13T10:36:10.6909282Z       "stages": {
2026-06-13T10:36:10.6909460Z         "doc": {
2026-06-13T10:36:10.6909654Z           "complete": false,
2026-06-13T10:36:10.6909874Z           "evidence": []
2026-06-13T10:36:10.6910092Z         },
2026-06-13T10:36:10.6910266Z         "impl": {
2026-06-13T10:36:10.6910453Z           "complete": true,
2026-06-13T10:36:10.6910652Z           "evidence": [
2026-06-13T10:36:10.6910853Z             {
2026-06-13T10:36:10.6911053Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.6911319Z               "line": 696
2026-06-13T10:36:10.6911516Z             },
2026-06-13T10:36:10.6911697Z             {
2026-06-13T10:36:10.6911916Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.6912192Z               "line": 94
2026-06-13T10:36:10.6912371Z             },
2026-06-13T10:36:10.6912540Z             {
2026-06-13T10:36:10.6912754Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.6913010Z               "line": 345
2026-06-13T10:36:10.6913204Z             },
2026-06-13T10:36:10.6913373Z             {
2026-06-13T10:36:10.6913581Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.6913834Z               "line": 387
2026-06-13T10:36:10.6914025Z             },
2026-06-13T10:36:10.6914196Z             {
2026-06-13T10:36:10.6914406Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.6914660Z               "line": 472
2026-06-13T10:36:10.6914860Z             },
2026-06-13T10:36:10.6915045Z             {
2026-06-13T10:36:10.6915271Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.6915531Z               "line": 667
2026-06-13T10:36:10.6915745Z             },
2026-06-13T10:36:10.6915923Z             {
2026-06-13T10:36:10.6916136Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.6916393Z               "line": 693
2026-06-13T10:36:10.6916595Z             },
2026-06-13T10:36:10.6916780Z             {
2026-06-13T10:36:10.6917018Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.6917285Z               "line": 369
2026-06-13T10:36:10.6917487Z             },
2026-06-13T10:36:10.6917671Z             {
2026-06-13T10:36:10.6917885Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-13T10:36:10.6918145Z               "line": 19
2026-06-13T10:36:10.6918345Z             }
2026-06-13T10:36:10.6918532Z           ]
2026-06-13T10:36:10.6918707Z         },
2026-06-13T10:36:10.6918904Z         "int": {
2026-06-13T10:36:10.6919214Z           "complete": false,
2026-06-13T10:36:10.6919429Z           "evidence": []
2026-06-13T10:36:10.6919647Z         },
2026-06-13T10:36:10.6919838Z         "unit": {
2026-06-13T10:36:10.6920034Z           "complete": true,
2026-06-13T10:36:10.6920258Z           "evidence": [
2026-06-13T10:36:10.6920453Z             {
2026-06-13T10:36:10.6920686Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.6920940Z               "line": 1263
2026-06-13T10:36:10.6921303Z             },
2026-06-13T10:36:10.6921489Z             {
2026-06-13T10:36:10.6921699Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-13T10:36:10.6921957Z               "line": 108
2026-06-13T10:36:10.6922161Z             },
2026-06-13T10:36:10.6922343Z             {
2026-06-13T10:36:10.6922558Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-13T10:36:10.6922820Z               "line": 134
2026-06-13T10:36:10.6923020Z             },
2026-06-13T10:36:10.6923214Z             {
2026-06-13T10:36:10.6923436Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-13T10:36:10.6923699Z               "line": 144
2026-06-13T10:36:10.6924014Z             }
2026-06-13T10:36:10.6924180Z           ]
2026-06-13T10:36:10.6924357Z         }
2026-06-13T10:36:10.6924543Z       }
2026-06-13T10:36:10.6924718Z     },
2026-06-13T10:36:10.6924886Z     {
2026-06-13T10:36:10.6925061Z       "id": "REQ-CONV-2",
2026-06-13T10:36:10.7006185Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-13T10:36:10.7007373Z       "requiredStages": [
2026-06-13T10:36:10.7007590Z         "impl",
2026-06-13T10:36:10.7007781Z         "unit"
2026-06-13T10:36:10.7007959Z       ],
2026-06-13T10:36:10.7008132Z       "stages": {
2026-06-13T10:36:10.7008326Z         "doc": {
2026-06-13T10:36:10.7008513Z           "complete": false,
2026-06-13T10:36:10.7008747Z           "evidence": []
2026-06-13T10:36:10.7009052Z         },
2026-06-13T10:36:10.7009242Z         "impl": {
2026-06-13T10:36:10.7009437Z           "complete": true,
2026-06-13T10:36:10.7009644Z           "evidence": [
2026-06-13T10:36:10.7009872Z             {
2026-06-13T10:36:10.7010148Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7010429Z               "line": 359
2026-06-13T10:36:10.7010624Z             },
2026-06-13T10:36:10.7010800Z             {
2026-06-13T10:36:10.7011020Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T10:36:10.7011288Z               "line": 119
2026-06-13T10:36:10.7011472Z             },
2026-06-13T10:36:10.7011659Z             {
2026-06-13T10:36:10.7011869Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7012155Z               "line": 761
2026-06-13T10:36:10.7012354Z             },
2026-06-13T10:36:10.7012542Z             {
2026-06-13T10:36:10.7012764Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7013024Z               "line": 772
2026-06-13T10:36:10.7013210Z             },
2026-06-13T10:36:10.7013381Z             {
2026-06-13T10:36:10.7013592Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7013878Z               "line": 334
2026-06-13T10:36:10.7014078Z             },
2026-06-13T10:36:10.7014254Z             {
2026-06-13T10:36:10.7014451Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7014722Z               "line": 2402
2026-06-13T10:36:10.7014950Z             },
2026-06-13T10:36:10.7015142Z             {
2026-06-13T10:36:10.7015337Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7015588Z               "line": 2418
2026-06-13T10:36:10.7015797Z             },
2026-06-13T10:36:10.7015981Z             {
2026-06-13T10:36:10.7016187Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7016431Z               "line": 2475
2026-06-13T10:36:10.7016659Z             }
2026-06-13T10:36:10.7016835Z           ]
2026-06-13T10:36:10.7017008Z         },
2026-06-13T10:36:10.7017178Z         "int": {
2026-06-13T10:36:10.7017365Z           "complete": false,
2026-06-13T10:36:10.7017574Z           "evidence": []
2026-06-13T10:36:10.7017784Z         },
2026-06-13T10:36:10.7018000Z         "unit": {
2026-06-13T10:36:10.7018596Z           "complete": true,
2026-06-13T10:36:10.7018824Z           "evidence": [
2026-06-13T10:36:10.7019111Z             {
2026-06-13T10:36:10.7019335Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7019603Z               "line": 889
2026-06-13T10:36:10.7019792Z             },
2026-06-13T10:36:10.7019965Z             {
2026-06-13T10:36:10.7020180Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7020436Z               "line": 1014
2026-06-13T10:36:10.7020627Z             },
2026-06-13T10:36:10.7020790Z             {
2026-06-13T10:36:10.7021008Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T10:36:10.7021413Z               "line": 215
2026-06-13T10:36:10.7021595Z             }
2026-06-13T10:36:10.7021761Z           ]
2026-06-13T10:36:10.7021939Z         }
2026-06-13T10:36:10.7022105Z       }
2026-06-13T10:36:10.7022262Z     },
2026-06-13T10:36:10.7022420Z     {
2026-06-13T10:36:10.7022596Z       "id": "REQ-DAEMON-1",
2026-06-13T10:36:10.7022876Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-13T10:36:10.7023191Z       "requiredStages": [
2026-06-13T10:36:10.7023386Z         "impl",
2026-06-13T10:36:10.7023560Z         "unit",
2026-06-13T10:36:10.7023732Z         "int"
2026-06-13T10:36:10.7023908Z       ],
2026-06-13T10:36:10.7024071Z       "stages": {
2026-06-13T10:36:10.7024246Z         "doc": {
2026-06-13T10:36:10.7024433Z           "complete": false,
2026-06-13T10:36:10.7024653Z           "evidence": []
2026-06-13T10:36:10.7024847Z         },
2026-06-13T10:36:10.7025020Z         "impl": {
2026-06-13T10:36:10.7025210Z           "complete": true,
2026-06-13T10:36:10.7025424Z           "evidence": [
2026-06-13T10:36:10.7025611Z             {
2026-06-13T10:36:10.7025811Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T10:36:10.7026068Z               "line": 12
2026-06-13T10:36:10.7026248Z             },
2026-06-13T10:36:10.7026418Z             {
2026-06-13T10:36:10.7026642Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7026909Z               "line": 16
2026-06-13T10:36:10.7027090Z             },
2026-06-13T10:36:10.7027263Z             {
2026-06-13T10:36:10.7027471Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7027724Z               "line": 259
2026-06-13T10:36:10.7027916Z             },
2026-06-13T10:36:10.7028082Z             {
2026-06-13T10:36:10.7028283Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-13T10:36:10.7028527Z               "line": 15
2026-06-13T10:36:10.7028724Z             },
2026-06-13T10:36:10.7028891Z             {
2026-06-13T10:36:10.7029224Z               "path": "crates/spt/src/api/live.rs",
2026-06-13T10:36:10.7029476Z               "line": 13
2026-06-13T10:36:10.7029661Z             }
2026-06-13T10:36:10.7029848Z           ]
2026-06-13T10:36:10.7030019Z         },
2026-06-13T10:36:10.7030182Z         "int": {
2026-06-13T10:36:10.7030372Z           "complete": true,
2026-06-13T10:36:10.7030587Z           "evidence": [
2026-06-13T10:36:10.7030792Z             {
2026-06-13T10:36:10.7031011Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-13T10:36:10.7031278Z               "line": 32
2026-06-13T10:36:10.7031470Z             }
2026-06-13T10:36:10.7031644Z           ]
2026-06-13T10:36:10.7031812Z         },
2026-06-13T10:36:10.7031973Z         "unit": {
2026-06-13T10:36:10.7032155Z           "complete": true,
2026-06-13T10:36:10.7032351Z           "evidence": [
2026-06-13T10:36:10.7032545Z             {
2026-06-13T10:36:10.7032751Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T10:36:10.7033008Z               "line": 285
2026-06-13T10:36:10.7033203Z             },
2026-06-13T10:36:10.7033362Z             {
2026-06-13T10:36:10.7033561Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T10:36:10.7033799Z               "line": 293
2026-06-13T10:36:10.7033979Z             },
2026-06-13T10:36:10.7034292Z             {
2026-06-13T10:36:10.7034482Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T10:36:10.7034745Z               "line": 309
2026-06-13T10:36:10.7034932Z             },
2026-06-13T10:36:10.7035107Z             {
2026-06-13T10:36:10.7035294Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T10:36:10.7035532Z               "line": 317
2026-06-13T10:36:10.7035722Z             },
2026-06-13T10:36:10.7035890Z             {
2026-06-13T10:36:10.7036094Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7036342Z               "line": 609
2026-06-13T10:36:10.7036530Z             },
2026-06-13T10:36:10.7036823Z             {
2026-06-13T10:36:10.7037035Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7037279Z               "line": 679
2026-06-13T10:36:10.7037508Z             },
2026-06-13T10:36:10.7037678Z             {
2026-06-13T10:36:10.7037874Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-13T10:36:10.7038118Z               "line": 104
2026-06-13T10:36:10.7038313Z             },
2026-06-13T10:36:10.7038495Z             {
2026-06-13T10:36:10.7038689Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-13T10:36:10.7038928Z               "line": 129
2026-06-13T10:36:10.7039228Z             }
2026-06-13T10:36:10.7039414Z           ]
2026-06-13T10:36:10.7039592Z         }
2026-06-13T10:36:10.7039759Z       }
2026-06-13T10:36:10.7039921Z     },
2026-06-13T10:36:10.7040079Z     {
2026-06-13T10:36:10.7040264Z       "id": "REQ-DAEMON-2",
2026-06-13T10:36:10.7040522Z       "title": "Broker/brain split for seamless self-update",
2026-06-13T10:36:10.7040817Z       "requiredStages": [
2026-06-13T10:36:10.7041047Z         "impl",
2026-06-13T10:36:10.7041232Z         "unit",
2026-06-13T10:36:10.7041395Z         "int"
2026-06-13T10:36:10.7041571Z       ],
2026-06-13T10:36:10.7041761Z       "stages": {
2026-06-13T10:36:10.7041949Z         "doc": {
2026-06-13T10:36:10.7042185Z           "complete": true,
2026-06-13T10:36:10.7042419Z           "evidence": [
2026-06-13T10:36:10.7042668Z             {
2026-06-13T10:36:10.7043001Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-13T10:36:10.7043496Z               "line": 250
2026-06-13T10:36:10.7043927Z             }
2026-06-13T10:36:10.7044227Z           ]
2026-06-13T10:36:10.7044520Z         },
2026-06-13T10:36:10.7044896Z         "impl": {
2026-06-13T10:36:10.7045153Z           "complete": true,
2026-06-13T10:36:10.7045530Z           "evidence": [
2026-06-13T10:36:10.7045821Z             {
2026-06-13T10:36:10.7046159Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7046535Z               "line": 23
2026-06-13T10:36:10.7046827Z             },
2026-06-13T10:36:10.7047170Z             {
2026-06-13T10:36:10.7047469Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7047881Z               "line": 730
2026-06-13T10:36:10.7048159Z             },
2026-06-13T10:36:10.7048539Z             {
2026-06-13T10:36:10.7048830Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7049826Z               "line": 783
2026-06-13T10:36:10.7050143Z             },
2026-06-13T10:36:10.7050387Z             {
2026-06-13T10:36:10.7050767Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7051101Z               "line": 968
2026-06-13T10:36:10.7051477Z             },
2026-06-13T10:36:10.7051736Z             {
2026-06-13T10:36:10.7052055Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7052427Z               "line": 32
2026-06-13T10:36:10.7052702Z             },
2026-06-13T10:36:10.7053017Z             {
2026-06-13T10:36:10.7053313Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7053619Z               "line": 255
2026-06-13T10:36:10.7053990Z             },
2026-06-13T10:36:10.7054242Z             {
2026-06-13T10:36:10.7054576Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7055081Z               "line": 687
2026-06-13T10:36:10.7055369Z             },
2026-06-13T10:36:10.7055688Z             {
2026-06-13T10:36:10.7055979Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7056400Z               "line": 953
2026-06-13T10:36:10.7056676Z             },
2026-06-13T10:36:10.7056938Z             {
2026-06-13T10:36:10.7057272Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-13T10:36:10.7057631Z               "line": 11
2026-06-13T10:36:10.7057924Z             },
2026-06-13T10:36:10.7058198Z             {
2026-06-13T10:36:10.7058498Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7059171Z               "line": 146
2026-06-13T10:36:10.7059471Z             },
2026-06-13T10:36:10.7059747Z             {
2026-06-13T10:36:10.7060067Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7060400Z               "line": 274
2026-06-13T10:36:10.7060713Z             },
2026-06-13T10:36:10.7060975Z             {
2026-06-13T10:36:10.7061252Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T10:36:10.7061685Z               "line": 13
2026-06-13T10:36:10.7061947Z             },
2026-06-13T10:36:10.7062253Z             {
2026-06-13T10:36:10.7062553Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7062881Z               "line": 27
2026-06-13T10:36:10.7063239Z             },
2026-06-13T10:36:10.7063492Z             {
2026-06-13T10:36:10.7063896Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7064240Z               "line": 109
2026-06-13T10:36:10.7064507Z             },
2026-06-13T10:36:10.7064855Z             {
2026-06-13T10:36:10.7065150Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7065512Z               "line": 447
2026-06-13T10:36:10.7065796Z             },
2026-06-13T10:36:10.7066064Z             {
2026-06-13T10:36:10.7066454Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7066844Z               "line": 614
2026-06-13T10:36:10.7067183Z             },
2026-06-13T10:36:10.7067532Z             {
2026-06-13T10:36:10.7067885Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7068290Z               "line": 715
2026-06-13T10:36:10.7068589Z             },
2026-06-13T10:36:10.7068930Z             {
2026-06-13T10:36:10.7069321Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7069687Z               "line": 764
2026-06-13T10:36:10.7070031Z             },
2026-06-13T10:36:10.7070317Z             {
2026-06-13T10:36:10.7070593Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7071002Z               "line": 812
2026-06-13T10:36:10.7071315Z             },
2026-06-13T10:36:10.7071663Z             {
2026-06-13T10:36:10.7071963Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T10:36:10.7072292Z               "line": 10
2026-06-13T10:36:10.7072631Z             }
2026-06-13T10:36:10.7072894Z           ]
2026-06-13T10:36:10.7073180Z         },
2026-06-13T10:36:10.7073465Z         "int": {
2026-06-13T10:36:10.7073728Z           "complete": true,
2026-06-13T10:36:10.7074113Z           "evidence": [
2026-06-13T10:36:10.7074376Z             {
2026-06-13T10:36:10.7074715Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-13T10:36:10.7075105Z               "line": 17
2026-06-13T10:36:10.7075372Z             },
2026-06-13T10:36:10.7075682Z             {
2026-06-13T10:36:10.7075987Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T10:36:10.7076427Z               "line": 71
2026-06-13T10:36:10.7076727Z             },
2026-06-13T10:36:10.7076990Z             {
2026-06-13T10:36:10.7077343Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T10:36:10.7077681Z               "line": 91
2026-06-13T10:36:10.7077949Z             },
2026-06-13T10:36:10.7078244Z             {
2026-06-13T10:36:10.7078531Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T10:36:10.7079195Z               "line": 167
2026-06-13T10:36:10.7079495Z             },
2026-06-13T10:36:10.7079758Z             {
2026-06-13T10:36:10.7080101Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T10:36:10.7080453Z               "line": 209
2026-06-13T10:36:10.7080745Z             },
2026-06-13T10:36:10.7081007Z             {
2026-06-13T10:36:10.7081332Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-13T10:36:10.7081725Z               "line": 128
2026-06-13T10:36:10.7082010Z             },
2026-06-13T10:36:10.7082276Z             {
2026-06-13T10:36:10.7082596Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-13T10:36:10.7083068Z               "line": 59
2026-06-13T10:36:10.7083411Z             }
2026-06-13T10:36:10.7083663Z           ]
2026-06-13T10:36:10.7083978Z         },
2026-06-13T10:36:10.7084265Z         "unit": {
2026-06-13T10:36:10.7084531Z           "complete": true,
2026-06-13T10:36:10.7084860Z           "evidence": [
2026-06-13T10:36:10.7085131Z             {
2026-06-13T10:36:10.7085393Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-13T10:36:10.7085780Z               "line": 62
2026-06-13T10:36:10.7086095Z             },
2026-06-13T10:36:10.7086434Z             {
2026-06-13T10:36:10.7086722Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-13T10:36:10.7087049Z               "line": 76
2026-06-13T10:36:10.7087373Z             },
2026-06-13T10:36:10.7087621Z             {
2026-06-13T10:36:10.7087931Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-13T10:36:10.7088274Z               "line": 88
2026-06-13T10:36:10.7088584Z             },
2026-06-13T10:36:10.7088899Z             {
2026-06-13T10:36:10.7089277Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T10:36:10.7089638Z               "line": 294
2026-06-13T10:36:10.7089931Z             },
2026-06-13T10:36:10.7090188Z             {
2026-06-13T10:36:10.7100476Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T10:36:10.7100757Z               "line": 620
2026-06-13T10:36:10.7100954Z             },
2026-06-13T10:36:10.7101125Z             {
2026-06-13T10:36:10.7101330Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T10:36:10.7101574Z               "line": 628
2026-06-13T10:36:10.7101769Z             },
2026-06-13T10:36:10.7101940Z             {
2026-06-13T10:36:10.7102132Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T10:36:10.7102370Z               "line": 645
2026-06-13T10:36:10.7102556Z             },
2026-06-13T10:36:10.7102716Z             {
2026-06-13T10:36:10.7102901Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T10:36:10.7103149Z               "line": 699
2026-06-13T10:36:10.7103339Z             },
2026-06-13T10:36:10.7103511Z             {
2026-06-13T10:36:10.7103702Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7103954Z               "line": 883
2026-06-13T10:36:10.7104140Z             },
2026-06-13T10:36:10.7104307Z             {
2026-06-13T10:36:10.7104498Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7104737Z               "line": 895
2026-06-13T10:36:10.7104922Z             },
2026-06-13T10:36:10.7105085Z             {
2026-06-13T10:36:10.7105286Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T10:36:10.7105536Z               "line": 110
2026-06-13T10:36:10.7105728Z             },
2026-06-13T10:36:10.7105888Z             {
2026-06-13T10:36:10.7106090Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-13T10:36:10.7106347Z               "line": 142
2026-06-13T10:36:10.7106532Z             }
2026-06-13T10:36:10.7106709Z           ]
2026-06-13T10:36:10.7106871Z         }
2026-06-13T10:36:10.7107028Z       }
2026-06-13T10:36:10.7107186Z     },
2026-06-13T10:36:10.7107353Z     {
2026-06-13T10:36:10.7107525Z       "id": "REQ-DAEMON-3",
2026-06-13T10:36:10.7107790Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-13T10:36:10.7108280Z       "requiredStages": [
2026-06-13T10:36:10.7108508Z         "impl",
2026-06-13T10:36:10.7108694Z         "unit",
2026-06-13T10:36:10.7108853Z         "int"
2026-06-13T10:36:10.7109084Z       ],
2026-06-13T10:36:10.7109257Z       "stages": {
2026-06-13T10:36:10.7109443Z         "doc": {
2026-06-13T10:36:10.7109629Z           "complete": false,
2026-06-13T10:36:10.7109835Z           "evidence": []
2026-06-13T10:36:10.7110029Z         },
2026-06-13T10:36:10.7110206Z         "impl": {
2026-06-13T10:36:10.7110393Z           "complete": true,
2026-06-13T10:36:10.7110592Z           "evidence": [
2026-06-13T10:36:10.7110763Z             {
2026-06-13T10:36:10.7111094Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7111347Z               "line": 14
2026-06-13T10:36:10.7111533Z             },
2026-06-13T10:36:10.7111705Z             {
2026-06-13T10:36:10.7111909Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-13T10:36:10.7112176Z               "line": 11
2026-06-13T10:36:10.7112359Z             },
2026-06-13T10:36:10.7112529Z             {
2026-06-13T10:36:10.7112721Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T10:36:10.7112959Z               "line": 262
2026-06-13T10:36:10.7113149Z             },
2026-06-13T10:36:10.7113310Z             {
2026-06-13T10:36:10.7113494Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7113738Z               "line": 1433
2026-06-13T10:36:10.7113932Z             },
2026-06-13T10:36:10.7114100Z             {
2026-06-13T10:36:10.7114281Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7114504Z               "line": 3362
2026-06-13T10:36:10.7114700Z             },
2026-06-13T10:36:10.7114867Z             {
2026-06-13T10:36:10.7115048Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7115273Z               "line": 3383
2026-06-13T10:36:10.7115473Z             }
2026-06-13T10:36:10.7115631Z           ]
2026-06-13T10:36:10.7115787Z         },
2026-06-13T10:36:10.7115960Z         "int": {
2026-06-13T10:36:10.7116148Z           "complete": true,
2026-06-13T10:36:10.7116349Z           "evidence": [
2026-06-13T10:36:10.7116530Z             {
2026-06-13T10:36:10.7116740Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T10:36:10.7117007Z               "line": 49
2026-06-13T10:36:10.7117194Z             },
2026-06-13T10:36:10.7117364Z             {
2026-06-13T10:36:10.7117565Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T10:36:10.7117809Z               "line": 439
2026-06-13T10:36:10.7117998Z             }
2026-06-13T10:36:10.7118162Z           ]
2026-06-13T10:36:10.7118332Z         },
2026-06-13T10:36:10.7118498Z         "unit": {
2026-06-13T10:36:10.7118686Z           "complete": true,
2026-06-13T10:36:10.7118888Z           "evidence": [
2026-06-13T10:36:10.7119178Z             {
2026-06-13T10:36:10.7119378Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7119626Z               "line": 767
2026-06-13T10:36:10.7119827Z             },
2026-06-13T10:36:10.7119993Z             {
2026-06-13T10:36:10.7120175Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7120409Z               "line": 8274
2026-06-13T10:36:10.7120594Z             }
2026-06-13T10:36:10.7120757Z           ]
2026-06-13T10:36:10.7120914Z         }
2026-06-13T10:36:10.7121076Z       }
2026-06-13T10:36:10.7121231Z     },
2026-06-13T10:36:10.7121389Z     {
2026-06-13T10:36:10.7121553Z       "id": "REQ-DAEMON-4",
2026-06-13T10:36:10.7121783Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-13T10:36:10.7122046Z       "requiredStages": [
2026-06-13T10:36:10.7122245Z         "impl",
2026-06-13T10:36:10.7122422Z         "unit",
2026-06-13T10:36:10.7122589Z         "int"
2026-06-13T10:36:10.7122756Z       ],
2026-06-13T10:36:10.7122919Z       "stages": {
2026-06-13T10:36:10.7123089Z         "doc": {
2026-06-13T10:36:10.7123267Z           "complete": false,
2026-06-13T10:36:10.7123470Z           "evidence": []
2026-06-13T10:36:10.7123789Z         },
2026-06-13T10:36:10.7123956Z         "impl": {
2026-06-13T10:36:10.7124135Z           "complete": true,
2026-06-13T10:36:10.7124331Z           "evidence": [
2026-06-13T10:36:10.7124512Z             {
2026-06-13T10:36:10.7124716Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7124975Z               "line": 414
2026-06-13T10:36:10.7125166Z             },
2026-06-13T10:36:10.7125342Z             {
2026-06-13T10:36:10.7125547Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7125796Z               "line": 479
2026-06-13T10:36:10.7125981Z             },
2026-06-13T10:36:10.7126261Z             {
2026-06-13T10:36:10.7126458Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7126703Z               "line": 501
2026-06-13T10:36:10.7126891Z             }
2026-06-13T10:36:10.7127057Z           ]
2026-06-13T10:36:10.7127229Z         },
2026-06-13T10:36:10.7127396Z         "int": {
2026-06-13T10:36:10.7127586Z           "complete": true,
2026-06-13T10:36:10.7127801Z           "evidence": [
2026-06-13T10:36:10.7127996Z             {
2026-06-13T10:36:10.7128216Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-13T10:36:10.7128482Z               "line": 37
2026-06-13T10:36:10.7128674Z             }
2026-06-13T10:36:10.7128858Z           ]
2026-06-13T10:36:10.7129246Z         },
2026-06-13T10:36:10.7129415Z         "unit": {
2026-06-13T10:36:10.7129595Z           "complete": true,
2026-06-13T10:36:10.7129805Z           "evidence": [
2026-06-13T10:36:10.7129996Z             {
2026-06-13T10:36:10.7130196Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T10:36:10.7130458Z               "line": 428
2026-06-13T10:36:10.7130640Z             },
2026-06-13T10:36:10.7130816Z             {
2026-06-13T10:36:10.7131016Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7131266Z               "line": 907
2026-06-13T10:36:10.7131464Z             },
2026-06-13T10:36:10.7131632Z             {
2026-06-13T10:36:10.7131835Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7132090Z               "line": 977
2026-06-13T10:36:10.7132277Z             },
2026-06-13T10:36:10.7132452Z             {
2026-06-13T10:36:10.7132667Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7132915Z               "line": 1007
2026-06-13T10:36:10.7133106Z             },
2026-06-13T10:36:10.7133273Z             {
2026-06-13T10:36:10.7133479Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7133730Z               "line": 1040
2026-06-13T10:36:10.7133921Z             }
2026-06-13T10:36:10.7134094Z           ]
2026-06-13T10:36:10.7134264Z         }
2026-06-13T10:36:10.7134425Z       }
2026-06-13T10:36:10.7134581Z     },
2026-06-13T10:36:10.7134728Z     {
2026-06-13T10:36:10.7134901Z       "id": "REQ-DAEMON-5",
2026-06-13T10:36:10.7136612Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-13T10:36:10.7137907Z       "requiredStages": [
2026-06-13T10:36:10.7138127Z         "impl",
2026-06-13T10:36:10.7138324Z         "unit"
2026-06-13T10:36:10.7138518Z       ],
2026-06-13T10:36:10.7138704Z       "stages": {
2026-06-13T10:36:10.7138901Z         "doc": {
2026-06-13T10:36:10.7139234Z           "complete": false,
2026-06-13T10:36:10.7139461Z           "evidence": []
2026-06-13T10:36:10.7139661Z         },
2026-06-13T10:36:10.7139840Z         "impl": {
2026-06-13T10:36:10.7140022Z           "complete": true,
2026-06-13T10:36:10.7140227Z           "evidence": [
2026-06-13T10:36:10.7140431Z             {
2026-06-13T10:36:10.7140809Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7141099Z               "line": 476
2026-06-13T10:36:10.7141300Z             },
2026-06-13T10:36:10.7141477Z             {
2026-06-13T10:36:10.7141700Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7141947Z               "line": 769
2026-06-13T10:36:10.7142145Z             },
2026-06-13T10:36:10.7142319Z             {
2026-06-13T10:36:10.7142532Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7142803Z               "line": 782
2026-06-13T10:36:10.7143007Z             },
2026-06-13T10:36:10.7143346Z             {
2026-06-13T10:36:10.7143566Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7143823Z               "line": 800
2026-06-13T10:36:10.7144024Z             },
2026-06-13T10:36:10.7144209Z             {
2026-06-13T10:36:10.7144420Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7144688Z               "line": 841
2026-06-13T10:36:10.7144900Z             }
2026-06-13T10:36:10.7145080Z           ]
2026-06-13T10:36:10.7145255Z         },
2026-06-13T10:36:10.7145428Z         "int": {
2026-06-13T10:36:10.7145617Z           "complete": false,
2026-06-13T10:36:10.7145832Z           "evidence": []
2026-06-13T10:36:10.7146028Z         },
2026-06-13T10:36:10.7146194Z         "unit": {
2026-06-13T10:36:10.7146381Z           "complete": true,
2026-06-13T10:36:10.7146581Z           "evidence": [
2026-06-13T10:36:10.7146781Z             {
2026-06-13T10:36:10.7146991Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7147268Z               "line": 1189
2026-06-13T10:36:10.7147463Z             },
2026-06-13T10:36:10.7147649Z             {
2026-06-13T10:36:10.7147848Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7148100Z               "line": 1213
2026-06-13T10:36:10.7148292Z             },
2026-06-13T10:36:10.7148453Z             {
2026-06-13T10:36:10.7148664Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7148936Z               "line": 1239
2026-06-13T10:36:10.7149222Z             }
2026-06-13T10:36:10.7149402Z           ]
2026-06-13T10:36:10.7149589Z         }
2026-06-13T10:36:10.7149765Z       }
2026-06-13T10:36:10.7149941Z     },
2026-06-13T10:36:10.7150121Z     {
2026-06-13T10:36:10.7150305Z       "id": "REQ-DAEMON-6",
2026-06-13T10:36:10.7152409Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-13T10:36:10.7154159Z       "requiredStages": [
2026-06-13T10:36:10.7154388Z         "impl",
2026-06-13T10:36:10.7154570Z         "unit"
2026-06-13T10:36:10.7154750Z       ],
2026-06-13T10:36:10.7154923Z       "stages": {
2026-06-13T10:36:10.7155103Z         "doc": {
2026-06-13T10:36:10.7155286Z           "complete": false,
2026-06-13T10:36:10.7155498Z           "evidence": []
2026-06-13T10:36:10.7155687Z         },
2026-06-13T10:36:10.7155863Z         "impl": {
2026-06-13T10:36:10.7156059Z           "complete": true,
2026-06-13T10:36:10.7156264Z           "evidence": [
2026-06-13T10:36:10.7156473Z             {
2026-06-13T10:36:10.7156693Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7156969Z               "line": 426
2026-06-13T10:36:10.7157171Z             },
2026-06-13T10:36:10.7157365Z             {
2026-06-13T10:36:10.7157752Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7158032Z               "line": 457
2026-06-13T10:36:10.7158233Z             },
2026-06-13T10:36:10.7158417Z             {
2026-06-13T10:36:10.7158627Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T10:36:10.7158895Z               "line": 55
2026-06-13T10:36:10.7159181Z             },
2026-06-13T10:36:10.7159366Z             {
2026-06-13T10:36:10.7159572Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T10:36:10.7159834Z               "line": 70
2026-06-13T10:36:10.7160045Z             },
2026-06-13T10:36:10.7160225Z             {
2026-06-13T10:36:10.7160426Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7160795Z               "line": 1487
2026-06-13T10:36:10.7161004Z             },
2026-06-13T10:36:10.7161189Z             {
2026-06-13T10:36:10.7161386Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7161638Z               "line": 1513
2026-06-13T10:36:10.7161852Z             }
2026-06-13T10:36:10.7162039Z           ]
2026-06-13T10:36:10.7162215Z         },
2026-06-13T10:36:10.7162400Z         "int": {
2026-06-13T10:36:10.7162592Z           "complete": false,
2026-06-13T10:36:10.7162815Z           "evidence": []
2026-06-13T10:36:10.7163016Z         },
2026-06-13T10:36:10.7163183Z         "unit": {
2026-06-13T10:36:10.7163377Z           "complete": true,
2026-06-13T10:36:10.7163592Z           "evidence": [
2026-06-13T10:36:10.7163789Z             {
2026-06-13T10:36:10.7164000Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T10:36:10.7164272Z               "line": 288
2026-06-13T10:36:10.7164476Z             },
2026-06-13T10:36:10.7164676Z             {
2026-06-13T10:36:10.7164896Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T10:36:10.7165178Z               "line": 299
2026-06-13T10:36:10.7165392Z             },
2026-06-13T10:36:10.7165573Z             {
2026-06-13T10:36:10.7165788Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T10:36:10.7166067Z               "line": 325
2026-06-13T10:36:10.7166285Z             },
2026-06-13T10:36:10.7166490Z             {
2026-06-13T10:36:10.7166724Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T10:36:10.7166995Z               "line": 351
2026-06-13T10:36:10.7167234Z             }
2026-06-13T10:36:10.7167435Z           ]
2026-06-13T10:36:10.7167629Z         }
2026-06-13T10:36:10.7167806Z       }
2026-06-13T10:36:10.7167987Z     },
2026-06-13T10:36:10.7168163Z     {
2026-06-13T10:36:10.7168370Z       "id": "REQ-DAEMON-7",
2026-06-13T10:36:10.7170032Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-13T10:36:10.7171378Z       "requiredStages": [
2026-06-13T10:36:10.7171597Z         "impl",
2026-06-13T10:36:10.7171792Z         "unit"
2026-06-13T10:36:10.7171978Z       ],
2026-06-13T10:36:10.7172184Z       "stages": {
2026-06-13T10:36:10.7172384Z         "doc": {
2026-06-13T10:36:10.7172594Z           "complete": false,
2026-06-13T10:36:10.7172861Z           "evidence": []
2026-06-13T10:36:10.7173094Z         },
2026-06-13T10:36:10.7173280Z         "impl": {
2026-06-13T10:36:10.7173481Z           "complete": true,
2026-06-13T10:36:10.7173695Z           "evidence": [
2026-06-13T10:36:10.7173905Z             {
2026-06-13T10:36:10.7174123Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7174387Z               "line": 476
2026-06-13T10:36:10.7174588Z             },
2026-06-13T10:36:10.7174785Z             {
2026-06-13T10:36:10.7175007Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7175265Z               "line": 601
2026-06-13T10:36:10.7175623Z             },
2026-06-13T10:36:10.7175818Z             {
2026-06-13T10:36:10.7176557Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T10:36:10.7176969Z               "line": 89
2026-06-13T10:36:10.7177269Z             },
2026-06-13T10:36:10.7177574Z             {
2026-06-13T10:36:10.7188212Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7188488Z               "line": 1434
2026-06-13T10:36:10.7188740Z             }
2026-06-13T10:36:10.7188926Z           ]
2026-06-13T10:36:10.7189199Z         },
2026-06-13T10:36:10.7189379Z         "int": {
2026-06-13T10:36:10.7189584Z           "complete": false,
2026-06-13T10:36:10.7190050Z           "evidence": []
2026-06-13T10:36:10.7190242Z         },
2026-06-13T10:36:10.7190422Z         "unit": {
2026-06-13T10:36:10.7190627Z           "complete": true,
2026-06-13T10:36:10.7190857Z           "evidence": [
2026-06-13T10:36:10.7191056Z             {
2026-06-13T10:36:10.7191280Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T10:36:10.7191543Z               "line": 314
2026-06-13T10:36:10.7191725Z             },
2026-06-13T10:36:10.7191820Z             {
2026-06-13T10:36:10.7191929Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7192035Z               "line": 5949
2026-06-13T10:36:10.7192120Z             }
2026-06-13T10:36:10.7192219Z           ]
2026-06-13T10:36:10.7192304Z         }
2026-06-13T10:36:10.7192409Z       }
2026-06-13T10:36:10.7192508Z     },
2026-06-13T10:36:10.7192593Z     {
2026-06-13T10:36:10.7192708Z       "id": "REQ-DAEMON-8",
2026-06-13T10:36:10.7193743Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-13T10:36:10.7193870Z       "requiredStages": [
2026-06-13T10:36:10.7193977Z         "impl",
2026-06-13T10:36:10.7194062Z         "unit"
2026-06-13T10:36:10.7194157Z       ],
2026-06-13T10:36:10.7194248Z       "stages": {
2026-06-13T10:36:10.7194339Z         "doc": {
2026-06-13T10:36:10.7194433Z           "complete": false,
2026-06-13T10:36:10.7194549Z           "evidence": []
2026-06-13T10:36:10.7194635Z         },
2026-06-13T10:36:10.7194715Z         "impl": {
2026-06-13T10:36:10.7194824Z           "complete": true,
2026-06-13T10:36:10.7194912Z           "evidence": [
2026-06-13T10:36:10.7195011Z             {
2026-06-13T10:36:10.7195138Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7195253Z               "line": 376
2026-06-13T10:36:10.7195352Z             },
2026-06-13T10:36:10.7195431Z             {
2026-06-13T10:36:10.7195565Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T10:36:10.7195647Z               "line": 56
2026-06-13T10:36:10.7195741Z             }
2026-06-13T10:36:10.7195832Z           ]
2026-06-13T10:36:10.7195938Z         },
2026-06-13T10:36:10.7196042Z         "int": {
2026-06-13T10:36:10.7196142Z           "complete": false,
2026-06-13T10:36:10.7196248Z           "evidence": []
2026-06-13T10:36:10.7196334Z         },
2026-06-13T10:36:10.7196437Z         "unit": {
2026-06-13T10:36:10.7196534Z           "complete": true,
2026-06-13T10:36:10.7196642Z           "evidence": [
2026-06-13T10:36:10.7196747Z             {
2026-06-13T10:36:10.7196873Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T10:36:10.7196971Z               "line": 288
2026-06-13T10:36:10.7197057Z             },
2026-06-13T10:36:10.7197149Z             {
2026-06-13T10:36:10.7197281Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T10:36:10.7197387Z               "line": 325
2026-06-13T10:36:10.7197478Z             }
2026-06-13T10:36:10.7197564Z           ]
2026-06-13T10:36:10.7197667Z         }
2026-06-13T10:36:10.7197747Z       }
2026-06-13T10:36:10.7197858Z     },
2026-06-13T10:36:10.7197941Z     {
2026-06-13T10:36:10.7198175Z       "id": "REQ-DAEMON-9",
2026-06-13T10:36:10.7205553Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-13T10:36:10.7205870Z       "requiredStages": [
2026-06-13T10:36:10.7205959Z         "impl",
2026-06-13T10:36:10.7206063Z         "unit"
2026-06-13T10:36:10.7206154Z       ],
2026-06-13T10:36:10.7206236Z       "stages": {
2026-06-13T10:36:10.7206330Z         "doc": {
2026-06-13T10:36:10.7206431Z           "complete": false,
2026-06-13T10:36:10.7206531Z           "evidence": []
2026-06-13T10:36:10.7206621Z         },
2026-06-13T10:36:10.7206716Z         "impl": {
2026-06-13T10:36:10.7206813Z           "complete": true,
2026-06-13T10:36:10.7206917Z           "evidence": [
2026-06-13T10:36:10.7207012Z             {
2026-06-13T10:36:10.7207147Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7207232Z               "line": 262
2026-06-13T10:36:10.7207312Z             },
2026-06-13T10:36:10.7207414Z             {
2026-06-13T10:36:10.7207541Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7207637Z               "line": 306
2026-06-13T10:36:10.7207724Z             },
2026-06-13T10:36:10.7207809Z             {
2026-06-13T10:36:10.7207947Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7208034Z               "line": 190
2026-06-13T10:36:10.7208124Z             },
2026-06-13T10:36:10.7208208Z             {
2026-06-13T10:36:10.7208337Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7208432Z               "line": 275
2026-06-13T10:36:10.7208520Z             },
2026-06-13T10:36:10.7208601Z             {
2026-06-13T10:36:10.7208711Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7208812Z               "line": 312
2026-06-13T10:36:10.7208892Z             },
2026-06-13T10:36:10.7209079Z             {
2026-06-13T10:36:10.7209187Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7209283Z               "line": 1542
2026-06-13T10:36:10.7209379Z             }
2026-06-13T10:36:10.7209460Z           ]
2026-06-13T10:36:10.7209555Z         },
2026-06-13T10:36:10.7209642Z         "int": {
2026-06-13T10:36:10.7209755Z           "complete": false,
2026-06-13T10:36:10.7209855Z           "evidence": []
2026-06-13T10:36:10.7209942Z         },
2026-06-13T10:36:10.7210033Z         "unit": {
2026-06-13T10:36:10.7210123Z           "complete": true,
2026-06-13T10:36:10.7210218Z           "evidence": [
2026-06-13T10:36:10.7210295Z             {
2026-06-13T10:36:10.7210413Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7210494Z               "line": 723
2026-06-13T10:36:10.7210577Z             },
2026-06-13T10:36:10.7210658Z             {
2026-06-13T10:36:10.7210756Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7210857Z               "line": 8139
2026-06-13T10:36:10.7210939Z             }
2026-06-13T10:36:10.7211038Z           ]
2026-06-13T10:36:10.7211123Z         }
2026-06-13T10:36:10.7211204Z       }
2026-06-13T10:36:10.7211290Z     },
2026-06-13T10:36:10.7211371Z     {
2026-06-13T10:36:10.7211461Z       "id": "REQ-DOCS-1",
2026-06-13T10:36:10.7211657Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-13T10:36:10.7211882Z       "requiredStages": [
2026-06-13T10:36:10.7211977Z         "doc",
2026-06-13T10:36:10.7212057Z         "impl"
2026-06-13T10:36:10.7212158Z       ],
2026-06-13T10:36:10.7212240Z       "stages": {
2026-06-13T10:36:10.7212339Z         "doc": {
2026-06-13T10:36:10.7212434Z           "complete": true,
2026-06-13T10:36:10.7212535Z           "evidence": [
2026-06-13T10:36:10.7212634Z             {
2026-06-13T10:36:10.7212744Z               "path": "docs-site/src/index.md",
2026-06-13T10:36:10.7212845Z               "line": 50
2026-06-13T10:36:10.7212935Z             }
2026-06-13T10:36:10.7213011Z           ]
2026-06-13T10:36:10.7213097Z         },
2026-06-13T10:36:10.7213297Z         "impl": {
2026-06-13T10:36:10.7213401Z           "complete": true,
2026-06-13T10:36:10.7213482Z           "evidence": [
2026-06-13T10:36:10.7213567Z             {
2026-06-13T10:36:10.7213694Z               "path": ".github/workflows/docs-publish.yml",
2026-06-13T10:36:10.7213794Z               "line": 12
2026-06-13T10:36:10.7213881Z             },
2026-06-13T10:36:10.7213981Z             {
2026-06-13T10:36:10.7214099Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.7214191Z               "line": 14
2026-06-13T10:36:10.7214276Z             }
2026-06-13T10:36:10.7214347Z           ]
2026-06-13T10:36:10.7214439Z         },
2026-06-13T10:36:10.7214539Z         "int": {
2026-06-13T10:36:10.7214643Z           "complete": false,
2026-06-13T10:36:10.7214734Z           "evidence": []
2026-06-13T10:36:10.7214820Z         },
2026-06-13T10:36:10.7214910Z         "unit": {
2026-06-13T10:36:10.7215005Z           "complete": false,
2026-06-13T10:36:10.7215107Z           "evidence": []
2026-06-13T10:36:10.7215196Z         }
2026-06-13T10:36:10.7215287Z       }
2026-06-13T10:36:10.7215373Z     },
2026-06-13T10:36:10.7215459Z     {
2026-06-13T10:36:10.7215558Z       "id": "REQ-DOCS-2",
2026-06-13T10:36:10.7215722Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-13T10:36:10.7215826Z       "requiredStages": [
2026-06-13T10:36:10.7215907Z         "doc",
2026-06-13T10:36:10.7215998Z         "int"
2026-06-13T10:36:10.7216084Z       ],
2026-06-13T10:36:10.7216169Z       "stages": {
2026-06-13T10:36:10.7216258Z         "doc": {
2026-06-13T10:36:10.7216349Z           "complete": true,
2026-06-13T10:36:10.7216444Z           "evidence": [
2026-06-13T10:36:10.7216524Z             {
2026-06-13T10:36:10.7216700Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-13T10:36:10.7216791Z               "line": 3
2026-06-13T10:36:10.7216876Z             },
2026-06-13T10:36:10.7216962Z             {
2026-06-13T10:36:10.7217087Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-13T10:36:10.7217186Z               "line": 3
2026-06-13T10:36:10.7217272Z             },
2026-06-13T10:36:10.7217358Z             {
2026-06-13T10:36:10.7217496Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-13T10:36:10.7217582Z               "line": 3
2026-06-13T10:36:10.7217678Z             }
2026-06-13T10:36:10.7217763Z           ]
2026-06-13T10:36:10.7217849Z         },
2026-06-13T10:36:10.7217940Z         "impl": {
2026-06-13T10:36:10.7218036Z           "complete": false,
2026-06-13T10:36:10.7218135Z           "evidence": []
2026-06-13T10:36:10.7218221Z         },
2026-06-13T10:36:10.7218312Z         "int": {
2026-06-13T10:36:10.7218407Z           "complete": true,
2026-06-13T10:36:10.7218502Z           "evidence": [
2026-06-13T10:36:10.7218585Z             {
2026-06-13T10:36:10.7218717Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-13T10:36:10.7218811Z               "line": 14
2026-06-13T10:36:10.7218902Z             }
2026-06-13T10:36:10.7219067Z           ]
2026-06-13T10:36:10.7219156Z         },
2026-06-13T10:36:10.7219247Z         "unit": {
2026-06-13T10:36:10.7219339Z           "complete": false,
2026-06-13T10:36:10.7219447Z           "evidence": []
2026-06-13T10:36:10.7219553Z         }
2026-06-13T10:36:10.7219634Z       }
2026-06-13T10:36:10.7219829Z     },
2026-06-13T10:36:10.7219916Z     {
2026-06-13T10:36:10.7220016Z       "id": "REQ-DOCS-3",
2026-06-13T10:36:10.7220240Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-13T10:36:10.7220344Z       "requiredStages": [
2026-06-13T10:36:10.7220434Z         "doc"
2026-06-13T10:36:10.7220516Z       ],
2026-06-13T10:36:10.7220611Z       "stages": {
2026-06-13T10:36:10.7220692Z         "doc": {
2026-06-13T10:36:10.7220792Z           "complete": true,
2026-06-13T10:36:10.7220884Z           "evidence": [
2026-06-13T10:36:10.7220977Z             {
2026-06-13T10:36:10.7221093Z               "path": "docs-site/src/index.md",
2026-06-13T10:36:10.7221288Z               "line": 42
2026-06-13T10:36:10.7221379Z             }
2026-06-13T10:36:10.7221461Z           ]
2026-06-13T10:36:10.7221556Z         },
2026-06-13T10:36:10.7221645Z         "impl": {
2026-06-13T10:36:10.7221744Z           "complete": false,
2026-06-13T10:36:10.7221841Z           "evidence": []
2026-06-13T10:36:10.7221931Z         },
2026-06-13T10:36:10.7222026Z         "int": {
2026-06-13T10:36:10.7222112Z           "complete": false,
2026-06-13T10:36:10.7222208Z           "evidence": []
2026-06-13T10:36:10.7222288Z         },
2026-06-13T10:36:10.7222383Z         "unit": {
2026-06-13T10:36:10.7222480Z           "complete": false,
2026-06-13T10:36:10.7222566Z           "evidence": []
2026-06-13T10:36:10.7222655Z         }
2026-06-13T10:36:10.7222742Z       }
2026-06-13T10:36:10.7222828Z     },
2026-06-13T10:36:10.7222913Z     {
2026-06-13T10:36:10.7223013Z       "id": "REQ-DOCS-4",
2026-06-13T10:36:10.7223213Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-13T10:36:10.7223314Z       "requiredStages": [
2026-06-13T10:36:10.7223405Z         "doc",
2026-06-13T10:36:10.7223490Z         "impl",
2026-06-13T10:36:10.7223580Z         "unit"
2026-06-13T10:36:10.7223662Z       ],
2026-06-13T10:36:10.7223754Z       "stages": {
2026-06-13T10:36:10.7223842Z         "doc": {
2026-06-13T10:36:10.7223942Z           "complete": true,
2026-06-13T10:36:10.7224032Z           "evidence": [
2026-06-13T10:36:10.7224113Z             {
2026-06-13T10:36:10.7224231Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-13T10:36:10.7224316Z               "line": 35
2026-06-13T10:36:10.7224403Z             }
2026-06-13T10:36:10.7224493Z           ]
2026-06-13T10:36:10.7224574Z         },
2026-06-13T10:36:10.7224664Z         "impl": {
2026-06-13T10:36:10.7224756Z           "complete": true,
2026-06-13T10:36:10.7224850Z           "evidence": [
2026-06-13T10:36:10.7224931Z             {
2026-06-13T10:36:10.7225061Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7225160Z               "line": 596
2026-06-13T10:36:10.7225245Z             },
2026-06-13T10:36:10.7225333Z             {
2026-06-13T10:36:10.7225442Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.7225537Z               "line": 15
2026-06-13T10:36:10.7225623Z             }
2026-06-13T10:36:10.7225718Z           ]
2026-06-13T10:36:10.7225799Z         },
2026-06-13T10:36:10.7225885Z         "int": {
2026-06-13T10:36:10.7225982Z           "complete": false,
2026-06-13T10:36:10.7226071Z           "evidence": []
2026-06-13T10:36:10.7226157Z         },
2026-06-13T10:36:10.7226239Z         "unit": {
2026-06-13T10:36:10.7226329Z           "complete": true,
2026-06-13T10:36:10.7226424Z           "evidence": [
2026-06-13T10:36:10.7226501Z             {
2026-06-13T10:36:10.7226626Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7226719Z               "line": 1102
2026-06-13T10:36:10.7226799Z             }
2026-06-13T10:36:10.7226885Z           ]
2026-06-13T10:36:10.7226966Z         }
2026-06-13T10:36:10.7227050Z       }
2026-06-13T10:36:10.7227131Z     },
2026-06-13T10:36:10.7227212Z     {
2026-06-13T10:36:10.7227299Z       "id": "REQ-DOCS-5",
2026-06-13T10:36:10.7227503Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-13T10:36:10.7227694Z       "requiredStages": [
2026-06-13T10:36:10.7227793Z         "impl",
2026-06-13T10:36:10.7227876Z         "int"
2026-06-13T10:36:10.7227952Z       ],
2026-06-13T10:36:10.7228033Z       "stages": {
2026-06-13T10:36:10.7228113Z         "doc": {
2026-06-13T10:36:10.7228214Z           "complete": false,
2026-06-13T10:36:10.7228304Z           "evidence": []
2026-06-13T10:36:10.7228390Z         },
2026-06-13T10:36:10.7228481Z         "impl": {
2026-06-13T10:36:10.7228562Z           "complete": true,
2026-06-13T10:36:10.7228652Z           "evidence": [
2026-06-13T10:36:10.7228733Z             {
2026-06-13T10:36:10.7228863Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7229140Z               "line": 597
2026-06-13T10:36:10.7229220Z             },
2026-06-13T10:36:10.7229310Z             {
2026-06-13T10:36:10.7229419Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.7229504Z               "line": 113
2026-06-13T10:36:10.7229580Z             }
2026-06-13T10:36:10.7229674Z           ]
2026-06-13T10:36:10.7229759Z         },
2026-06-13T10:36:10.7229846Z         "int": {
2026-06-13T10:36:10.7229942Z           "complete": true,
2026-06-13T10:36:10.7230031Z           "evidence": [
2026-06-13T10:36:10.7230113Z             {
2026-06-13T10:36:10.7230218Z               "path": ".github/workflows/ci.yml",
2026-06-13T10:36:10.7230313Z               "line": 86
2026-06-13T10:36:10.7230398Z             },
2026-06-13T10:36:10.7230490Z             {
2026-06-13T10:36:10.7230618Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7230704Z               "line": 1139
2026-06-13T10:36:10.7230781Z             }
2026-06-13T10:36:10.7230866Z           ]
2026-06-13T10:36:10.7230952Z         },
2026-06-13T10:36:10.7231028Z         "unit": {
2026-06-13T10:36:10.7231129Z           "complete": false,
2026-06-13T10:36:10.7231219Z           "evidence": []
2026-06-13T10:36:10.7231304Z         }
2026-06-13T10:36:10.7231396Z       }
2026-06-13T10:36:10.7231477Z     },
2026-06-13T10:36:10.7231577Z     {
2026-06-13T10:36:10.7231672Z       "id": "REQ-DOCS-6",
2026-06-13T10:36:10.7232002Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-13T10:36:10.7232102Z       "requiredStages": [
2026-06-13T10:36:10.7232186Z         "impl",
2026-06-13T10:36:10.7232276Z         "unit",
2026-06-13T10:36:10.7232357Z         "int"
2026-06-13T10:36:10.7232449Z       ],
2026-06-13T10:36:10.7232534Z       "stages": {
2026-06-13T10:36:10.7232619Z         "doc": {
2026-06-13T10:36:10.7232721Z           "complete": true,
2026-06-13T10:36:10.7232807Z           "evidence": [
2026-06-13T10:36:10.7232905Z             {
2026-06-13T10:36:10.7233036Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-13T10:36:10.7233126Z               "line": 4
2026-06-13T10:36:10.7233210Z             }
2026-06-13T10:36:10.7233297Z           ]
2026-06-13T10:36:10.7233388Z         },
2026-06-13T10:36:10.7233478Z         "impl": {
2026-06-13T10:36:10.7233578Z           "complete": true,
2026-06-13T10:36:10.7233665Z           "evidence": [
2026-06-13T10:36:10.7233754Z             {
2026-06-13T10:36:10.7233859Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7233956Z               "line": 4245
2026-06-13T10:36:10.7234046Z             }
2026-06-13T10:36:10.7234131Z           ]
2026-06-13T10:36:10.7234217Z         },
2026-06-13T10:36:10.7234300Z         "int": {
2026-06-13T10:36:10.7234398Z           "complete": true,
2026-06-13T10:36:10.7234483Z           "evidence": [
2026-06-13T10:36:10.7234578Z             {
2026-06-13T10:36:10.7234701Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-13T10:36:10.7234796Z               "line": 39
2026-06-13T10:36:10.7234881Z             }
2026-06-13T10:36:10.7234963Z           ]
2026-06-13T10:36:10.7235053Z         },
2026-06-13T10:36:10.7235139Z         "unit": {
2026-06-13T10:36:10.7235239Z           "complete": true,
2026-06-13T10:36:10.7235439Z           "evidence": [
2026-06-13T10:36:10.7235525Z             {
2026-06-13T10:36:10.7235635Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7235725Z               "line": 8301
2026-06-13T10:36:10.7235815Z             }
2026-06-13T10:36:10.7235898Z           ]
2026-06-13T10:36:10.7235988Z         }
2026-06-13T10:36:10.7236073Z       }
2026-06-13T10:36:10.7236154Z     },
2026-06-13T10:36:10.7236246Z     {
2026-06-13T10:36:10.7236336Z       "id": "REQ-EP-1",
2026-06-13T10:36:10.7236474Z       "title": "Day-one endpoint types; open type system",
2026-06-13T10:36:10.7236565Z       "requiredStages": [
2026-06-13T10:36:10.7236659Z         "impl",
2026-06-13T10:36:10.7236847Z         "unit"
2026-06-13T10:36:10.7236927Z       ],
2026-06-13T10:36:10.7237022Z       "stages": {
2026-06-13T10:36:10.7237109Z         "doc": {
2026-06-13T10:36:10.7237205Z           "complete": false,
2026-06-13T10:36:10.7237298Z           "evidence": []
2026-06-13T10:36:10.7237392Z         },
2026-06-13T10:36:10.7237493Z         "impl": {
2026-06-13T10:36:10.7237587Z           "complete": true,
2026-06-13T10:36:10.7237686Z           "evidence": [
2026-06-13T10:36:10.7237767Z             {
2026-06-13T10:36:10.7237897Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T10:36:10.7237987Z               "line": 77
2026-06-13T10:36:10.7238077Z             },
2026-06-13T10:36:10.7238164Z             {
2026-06-13T10:36:10.7238282Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T10:36:10.7238377Z               "line": 94
2026-06-13T10:36:10.7238460Z             }
2026-06-13T10:36:10.7238550Z           ]
2026-06-13T10:36:10.7238630Z         },
2026-06-13T10:36:10.7238731Z         "int": {
2026-06-13T10:36:10.7238827Z           "complete": false,
2026-06-13T10:36:10.7238917Z           "evidence": []
2026-06-13T10:36:10.7239070Z         },
2026-06-13T10:36:10.7239156Z         "unit": {
2026-06-13T10:36:10.7239250Z           "complete": true,
2026-06-13T10:36:10.7239336Z           "evidence": [
2026-06-13T10:36:10.7239432Z             {
2026-06-13T10:36:10.7239551Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T10:36:10.7239641Z               "line": 161
2026-06-13T10:36:10.7239733Z             },
2026-06-13T10:36:10.7239818Z             {
2026-06-13T10:36:10.7239936Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T10:36:10.7240022Z               "line": 178
2026-06-13T10:36:10.7240112Z             }
2026-06-13T10:36:10.7240196Z           ]
2026-06-13T10:36:10.7240281Z         }
2026-06-13T10:36:10.7240373Z       }
2026-06-13T10:36:10.7240454Z     },
2026-06-13T10:36:10.7240544Z     {
2026-06-13T10:36:10.7240644Z       "id": "REQ-EP-2",
2026-06-13T10:36:10.7240817Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-13T10:36:10.7240915Z       "requiredStages": [
2026-06-13T10:36:10.7241003Z         "impl",
2026-06-13T10:36:10.7241088Z         "unit"
2026-06-13T10:36:10.7241174Z       ],
2026-06-13T10:36:10.7241264Z       "stages": {
2026-06-13T10:36:10.7241355Z         "doc": {
2026-06-13T10:36:10.7241454Z           "complete": false,
2026-06-13T10:36:10.7241540Z           "evidence": []
2026-06-13T10:36:10.7241617Z         },
2026-06-13T10:36:10.7241713Z         "impl": {
2026-06-13T10:36:10.7241803Z           "complete": true,
2026-06-13T10:36:10.7241898Z           "evidence": [
2026-06-13T10:36:10.7241980Z             {
2026-06-13T10:36:10.7242107Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T10:36:10.7242208Z               "line": 114
2026-06-13T10:36:10.7242290Z             },
2026-06-13T10:36:10.7242380Z             {
2026-06-13T10:36:10.7242494Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T10:36:10.7242596Z               "line": 131
2026-06-13T10:36:10.7242676Z             },
2026-06-13T10:36:10.7242765Z             {
2026-06-13T10:36:10.7242889Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T10:36:10.7242980Z               "line": 138
2026-06-13T10:36:10.7243179Z             }
2026-06-13T10:36:10.7243271Z           ]
2026-06-13T10:36:10.7243362Z         },
2026-06-13T10:36:10.7243441Z         "int": {
2026-06-13T10:36:10.7243543Z           "complete": false,
2026-06-13T10:36:10.7243643Z           "evidence": []
2026-06-13T10:36:10.7243742Z         },
2026-06-13T10:36:10.7243847Z         "unit": {
2026-06-13T10:36:10.7243939Z           "complete": true,
2026-06-13T10:36:10.7244034Z           "evidence": [
2026-06-13T10:36:10.7244124Z             {
2026-06-13T10:36:10.7244249Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T10:36:10.7244343Z               "line": 190
2026-06-13T10:36:10.7244521Z             },
2026-06-13T10:36:10.7244611Z             {
2026-06-13T10:36:10.7244729Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T10:36:10.7244826Z               "line": 208
2026-06-13T10:36:10.7244912Z             },
2026-06-13T10:36:10.7245001Z             {
2026-06-13T10:36:10.7245167Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T10:36:10.7245257Z               "line": 221
2026-06-13T10:36:10.7245346Z             }
2026-06-13T10:36:10.7245431Z           ]
2026-06-13T10:36:10.7245523Z         }
2026-06-13T10:36:10.7245613Z       }
2026-06-13T10:36:10.7245703Z     },
2026-06-13T10:36:10.7245789Z     {
2026-06-13T10:36:10.7245881Z       "id": "REQ-EP-3",
2026-06-13T10:36:10.7246070Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-13T10:36:10.7246167Z       "requiredStages": [
2026-06-13T10:36:10.7246257Z         "impl",
2026-06-13T10:36:10.7246337Z         "unit"
2026-06-13T10:36:10.7246419Z       ],
2026-06-13T10:36:10.7246519Z       "stages": {
2026-06-13T10:36:10.7246605Z         "doc": {
2026-06-13T10:36:10.7246695Z           "complete": false,
2026-06-13T10:36:10.7246787Z           "evidence": []
2026-06-13T10:36:10.7246872Z         },
2026-06-13T10:36:10.7246957Z         "impl": {
2026-06-13T10:36:10.7247059Z           "complete": true,
2026-06-13T10:36:10.7247158Z           "evidence": [
2026-06-13T10:36:10.7247239Z             {
2026-06-13T10:36:10.7247369Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T10:36:10.7247455Z               "line": 31
2026-06-13T10:36:10.7247539Z             },
2026-06-13T10:36:10.7247621Z             {
2026-06-13T10:36:10.7247741Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T10:36:10.7247830Z               "line": 49
2026-06-13T10:36:10.7247915Z             }
2026-06-13T10:36:10.7248001Z           ]
2026-06-13T10:36:10.7248087Z         },
2026-06-13T10:36:10.7248170Z         "int": {
2026-06-13T10:36:10.7248251Z           "complete": false,
2026-06-13T10:36:10.7248356Z           "evidence": []
2026-06-13T10:36:10.7248443Z         },
2026-06-13T10:36:10.7248518Z         "unit": {
2026-06-13T10:36:10.7248613Z           "complete": true,
2026-06-13T10:36:10.7248700Z           "evidence": [
2026-06-13T10:36:10.7248781Z             {
2026-06-13T10:36:10.7248895Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T10:36:10.7249043Z               "line": 156
2026-06-13T10:36:10.7249129Z             },
2026-06-13T10:36:10.7249200Z             {
2026-06-13T10:36:10.7249320Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T10:36:10.7249405Z               "line": 164
2026-06-13T10:36:10.7249486Z             },
2026-06-13T10:36:10.7249572Z             {
2026-06-13T10:36:10.7249692Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T10:36:10.7249782Z               "line": 177
2026-06-13T10:36:10.7249863Z             },
2026-06-13T10:36:10.7249950Z             {
2026-06-13T10:36:10.7250054Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T10:36:10.7250154Z               "line": 200
2026-06-13T10:36:10.7250236Z             },
2026-06-13T10:36:10.7250326Z             {
2026-06-13T10:36:10.7250435Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T10:36:10.7250519Z               "line": 216
2026-06-13T10:36:10.7250709Z             },
2026-06-13T10:36:10.7250794Z             {
2026-06-13T10:36:10.7250918Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T10:36:10.7251005Z               "line": 233
2026-06-13T10:36:10.7251085Z             }
2026-06-13T10:36:10.7251175Z           ]
2026-06-13T10:36:10.7251257Z         }
2026-06-13T10:36:10.7251343Z       }
2026-06-13T10:36:10.7251428Z     },
2026-06-13T10:36:10.7251514Z     {
2026-06-13T10:36:10.7251596Z       "id": "REQ-EP-4",
2026-06-13T10:36:10.7251743Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-13T10:36:10.7251843Z       "requiredStages": [
2026-06-13T10:36:10.7251925Z         "impl",
2026-06-13T10:36:10.7252124Z         "unit"
2026-06-13T10:36:10.7252207Z       ],
2026-06-13T10:36:10.7252301Z       "stages": {
2026-06-13T10:36:10.7252378Z         "doc": {
2026-06-13T10:36:10.7252478Z           "complete": false,
2026-06-13T10:36:10.7252578Z           "evidence": []
2026-06-13T10:36:10.7252663Z         },
2026-06-13T10:36:10.7252754Z         "impl": {
2026-06-13T10:36:10.7252841Z           "complete": true,
2026-06-13T10:36:10.7252935Z           "evidence": [
2026-06-13T10:36:10.7253016Z             {
2026-06-13T10:36:10.7253141Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7253241Z               "line": 673
2026-06-13T10:36:10.7253316Z             },
2026-06-13T10:36:10.7253411Z             {
2026-06-13T10:36:10.7253521Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7253612Z               "line": 990
2026-06-13T10:36:10.7253692Z             },
2026-06-13T10:36:10.7253773Z             {
2026-06-13T10:36:10.7253897Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7253997Z               "line": 970
2026-06-13T10:36:10.7254083Z             },
2026-06-13T10:36:10.7254156Z             {
2026-06-13T10:36:10.7254275Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T10:36:10.7254369Z               "line": 83
2026-06-13T10:36:10.7254456Z             },
2026-06-13T10:36:10.7254546Z             {
2026-06-13T10:36:10.7254659Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T10:36:10.7254747Z               "line": 497
2026-06-13T10:36:10.7254828Z             },
2026-06-13T10:36:10.7254923Z             {
2026-06-13T10:36:10.7255037Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T10:36:10.7255129Z               "line": 583
2026-06-13T10:36:10.7255213Z             },
2026-06-13T10:36:10.7255294Z             {
2026-06-13T10:36:10.7255415Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7255504Z               "line": 196
2026-06-13T10:36:10.7255599Z             },
2026-06-13T10:36:10.7255684Z             {
2026-06-13T10:36:10.7255803Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7255896Z               "line": 337
2026-06-13T10:36:10.7255977Z             },
2026-06-13T10:36:10.7256068Z             {
2026-06-13T10:36:10.7256169Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7256268Z               "line": 847
2026-06-13T10:36:10.7256354Z             }
2026-06-13T10:36:10.7256436Z           ]
2026-06-13T10:36:10.7256517Z         },
2026-06-13T10:36:10.7256588Z         "int": {
2026-06-13T10:36:10.7256689Z           "complete": false,
2026-06-13T10:36:10.7256779Z           "evidence": []
2026-06-13T10:36:10.7256864Z         },
2026-06-13T10:36:10.7256950Z         "unit": {
2026-06-13T10:36:10.7257032Z           "complete": true,
2026-06-13T10:36:10.7257117Z           "evidence": [
2026-06-13T10:36:10.7257202Z             {
2026-06-13T10:36:10.7257318Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T10:36:10.7257408Z               "line": 674
2026-06-13T10:36:10.7257489Z             },
2026-06-13T10:36:10.7257570Z             {
2026-06-13T10:36:10.7257686Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-13T10:36:10.7257775Z               "line": 76
2026-06-13T10:36:10.7257861Z             },
2026-06-13T10:36:10.7258033Z             {
2026-06-13T10:36:10.7258157Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-13T10:36:10.7258253Z               "line": 147
2026-06-13T10:36:10.7258339Z             }
2026-06-13T10:36:10.7258423Z           ]
2026-06-13T10:36:10.7258513Z         }
2026-06-13T10:36:10.7258589Z       }
2026-06-13T10:36:10.7258680Z     },
2026-06-13T10:36:10.7258764Z     {
2026-06-13T10:36:10.7258863Z       "id": "REQ-EP-5",
2026-06-13T10:36:10.7259618Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-13T10:36:10.7259827Z       "requiredStages": [
2026-06-13T10:36:10.7259914Z         "impl",
2026-06-13T10:36:10.7259994Z         "unit",
2026-06-13T10:36:10.7260084Z         "int"
2026-06-13T10:36:10.7260166Z       ],
2026-06-13T10:36:10.7260243Z       "stages": {
2026-06-13T10:36:10.7260332Z         "doc": {
2026-06-13T10:36:10.7260413Z           "complete": false,
2026-06-13T10:36:10.7260515Z           "evidence": []
2026-06-13T10:36:10.7260586Z         },
2026-06-13T10:36:10.7260680Z         "impl": {
2026-06-13T10:36:10.7260781Z           "complete": true,
2026-06-13T10:36:10.7260863Z           "evidence": [
2026-06-13T10:36:10.7260948Z             {
2026-06-13T10:36:10.7261079Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7261180Z               "line": 351
2026-06-13T10:36:10.7261260Z             },
2026-06-13T10:36:10.7261345Z             {
2026-06-13T10:36:10.7266297Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T10:36:10.7266447Z               "line": 18
2026-06-13T10:36:10.7266537Z             },
2026-06-13T10:36:10.7266609Z             {
2026-06-13T10:36:10.7266757Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T10:36:10.7266843Z               "line": 63
2026-06-13T10:36:10.7266938Z             },
2026-06-13T10:36:10.7267029Z             {
2026-06-13T10:36:10.7267152Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T10:36:10.7267244Z               "line": 92
2026-06-13T10:36:10.7267325Z             },
2026-06-13T10:36:10.7267406Z             {
2026-06-13T10:36:10.7267530Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T10:36:10.7267626Z               "line": 167
2026-06-13T10:36:10.7267707Z             },
2026-06-13T10:36:10.7267791Z             {
2026-06-13T10:36:10.7267917Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T10:36:10.7267996Z               "line": 179
2026-06-13T10:36:10.7268092Z             },
2026-06-13T10:36:10.7268174Z             {
2026-06-13T10:36:10.7268293Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7268388Z               "line": 114
2026-06-13T10:36:10.7268469Z             },
2026-06-13T10:36:10.7268551Z             {
2026-06-13T10:36:10.7268678Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.7268765Z               "line": 22
2026-06-13T10:36:10.7268842Z             },
2026-06-13T10:36:10.7268932Z             {
2026-06-13T10:36:10.7269154Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.7269244Z               "line": 145
2026-06-13T10:36:10.7269328Z             },
2026-06-13T10:36:10.7269409Z             {
2026-06-13T10:36:10.7269534Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.7269624Z               "line": 174
2026-06-13T10:36:10.7269715Z             },
2026-06-13T10:36:10.7269801Z             {
2026-06-13T10:36:10.7269925Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.7270015Z               "line": 196
2026-06-13T10:36:10.7270097Z             },
2026-06-13T10:36:10.7270187Z             {
2026-06-13T10:36:10.7270310Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.7270549Z               "line": 221
2026-06-13T10:36:10.7270644Z             },
2026-06-13T10:36:10.7270726Z             {
2026-06-13T10:36:10.7270845Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.7270930Z               "line": 247
2026-06-13T10:36:10.7271016Z             },
2026-06-13T10:36:10.7271104Z             {
2026-06-13T10:36:10.7271221Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.7271312Z               "line": 270
2026-06-13T10:36:10.7271394Z             },
2026-06-13T10:36:10.7271484Z             {
2026-06-13T10:36:10.7271602Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.7271797Z               "line": 81
2026-06-13T10:36:10.7271886Z             },
2026-06-13T10:36:10.7271971Z             {
2026-06-13T10:36:10.7272081Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7272172Z               "line": 4653
2026-06-13T10:36:10.7272262Z             },
2026-06-13T10:36:10.7272343Z             {
2026-06-13T10:36:10.7272463Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7272558Z               "line": 4787
2026-06-13T10:36:10.7272639Z             },
2026-06-13T10:36:10.7272725Z             {
2026-06-13T10:36:10.7272825Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7272920Z               "line": 4953
2026-06-13T10:36:10.7273003Z             },
2026-06-13T10:36:10.7273092Z             {
2026-06-13T10:36:10.7273197Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7273288Z               "line": 5335
2026-06-13T10:36:10.7273374Z             }
2026-06-13T10:36:10.7273455Z           ]
2026-06-13T10:36:10.7273545Z         },
2026-06-13T10:36:10.7273637Z         "int": {
2026-06-13T10:36:10.7273731Z           "complete": true,
2026-06-13T10:36:10.7273817Z           "evidence": [
2026-06-13T10:36:10.7273898Z             {
2026-06-13T10:36:10.7274037Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-13T10:36:10.7274126Z               "line": 16
2026-06-13T10:36:10.7274228Z             },
2026-06-13T10:36:10.7274309Z             {
2026-06-13T10:36:10.7274426Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-13T10:36:10.7274521Z               "line": 15
2026-06-13T10:36:10.7274608Z             }
2026-06-13T10:36:10.7274694Z           ]
2026-06-13T10:36:10.7274775Z         },
2026-06-13T10:36:10.7274870Z         "unit": {
2026-06-13T10:36:10.7274961Z           "complete": true,
2026-06-13T10:36:10.7275056Z           "evidence": [
2026-06-13T10:36:10.7275141Z             {
2026-06-13T10:36:10.7275266Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T10:36:10.7275356Z               "line": 246
2026-06-13T10:36:10.7275446Z             },
2026-06-13T10:36:10.7275537Z             {
2026-06-13T10:36:10.7275657Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T10:36:10.7275752Z               "line": 306
2026-06-13T10:36:10.7275842Z             },
2026-06-13T10:36:10.7275929Z             {
2026-06-13T10:36:10.7276062Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T10:36:10.7276148Z               "line": 362
2026-06-13T10:36:10.7276234Z             },
2026-06-13T10:36:10.7276319Z             {
2026-06-13T10:36:10.7276458Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.7276559Z               "line": 286
2026-06-13T10:36:10.7276653Z             },
2026-06-13T10:36:10.7276762Z             {
2026-06-13T10:36:10.7276890Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.7277017Z               "line": 338
2026-06-13T10:36:10.7277116Z             },
2026-06-13T10:36:10.7277232Z             {
2026-06-13T10:36:10.7277379Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.7277480Z               "line": 570
2026-06-13T10:36:10.7277609Z             },
2026-06-13T10:36:10.7277708Z             {
2026-06-13T10:36:10.7277857Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7277998Z               "line": 6364
2026-06-13T10:36:10.7278262Z             },
2026-06-13T10:36:10.7278390Z             {
2026-06-13T10:36:10.7278515Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7278652Z               "line": 6488
2026-06-13T10:36:10.7278758Z             },
2026-06-13T10:36:10.7278885Z             {
2026-06-13T10:36:10.7279130Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7279228Z               "line": 7075
2026-06-13T10:36:10.7279369Z             },
2026-06-13T10:36:10.7279464Z             {
2026-06-13T10:36:10.7279629Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7279743Z               "line": 7191
2026-06-13T10:36:10.7280008Z             }
2026-06-13T10:36:10.7280132Z           ]
2026-06-13T10:36:10.7280246Z         }
2026-06-13T10:36:10.7280386Z       }
2026-06-13T10:36:10.7280495Z     },
2026-06-13T10:36:10.7280618Z     {
2026-06-13T10:36:10.7280733Z       "id": "REQ-EP-6",
2026-06-13T10:36:10.7282618Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) = documented fail-closed residual, deferred past M9 (doyle G2 ruling 2026-06-13)",
2026-06-13T10:36:10.7282737Z       "requiredStages": [
2026-06-13T10:36:10.7282822Z         "doc",
2026-06-13T10:36:10.7282928Z         "impl",
2026-06-13T10:36:10.7283033Z         "unit"
2026-06-13T10:36:10.7283132Z       ],
2026-06-13T10:36:10.7283276Z       "stages": {
2026-06-13T10:36:10.7283390Z         "doc": {
2026-06-13T10:36:10.7283499Z           "complete": true,
2026-06-13T10:36:10.7283587Z           "evidence": [
2026-06-13T10:36:10.7283690Z             {
2026-06-13T10:36:10.7283804Z               "path": "CONTEXT.md",
2026-06-13T10:36:10.7283906Z               "line": 206
2026-06-13T10:36:10.7284000Z             }
2026-06-13T10:36:10.7284091Z           ]
2026-06-13T10:36:10.7284197Z         },
2026-06-13T10:36:10.7284286Z         "impl": {
2026-06-13T10:36:10.7284420Z           "complete": true,
2026-06-13T10:36:10.7284550Z           "evidence": [
2026-06-13T10:36:10.7284643Z             {
2026-06-13T10:36:10.7284778Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.7284874Z               "line": 174
2026-06-13T10:36:10.7284982Z             }
2026-06-13T10:36:10.7285067Z           ]
2026-06-13T10:36:10.7285216Z         },
2026-06-13T10:36:10.7285400Z         "int": {
2026-06-13T10:36:10.7285516Z           "complete": true,
2026-06-13T10:36:10.7285621Z           "evidence": [
2026-06-13T10:36:10.7285706Z             {
2026-06-13T10:36:10.7285836Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-13T10:36:10.7285931Z               "line": 18
2026-06-13T10:36:10.7286039Z             }
2026-06-13T10:36:10.7286122Z           ]
2026-06-13T10:36:10.7286231Z         },
2026-06-13T10:36:10.7286359Z         "unit": {
2026-06-13T10:36:10.7286475Z           "complete": true,
2026-06-13T10:36:10.7286598Z           "evidence": [
2026-06-13T10:36:10.7286688Z             {
2026-06-13T10:36:10.7286879Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.7286989Z               "line": 525
2026-06-13T10:36:10.7287119Z             },
2026-06-13T10:36:10.7287246Z             {
2026-06-13T10:36:10.7287374Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.7287488Z               "line": 599
2026-06-13T10:36:10.7287591Z             }
2026-06-13T10:36:10.7287701Z           ]
2026-06-13T10:36:10.7287783Z         }
2026-06-13T10:36:10.7287887Z       }
2026-06-13T10:36:10.7287982Z     },
2026-06-13T10:36:10.7288063Z     {
2026-06-13T10:36:10.7288159Z       "id": "REQ-EP-7",
2026-06-13T10:36:10.7289981Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-13T10:36:10.7290080Z       "requiredStages": [
2026-06-13T10:36:10.7290165Z         "doc",
2026-06-13T10:36:10.7290293Z         "impl",
2026-06-13T10:36:10.7290515Z         "unit"
2026-06-13T10:36:10.7290601Z       ],
2026-06-13T10:36:10.7290692Z       "stages": {
2026-06-13T10:36:10.7290777Z         "doc": {
2026-06-13T10:36:10.7290858Z           "complete": true,
2026-06-13T10:36:10.7290955Z           "evidence": [
2026-06-13T10:36:10.7291036Z             {
2026-06-13T10:36:10.7291140Z               "path": "CONTEXT.md",
2026-06-13T10:36:10.7291227Z               "line": 378
2026-06-13T10:36:10.7291312Z             }
2026-06-13T10:36:10.7291403Z           ]
2026-06-13T10:36:10.7291488Z         },
2026-06-13T10:36:10.7291575Z         "impl": {
2026-06-13T10:36:10.7291655Z           "complete": true,
2026-06-13T10:36:10.7291741Z           "evidence": [
2026-06-13T10:36:10.7291822Z             {
2026-06-13T10:36:10.7291947Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.7292036Z               "line": 505
2026-06-13T10:36:10.7292118Z             },
2026-06-13T10:36:10.7292204Z             {
2026-06-13T10:36:10.7292313Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T10:36:10.7292413Z               "line": 87
2026-06-13T10:36:10.7292496Z             },
2026-06-13T10:36:10.7292581Z             {
2026-06-13T10:36:10.7292703Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7292783Z               "line": 81
2026-06-13T10:36:10.7292870Z             },
2026-06-13T10:36:10.7292954Z             {
2026-06-13T10:36:10.7293082Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7293168Z               "line": 166
2026-06-13T10:36:10.7293245Z             },
2026-06-13T10:36:10.7293340Z             {
2026-06-13T10:36:10.7293445Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7293531Z               "line": 1172
2026-06-13T10:36:10.7293617Z             }
2026-06-13T10:36:10.7293707Z           ]
2026-06-13T10:36:10.7293788Z         },
2026-06-13T10:36:10.7293874Z         "int": {
2026-06-13T10:36:10.7293969Z           "complete": false,
2026-06-13T10:36:10.7294064Z           "evidence": []
2026-06-13T10:36:10.7294147Z         },
2026-06-13T10:36:10.7294231Z         "unit": {
2026-06-13T10:36:10.7294326Z           "complete": true,
2026-06-13T10:36:10.7294418Z           "evidence": [
2026-06-13T10:36:10.7294499Z             {
2026-06-13T10:36:10.7294627Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.7294713Z               "line": 623
2026-06-13T10:36:10.7294800Z             },
2026-06-13T10:36:10.7294884Z             {
2026-06-13T10:36:10.7294995Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T10:36:10.7295081Z               "line": 212
2026-06-13T10:36:10.7295166Z             },
2026-06-13T10:36:10.7295256Z             {
2026-06-13T10:36:10.7295353Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T10:36:10.7295448Z               "line": 299
2026-06-13T10:36:10.7295532Z             },
2026-06-13T10:36:10.7295622Z             {
2026-06-13T10:36:10.7295733Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7295833Z               "line": 5653
2026-06-13T10:36:10.7295928Z             },
2026-06-13T10:36:10.7296014Z             {
2026-06-13T10:36:10.7296119Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7296209Z               "line": 5680
2026-06-13T10:36:10.7296294Z             }
2026-06-13T10:36:10.7296458Z           ]
2026-06-13T10:36:10.7296547Z         }
2026-06-13T10:36:10.7296629Z       }
2026-06-13T10:36:10.7296711Z     },
2026-06-13T10:36:10.7296796Z     {
2026-06-13T10:36:10.7296886Z       "id": "REQ-FRONT-1",
2026-06-13T10:36:10.7297068Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-13T10:36:10.7297168Z       "requiredStages": [],
2026-06-13T10:36:10.7297263Z       "stages": {
2026-06-13T10:36:10.7297354Z         "doc": {
2026-06-13T10:36:10.7297439Z           "complete": false,
2026-06-13T10:36:10.7297535Z           "evidence": []
2026-06-13T10:36:10.7297611Z         },
2026-06-13T10:36:10.7297693Z         "impl": {
2026-06-13T10:36:10.7297858Z           "complete": false,
2026-06-13T10:36:10.7297958Z           "evidence": []
2026-06-13T10:36:10.7298034Z         },
2026-06-13T10:36:10.7298118Z         "int": {
2026-06-13T10:36:10.7298227Z           "complete": false,
2026-06-13T10:36:10.7298304Z           "evidence": []
2026-06-13T10:36:10.7298391Z         },
2026-06-13T10:36:10.7298471Z         "unit": {
2026-06-13T10:36:10.7298570Z           "complete": false,
2026-06-13T10:36:10.7298662Z           "evidence": []
2026-06-13T10:36:10.7298738Z         }
2026-06-13T10:36:10.7298823Z       }
2026-06-13T10:36:10.7298900Z     },
2026-06-13T10:36:10.7299048Z     {
2026-06-13T10:36:10.7299161Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-13T10:36:10.7301634Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-13T10:36:10.7301728Z       "requiredStages": [
2026-06-13T10:36:10.7301815Z         "doc",
2026-06-13T10:36:10.7301900Z         "impl",
2026-06-13T10:36:10.7301981Z         "unit",
2026-06-13T10:36:10.7302063Z         "int"
2026-06-13T10:36:10.7302144Z       ],
2026-06-13T10:36:10.7302229Z       "stages": {
2026-06-13T10:36:10.7302310Z         "doc": {
2026-06-13T10:36:10.7302406Z           "complete": true,
2026-06-13T10:36:10.7302502Z           "evidence": [
2026-06-13T10:36:10.7302586Z             {
2026-06-13T10:36:10.7302692Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7302774Z               "line": 319
2026-06-13T10:36:10.7302859Z             }
2026-06-13T10:36:10.7302935Z           ]
2026-06-13T10:36:10.7303021Z         },
2026-06-13T10:36:10.7303108Z         "impl": {
2026-06-13T10:36:10.7303211Z           "complete": true,
2026-06-13T10:36:10.7303287Z           "evidence": [
2026-06-13T10:36:10.7303368Z             {
2026-06-13T10:36:10.7303501Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7303580Z               "line": 480
2026-06-13T10:36:10.7303665Z             },
2026-06-13T10:36:10.7303747Z             {
2026-06-13T10:36:10.7303880Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7303962Z               "line": 485
2026-06-13T10:36:10.7304058Z             },
2026-06-13T10:36:10.7304148Z             {
2026-06-13T10:36:10.7304276Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7304373Z               "line": 860
2026-06-13T10:36:10.7304453Z             },
2026-06-13T10:36:10.7304548Z             {
2026-06-13T10:36:10.7304668Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7304768Z               "line": 901
2026-06-13T10:36:10.7304983Z             },
2026-06-13T10:36:10.7305073Z             {
2026-06-13T10:36:10.7305258Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7305346Z               "line": 912
2026-06-13T10:36:10.7305444Z             },
2026-06-13T10:36:10.7305530Z             {
2026-06-13T10:36:10.7305666Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.7305763Z               "line": 358
2026-06-13T10:36:10.7305850Z             }
2026-06-13T10:36:10.7305942Z           ]
2026-06-13T10:36:10.7306027Z         },
2026-06-13T10:36:10.7306126Z         "int": {
2026-06-13T10:36:10.7306225Z           "complete": true,
2026-06-13T10:36:10.7306421Z           "evidence": [
2026-06-13T10:36:10.7306516Z             {
2026-06-13T10:36:10.7306651Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-13T10:36:10.7306750Z               "line": 30
2026-06-13T10:36:10.7306836Z             }
2026-06-13T10:36:10.7306923Z           ]
2026-06-13T10:36:10.7307027Z         },
2026-06-13T10:36:10.7307112Z         "unit": {
2026-06-13T10:36:10.7307213Z           "complete": true,
2026-06-13T10:36:10.7307303Z           "evidence": [
2026-06-13T10:36:10.7307394Z             {
2026-06-13T10:36:10.7307518Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7307614Z               "line": 1453
2026-06-13T10:36:10.7307709Z             },
2026-06-13T10:36:10.7307790Z             {
2026-06-13T10:36:10.7307924Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7308013Z               "line": 1478
2026-06-13T10:36:10.7308100Z             },
2026-06-13T10:36:10.7308191Z             {
2026-06-13T10:36:10.7308318Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7308408Z               "line": 1495
2026-06-13T10:36:10.7308494Z             },
2026-06-13T10:36:10.7308575Z             {
2026-06-13T10:36:10.7308697Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7308802Z               "line": 1538
2026-06-13T10:36:10.7308883Z             }
2026-06-13T10:36:10.7309059Z           ]
2026-06-13T10:36:10.7309140Z         }
2026-06-13T10:36:10.7309227Z       }
2026-06-13T10:36:10.7309327Z     },
2026-06-13T10:36:10.7309407Z     {
2026-06-13T10:36:10.7309542Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-13T10:36:10.7312208Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-13T10:36:10.7312327Z       "requiredStages": [
2026-06-13T10:36:10.7312409Z         "doc",
2026-06-13T10:36:10.7312504Z         "impl",
2026-06-13T10:36:10.7312589Z         "unit",
2026-06-13T10:36:10.7312681Z         "int"
2026-06-13T10:36:10.7312766Z       ],
2026-06-13T10:36:10.7312861Z       "stages": {
2026-06-13T10:36:10.7312956Z         "doc": {
2026-06-13T10:36:10.7313048Z           "complete": true,
2026-06-13T10:36:10.7313146Z           "evidence": [
2026-06-13T10:36:10.7313243Z             {
2026-06-13T10:36:10.7313358Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7313447Z               "line": 288
2026-06-13T10:36:10.7313538Z             }
2026-06-13T10:36:10.7313630Z           ]
2026-06-13T10:36:10.7313711Z         },
2026-06-13T10:36:10.7313804Z         "impl": {
2026-06-13T10:36:10.7314019Z           "complete": true,
2026-06-13T10:36:10.7314117Z           "evidence": [
2026-06-13T10:36:10.7314197Z             {
2026-06-13T10:36:10.7314332Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.7314422Z               "line": 108
2026-06-13T10:36:10.7314507Z             },
2026-06-13T10:36:10.7314598Z             {
2026-06-13T10:36:10.7314718Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7314807Z               "line": 729
2026-06-13T10:36:10.7314894Z             },
2026-06-13T10:36:10.7314980Z             {
2026-06-13T10:36:10.7315094Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7315286Z               "line": 936
2026-06-13T10:36:10.7315375Z             },
2026-06-13T10:36:10.7315456Z             {
2026-06-13T10:36:10.7315586Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7315675Z               "line": 23
2026-06-13T10:36:10.7315771Z             },
2026-06-13T10:36:10.7315867Z             {
2026-06-13T10:36:10.7315981Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7316071Z               "line": 113
2026-06-13T10:36:10.7316158Z             },
2026-06-13T10:36:10.7316235Z             {
2026-06-13T10:36:10.7316343Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7316434Z               "line": 158
2026-06-13T10:36:10.7316531Z             },
2026-06-13T10:36:10.7316634Z             {
2026-06-13T10:36:10.7316766Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7316843Z               "line": 215
2026-06-13T10:36:10.7316935Z             },
2026-06-13T10:36:10.7317015Z             {
2026-06-13T10:36:10.7317139Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7317230Z               "line": 247
2026-06-13T10:36:10.7317315Z             },
2026-06-13T10:36:10.7317405Z             {
2026-06-13T10:36:10.7317530Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7317625Z               "line": 261
2026-06-13T10:36:10.7317715Z             },
2026-06-13T10:36:10.7317797Z             {
2026-06-13T10:36:10.7317916Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7318001Z               "line": 306
2026-06-13T10:36:10.7318093Z             },
2026-06-13T10:36:10.7318165Z             {
2026-06-13T10:36:10.7318274Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7318364Z               "line": 333
2026-06-13T10:36:10.7318442Z             },
2026-06-13T10:36:10.7318527Z             {
2026-06-13T10:36:10.7318640Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7318741Z               "line": 345
2026-06-13T10:36:10.7318827Z             },
2026-06-13T10:36:10.7318907Z             {
2026-06-13T10:36:10.7319112Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7319201Z               "line": 359
2026-06-13T10:36:10.7319290Z             },
2026-06-13T10:36:10.7319376Z             {
2026-06-13T10:36:10.7319516Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7319596Z               "line": 386
2026-06-13T10:36:10.7319682Z             },
2026-06-13T10:36:10.7319763Z             {
2026-06-13T10:36:10.7319877Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7319962Z               "line": 629
2026-06-13T10:36:10.7320050Z             },
2026-06-13T10:36:10.7320135Z             {
2026-06-13T10:36:10.7320249Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7320345Z               "line": 958
2026-06-13T10:36:10.7320440Z             },
2026-06-13T10:36:10.7320511Z             {
2026-06-13T10:36:10.7320650Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7320750Z               "line": 111
2026-06-13T10:36:10.7320840Z             },
2026-06-13T10:36:10.7320921Z             {
2026-06-13T10:36:10.7321150Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7321255Z               "line": 296
2026-06-13T10:36:10.7321342Z             },
2026-06-13T10:36:10.7321431Z             {
2026-06-13T10:36:10.7321546Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7321633Z               "line": 368
2026-06-13T10:36:10.7321718Z             },
2026-06-13T10:36:10.7321803Z             {
2026-06-13T10:36:10.7321926Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7322012Z               "line": 380
2026-06-13T10:36:10.7322091Z             },
2026-06-13T10:36:10.7322171Z             {
2026-06-13T10:36:10.7322387Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7322472Z               "line": 716
2026-06-13T10:36:10.7322553Z             },
2026-06-13T10:36:10.7322635Z             {
2026-06-13T10:36:10.7322740Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7322834Z               "line": 181
2026-06-13T10:36:10.7322921Z             },
2026-06-13T10:36:10.7323012Z             {
2026-06-13T10:36:10.7323125Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7323206Z               "line": 223
2026-06-13T10:36:10.7323298Z             },
2026-06-13T10:36:10.7323378Z             {
2026-06-13T10:36:10.7323493Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7323584Z               "line": 234
2026-06-13T10:36:10.7323679Z             },
2026-06-13T10:36:10.7323769Z             {
2026-06-13T10:36:10.7323885Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7323975Z               "line": 260
2026-06-13T10:36:10.7324065Z             },
2026-06-13T10:36:10.7324156Z             {
2026-06-13T10:36:10.7324271Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7324364Z               "line": 56
2026-06-13T10:36:10.7324459Z             },
2026-06-13T10:36:10.7324540Z             {
2026-06-13T10:36:10.7324677Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7324762Z               "line": 188
2026-06-13T10:36:10.7324844Z             },
2026-06-13T10:36:10.7324925Z             {
2026-06-13T10:36:10.7325053Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-13T10:36:10.7325149Z               "line": 63
2026-06-13T10:36:10.7325235Z             },
2026-06-13T10:36:10.7325325Z             {
2026-06-13T10:36:10.7325439Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7325540Z               "line": 258
2026-06-13T10:36:10.7325626Z             },
2026-06-13T10:36:10.7325716Z             {
2026-06-13T10:36:10.7325851Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.7325930Z               "line": 424
2026-06-13T10:36:10.7326026Z             },
2026-06-13T10:36:10.7326113Z             {
2026-06-13T10:36:10.7326226Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7326307Z               "line": 1473
2026-06-13T10:36:10.7326393Z             }
2026-06-13T10:36:10.7326480Z           ]
2026-06-13T10:36:10.7326564Z         },
2026-06-13T10:36:10.7326645Z         "int": {
2026-06-13T10:36:10.7326738Z           "complete": true,
2026-06-13T10:36:10.7326833Z           "evidence": [
2026-06-13T10:36:10.7326907Z             {
2026-06-13T10:36:10.7327033Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-13T10:36:10.7327124Z               "line": 57
2026-06-13T10:36:10.7327208Z             },
2026-06-13T10:36:10.7327294Z             {
2026-06-13T10:36:10.7327408Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-13T10:36:10.7327505Z               "line": 41
2026-06-13T10:36:10.7327593Z             }
2026-06-13T10:36:10.7327679Z           ]
2026-06-13T10:36:10.7327762Z         },
2026-06-13T10:36:10.7327847Z         "unit": {
2026-06-13T10:36:10.7327951Z           "complete": true,
2026-06-13T10:36:10.7328038Z           "evidence": [
2026-06-13T10:36:10.7328118Z             {
2026-06-13T10:36:10.7328333Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.7328438Z               "line": 532
2026-06-13T10:36:10.7328528Z             },
2026-06-13T10:36:10.7328609Z             {
2026-06-13T10:36:10.7328734Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.7328819Z               "line": 754
2026-06-13T10:36:10.7328915Z             },
2026-06-13T10:36:10.7329072Z             {
2026-06-13T10:36:10.7329205Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7329316Z               "line": 1027
2026-06-13T10:36:10.7329397Z             },
2026-06-13T10:36:10.7329477Z             {
2026-06-13T10:36:10.7329705Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7329803Z               "line": 1061
2026-06-13T10:36:10.7329888Z             },
2026-06-13T10:36:10.7329975Z             {
2026-06-13T10:36:10.7330098Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7330184Z               "line": 1103
2026-06-13T10:36:10.7330280Z             },
2026-06-13T10:36:10.7330362Z             {
2026-06-13T10:36:10.7330489Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7330580Z               "line": 1175
2026-06-13T10:36:10.7330667Z             },
2026-06-13T10:36:10.7330756Z             {
2026-06-13T10:36:10.7330866Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7330958Z               "line": 1188
2026-06-13T10:36:10.7331043Z             },
2026-06-13T10:36:10.7331123Z             {
2026-06-13T10:36:10.7331249Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7331348Z               "line": 1211
2026-06-13T10:36:10.7331443Z             },
2026-06-13T10:36:10.7331525Z             {
2026-06-13T10:36:10.7331653Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7331739Z               "line": 1237
2026-06-13T10:36:10.7331835Z             },
2026-06-13T10:36:10.7331930Z             {
2026-06-13T10:36:10.7332053Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7332150Z               "line": 1251
2026-06-13T10:36:10.7332236Z             },
2026-06-13T10:36:10.7332320Z             {
2026-06-13T10:36:10.7332429Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7332530Z               "line": 1275
2026-06-13T10:36:10.7332619Z             },
2026-06-13T10:36:10.7332704Z             {
2026-06-13T10:36:10.7332832Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7332924Z               "line": 1407
2026-06-13T10:36:10.7333014Z             },
2026-06-13T10:36:10.7333109Z             {
2026-06-13T10:36:10.7333238Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7333337Z               "line": 1583
2026-06-13T10:36:10.7333413Z             },
2026-06-13T10:36:10.7333500Z             {
2026-06-13T10:36:10.7333634Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7333733Z               "line": 1638
2026-06-13T10:36:10.7333820Z             },
2026-06-13T10:36:10.7333905Z             {
2026-06-13T10:36:10.7334033Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7334126Z               "line": 1684
2026-06-13T10:36:10.7334215Z             },
2026-06-13T10:36:10.7334301Z             {
2026-06-13T10:36:10.7334426Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7334526Z               "line": 1729
2026-06-13T10:36:10.7334610Z             },
2026-06-13T10:36:10.7334697Z             {
2026-06-13T10:36:10.7334817Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7334915Z               "line": 1773
2026-06-13T10:36:10.7335000Z             },
2026-06-13T10:36:10.7335091Z             {
2026-06-13T10:36:10.7335214Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7335303Z               "line": 1815
2026-06-13T10:36:10.7335515Z             },
2026-06-13T10:36:10.7335603Z             {
2026-06-13T10:36:10.7335724Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7335818Z               "line": 1029
2026-06-13T10:36:10.7335909Z             },
2026-06-13T10:36:10.7335999Z             {
2026-06-13T10:36:10.7336120Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7336219Z               "line": 217
2026-06-13T10:36:10.7336305Z             },
2026-06-13T10:36:10.7336396Z             {
2026-06-13T10:36:10.7336515Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7336615Z               "line": 233
2026-06-13T10:36:10.7336787Z             },
2026-06-13T10:36:10.7336872Z             {
2026-06-13T10:36:10.7336997Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7337087Z               "line": 254
2026-06-13T10:36:10.7337173Z             },
2026-06-13T10:36:10.7337259Z             {
2026-06-13T10:36:10.7337388Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7337477Z               "line": 265
2026-06-13T10:36:10.7337564Z             },
2026-06-13T10:36:10.7337655Z             {
2026-06-13T10:36:10.7337778Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7337877Z               "line": 278
2026-06-13T10:36:10.7337963Z             },
2026-06-13T10:36:10.7338050Z             {
2026-06-13T10:36:10.7338173Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7338259Z               "line": 289
2026-06-13T10:36:10.7338350Z             },
2026-06-13T10:36:10.7338431Z             {
2026-06-13T10:36:10.7338559Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7338660Z               "line": 301
2026-06-13T10:36:10.7338741Z             },
2026-06-13T10:36:10.7338831Z             {
2026-06-13T10:36:10.7339036Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7339136Z               "line": 312
2026-06-13T10:36:10.7339227Z             },
2026-06-13T10:36:10.7339332Z             {
2026-06-13T10:36:10.7339455Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7339542Z               "line": 323
2026-06-13T10:36:10.7339623Z             },
2026-06-13T10:36:10.7339708Z             {
2026-06-13T10:36:10.7339827Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7339915Z               "line": 332
2026-06-13T10:36:10.7340003Z             },
2026-06-13T10:36:10.7340094Z             {
2026-06-13T10:36:10.7340208Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7340297Z               "line": 342
2026-06-13T10:36:10.7340392Z             },
2026-06-13T10:36:10.7340472Z             {
2026-06-13T10:36:10.7340597Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T10:36:10.7340687Z               "line": 358
2026-06-13T10:36:10.7345377Z             },
2026-06-13T10:36:10.7345490Z             {
2026-06-13T10:36:10.7345656Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7345750Z               "line": 708
2026-06-13T10:36:10.7345844Z             },
2026-06-13T10:36:10.7345925Z             {
2026-06-13T10:36:10.7346060Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7346154Z               "line": 744
2026-06-13T10:36:10.7346235Z             },
2026-06-13T10:36:10.7346327Z             {
2026-06-13T10:36:10.7346450Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.7346550Z               "line": 950
2026-06-13T10:36:10.7346627Z             },
2026-06-13T10:36:10.7346722Z             {
2026-06-13T10:36:10.7346865Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-13T10:36:10.7346947Z               "line": 142
2026-06-13T10:36:10.7347037Z             },
2026-06-13T10:36:10.7347118Z             {
2026-06-13T10:36:10.7347243Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-13T10:36:10.7347485Z               "line": 221
2026-06-13T10:36:10.7347595Z             },
2026-06-13T10:36:10.7347685Z             {
2026-06-13T10:36:10.7347804Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-13T10:36:10.7347896Z               "line": 290
2026-06-13T10:36:10.7347986Z             },
2026-06-13T10:36:10.7348072Z             {
2026-06-13T10:36:10.7348201Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-13T10:36:10.7348291Z               "line": 17
2026-06-13T10:36:10.7348380Z             },
2026-06-13T10:36:10.7348461Z             {
2026-06-13T10:36:10.7348581Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-13T10:36:10.7348794Z               "line": 104
2026-06-13T10:36:10.7348882Z             }
2026-06-13T10:36:10.7349047Z           ]
2026-06-13T10:36:10.7349124Z         }
2026-06-13T10:36:10.7349211Z       }
2026-06-13T10:36:10.7349301Z     },
2026-06-13T10:36:10.7349386Z     {
2026-06-13T10:36:10.7349530Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-13T10:36:10.7349730Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-13T10:36:10.7349831Z       "requiredStages": [
2026-06-13T10:36:10.7349920Z         "impl",
2026-06-13T10:36:10.7350011Z         "unit"
2026-06-13T10:36:10.7350093Z       ],
2026-06-13T10:36:10.7350188Z       "stages": {
2026-06-13T10:36:10.7350273Z         "doc": {
2026-06-13T10:36:10.7350374Z           "complete": false,
2026-06-13T10:36:10.7350470Z           "evidence": []
2026-06-13T10:36:10.7350554Z         },
2026-06-13T10:36:10.7350654Z         "impl": {
2026-06-13T10:36:10.7350749Z           "complete": true,
2026-06-13T10:36:10.7350844Z           "evidence": [
2026-06-13T10:36:10.7350933Z             {
2026-06-13T10:36:10.7351071Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.7351153Z               "line": 149
2026-06-13T10:36:10.7351238Z             },
2026-06-13T10:36:10.7351332Z             {
2026-06-13T10:36:10.7351448Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T10:36:10.7351548Z               "line": 18
2026-06-13T10:36:10.7351633Z             },
2026-06-13T10:36:10.7351720Z             {
2026-06-13T10:36:10.7351834Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T10:36:10.7351924Z               "line": 98
2026-06-13T10:36:10.7352011Z             }
2026-06-13T10:36:10.7352092Z           ]
2026-06-13T10:36:10.7352182Z         },
2026-06-13T10:36:10.7352267Z         "int": {
2026-06-13T10:36:10.7352364Z           "complete": false,
2026-06-13T10:36:10.7352458Z           "evidence": []
2026-06-13T10:36:10.7352539Z         },
2026-06-13T10:36:10.7352635Z         "unit": {
2026-06-13T10:36:10.7352731Z           "complete": true,
2026-06-13T10:36:10.7352830Z           "evidence": [
2026-06-13T10:36:10.7352916Z             {
2026-06-13T10:36:10.7353042Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.7353140Z               "line": 644
2026-06-13T10:36:10.7353222Z             },
2026-06-13T10:36:10.7353323Z             {
2026-06-13T10:36:10.7353436Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T10:36:10.7353535Z               "line": 159
2026-06-13T10:36:10.7353616Z             },
2026-06-13T10:36:10.7353706Z             {
2026-06-13T10:36:10.7353824Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T10:36:10.7353909Z               "line": 231
2026-06-13T10:36:10.7354000Z             }
2026-06-13T10:36:10.7354082Z           ]
2026-06-13T10:36:10.7354176Z         }
2026-06-13T10:36:10.7354257Z       }
2026-06-13T10:36:10.7354354Z     },
2026-06-13T10:36:10.7354439Z     {
2026-06-13T10:36:10.7354558Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-13T10:36:10.7354992Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-13T10:36:10.7355087Z       "requiredStages": [
2026-06-13T10:36:10.7355178Z         "impl",
2026-06-13T10:36:10.7355260Z         "unit"
2026-06-13T10:36:10.7355459Z       ],
2026-06-13T10:36:10.7355556Z       "stages": {
2026-06-13T10:36:10.7355641Z         "doc": {
2026-06-13T10:36:10.7355745Z           "complete": true,
2026-06-13T10:36:10.7355837Z           "evidence": [
2026-06-13T10:36:10.7355927Z             {
2026-06-13T10:36:10.7356036Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7356130Z               "line": 220
2026-06-13T10:36:10.7356217Z             }
2026-06-13T10:36:10.7356301Z           ]
2026-06-13T10:36:10.7356390Z         },
2026-06-13T10:36:10.7356481Z         "impl": {
2026-06-13T10:36:10.7356577Z           "complete": true,
2026-06-13T10:36:10.7356771Z           "evidence": [
2026-06-13T10:36:10.7356863Z             {
2026-06-13T10:36:10.7356992Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.7357086Z               "line": 302
2026-06-13T10:36:10.7357173Z             },
2026-06-13T10:36:10.7357254Z             {
2026-06-13T10:36:10.7357396Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.7357483Z               "line": 257
2026-06-13T10:36:10.7357573Z             },
2026-06-13T10:36:10.7357664Z             {
2026-06-13T10:36:10.7357783Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.7357874Z               "line": 405
2026-06-13T10:36:10.7357964Z             },
2026-06-13T10:36:10.7358050Z             {
2026-06-13T10:36:10.7358165Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T10:36:10.7358264Z               "line": 77
2026-06-13T10:36:10.7358350Z             }
2026-06-13T10:36:10.7358433Z           ]
2026-06-13T10:36:10.7358522Z         },
2026-06-13T10:36:10.7358612Z         "int": {
2026-06-13T10:36:10.7358713Z           "complete": false,
2026-06-13T10:36:10.7358804Z           "evidence": []
2026-06-13T10:36:10.7358893Z         },
2026-06-13T10:36:10.7359055Z         "unit": {
2026-06-13T10:36:10.7359146Z           "complete": true,
2026-06-13T10:36:10.7359241Z           "evidence": [
2026-06-13T10:36:10.7359341Z             {
2026-06-13T10:36:10.7359466Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.7359556Z               "line": 478
2026-06-13T10:36:10.7359641Z             },
2026-06-13T10:36:10.7359728Z             {
2026-06-13T10:36:10.7359842Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.7359936Z               "line": 516
2026-06-13T10:36:10.7360018Z             },
2026-06-13T10:36:10.7360109Z             {
2026-06-13T10:36:10.7360237Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T10:36:10.7360323Z               "line": 166
2026-06-13T10:36:10.7360419Z             }
2026-06-13T10:36:10.7360504Z           ]
2026-06-13T10:36:10.7360595Z         }
2026-06-13T10:36:10.7360677Z       }
2026-06-13T10:36:10.7360767Z     },
2026-06-13T10:36:10.7360847Z     {
2026-06-13T10:36:10.7360977Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-13T10:36:10.7361559Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-13T10:36:10.7361655Z       "requiredStages": [
2026-06-13T10:36:10.7361747Z         "impl",
2026-06-13T10:36:10.7361836Z         "unit"
2026-06-13T10:36:10.7361927Z       ],
2026-06-13T10:36:10.7362018Z       "stages": {
2026-06-13T10:36:10.7362108Z         "doc": {
2026-06-13T10:36:10.7362212Z           "complete": false,
2026-06-13T10:36:10.7362304Z           "evidence": []
2026-06-13T10:36:10.7362394Z         },
2026-06-13T10:36:10.7362479Z         "impl": {
2026-06-13T10:36:10.7362595Z           "complete": true,
2026-06-13T10:36:10.7362690Z           "evidence": [
2026-06-13T10:36:10.7362775Z             {
2026-06-13T10:36:10.7362914Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-13T10:36:10.7363004Z               "line": 22
2026-06-13T10:36:10.7363099Z             },
2026-06-13T10:36:10.7363301Z             {
2026-06-13T10:36:10.7363438Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.7363539Z               "line": 487
2026-06-13T10:36:10.7363625Z             },
2026-06-13T10:36:10.7363719Z             {
2026-06-13T10:36:10.7363845Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T10:36:10.7363940Z               "line": 17
2026-06-13T10:36:10.7364024Z             },
2026-06-13T10:36:10.7364114Z             {
2026-06-13T10:36:10.7364243Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T10:36:10.7364322Z               "line": 147
2026-06-13T10:36:10.7364407Z             },
2026-06-13T10:36:10.7364585Z             {
2026-06-13T10:36:10.7364727Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7364808Z               "line": 226
2026-06-13T10:36:10.7364894Z             },
2026-06-13T10:36:10.7364985Z             {
2026-06-13T10:36:10.7365108Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7365204Z               "line": 251
2026-06-13T10:36:10.7365290Z             },
2026-06-13T10:36:10.7365375Z             {
2026-06-13T10:36:10.7365510Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7365585Z               "line": 277
2026-06-13T10:36:10.7365676Z             },
2026-06-13T10:36:10.7365757Z             {
2026-06-13T10:36:10.7365877Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T10:36:10.7365957Z               "line": 124
2026-06-13T10:36:10.7366043Z             },
2026-06-13T10:36:10.7366130Z             {
2026-06-13T10:36:10.7366238Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T10:36:10.7366344Z               "line": 224
2026-06-13T10:36:10.7366426Z             }
2026-06-13T10:36:10.7366506Z           ]
2026-06-13T10:36:10.7366591Z         },
2026-06-13T10:36:10.7366676Z         "int": {
2026-06-13T10:36:10.7366777Z           "complete": false,
2026-06-13T10:36:10.7366870Z           "evidence": []
2026-06-13T10:36:10.7366955Z         },
2026-06-13T10:36:10.7367041Z         "unit": {
2026-06-13T10:36:10.7367142Z           "complete": true,
2026-06-13T10:36:10.7367232Z           "evidence": [
2026-06-13T10:36:10.7367322Z             {
2026-06-13T10:36:10.7367447Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-13T10:36:10.7367538Z               "line": 62
2026-06-13T10:36:10.7367627Z             },
2026-06-13T10:36:10.7367714Z             {
2026-06-13T10:36:10.7367842Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-13T10:36:10.7367933Z               "line": 72
2026-06-13T10:36:10.7368024Z             },
2026-06-13T10:36:10.7368124Z             {
2026-06-13T10:36:10.7368242Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-13T10:36:10.7368338Z               "line": 84
2026-06-13T10:36:10.7368420Z             },
2026-06-13T10:36:10.7368505Z             {
2026-06-13T10:36:10.7368624Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T10:36:10.7368739Z               "line": 346
2026-06-13T10:36:10.7368833Z             },
2026-06-13T10:36:10.7368915Z             {
2026-06-13T10:36:10.7369153Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T10:36:10.7369244Z               "line": 281
2026-06-13T10:36:10.7369331Z             },
2026-06-13T10:36:10.7369411Z             {
2026-06-13T10:36:10.7369534Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T10:36:10.7369619Z               "line": 322
2026-06-13T10:36:10.7369711Z             },
2026-06-13T10:36:10.7369796Z             {
2026-06-13T10:36:10.7369910Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T10:36:10.7370007Z               "line": 360
2026-06-13T10:36:10.7370093Z             },
2026-06-13T10:36:10.7370177Z             {
2026-06-13T10:36:10.7370312Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7370397Z               "line": 688
2026-06-13T10:36:10.7370482Z             },
2026-06-13T10:36:10.7370674Z             {
2026-06-13T10:36:10.7370806Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T10:36:10.7370898Z               "line": 397
2026-06-13T10:36:10.7370989Z             },
2026-06-13T10:36:10.7371074Z             {
2026-06-13T10:36:10.7371193Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T10:36:10.7371280Z               "line": 440
2026-06-13T10:36:10.7371369Z             }
2026-06-13T10:36:10.7371460Z           ]
2026-06-13T10:36:10.7371542Z         }
2026-06-13T10:36:10.7371633Z       }
2026-06-13T10:36:10.7371712Z     },
2026-06-13T10:36:10.7371793Z     {
2026-06-13T10:36:10.7372029Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-13T10:36:10.7372244Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-13T10:36:10.7372353Z       "requiredStages": [
2026-06-13T10:36:10.7372444Z         "impl",
2026-06-13T10:36:10.7372530Z         "unit"
2026-06-13T10:36:10.7372620Z       ],
2026-06-13T10:36:10.7372715Z       "stages": {
2026-06-13T10:36:10.7372811Z         "doc": {
2026-06-13T10:36:10.7372902Z           "complete": false,
2026-06-13T10:36:10.7372997Z           "evidence": []
2026-06-13T10:36:10.7373078Z         },
2026-06-13T10:36:10.7373169Z         "impl": {
2026-06-13T10:36:10.7373254Z           "complete": true,
2026-06-13T10:36:10.7373340Z           "evidence": [
2026-06-13T10:36:10.7373430Z             {
2026-06-13T10:36:10.7373555Z               "path": "crates/spt-term/src/reader.rs",
2026-06-13T10:36:10.7373646Z               "line": 169
2026-06-13T10:36:10.7373741Z             }
2026-06-13T10:36:10.7373828Z           ]
2026-06-13T10:36:10.7373926Z         },
2026-06-13T10:36:10.7374007Z         "int": {
2026-06-13T10:36:10.7374109Z           "complete": true,
2026-06-13T10:36:10.7374190Z           "evidence": [
2026-06-13T10:36:10.7374274Z             {
2026-06-13T10:36:10.7374380Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-13T10:36:10.7374467Z               "line": 44
2026-06-13T10:36:10.7374561Z             },
2026-06-13T10:36:10.7374636Z             {
2026-06-13T10:36:10.7374760Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-13T10:36:10.7374841Z               "line": 66
2026-06-13T10:36:10.7374925Z             }
2026-06-13T10:36:10.7375014Z           ]
2026-06-13T10:36:10.7375106Z         },
2026-06-13T10:36:10.7375193Z         "unit": {
2026-06-13T10:36:10.7375282Z           "complete": true,
2026-06-13T10:36:10.7375373Z           "evidence": [
2026-06-13T10:36:10.7375450Z             {
2026-06-13T10:36:10.7375568Z               "path": "crates/spt-term/src/reader.rs",
2026-06-13T10:36:10.7375663Z               "line": 186
2026-06-13T10:36:10.7375746Z             },
2026-06-13T10:36:10.7375831Z             {
2026-06-13T10:36:10.7375935Z               "path": "crates/spt-term/src/reader.rs",
2026-06-13T10:36:10.7376031Z               "line": 238
2026-06-13T10:36:10.7376122Z             },
2026-06-13T10:36:10.7376207Z             {
2026-06-13T10:36:10.7376332Z               "path": "crates/spt-term/src/reader.rs",
2026-06-13T10:36:10.7376422Z               "line": 266
2026-06-13T10:36:10.7376512Z             }
2026-06-13T10:36:10.7376589Z           ]
2026-06-13T10:36:10.7376685Z         }
2026-06-13T10:36:10.7376766Z       }
2026-06-13T10:36:10.7376856Z     },
2026-06-13T10:36:10.7376937Z     {
2026-06-13T10:36:10.7377048Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-13T10:36:10.7377463Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-13T10:36:10.7377553Z       "requiredStages": [
2026-06-13T10:36:10.7377654Z         "impl",
2026-06-13T10:36:10.7377736Z         "unit",
2026-06-13T10:36:10.7377816Z         "int"
2026-06-13T10:36:10.7377901Z       ],
2026-06-13T10:36:10.7377983Z       "stages": {
2026-06-13T10:36:10.7378078Z         "doc": {
2026-06-13T10:36:10.7378164Z           "complete": false,
2026-06-13T10:36:10.7378326Z           "evidence": []
2026-06-13T10:36:10.7378412Z         },
2026-06-13T10:36:10.7378502Z         "impl": {
2026-06-13T10:36:10.7378599Z           "complete": true,
2026-06-13T10:36:10.7378679Z           "evidence": [
2026-06-13T10:36:10.7378760Z             {
2026-06-13T10:36:10.7378884Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7379056Z               "line": 152
2026-06-13T10:36:10.7379141Z             },
2026-06-13T10:36:10.7379238Z             {
2026-06-13T10:36:10.7379379Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7379461Z               "line": 176
2026-06-13T10:36:10.7379680Z             },
2026-06-13T10:36:10.7379757Z             {
2026-06-13T10:36:10.7379872Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.7379962Z               "line": 79
2026-06-13T10:36:10.7380042Z             },
2026-06-13T10:36:10.7380127Z             {
2026-06-13T10:36:10.7380237Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T10:36:10.7380333Z               "line": 51
2026-06-13T10:36:10.7380417Z             },
2026-06-13T10:36:10.7380509Z             {
2026-06-13T10:36:10.7380619Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7380714Z               "line": 154
2026-06-13T10:36:10.7380804Z             },
2026-06-13T10:36:10.7380886Z             {
2026-06-13T10:36:10.7381010Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T10:36:10.7381090Z               "line": 27
2026-06-13T10:36:10.7381172Z             },
2026-06-13T10:36:10.7381253Z             {
2026-06-13T10:36:10.7381371Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T10:36:10.7381468Z               "line": 79
2026-06-13T10:36:10.7381549Z             },
2026-06-13T10:36:10.7381634Z             {
2026-06-13T10:36:10.7381754Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T10:36:10.7381850Z               "line": 102
2026-06-13T10:36:10.7381939Z             },
2026-06-13T10:36:10.7382025Z             {
2026-06-13T10:36:10.7382141Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7382230Z               "line": 116
2026-06-13T10:36:10.7382315Z             }
2026-06-13T10:36:10.7382395Z           ]
2026-06-13T10:36:10.7382477Z         },
2026-06-13T10:36:10.7382566Z         "int": {
2026-06-13T10:36:10.7382661Z           "complete": true,
2026-06-13T10:36:10.7382742Z           "evidence": [
2026-06-13T10:36:10.7382823Z             {
2026-06-13T10:36:10.7382951Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-13T10:36:10.7383032Z               "line": 38
2026-06-13T10:36:10.7383119Z             }
2026-06-13T10:36:10.7383210Z           ]
2026-06-13T10:36:10.7383289Z         },
2026-06-13T10:36:10.7383381Z         "unit": {
2026-06-13T10:36:10.7383463Z           "complete": true,
2026-06-13T10:36:10.7383557Z           "evidence": [
2026-06-13T10:36:10.7383642Z             {
2026-06-13T10:36:10.7383768Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7383863Z               "line": 628
2026-06-13T10:36:10.7383947Z             },
2026-06-13T10:36:10.7384025Z             {
2026-06-13T10:36:10.7384134Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7384225Z               "line": 351
2026-06-13T10:36:10.7384310Z             },
2026-06-13T10:36:10.7384393Z             {
2026-06-13T10:36:10.7384500Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T10:36:10.7384587Z               "line": 124
2026-06-13T10:36:10.7384674Z             },
2026-06-13T10:36:10.7384750Z             {
2026-06-13T10:36:10.7384882Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T10:36:10.7384965Z               "line": 143
2026-06-13T10:36:10.7385051Z             },
2026-06-13T10:36:10.7385139Z             {
2026-06-13T10:36:10.7385253Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T10:36:10.7385334Z               "line": 160
2026-06-13T10:36:10.7385523Z             },
2026-06-13T10:36:10.7385609Z             {
2026-06-13T10:36:10.7385719Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T10:36:10.7385799Z               "line": 187
2026-06-13T10:36:10.7385885Z             },
2026-06-13T10:36:10.7385967Z             {
2026-06-13T10:36:10.7386091Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T10:36:10.7386185Z               "line": 206
2026-06-13T10:36:10.7386277Z             },
2026-06-13T10:36:10.7386353Z             {
2026-06-13T10:36:10.7386476Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7386572Z               "line": 229
2026-06-13T10:36:10.7386724Z             }
2026-06-13T10:36:10.7386815Z           ]
2026-06-13T10:36:10.7386902Z         }
2026-06-13T10:36:10.7386987Z       }
2026-06-13T10:36:10.7387067Z     },
2026-06-13T10:36:10.7387154Z     {
2026-06-13T10:36:10.7387279Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-13T10:36:10.7387911Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-13T10:36:10.7388014Z       "requiredStages": [
2026-06-13T10:36:10.7388099Z         "impl",
2026-06-13T10:36:10.7388185Z         "unit"
2026-06-13T10:36:10.7388267Z       ],
2026-06-13T10:36:10.7388352Z       "stages": {
2026-06-13T10:36:10.7388437Z         "doc": {
2026-06-13T10:36:10.7388519Z           "complete": false,
2026-06-13T10:36:10.7388615Z           "evidence": []
2026-06-13T10:36:10.7388704Z         },
2026-06-13T10:36:10.7388790Z         "impl": {
2026-06-13T10:36:10.7388886Z           "complete": true,
2026-06-13T10:36:10.7389038Z           "evidence": [
2026-06-13T10:36:10.7389125Z             {
2026-06-13T10:36:10.7389239Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7389348Z               "line": 327
2026-06-13T10:36:10.7389434Z             },
2026-06-13T10:36:10.7389530Z             {
2026-06-13T10:36:10.7389668Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7389754Z               "line": 530
2026-06-13T10:36:10.7389831Z             }
2026-06-13T10:36:10.7389911Z           ]
2026-06-13T10:36:10.7389992Z         },
2026-06-13T10:36:10.7390074Z         "int": {
2026-06-13T10:36:10.7390170Z           "complete": false,
2026-06-13T10:36:10.7390259Z           "evidence": []
2026-06-13T10:36:10.7390345Z         },
2026-06-13T10:36:10.7390427Z         "unit": {
2026-06-13T10:36:10.7390517Z           "complete": true,
2026-06-13T10:36:10.7390621Z           "evidence": [
2026-06-13T10:36:10.7390701Z             {
2026-06-13T10:36:10.7390827Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-13T10:36:10.7390907Z               "line": 161
2026-06-13T10:36:10.7390987Z             }
2026-06-13T10:36:10.7391074Z           ]
2026-06-13T10:36:10.7391151Z         }
2026-06-13T10:36:10.7391241Z       }
2026-06-13T10:36:10.7391326Z     },
2026-06-13T10:36:10.7391408Z     {
2026-06-13T10:36:10.7391513Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-13T10:36:10.7391689Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-13T10:36:10.7391789Z       "requiredStages": [
2026-06-13T10:36:10.7391870Z         "impl",
2026-06-13T10:36:10.7391955Z         "unit"
2026-06-13T10:36:10.7392043Z       ],
2026-06-13T10:36:10.7392128Z       "stages": {
2026-06-13T10:36:10.7392218Z         "doc": {
2026-06-13T10:36:10.7392314Z           "complete": false,
2026-06-13T10:36:10.7392400Z           "evidence": []
2026-06-13T10:36:10.7392485Z         },
2026-06-13T10:36:10.7392566Z         "impl": {
2026-06-13T10:36:10.7392647Z           "complete": true,
2026-06-13T10:36:10.7392743Z           "evidence": [
2026-06-13T10:36:10.7392828Z             {
2026-06-13T10:36:10.7392941Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7393140Z               "line": 40
2026-06-13T10:36:10.7393225Z             },
2026-06-13T10:36:10.7393307Z             {
2026-06-13T10:36:10.7393412Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7393502Z               "line": 100
2026-06-13T10:36:10.7393592Z             },
2026-06-13T10:36:10.7393669Z             {
2026-06-13T10:36:10.7393788Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7393873Z               "line": 215
2026-06-13T10:36:10.7393965Z             },
2026-06-13T10:36:10.7394046Z             {
2026-06-13T10:36:10.7394164Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7394356Z               "line": 314
2026-06-13T10:36:10.7394437Z             }
2026-06-13T10:36:10.7394527Z           ]
2026-06-13T10:36:10.7394614Z         },
2026-06-13T10:36:10.7394708Z         "int": {
2026-06-13T10:36:10.7394799Z           "complete": false,
2026-06-13T10:36:10.7394895Z           "evidence": []
2026-06-13T10:36:10.7394986Z         },
2026-06-13T10:36:10.7395085Z         "unit": {
2026-06-13T10:36:10.7395186Z           "complete": true,
2026-06-13T10:36:10.7395277Z           "evidence": [
2026-06-13T10:36:10.7395371Z             {
2026-06-13T10:36:10.7395481Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7395577Z               "line": 352
2026-06-13T10:36:10.7395672Z             },
2026-06-13T10:36:10.7395761Z             {
2026-06-13T10:36:10.7395876Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7395966Z               "line": 409
2026-06-13T10:36:10.7396054Z             },
2026-06-13T10:36:10.7396140Z             {
2026-06-13T10:36:10.7396265Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7396360Z               "line": 458
2026-06-13T10:36:10.7396445Z             },
2026-06-13T10:36:10.7396537Z             {
2026-06-13T10:36:10.7396642Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7396741Z               "line": 479
2026-06-13T10:36:10.7396832Z             }
2026-06-13T10:36:10.7396918Z           ]
2026-06-13T10:36:10.7397003Z         }
2026-06-13T10:36:10.7397084Z       }
2026-06-13T10:36:10.7397171Z     },
2026-06-13T10:36:10.7397251Z     {
2026-06-13T10:36:10.7397375Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-13T10:36:10.7397496Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-13T10:36:10.7397589Z       "requiredStages": [
2026-06-13T10:36:10.7397680Z         "impl",
2026-06-13T10:36:10.7397762Z         "unit"
2026-06-13T10:36:10.7397849Z       ],
2026-06-13T10:36:10.7397932Z       "stages": {
2026-06-13T10:36:10.7398024Z         "doc": {
2026-06-13T10:36:10.7398125Z           "complete": false,
2026-06-13T10:36:10.7398224Z           "evidence": []
2026-06-13T10:36:10.7398319Z         },
2026-06-13T10:36:10.7398409Z         "impl": {
2026-06-13T10:36:10.7398509Z           "complete": true,
2026-06-13T10:36:10.7398597Z           "evidence": [
2026-06-13T10:36:10.7398687Z             {
2026-06-13T10:36:10.7398808Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7398912Z               "line": 113
2026-06-13T10:36:10.7399094Z             },
2026-06-13T10:36:10.7399175Z             {
2026-06-13T10:36:10.7399308Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7399394Z               "line": 208
2026-06-13T10:36:10.7399489Z             }
2026-06-13T10:36:10.7399584Z           ]
2026-06-13T10:36:10.7399680Z         },
2026-06-13T10:36:10.7399771Z         "int": {
2026-06-13T10:36:10.7399861Z           "complete": false,
2026-06-13T10:36:10.7399961Z           "evidence": []
2026-06-13T10:36:10.7400053Z         },
2026-06-13T10:36:10.7400142Z         "unit": {
2026-06-13T10:36:10.7400237Z           "complete": true,
2026-06-13T10:36:10.7400334Z           "evidence": [
2026-06-13T10:36:10.7400424Z             {
2026-06-13T10:36:10.7400538Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7400629Z               "line": 373
2026-06-13T10:36:10.7400828Z             },
2026-06-13T10:36:10.7400924Z             {
2026-06-13T10:36:10.7401040Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7401133Z               "line": 436
2026-06-13T10:36:10.7401228Z             }
2026-06-13T10:36:10.7401309Z           ]
2026-06-13T10:36:10.7401401Z         }
2026-06-13T10:36:10.7401486Z       }
2026-06-13T10:36:10.7401581Z     },
2026-06-13T10:36:10.7401663Z     {
2026-06-13T10:36:10.7401796Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-13T10:36:10.7403136Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-13T10:36:10.7403345Z       "requiredStages": [
2026-06-13T10:36:10.7403444Z         "impl",
2026-06-13T10:36:10.7403540Z         "unit"
2026-06-13T10:36:10.7403635Z       ],
2026-06-13T10:36:10.7403729Z       "stages": {
2026-06-13T10:36:10.7403814Z         "doc": {
2026-06-13T10:36:10.7403909Z           "complete": true,
2026-06-13T10:36:10.7404001Z           "evidence": [
2026-06-13T10:36:10.7404095Z             {
2026-06-13T10:36:10.7404206Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7404305Z               "line": 206
2026-06-13T10:36:10.7404396Z             }
2026-06-13T10:36:10.7404477Z           ]
2026-06-13T10:36:10.7404568Z         },
2026-06-13T10:36:10.7404654Z         "impl": {
2026-06-13T10:36:10.7404753Z           "complete": true,
2026-06-13T10:36:10.7404850Z           "evidence": [
2026-06-13T10:36:10.7404935Z             {
2026-06-13T10:36:10.7405067Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7405155Z               "line": 593
2026-06-13T10:36:10.7405245Z             },
2026-06-13T10:36:10.7405331Z             {
2026-06-13T10:36:10.7405460Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7405546Z               "line": 685
2026-06-13T10:36:10.7405630Z             },
2026-06-13T10:36:10.7405721Z             {
2026-06-13T10:36:10.7405846Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.7405945Z               "line": 183
2026-06-13T10:36:10.7406031Z             }
2026-06-13T10:36:10.7406109Z           ]
2026-06-13T10:36:10.7406190Z         },
2026-06-13T10:36:10.7406274Z         "int": {
2026-06-13T10:36:10.7406369Z           "complete": false,
2026-06-13T10:36:10.7406455Z           "evidence": []
2026-06-13T10:36:10.7406549Z         },
2026-06-13T10:36:10.7406638Z         "unit": {
2026-06-13T10:36:10.7406734Z           "complete": true,
2026-06-13T10:36:10.7406820Z           "evidence": [
2026-06-13T10:36:10.7406906Z             {
2026-06-13T10:36:10.7407024Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7407111Z               "line": 734
2026-06-13T10:36:10.7407207Z             },
2026-06-13T10:36:10.7407296Z             {
2026-06-13T10:36:10.7407416Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-13T10:36:10.7407511Z               "line": 44
2026-06-13T10:36:10.7407596Z             },
2026-06-13T10:36:10.7407678Z             {
2026-06-13T10:36:10.7407784Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-13T10:36:10.7407864Z               "line": 57
2026-06-13T10:36:10.7407945Z             },
2026-06-13T10:36:10.7408032Z             {
2026-06-13T10:36:10.7408169Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-13T10:36:10.7408259Z               "line": 54
2026-06-13T10:36:10.7408347Z             }
2026-06-13T10:36:10.7408428Z           ]
2026-06-13T10:36:10.7408521Z         }
2026-06-13T10:36:10.7408613Z       }
2026-06-13T10:36:10.7408700Z     },
2026-06-13T10:36:10.7408789Z     {
2026-06-13T10:36:10.7408921Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-13T10:36:10.7409348Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-13T10:36:10.7409444Z       "requiredStages": [
2026-06-13T10:36:10.7409539Z         "impl",
2026-06-13T10:36:10.7409625Z         "unit"
2026-06-13T10:36:10.7409711Z       ],
2026-06-13T10:36:10.7409801Z       "stages": {
2026-06-13T10:36:10.7409882Z         "doc": {
2026-06-13T10:36:10.7409993Z           "complete": false,
2026-06-13T10:36:10.7410083Z           "evidence": []
2026-06-13T10:36:10.7410177Z         },
2026-06-13T10:36:10.7410264Z         "impl": {
2026-06-13T10:36:10.7410364Z           "complete": true,
2026-06-13T10:36:10.7410459Z           "evidence": [
2026-06-13T10:36:10.7410651Z             {
2026-06-13T10:36:10.7410793Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T10:36:10.7410889Z               "line": 26
2026-06-13T10:36:10.7410998Z             },
2026-06-13T10:36:10.7411084Z             {
2026-06-13T10:36:10.7411228Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T10:36:10.7411332Z               "line": 135
2026-06-13T10:36:10.7411427Z             },
2026-06-13T10:36:10.7411529Z             {
2026-06-13T10:36:10.7411665Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T10:36:10.7411765Z               "line": 26
2026-06-13T10:36:10.7411864Z             },
2026-06-13T10:36:10.7411966Z             {
2026-06-13T10:36:10.7412108Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T10:36:10.7412208Z               "line": 237
2026-06-13T10:36:10.7412309Z             }
2026-06-13T10:36:10.7412399Z           ]
2026-06-13T10:36:10.7412514Z         },
2026-06-13T10:36:10.7412623Z         "int": {
2026-06-13T10:36:10.7417962Z           "complete": false,
2026-06-13T10:36:10.7418105Z           "evidence": []
2026-06-13T10:36:10.7418190Z         },
2026-06-13T10:36:10.7418286Z         "unit": {
2026-06-13T10:36:10.7418381Z           "complete": true,
2026-06-13T10:36:10.7418476Z           "evidence": [
2026-06-13T10:36:10.7418582Z             {
2026-06-13T10:36:10.7418715Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T10:36:10.7418819Z               "line": 161
2026-06-13T10:36:10.7418897Z             },
2026-06-13T10:36:10.7419072Z             {
2026-06-13T10:36:10.7419202Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T10:36:10.7419302Z               "line": 170
2026-06-13T10:36:10.7419391Z             },
2026-06-13T10:36:10.7419477Z             {
2026-06-13T10:36:10.7419596Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T10:36:10.7419685Z               "line": 179
2026-06-13T10:36:10.7419779Z             },
2026-06-13T10:36:10.7419875Z             {
2026-06-13T10:36:10.7419991Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T10:36:10.7420075Z               "line": 190
2026-06-13T10:36:10.7420161Z             },
2026-06-13T10:36:10.7420248Z             {
2026-06-13T10:36:10.7420361Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T10:36:10.7420452Z               "line": 199
2026-06-13T10:36:10.7420534Z             },
2026-06-13T10:36:10.7420614Z             {
2026-06-13T10:36:10.7420728Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T10:36:10.7420820Z               "line": 216
2026-06-13T10:36:10.7420910Z             },
2026-06-13T10:36:10.7420991Z             {
2026-06-13T10:36:10.7421114Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T10:36:10.7421197Z               "line": 242
2026-06-13T10:36:10.7421281Z             },
2026-06-13T10:36:10.7421357Z             {
2026-06-13T10:36:10.7421478Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T10:36:10.7421582Z               "line": 295
2026-06-13T10:36:10.7421663Z             },
2026-06-13T10:36:10.7421749Z             {
2026-06-13T10:36:10.7421860Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T10:36:10.7421958Z               "line": 244
2026-06-13T10:36:10.7422045Z             },
2026-06-13T10:36:10.7422306Z             {
2026-06-13T10:36:10.7422444Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T10:36:10.7422531Z               "line": 265
2026-06-13T10:36:10.7422616Z             },
2026-06-13T10:36:10.7422696Z             {
2026-06-13T10:36:10.7422821Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T10:36:10.7422916Z               "line": 293
2026-06-13T10:36:10.7423001Z             },
2026-06-13T10:36:10.7423089Z             {
2026-06-13T10:36:10.7423207Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T10:36:10.7423307Z               "line": 317
2026-06-13T10:36:10.7423398Z             },
2026-06-13T10:36:10.7423588Z             {
2026-06-13T10:36:10.7423718Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T10:36:10.7423817Z               "line": 327
2026-06-13T10:36:10.7423898Z             },
2026-06-13T10:36:10.7423979Z             {
2026-06-13T10:36:10.7424123Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T10:36:10.7424208Z               "line": 540
2026-06-13T10:36:10.7424299Z             }
2026-06-13T10:36:10.7424386Z           ]
2026-06-13T10:36:10.7424470Z         }
2026-06-13T10:36:10.7424560Z       }
2026-06-13T10:36:10.7424641Z     },
2026-06-13T10:36:10.7424722Z     {
2026-06-13T10:36:10.7424849Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-13T10:36:10.7425006Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-13T10:36:10.7425107Z       "requiredStages": [
2026-06-13T10:36:10.7425197Z         "impl",
2026-06-13T10:36:10.7425292Z         "unit"
2026-06-13T10:36:10.7425398Z       ],
2026-06-13T10:36:10.7425530Z       "stages": {
2026-06-13T10:36:10.7425616Z         "doc": {
2026-06-13T10:36:10.7425722Z           "complete": false,
2026-06-13T10:36:10.7425821Z           "evidence": []
2026-06-13T10:36:10.7425902Z         },
2026-06-13T10:36:10.7425998Z         "impl": {
2026-06-13T10:36:10.7426093Z           "complete": true,
2026-06-13T10:36:10.7426197Z           "evidence": [
2026-06-13T10:36:10.7426285Z             {
2026-06-13T10:36:10.7426403Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T10:36:10.7426503Z               "line": 25
2026-06-13T10:36:10.7426585Z             },
2026-06-13T10:36:10.7426675Z             {
2026-06-13T10:36:10.7426794Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T10:36:10.7426890Z               "line": 26
2026-06-13T10:36:10.7426976Z             },
2026-06-13T10:36:10.7427070Z             {
2026-06-13T10:36:10.7427186Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T10:36:10.7427277Z               "line": 159
2026-06-13T10:36:10.7427380Z             }
2026-06-13T10:36:10.7427465Z           ]
2026-06-13T10:36:10.7427561Z         },
2026-06-13T10:36:10.7427646Z         "int": {
2026-06-13T10:36:10.7427744Z           "complete": false,
2026-06-13T10:36:10.7427849Z           "evidence": []
2026-06-13T10:36:10.7427936Z         },
2026-06-13T10:36:10.7428035Z         "unit": {
2026-06-13T10:36:10.7428125Z           "complete": true,
2026-06-13T10:36:10.7428227Z           "evidence": [
2026-06-13T10:36:10.7428307Z             {
2026-06-13T10:36:10.7428421Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T10:36:10.7428513Z               "line": 184
2026-06-13T10:36:10.7428598Z             },
2026-06-13T10:36:10.7428684Z             {
2026-06-13T10:36:10.7428793Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T10:36:10.7428885Z               "line": 236
2026-06-13T10:36:10.7429032Z             },
2026-06-13T10:36:10.7429122Z             {
2026-06-13T10:36:10.7429247Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T10:36:10.7429347Z               "line": 186
2026-06-13T10:36:10.7429432Z             }
2026-06-13T10:36:10.7429514Z           ]
2026-06-13T10:36:10.7429604Z         }
2026-06-13T10:36:10.7429685Z       }
2026-06-13T10:36:10.7429772Z     },
2026-06-13T10:36:10.7429867Z     {
2026-06-13T10:36:10.7430079Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-13T10:36:10.7430259Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-13T10:36:10.7430354Z       "requiredStages": [
2026-06-13T10:36:10.7430445Z         "impl",
2026-06-13T10:36:10.7430531Z         "unit"
2026-06-13T10:36:10.7430625Z       ],
2026-06-13T10:36:10.7430716Z       "stages": {
2026-06-13T10:36:10.7430798Z         "doc": {
2026-06-13T10:36:10.7430894Z           "complete": false,
2026-06-13T10:36:10.7430983Z           "evidence": []
2026-06-13T10:36:10.7431074Z         },
2026-06-13T10:36:10.7431160Z         "impl": {
2026-06-13T10:36:10.7431260Z           "complete": true,
2026-06-13T10:36:10.7431461Z           "evidence": [
2026-06-13T10:36:10.7431541Z             {
2026-06-13T10:36:10.7431665Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T10:36:10.7431757Z               "line": 48
2026-06-13T10:36:10.7431846Z             },
2026-06-13T10:36:10.7431927Z             {
2026-06-13T10:36:10.7432057Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T10:36:10.7432156Z               "line": 55
2026-06-13T10:36:10.7432237Z             },
2026-06-13T10:36:10.7432334Z             {
2026-06-13T10:36:10.7432452Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T10:36:10.7432547Z               "line": 74
2026-06-13T10:36:10.7432629Z             },
2026-06-13T10:36:10.7432720Z             {
2026-06-13T10:36:10.7432842Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T10:36:10.7432927Z               "line": 91
2026-06-13T10:36:10.7433014Z             }
2026-06-13T10:36:10.7433101Z           ]
2026-06-13T10:36:10.7433190Z         },
2026-06-13T10:36:10.7433285Z         "int": {
2026-06-13T10:36:10.7433386Z           "complete": false,
2026-06-13T10:36:10.7433485Z           "evidence": []
2026-06-13T10:36:10.7433566Z         },
2026-06-13T10:36:10.7433663Z         "unit": {
2026-06-13T10:36:10.7433753Z           "complete": true,
2026-06-13T10:36:10.7433857Z           "evidence": [
2026-06-13T10:36:10.7433939Z             {
2026-06-13T10:36:10.7434063Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T10:36:10.7434162Z               "line": 149
2026-06-13T10:36:10.7434244Z             },
2026-06-13T10:36:10.7434335Z             {
2026-06-13T10:36:10.7434449Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T10:36:10.7434554Z               "line": 166
2026-06-13T10:36:10.7434636Z             },
2026-06-13T10:36:10.7434730Z             {
2026-06-13T10:36:10.7434849Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T10:36:10.7434942Z               "line": 176
2026-06-13T10:36:10.7435049Z             },
2026-06-13T10:36:10.7435129Z             {
2026-06-13T10:36:10.7435249Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T10:36:10.7435338Z               "line": 194
2026-06-13T10:36:10.7435433Z             },
2026-06-13T10:36:10.7435528Z             {
2026-06-13T10:36:10.7435648Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T10:36:10.7435743Z               "line": 207
2026-06-13T10:36:10.7435828Z             }
2026-06-13T10:36:10.7435915Z           ]
2026-06-13T10:36:10.7436000Z         }
2026-06-13T10:36:10.7436095Z       }
2026-06-13T10:36:10.7436196Z     },
2026-06-13T10:36:10.7436277Z     {
2026-06-13T10:36:10.7436400Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-13T10:36:10.7436587Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-13T10:36:10.7436686Z       "requiredStages": [
2026-06-13T10:36:10.7436767Z         "impl",
2026-06-13T10:36:10.7436859Z         "unit"
2026-06-13T10:36:10.7436949Z       ],
2026-06-13T10:36:10.7437044Z       "stages": {
2026-06-13T10:36:10.7437135Z         "doc": {
2026-06-13T10:36:10.7437231Z           "complete": false,
2026-06-13T10:36:10.7437325Z           "evidence": []
2026-06-13T10:36:10.7437411Z         },
2026-06-13T10:36:10.7437508Z         "impl": {
2026-06-13T10:36:10.7437606Z           "complete": true,
2026-06-13T10:36:10.7437774Z           "evidence": [
2026-06-13T10:36:10.7437861Z             {
2026-06-13T10:36:10.7437992Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7438087Z               "line": 416
2026-06-13T10:36:10.7438173Z             },
2026-06-13T10:36:10.7438266Z             {
2026-06-13T10:36:10.7438390Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T10:36:10.7438476Z               "line": 26
2026-06-13T10:36:10.7438572Z             }
2026-06-13T10:36:10.7438657Z           ]
2026-06-13T10:36:10.7438748Z         },
2026-06-13T10:36:10.7438830Z         "int": {
2026-06-13T10:36:10.7438934Z           "complete": false,
2026-06-13T10:36:10.7439230Z           "evidence": []
2026-06-13T10:36:10.7439314Z         },
2026-06-13T10:36:10.7439402Z         "unit": {
2026-06-13T10:36:10.7439492Z           "complete": true,
2026-06-13T10:36:10.7439587Z           "evidence": [
2026-06-13T10:36:10.7439668Z             {
2026-06-13T10:36:10.7439793Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T10:36:10.7439897Z               "line": 150
2026-06-13T10:36:10.7439978Z             },
2026-06-13T10:36:10.7440065Z             {
2026-06-13T10:36:10.7440178Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T10:36:10.7440269Z               "line": 208
2026-06-13T10:36:10.7440351Z             }
2026-06-13T10:36:10.7440437Z           ]
2026-06-13T10:36:10.7440521Z         }
2026-06-13T10:36:10.7440601Z       }
2026-06-13T10:36:10.7440683Z     },
2026-06-13T10:36:10.7440768Z     {
2026-06-13T10:36:10.7440890Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-13T10:36:10.7442468Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-13T10:36:10.7442569Z       "requiredStages": [
2026-06-13T10:36:10.7442660Z         "doc",
2026-06-13T10:36:10.7442739Z         "impl",
2026-06-13T10:36:10.7442826Z         "unit"
2026-06-13T10:36:10.7442913Z       ],
2026-06-13T10:36:10.7442999Z       "stages": {
2026-06-13T10:36:10.7443083Z         "doc": {
2026-06-13T10:36:10.7443175Z           "complete": true,
2026-06-13T10:36:10.7443280Z           "evidence": [
2026-06-13T10:36:10.7443360Z             {
2026-06-13T10:36:10.7443473Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7443564Z               "line": 214
2026-06-13T10:36:10.7443661Z             }
2026-06-13T10:36:10.7443745Z           ]
2026-06-13T10:36:10.7443826Z         },
2026-06-13T10:36:10.7443923Z         "impl": {
2026-06-13T10:36:10.7444008Z           "complete": true,
2026-06-13T10:36:10.7444112Z           "evidence": [
2026-06-13T10:36:10.7444204Z             {
2026-06-13T10:36:10.7444333Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7444436Z               "line": 54
2026-06-13T10:36:10.7444518Z             },
2026-06-13T10:36:10.7444608Z             {
2026-06-13T10:36:10.7444722Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7444819Z               "line": 511
2026-06-13T10:36:10.7444909Z             },
2026-06-13T10:36:10.7444985Z             {
2026-06-13T10:36:10.7445124Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7445215Z               "line": 36
2026-06-13T10:36:10.7445309Z             },
2026-06-13T10:36:10.7445385Z             {
2026-06-13T10:36:10.7445516Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7445623Z               "line": 59
2026-06-13T10:36:10.7445708Z             },
2026-06-13T10:36:10.7445809Z             {
2026-06-13T10:36:10.7445931Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7446184Z               "line": 83
2026-06-13T10:36:10.7446269Z             },
2026-06-13T10:36:10.7446378Z             {
2026-06-13T10:36:10.7446523Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7446631Z               "line": 140
2026-06-13T10:36:10.7446751Z             },
2026-06-13T10:36:10.7446837Z             {
2026-06-13T10:36:10.7446970Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7447061Z               "line": 159
2026-06-13T10:36:10.7447161Z             },
2026-06-13T10:36:10.7447261Z             {
2026-06-13T10:36:10.7447385Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7447580Z               "line": 384
2026-06-13T10:36:10.7447661Z             },
2026-06-13T10:36:10.7447744Z             {
2026-06-13T10:36:10.7447857Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7447952Z               "line": 526
2026-06-13T10:36:10.7448044Z             },
2026-06-13T10:36:10.7448138Z             {
2026-06-13T10:36:10.7448253Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7448339Z               "line": 572
2026-06-13T10:36:10.7448430Z             },
2026-06-13T10:36:10.7448510Z             {
2026-06-13T10:36:10.7448633Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T10:36:10.7448724Z               "line": 145
2026-06-13T10:36:10.7448812Z             },
2026-06-13T10:36:10.7448897Z             {
2026-06-13T10:36:10.7449094Z               "path": "crates/spt/src/main.rs",
2026-06-13T10:36:10.7449189Z               "line": 39
2026-06-13T10:36:10.7449279Z             }
2026-06-13T10:36:10.7449361Z           ]
2026-06-13T10:36:10.7449461Z         },
2026-06-13T10:36:10.7449546Z         "int": {
2026-06-13T10:36:10.7449648Z           "complete": false,
2026-06-13T10:36:10.7449742Z           "evidence": []
2026-06-13T10:36:10.7449832Z         },
2026-06-13T10:36:10.7449914Z         "unit": {
2026-06-13T10:36:10.7450009Z           "complete": true,
2026-06-13T10:36:10.7450109Z           "evidence": [
2026-06-13T10:36:10.7450190Z             {
2026-06-13T10:36:10.7450305Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7450390Z               "line": 785
2026-06-13T10:36:10.7450481Z             },
2026-06-13T10:36:10.7450558Z             {
2026-06-13T10:36:10.7450687Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7450776Z               "line": 826
2026-06-13T10:36:10.7450858Z             },
2026-06-13T10:36:10.7450944Z             {
2026-06-13T10:36:10.7451067Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7451171Z               "line": 900
2026-06-13T10:36:10.7451266Z             }
2026-06-13T10:36:10.7451347Z           ]
2026-06-13T10:36:10.7451426Z         }
2026-06-13T10:36:10.7451507Z       }
2026-06-13T10:36:10.7451593Z     },
2026-06-13T10:36:10.7451671Z     {
2026-06-13T10:36:10.7451793Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-13T10:36:10.7453545Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-13T10:36:10.7453638Z       "requiredStages": [
2026-06-13T10:36:10.7453744Z         "impl",
2026-06-13T10:36:10.7453831Z         "unit"
2026-06-13T10:36:10.7453920Z       ],
2026-06-13T10:36:10.7454024Z       "stages": {
2026-06-13T10:36:10.7454110Z         "doc": {
2026-06-13T10:36:10.7454211Z           "complete": false,
2026-06-13T10:36:10.7454296Z           "evidence": []
2026-06-13T10:36:10.7454497Z         },
2026-06-13T10:36:10.7454592Z         "impl": {
2026-06-13T10:36:10.7454687Z           "complete": true,
2026-06-13T10:36:10.7454778Z           "evidence": [
2026-06-13T10:36:10.7454859Z             {
2026-06-13T10:36:10.7454992Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T10:36:10.7455074Z               "line": 31
2026-06-13T10:36:10.7455159Z             }
2026-06-13T10:36:10.7455245Z           ]
2026-06-13T10:36:10.7455335Z         },
2026-06-13T10:36:10.7455427Z         "int": {
2026-06-13T10:36:10.7455516Z           "complete": false,
2026-06-13T10:36:10.7455612Z           "evidence": []
2026-06-13T10:36:10.7455694Z         },
2026-06-13T10:36:10.7455888Z         "unit": {
2026-06-13T10:36:10.7455970Z           "complete": true,
2026-06-13T10:36:10.7456057Z           "evidence": [
2026-06-13T10:36:10.7456137Z             {
2026-06-13T10:36:10.7456255Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T10:36:10.7456354Z               "line": 181
2026-06-13T10:36:10.7456445Z             }
2026-06-13T10:36:10.7456529Z           ]
2026-06-13T10:36:10.7456609Z         }
2026-06-13T10:36:10.7456701Z       }
2026-06-13T10:36:10.7456787Z     },
2026-06-13T10:36:10.7456872Z     {
2026-06-13T10:36:10.7457001Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-13T10:36:10.7457139Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-13T10:36:10.7457239Z       "requiredStages": [
2026-06-13T10:36:10.7457321Z         "impl",
2026-06-13T10:36:10.7457411Z         "unit"
2026-06-13T10:36:10.7457501Z       ],
2026-06-13T10:36:10.7457587Z       "stages": {
2026-06-13T10:36:10.7457679Z         "doc": {
2026-06-13T10:36:10.7457783Z           "complete": false,
2026-06-13T10:36:10.7457873Z           "evidence": []
2026-06-13T10:36:10.7457955Z         },
2026-06-13T10:36:10.7458045Z         "impl": {
2026-06-13T10:36:10.7458145Z           "complete": true,
2026-06-13T10:36:10.7458231Z           "evidence": [
2026-06-13T10:36:10.7458318Z             {
2026-06-13T10:36:10.7458436Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T10:36:10.7458536Z               "line": 49
2026-06-13T10:36:10.7458619Z             },
2026-06-13T10:36:10.7458703Z             {
2026-06-13T10:36:10.7458827Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T10:36:10.7458909Z               "line": 81
2026-06-13T10:36:10.7459098Z             }
2026-06-13T10:36:10.7459178Z           ]
2026-06-13T10:36:10.7459265Z         },
2026-06-13T10:36:10.7459344Z         "int": {
2026-06-13T10:36:10.7459434Z           "complete": false,
2026-06-13T10:36:10.7459529Z           "evidence": []
2026-06-13T10:36:10.7459611Z         },
2026-06-13T10:36:10.7459701Z         "unit": {
2026-06-13T10:36:10.7459782Z           "complete": true,
2026-06-13T10:36:10.7459873Z           "evidence": [
2026-06-13T10:36:10.7459945Z             {
2026-06-13T10:36:10.7460063Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T10:36:10.7460149Z               "line": 156
2026-06-13T10:36:10.7460231Z             },
2026-06-13T10:36:10.7460321Z             {
2026-06-13T10:36:10.7460435Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T10:36:10.7460527Z               "line": 173
2026-06-13T10:36:10.7460621Z             },
2026-06-13T10:36:10.7460707Z             {
2026-06-13T10:36:10.7460827Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T10:36:10.7460913Z               "line": 196
2026-06-13T10:36:10.7460998Z             }
2026-06-13T10:36:10.7461084Z           ]
2026-06-13T10:36:10.7461166Z         }
2026-06-13T10:36:10.7461251Z       }
2026-06-13T10:36:10.7461331Z     },
2026-06-13T10:36:10.7461428Z     {
2026-06-13T10:36:10.7461557Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-13T10:36:10.7461736Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-13T10:36:10.7461822Z       "requiredStages": [
2026-06-13T10:36:10.7461921Z         "impl",
2026-06-13T10:36:10.7462010Z         "unit"
2026-06-13T10:36:10.7462183Z       ],
2026-06-13T10:36:10.7462278Z       "stages": {
2026-06-13T10:36:10.7462363Z         "doc": {
2026-06-13T10:36:10.7462464Z           "complete": false,
2026-06-13T10:36:10.7462549Z           "evidence": []
2026-06-13T10:36:10.7462630Z         },
2026-06-13T10:36:10.7462721Z         "impl": {
2026-06-13T10:36:10.7462807Z           "complete": true,
2026-06-13T10:36:10.7462907Z           "evidence": [
2026-06-13T10:36:10.7462997Z             {
2026-06-13T10:36:10.7463136Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T10:36:10.7463226Z               "line": 120
2026-06-13T10:36:10.7463316Z             }
2026-06-13T10:36:10.7463508Z           ]
2026-06-13T10:36:10.7463589Z         },
2026-06-13T10:36:10.7463689Z         "int": {
2026-06-13T10:36:10.7463776Z           "complete": false,
2026-06-13T10:36:10.7463874Z           "evidence": []
2026-06-13T10:36:10.7463956Z         },
2026-06-13T10:36:10.7464043Z         "unit": {
2026-06-13T10:36:10.7464142Z           "complete": true,
2026-06-13T10:36:10.7464233Z           "evidence": [
2026-06-13T10:36:10.7464319Z             {
2026-06-13T10:36:10.7464434Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T10:36:10.7464532Z               "line": 212
2026-06-13T10:36:10.7464617Z             },
2026-06-13T10:36:10.7464703Z             {
2026-06-13T10:36:10.7464828Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T10:36:10.7464913Z               "line": 221
2026-06-13T10:36:10.7465004Z             },
2026-06-13T10:36:10.7465085Z             {
2026-06-13T10:36:10.7465208Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T10:36:10.7465300Z               "line": 229
2026-06-13T10:36:10.7465395Z             },
2026-06-13T10:36:10.7465481Z             {
2026-06-13T10:36:10.7465600Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T10:36:10.7465701Z               "line": 239
2026-06-13T10:36:10.7465781Z             },
2026-06-13T10:36:10.7465876Z             {
2026-06-13T10:36:10.7465987Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T10:36:10.7466081Z               "line": 249
2026-06-13T10:36:10.7466167Z             }
2026-06-13T10:36:10.7466254Z           ]
2026-06-13T10:36:10.7466340Z         }
2026-06-13T10:36:10.7466419Z       }
2026-06-13T10:36:10.7466510Z     },
2026-06-13T10:36:10.7466593Z     {
2026-06-13T10:36:10.7466711Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-13T10:36:10.7466876Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-13T10:36:10.7466972Z       "requiredStages": [
2026-06-13T10:36:10.7467061Z         "impl",
2026-06-13T10:36:10.7467151Z         "unit"
2026-06-13T10:36:10.7467237Z       ],
2026-06-13T10:36:10.7467328Z       "stages": {
2026-06-13T10:36:10.7467418Z         "doc": {
2026-06-13T10:36:10.7467513Z           "complete": false,
2026-06-13T10:36:10.7467605Z           "evidence": []
2026-06-13T10:36:10.7467690Z         },
2026-06-13T10:36:10.7467785Z         "impl": {
2026-06-13T10:36:10.7467881Z           "complete": true,
2026-06-13T10:36:10.7467971Z           "evidence": [
2026-06-13T10:36:10.7468056Z             {
2026-06-13T10:36:10.7468177Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T10:36:10.7468262Z               "line": 14
2026-06-13T10:36:10.7468357Z             },
2026-06-13T10:36:10.7468438Z             {
2026-06-13T10:36:10.7468554Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T10:36:10.7468643Z               "line": 62
2026-06-13T10:36:10.7468734Z             }
2026-06-13T10:36:10.7468825Z           ]
2026-06-13T10:36:10.7468906Z         },
2026-06-13T10:36:10.7469087Z         "int": {
2026-06-13T10:36:10.7469179Z           "complete": false,
2026-06-13T10:36:10.7469282Z           "evidence": []
2026-06-13T10:36:10.7469363Z         },
2026-06-13T10:36:10.7469460Z         "unit": {
2026-06-13T10:36:10.7469559Z           "complete": true,
2026-06-13T10:36:10.7469649Z           "evidence": [
2026-06-13T10:36:10.7469849Z             {
2026-06-13T10:36:10.7469961Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T10:36:10.7470055Z               "line": 160
2026-06-13T10:36:10.7470147Z             },
2026-06-13T10:36:10.7470238Z             {
2026-06-13T10:36:10.7470356Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T10:36:10.7470443Z               "line": 197
2026-06-13T10:36:10.7470533Z             },
2026-06-13T10:36:10.7470614Z             {
2026-06-13T10:36:10.7470729Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T10:36:10.7470810Z               "line": 219
2026-06-13T10:36:10.7470901Z             }
2026-06-13T10:36:10.7471102Z           ]
2026-06-13T10:36:10.7471186Z         }
2026-06-13T10:36:10.7471277Z       }
2026-06-13T10:36:10.7471358Z     },
2026-06-13T10:36:10.7471449Z     {
2026-06-13T10:36:10.7471558Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-13T10:36:10.7472942Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-13T10:36:10.7473048Z       "requiredStages": [],
2026-06-13T10:36:10.7473134Z       "stages": {
2026-06-13T10:36:10.7473223Z         "doc": {
2026-06-13T10:36:10.7473315Z           "complete": true,
2026-06-13T10:36:10.7473410Z           "evidence": [
2026-06-13T10:36:10.7473496Z             {
2026-06-13T10:36:10.7473610Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7473706Z               "line": 165
2026-06-13T10:36:10.7473786Z             }
2026-06-13T10:36:10.7473876Z           ]
2026-06-13T10:36:10.7473954Z         },
2026-06-13T10:36:10.7474035Z         "impl": {
2026-06-13T10:36:10.7474140Z           "complete": false,
2026-06-13T10:36:10.7474225Z           "evidence": []
2026-06-13T10:36:10.7474312Z         },
2026-06-13T10:36:10.7474397Z         "int": {
2026-06-13T10:36:10.7474497Z           "complete": false,
2026-06-13T10:36:10.7474584Z           "evidence": []
2026-06-13T10:36:10.7474669Z         },
2026-06-13T10:36:10.7474758Z         "unit": {
2026-06-13T10:36:10.7474850Z           "complete": false,
2026-06-13T10:36:10.7474941Z           "evidence": []
2026-06-13T10:36:10.7475017Z         }
2026-06-13T10:36:10.7475106Z       }
2026-06-13T10:36:10.7475187Z     },
2026-06-13T10:36:10.7475263Z     {
2026-06-13T10:36:10.7475393Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-13T10:36:10.7475608Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-13T10:36:10.7475708Z       "requiredStages": [
2026-06-13T10:36:10.7475792Z         "impl",
2026-06-13T10:36:10.7475884Z         "unit"
2026-06-13T10:36:10.7475974Z       ],
2026-06-13T10:36:10.7476088Z       "stages": {
2026-06-13T10:36:10.7476184Z         "doc": {
2026-06-13T10:36:10.7476280Z           "complete": false,
2026-06-13T10:36:10.7476375Z           "evidence": []
2026-06-13T10:36:10.7476460Z         },
2026-06-13T10:36:10.7476547Z         "impl": {
2026-06-13T10:36:10.7476641Z           "complete": true,
2026-06-13T10:36:10.7476741Z           "evidence": [
2026-06-13T10:36:10.7476833Z             {
2026-06-13T10:36:10.7476956Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T10:36:10.7477047Z               "line": 76
2026-06-13T10:36:10.7477128Z             },
2026-06-13T10:36:10.7477215Z             {
2026-06-13T10:36:10.7477332Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T10:36:10.7477441Z               "line": 167
2026-06-13T10:36:10.7477523Z             },
2026-06-13T10:36:10.7477602Z             {
2026-06-13T10:36:10.7477716Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T10:36:10.7477802Z               "line": 233
2026-06-13T10:36:10.7477888Z             },
2026-06-13T10:36:10.7478059Z             {
2026-06-13T10:36:10.7478179Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T10:36:10.7478269Z               "line": 272
2026-06-13T10:36:10.7478354Z             }
2026-06-13T10:36:10.7478441Z           ]
2026-06-13T10:36:10.7478526Z         },
2026-06-13T10:36:10.7478612Z         "int": {
2026-06-13T10:36:10.7478702Z           "complete": false,
2026-06-13T10:36:10.7478794Z           "evidence": []
2026-06-13T10:36:10.7478884Z         },
2026-06-13T10:36:10.7479041Z         "unit": {
2026-06-13T10:36:10.7479142Z           "complete": true,
2026-06-13T10:36:10.7479237Z           "evidence": [
2026-06-13T10:36:10.7479429Z             {
2026-06-13T10:36:10.7479546Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T10:36:10.7479637Z               "line": 321
2026-06-13T10:36:10.7479724Z             },
2026-06-13T10:36:10.7479809Z             {
2026-06-13T10:36:10.7479933Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T10:36:10.7480029Z               "line": 329
2026-06-13T10:36:10.7480120Z             },
2026-06-13T10:36:10.7480204Z             {
2026-06-13T10:36:10.7480318Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T10:36:10.7480404Z               "line": 356
2026-06-13T10:36:10.7480488Z             },
2026-06-13T10:36:10.7480578Z             {
2026-06-13T10:36:10.7480693Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T10:36:10.7480779Z               "line": 395
2026-06-13T10:36:10.7480864Z             },
2026-06-13T10:36:10.7480945Z             {
2026-06-13T10:36:10.7481065Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T10:36:10.7481155Z               "line": 406
2026-06-13T10:36:10.7481245Z             },
2026-06-13T10:36:10.7481328Z             {
2026-06-13T10:36:10.7481437Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T10:36:10.7481527Z               "line": 418
2026-06-13T10:36:10.7481613Z             },
2026-06-13T10:36:10.7481704Z             {
2026-06-13T10:36:10.7481813Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T10:36:10.7481899Z               "line": 442
2026-06-13T10:36:10.7481981Z             }
2026-06-13T10:36:10.7482066Z           ]
2026-06-13T10:36:10.7482156Z         }
2026-06-13T10:36:10.7482228Z       }
2026-06-13T10:36:10.7482315Z     },
2026-06-13T10:36:10.7482399Z     {
2026-06-13T10:36:10.7482514Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-13T10:36:10.7482663Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-13T10:36:10.7482762Z       "requiredStages": [
2026-06-13T10:36:10.7482851Z         "impl",
2026-06-13T10:36:10.7482938Z         "int"
2026-06-13T10:36:10.7483027Z       ],
2026-06-13T10:36:10.7483112Z       "stages": {
2026-06-13T10:36:10.7483197Z         "doc": {
2026-06-13T10:36:10.7483288Z           "complete": false,
2026-06-13T10:36:10.7483379Z           "evidence": []
2026-06-13T10:36:10.7483459Z         },
2026-06-13T10:36:10.7483545Z         "impl": {
2026-06-13T10:36:10.7483637Z           "complete": true,
2026-06-13T10:36:10.7483722Z           "evidence": [
2026-06-13T10:36:10.7483807Z             {
2026-06-13T10:36:10.7483918Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7484008Z               "line": 22
2026-06-13T10:36:10.7484094Z             }
2026-06-13T10:36:10.7484175Z           ]
2026-06-13T10:36:10.7484261Z         },
2026-06-13T10:36:10.7484351Z         "int": {
2026-06-13T10:36:10.7484446Z           "complete": true,
2026-06-13T10:36:10.7484534Z           "evidence": [
2026-06-13T10:36:10.7484619Z             {
2026-06-13T10:36:10.7484751Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-13T10:36:10.7484849Z               "line": 18
2026-06-13T10:36:10.7484942Z             }
2026-06-13T10:36:10.7485024Z           ]
2026-06-13T10:36:10.7485115Z         },
2026-06-13T10:36:10.7485206Z         "unit": {
2026-06-13T10:36:10.7485300Z           "complete": false,
2026-06-13T10:36:10.7485563Z           "evidence": []
2026-06-13T10:36:10.7485675Z         }
2026-06-13T10:36:10.7485771Z       }
2026-06-13T10:36:10.7485853Z     },
2026-06-13T10:36:10.7485943Z     {
2026-06-13T10:36:10.7486071Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-13T10:36:10.7486263Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-13T10:36:10.7486367Z       "requiredStages": [
2026-06-13T10:36:10.7486454Z         "impl",
2026-06-13T10:36:10.7486544Z         "unit"
2026-06-13T10:36:10.7486629Z       ],
2026-06-13T10:36:10.7486720Z       "stages": {
2026-06-13T10:36:10.7486807Z         "doc": {
2026-06-13T10:36:10.7491438Z           "complete": false,
2026-06-13T10:36:10.7491720Z           "evidence": []
2026-06-13T10:36:10.7491844Z         },
2026-06-13T10:36:10.7491940Z         "impl": {
2026-06-13T10:36:10.7492039Z           "complete": true,
2026-06-13T10:36:10.7492144Z           "evidence": [
2026-06-13T10:36:10.7492231Z             {
2026-06-13T10:36:10.7492382Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7492488Z               "line": 415
2026-06-13T10:36:10.7492574Z             },
2026-06-13T10:36:10.7492668Z             {
2026-06-13T10:36:10.7492793Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T10:36:10.7492889Z               "line": 27
2026-06-13T10:36:10.7492973Z             }
2026-06-13T10:36:10.7493065Z           ]
2026-06-13T10:36:10.7493156Z         },
2026-06-13T10:36:10.7493242Z         "int": {
2026-06-13T10:36:10.7493345Z           "complete": false,
2026-06-13T10:36:10.7493430Z           "evidence": []
2026-06-13T10:36:10.7493522Z         },
2026-06-13T10:36:10.7493615Z         "unit": {
2026-06-13T10:36:10.7493709Z           "complete": true,
2026-06-13T10:36:10.7493800Z           "evidence": [
2026-06-13T10:36:10.7493892Z             {
2026-06-13T10:36:10.7494024Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7494115Z               "line": 940
2026-06-13T10:36:10.7494216Z             },
2026-06-13T10:36:10.7494296Z             {
2026-06-13T10:36:10.7494415Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T10:36:10.7494511Z               "line": 181
2026-06-13T10:36:10.7494597Z             }
2026-06-13T10:36:10.7494682Z           ]
2026-06-13T10:36:10.7494765Z         }
2026-06-13T10:36:10.7494854Z       }
2026-06-13T10:36:10.7494935Z     },
2026-06-13T10:36:10.7495026Z     {
2026-06-13T10:36:10.7495141Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-13T10:36:10.7495321Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-13T10:36:10.7495418Z       "requiredStages": [
2026-06-13T10:36:10.7495512Z         "impl",
2026-06-13T10:36:10.7495603Z         "unit"
2026-06-13T10:36:10.7495689Z       ],
2026-06-13T10:36:10.7495780Z       "stages": {
2026-06-13T10:36:10.7495860Z         "doc": {
2026-06-13T10:36:10.7495956Z           "complete": false,
2026-06-13T10:36:10.7496053Z           "evidence": []
2026-06-13T10:36:10.7496137Z         },
2026-06-13T10:36:10.7496236Z         "impl": {
2026-06-13T10:36:10.7496326Z           "complete": true,
2026-06-13T10:36:10.7496423Z           "evidence": [
2026-06-13T10:36:10.7496508Z             {
2026-06-13T10:36:10.7496641Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7496733Z               "line": 73
2026-06-13T10:36:10.7496818Z             },
2026-06-13T10:36:10.7496903Z             {
2026-06-13T10:36:10.7497023Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7497123Z               "line": 941
2026-06-13T10:36:10.7497213Z             },
2026-06-13T10:36:10.7497299Z             {
2026-06-13T10:36:10.7497428Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T10:36:10.7497514Z               "line": 20
2026-06-13T10:36:10.7497609Z             },
2026-06-13T10:36:10.7497691Z             {
2026-06-13T10:36:10.7497810Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T10:36:10.7497905Z               "line": 100
2026-06-13T10:36:10.7498100Z             },
2026-06-13T10:36:10.7498195Z             {
2026-06-13T10:36:10.7498311Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T10:36:10.7498410Z               "line": 443
2026-06-13T10:36:10.7498495Z             },
2026-06-13T10:36:10.7498581Z             {
2026-06-13T10:36:10.7498704Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T10:36:10.7498788Z               "line": 68
2026-06-13T10:36:10.7498883Z             },
2026-06-13T10:36:10.7499042Z             {
2026-06-13T10:36:10.7499174Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T10:36:10.7499260Z               "line": 80
2026-06-13T10:36:10.7499455Z             }
2026-06-13T10:36:10.7499542Z           ]
2026-06-13T10:36:10.7499628Z         },
2026-06-13T10:36:10.7499714Z         "int": {
2026-06-13T10:36:10.7499803Z           "complete": true,
2026-06-13T10:36:10.7499905Z           "evidence": [
2026-06-13T10:36:10.7499990Z             {
2026-06-13T10:36:10.7500118Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-13T10:36:10.7500215Z               "line": 44
2026-06-13T10:36:10.7500295Z             }
2026-06-13T10:36:10.7500381Z           ]
2026-06-13T10:36:10.7500462Z         },
2026-06-13T10:36:10.7500554Z         "unit": {
2026-06-13T10:36:10.7500638Z           "complete": true,
2026-06-13T10:36:10.7500733Z           "evidence": [
2026-06-13T10:36:10.7500826Z             {
2026-06-13T10:36:10.7500935Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7501034Z               "line": 1141
2026-06-13T10:36:10.7501116Z             },
2026-06-13T10:36:10.7501217Z             {
2026-06-13T10:36:10.7501324Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.7501428Z               "line": 1157
2026-06-13T10:36:10.7501510Z             },
2026-06-13T10:36:10.7501585Z             {
2026-06-13T10:36:10.7501712Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7501798Z               "line": 1069
2026-06-13T10:36:10.7501885Z             },
2026-06-13T10:36:10.7501970Z             {
2026-06-13T10:36:10.7502079Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T10:36:10.7502171Z               "line": 152
2026-06-13T10:36:10.7502257Z             },
2026-06-13T10:36:10.7502337Z             {
2026-06-13T10:36:10.7502453Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T10:36:10.7502538Z               "line": 175
2026-06-13T10:36:10.7502628Z             },
2026-06-13T10:36:10.7502709Z             {
2026-06-13T10:36:10.7502829Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T10:36:10.7502924Z               "line": 186
2026-06-13T10:36:10.7503010Z             },
2026-06-13T10:36:10.7503087Z             {
2026-06-13T10:36:10.7503205Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T10:36:10.7503295Z               "line": 202
2026-06-13T10:36:10.7503378Z             },
2026-06-13T10:36:10.7503464Z             {
2026-06-13T10:36:10.7503577Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T10:36:10.7503668Z               "line": 216
2026-06-13T10:36:10.7503745Z             },
2026-06-13T10:36:10.7503834Z             {
2026-06-13T10:36:10.7503952Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T10:36:10.7504033Z               "line": 137
2026-06-13T10:36:10.7504119Z             },
2026-06-13T10:36:10.7504203Z             {
2026-06-13T10:36:10.7504312Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7504399Z               "line": 5988
2026-06-13T10:36:10.7504485Z             },
2026-06-13T10:36:10.7504584Z             {
2026-06-13T10:36:10.7504690Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-13T10:36:10.7504785Z               "line": 30
2026-06-13T10:36:10.7504870Z             },
2026-06-13T10:36:10.7504956Z             {
2026-06-13T10:36:10.7505071Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-13T10:36:10.7505438Z               "line": 73
2026-06-13T10:36:10.7505538Z             }
2026-06-13T10:36:10.7505620Z           ]
2026-06-13T10:36:10.7505710Z         }
2026-06-13T10:36:10.7505791Z       }
2026-06-13T10:36:10.7505881Z     },
2026-06-13T10:36:10.7505964Z     {
2026-06-13T10:36:10.7506072Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-13T10:36:10.7506335Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-13T10:36:10.7506434Z       "requiredStages": [
2026-06-13T10:36:10.7506530Z         "impl",
2026-06-13T10:36:10.7506608Z         "unit"
2026-06-13T10:36:10.7506706Z       ],
2026-06-13T10:36:10.7506791Z       "stages": {
2026-06-13T10:36:10.7506978Z         "doc": {
2026-06-13T10:36:10.7507082Z           "complete": true,
2026-06-13T10:36:10.7507167Z           "evidence": [
2026-06-13T10:36:10.7507249Z             {
2026-06-13T10:36:10.7507354Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7507444Z               "line": 133
2026-06-13T10:36:10.7507535Z             }
2026-06-13T10:36:10.7507631Z           ]
2026-06-13T10:36:10.7507712Z         },
2026-06-13T10:36:10.7507801Z         "impl": {
2026-06-13T10:36:10.7507903Z           "complete": true,
2026-06-13T10:36:10.7507984Z           "evidence": [
2026-06-13T10:36:10.7508069Z             {
2026-06-13T10:36:10.7508179Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T10:36:10.7508275Z               "line": 65
2026-06-13T10:36:10.7508365Z             },
2026-06-13T10:36:10.7508450Z             {
2026-06-13T10:36:10.7508566Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T10:36:10.7508651Z               "line": 17
2026-06-13T10:36:10.7508751Z             },
2026-06-13T10:36:10.7508833Z             {
2026-06-13T10:36:10.7509041Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.7509146Z               "line": 146
2026-06-13T10:36:10.7509231Z             },
2026-06-13T10:36:10.7509315Z             {
2026-06-13T10:36:10.7509438Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.7509535Z               "line": 233
2026-06-13T10:36:10.7509620Z             },
2026-06-13T10:36:10.7509705Z             {
2026-06-13T10:36:10.7509830Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.7509911Z               "line": 334
2026-06-13T10:36:10.7509997Z             },
2026-06-13T10:36:10.7510073Z             {
2026-06-13T10:36:10.7510193Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T10:36:10.7510283Z               "line": 32
2026-06-13T10:36:10.7510363Z             },
2026-06-13T10:36:10.7510441Z             {
2026-06-13T10:36:10.7510550Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7510640Z               "line": 4746
2026-06-13T10:36:10.7510726Z             },
2026-06-13T10:36:10.7510813Z             {
2026-06-13T10:36:10.7510913Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7510998Z               "line": 5028
2026-06-13T10:36:10.7511094Z             }
2026-06-13T10:36:10.7511180Z           ]
2026-06-13T10:36:10.7511261Z         },
2026-06-13T10:36:10.7511342Z         "int": {
2026-06-13T10:36:10.7511438Z           "complete": false,
2026-06-13T10:36:10.7511523Z           "evidence": []
2026-06-13T10:36:10.7511604Z         },
2026-06-13T10:36:10.7511695Z         "unit": {
2026-06-13T10:36:10.7511791Z           "complete": true,
2026-06-13T10:36:10.7511898Z           "evidence": [
2026-06-13T10:36:10.7511970Z             {
2026-06-13T10:36:10.7512085Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T10:36:10.7512178Z               "line": 94
2026-06-13T10:36:10.7512263Z             },
2026-06-13T10:36:10.7512363Z             {
2026-06-13T10:36:10.7512464Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T10:36:10.7512563Z               "line": 111
2026-06-13T10:36:10.7512649Z             },
2026-06-13T10:36:10.7512736Z             {
2026-06-13T10:36:10.7512845Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T10:36:10.7513037Z               "line": 124
2026-06-13T10:36:10.7513122Z             },
2026-06-13T10:36:10.7513207Z             {
2026-06-13T10:36:10.7513308Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T10:36:10.7513385Z               "line": 134
2026-06-13T10:36:10.7513475Z             },
2026-06-13T10:36:10.7513575Z             {
2026-06-13T10:36:10.7513709Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T10:36:10.7513798Z               "line": 144
2026-06-13T10:36:10.7513880Z             },
2026-06-13T10:36:10.7513966Z             {
2026-06-13T10:36:10.7514070Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T10:36:10.7514272Z               "line": 156
2026-06-13T10:36:10.7514353Z             },
2026-06-13T10:36:10.7514437Z             {
2026-06-13T10:36:10.7514565Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7514651Z               "line": 746
2026-06-13T10:36:10.7514730Z             },
2026-06-13T10:36:10.7514820Z             {
2026-06-13T10:36:10.7514949Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.7515041Z               "line": 309
2026-06-13T10:36:10.7515125Z             }
2026-06-13T10:36:10.7515216Z           ]
2026-06-13T10:36:10.7515293Z         }
2026-06-13T10:36:10.7515393Z       }
2026-06-13T10:36:10.7515478Z     },
2026-06-13T10:36:10.7515570Z     {
2026-06-13T10:36:10.7515703Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-13T10:36:10.7515865Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-13T10:36:10.7515970Z       "requiredStages": [
2026-06-13T10:36:10.7516055Z         "impl",
2026-06-13T10:36:10.7516160Z         "unit"
2026-06-13T10:36:10.7516242Z       ],
2026-06-13T10:36:10.7516342Z       "stages": {
2026-06-13T10:36:10.7516442Z         "doc": {
2026-06-13T10:36:10.7516538Z           "complete": false,
2026-06-13T10:36:10.7516632Z           "evidence": []
2026-06-13T10:36:10.7516718Z         },
2026-06-13T10:36:10.7516814Z         "impl": {
2026-06-13T10:36:10.7516914Z           "complete": true,
2026-06-13T10:36:10.7517018Z           "evidence": [
2026-06-13T10:36:10.7517115Z             {
2026-06-13T10:36:10.7517224Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.7517323Z               "line": 128
2026-06-13T10:36:10.7517403Z             }
2026-06-13T10:36:10.7517495Z           ]
2026-06-13T10:36:10.7517581Z         },
2026-06-13T10:36:10.7517680Z         "int": {
2026-06-13T10:36:10.7517780Z           "complete": false,
2026-06-13T10:36:10.7517867Z           "evidence": []
2026-06-13T10:36:10.7517962Z         },
2026-06-13T10:36:10.7518047Z         "unit": {
2026-06-13T10:36:10.7518148Z           "complete": true,
2026-06-13T10:36:10.7518239Z           "evidence": [
2026-06-13T10:36:10.7518333Z             {
2026-06-13T10:36:10.7518449Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.7518539Z               "line": 205
2026-06-13T10:36:10.7518629Z             }
2026-06-13T10:36:10.7518710Z           ]
2026-06-13T10:36:10.7518806Z         }
2026-06-13T10:36:10.7518892Z       }
2026-06-13T10:36:10.7519054Z     },
2026-06-13T10:36:10.7519145Z     {
2026-06-13T10:36:10.7519278Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-13T10:36:10.7519446Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-13T10:36:10.7519540Z       "requiredStages": [
2026-06-13T10:36:10.7519634Z         "impl",
2026-06-13T10:36:10.7519720Z         "unit"
2026-06-13T10:36:10.7519810Z       ],
2026-06-13T10:36:10.7519895Z       "stages": {
2026-06-13T10:36:10.7519984Z         "doc": {
2026-06-13T10:36:10.7520085Z           "complete": false,
2026-06-13T10:36:10.7520180Z           "evidence": []
2026-06-13T10:36:10.7520270Z         },
2026-06-13T10:36:10.7520357Z         "impl": {
2026-06-13T10:36:10.7520457Z           "complete": true,
2026-06-13T10:36:10.7520547Z           "evidence": [
2026-06-13T10:36:10.7520647Z             {
2026-06-13T10:36:10.7520881Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7520977Z               "line": 246
2026-06-13T10:36:10.7521063Z             },
2026-06-13T10:36:10.7521144Z             {
2026-06-13T10:36:10.7521263Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7521359Z               "line": 257
2026-06-13T10:36:10.7521444Z             },
2026-06-13T10:36:10.7521539Z             {
2026-06-13T10:36:10.7521655Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7521749Z               "line": 275
2026-06-13T10:36:10.7521840Z             }
2026-06-13T10:36:10.7521931Z           ]
2026-06-13T10:36:10.7522027Z         },
2026-06-13T10:36:10.7522207Z         "int": {
2026-06-13T10:36:10.7522308Z           "complete": false,
2026-06-13T10:36:10.7522398Z           "evidence": []
2026-06-13T10:36:10.7522492Z         },
2026-06-13T10:36:10.7522578Z         "unit": {
2026-06-13T10:36:10.7522682Z           "complete": true,
2026-06-13T10:36:10.7522780Z           "evidence": [
2026-06-13T10:36:10.7522880Z             {
2026-06-13T10:36:10.7523005Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7523095Z               "line": 299
2026-06-13T10:36:10.7523190Z             },
2026-06-13T10:36:10.7523277Z             {
2026-06-13T10:36:10.7523396Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7523495Z               "line": 320
2026-06-13T10:36:10.7523577Z             },
2026-06-13T10:36:10.7523672Z             {
2026-06-13T10:36:10.7523781Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7523878Z               "line": 547
2026-06-13T10:36:10.7523973Z             },
2026-06-13T10:36:10.7524072Z             {
2026-06-13T10:36:10.7524197Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7524288Z               "line": 558
2026-06-13T10:36:10.7524383Z             },
2026-06-13T10:36:10.7524468Z             {
2026-06-13T10:36:10.7524589Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7524687Z               "line": 571
2026-06-13T10:36:10.7524788Z             }
2026-06-13T10:36:10.7524885Z           ]
2026-06-13T10:36:10.7524969Z         }
2026-06-13T10:36:10.7525064Z       }
2026-06-13T10:36:10.7525149Z     },
2026-06-13T10:36:10.7525235Z     {
2026-06-13T10:36:10.7525342Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-13T10:36:10.7525981Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-13T10:36:10.7526086Z       "requiredStages": [
2026-06-13T10:36:10.7526177Z         "impl",
2026-06-13T10:36:10.7526272Z         "unit"
2026-06-13T10:36:10.7526353Z       ],
2026-06-13T10:36:10.7526445Z       "stages": {
2026-06-13T10:36:10.7526534Z         "doc": {
2026-06-13T10:36:10.7526625Z           "complete": false,
2026-06-13T10:36:10.7526720Z           "evidence": []
2026-06-13T10:36:10.7526803Z         },
2026-06-13T10:36:10.7526902Z         "impl": {
2026-06-13T10:36:10.7526997Z           "complete": true,
2026-06-13T10:36:10.7527089Z           "evidence": [
2026-06-13T10:36:10.7527183Z             {
2026-06-13T10:36:10.7527307Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7527403Z               "line": 759
2026-06-13T10:36:10.7527484Z             }
2026-06-13T10:36:10.7527574Z           ]
2026-06-13T10:36:10.7527660Z         },
2026-06-13T10:36:10.7527752Z         "int": {
2026-06-13T10:36:10.7527850Z           "complete": false,
2026-06-13T10:36:10.7527940Z           "evidence": []
2026-06-13T10:36:10.7528026Z         },
2026-06-13T10:36:10.7528117Z         "unit": {
2026-06-13T10:36:10.7528217Z           "complete": true,
2026-06-13T10:36:10.7528307Z           "evidence": [
2026-06-13T10:36:10.7528394Z             {
2026-06-13T10:36:10.7528522Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7528616Z               "line": 873
2026-06-13T10:36:10.7528784Z             }
2026-06-13T10:36:10.7528869Z           ]
2026-06-13T10:36:10.7529042Z         }
2026-06-13T10:36:10.7529118Z       }
2026-06-13T10:36:10.7529203Z     },
2026-06-13T10:36:10.7529290Z     {
2026-06-13T10:36:10.7529400Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-13T10:36:10.7529610Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-13T10:36:10.7529695Z       "requiredStages": [
2026-06-13T10:36:10.7529785Z         "impl",
2026-06-13T10:36:10.7529871Z         "unit"
2026-06-13T10:36:10.7529958Z       ],
2026-06-13T10:36:10.7530048Z       "stages": {
2026-06-13T10:36:10.7530128Z         "doc": {
2026-06-13T10:36:10.7530318Z           "complete": false,
2026-06-13T10:36:10.7530407Z           "evidence": []
2026-06-13T10:36:10.7530502Z         },
2026-06-13T10:36:10.7530593Z         "impl": {
2026-06-13T10:36:10.7530689Z           "complete": true,
2026-06-13T10:36:10.7530788Z           "evidence": [
2026-06-13T10:36:10.7530879Z             {
2026-06-13T10:36:10.7530999Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T10:36:10.7531079Z               "line": 14
2026-06-13T10:36:10.7531174Z             },
2026-06-13T10:36:10.7531261Z             {
2026-06-13T10:36:10.7531380Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T10:36:10.7531474Z               "line": 440
2026-06-13T10:36:10.7531562Z             }
2026-06-13T10:36:10.7531642Z           ]
2026-06-13T10:36:10.7531723Z         },
2026-06-13T10:36:10.7531818Z         "int": {
2026-06-13T10:36:10.7531914Z           "complete": false,
2026-06-13T10:36:10.7532018Z           "evidence": []
2026-06-13T10:36:10.7532123Z         },
2026-06-13T10:36:10.7532206Z         "unit": {
2026-06-13T10:36:10.7532304Z           "complete": true,
2026-06-13T10:36:10.7532391Z           "evidence": [
2026-06-13T10:36:10.7532481Z             {
2026-06-13T10:36:10.7532587Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T10:36:10.7532695Z               "line": 130
2026-06-13T10:36:10.7532782Z             },
2026-06-13T10:36:10.7532863Z             {
2026-06-13T10:36:10.7532967Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T10:36:10.7533057Z               "line": 138
2026-06-13T10:36:10.7533147Z             },
2026-06-13T10:36:10.7533228Z             {
2026-06-13T10:36:10.7533340Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T10:36:10.7533440Z               "line": 146
2026-06-13T10:36:10.7533522Z             },
2026-06-13T10:36:10.7533622Z             {
2026-06-13T10:36:10.7533726Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T10:36:10.7533828Z               "line": 154
2026-06-13T10:36:10.7533923Z             },
2026-06-13T10:36:10.7534017Z             {
2026-06-13T10:36:10.7534133Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T10:36:10.7534218Z               "line": 162
2026-06-13T10:36:10.7534304Z             },
2026-06-13T10:36:10.7534380Z             {
2026-06-13T10:36:10.7534495Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T10:36:10.7534585Z               "line": 170
2026-06-13T10:36:10.7534675Z             }
2026-06-13T10:36:10.7534758Z           ]
2026-06-13T10:36:10.7534843Z         }
2026-06-13T10:36:10.7534923Z       }
2026-06-13T10:36:10.7535014Z     },
2026-06-13T10:36:10.7535096Z     {
2026-06-13T10:36:10.7535200Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-13T10:36:10.7536279Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-13T10:36:10.7536390Z       "requiredStages": [
2026-06-13T10:36:10.7536475Z         "impl",
2026-06-13T10:36:10.7536555Z         "unit"
2026-06-13T10:36:10.7536641Z       ],
2026-06-13T10:36:10.7536733Z       "stages": {
2026-06-13T10:36:10.7536823Z         "doc": {
2026-06-13T10:36:10.7537057Z           "complete": false,
2026-06-13T10:36:10.7537152Z           "evidence": []
2026-06-13T10:36:10.7537237Z         },
2026-06-13T10:36:10.7537324Z         "impl": {
2026-06-13T10:36:10.7537414Z           "complete": true,
2026-06-13T10:36:10.7537514Z           "evidence": [
2026-06-13T10:36:10.7537600Z             {
2026-06-13T10:36:10.7537748Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T10:36:10.7537838Z               "line": 34
2026-06-13T10:36:10.7537915Z             }
2026-06-13T10:36:10.7538007Z           ]
2026-06-13T10:36:10.7538095Z         },
2026-06-13T10:36:10.7538182Z         "int": {
2026-06-13T10:36:10.7538368Z           "complete": false,
2026-06-13T10:36:10.7538457Z           "evidence": []
2026-06-13T10:36:10.7538552Z         },
2026-06-13T10:36:10.7538634Z         "unit": {
2026-06-13T10:36:10.7538734Z           "complete": true,
2026-06-13T10:36:10.7538819Z           "evidence": [
2026-06-13T10:36:10.7538905Z             {
2026-06-13T10:36:10.7539148Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T10:36:10.7539240Z               "line": 188
2026-06-13T10:36:10.7539335Z             },
2026-06-13T10:36:10.7539415Z             {
2026-06-13T10:36:10.7539549Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T10:36:10.7539635Z               "line": 200
2026-06-13T10:36:10.7539721Z             },
2026-06-13T10:36:10.7539816Z             {
2026-06-13T10:36:10.7539950Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T10:36:10.7540036Z               "line": 211
2026-06-13T10:36:10.7540121Z             },
2026-06-13T10:36:10.7540223Z             {
2026-06-13T10:36:10.7540355Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T10:36:10.7540455Z               "line": 253
2026-06-13T10:36:10.7540547Z             },
2026-06-13T10:36:10.7540631Z             {
2026-06-13T10:36:10.7540778Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T10:36:10.7540869Z               "line": 277
2026-06-13T10:36:10.7540963Z             },
2026-06-13T10:36:10.7541043Z             {
2026-06-13T10:36:10.7541172Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T10:36:10.7541268Z               "line": 300
2026-06-13T10:36:10.7541353Z             },
2026-06-13T10:36:10.7541439Z             {
2026-06-13T10:36:10.7541568Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T10:36:10.7541672Z               "line": 316
2026-06-13T10:36:10.7541758Z             }
2026-06-13T10:36:10.7541840Z           ]
2026-06-13T10:36:10.7541930Z         }
2026-06-13T10:36:10.7542011Z       }
2026-06-13T10:36:10.7542107Z     },
2026-06-13T10:36:10.7542188Z     {
2026-06-13T10:36:10.7542321Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-13T10:36:10.7542869Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-13T10:36:10.7542974Z       "requiredStages": [
2026-06-13T10:36:10.7543066Z         "impl",
2026-06-13T10:36:10.7543151Z         "unit"
2026-06-13T10:36:10.7543241Z       ],
2026-06-13T10:36:10.7543322Z       "stages": {
2026-06-13T10:36:10.7543428Z         "doc": {
2026-06-13T10:36:10.7543532Z           "complete": false,
2026-06-13T10:36:10.7543626Z           "evidence": []
2026-06-13T10:36:10.7543712Z         },
2026-06-13T10:36:10.7543802Z         "impl": {
2026-06-13T10:36:10.7543896Z           "complete": true,
2026-06-13T10:36:10.7543986Z           "evidence": [
2026-06-13T10:36:10.7544082Z             {
2026-06-13T10:36:10.7544216Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7544296Z               "line": 29
2026-06-13T10:36:10.7544383Z             },
2026-06-13T10:36:10.7544464Z             {
2026-06-13T10:36:10.7544591Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7544788Z               "line": 174
2026-06-13T10:36:10.7544873Z             },
2026-06-13T10:36:10.7544959Z             {
2026-06-13T10:36:10.7545070Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7545169Z               "line": 194
2026-06-13T10:36:10.7545264Z             },
2026-06-13T10:36:10.7545365Z             {
2026-06-13T10:36:10.7545483Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7545584Z               "line": 222
2026-06-13T10:36:10.7545675Z             }
2026-06-13T10:36:10.7545760Z           ]
2026-06-13T10:36:10.7545851Z         },
2026-06-13T10:36:10.7545933Z         "int": {
2026-06-13T10:36:10.7546126Z           "complete": false,
2026-06-13T10:36:10.7546217Z           "evidence": []
2026-06-13T10:36:10.7546307Z         },
2026-06-13T10:36:10.7546402Z         "unit": {
2026-06-13T10:36:10.7546495Z           "complete": true,
2026-06-13T10:36:10.7546592Z           "evidence": [
2026-06-13T10:36:10.7546677Z             {
2026-06-13T10:36:10.7546805Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7546896Z               "line": 329
2026-06-13T10:36:10.7546988Z             },
2026-06-13T10:36:10.7547078Z             {
2026-06-13T10:36:10.7547192Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7547288Z               "line": 344
2026-06-13T10:36:10.7547369Z             },
2026-06-13T10:36:10.7547458Z             {
2026-06-13T10:36:10.7547574Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7547669Z               "line": 417
2026-06-13T10:36:10.7547764Z             },
2026-06-13T10:36:10.7547845Z             {
2026-06-13T10:36:10.7547974Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7548069Z               "line": 433
2026-06-13T10:36:10.7548165Z             },
2026-06-13T10:36:10.7548252Z             {
2026-06-13T10:36:10.7548375Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7548475Z               "line": 492
2026-06-13T10:36:10.7548557Z             },
2026-06-13T10:36:10.7548646Z             {
2026-06-13T10:36:10.7548756Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7548848Z               "line": 506
2026-06-13T10:36:10.7549012Z             },
2026-06-13T10:36:10.7549102Z             {
2026-06-13T10:36:10.7549223Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7549318Z               "line": 517
2026-06-13T10:36:10.7549408Z             },
2026-06-13T10:36:10.7549494Z             {
2026-06-13T10:36:10.7549614Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7549713Z               "line": 528
2026-06-13T10:36:10.7549810Z             }
2026-06-13T10:36:10.7549895Z           ]
2026-06-13T10:36:10.7549975Z         }
2026-06-13T10:36:10.7550066Z       }
2026-06-13T10:36:10.7550153Z     },
2026-06-13T10:36:10.7550247Z     {
2026-06-13T10:36:10.7550381Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-13T10:36:10.7551059Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-13T10:36:10.7551163Z       "requiredStages": [
2026-06-13T10:36:10.7551248Z         "impl",
2026-06-13T10:36:10.7551343Z         "unit"
2026-06-13T10:36:10.7551429Z       ],
2026-06-13T10:36:10.7551523Z       "stages": {
2026-06-13T10:36:10.7551617Z         "doc": {
2026-06-13T10:36:10.7551708Z           "complete": false,
2026-06-13T10:36:10.7551799Z           "evidence": []
2026-06-13T10:36:10.7551884Z         },
2026-06-13T10:36:10.7551994Z         "impl": {
2026-06-13T10:36:10.7552085Z           "complete": true,
2026-06-13T10:36:10.7552180Z           "evidence": [
2026-06-13T10:36:10.7552270Z             {
2026-06-13T10:36:10.7552405Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.7552500Z               "line": 27
2026-06-13T10:36:10.7552701Z             },
2026-06-13T10:36:10.7552791Z             {
2026-06-13T10:36:10.7552923Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.7553025Z               "line": 110
2026-06-13T10:36:10.7553115Z             },
2026-06-13T10:36:10.7553196Z             {
2026-06-13T10:36:10.7553321Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.7553410Z               "line": 153
2026-06-13T10:36:10.7553501Z             },
2026-06-13T10:36:10.7553577Z             {
2026-06-13T10:36:10.7553702Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.7553796Z               "line": 182
2026-06-13T10:36:10.7554036Z             },
2026-06-13T10:36:10.7554125Z             {
2026-06-13T10:36:10.7554267Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T10:36:10.7554362Z               "line": 31
2026-06-13T10:36:10.7554447Z             },
2026-06-13T10:36:10.7554522Z             {
2026-06-13T10:36:10.7554671Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T10:36:10.7554752Z               "line": 113
2026-06-13T10:36:10.7554837Z             },
2026-06-13T10:36:10.7554919Z             {
2026-06-13T10:36:10.7555057Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T10:36:10.7555147Z               "line": 138
2026-06-13T10:36:10.7555224Z             }
2026-06-13T10:36:10.7555310Z           ]
2026-06-13T10:36:10.7555396Z         },
2026-06-13T10:36:10.7555480Z         "int": {
2026-06-13T10:36:10.7555568Z           "complete": false,
2026-06-13T10:36:10.7555662Z           "evidence": []
2026-06-13T10:36:10.7555758Z         },
2026-06-13T10:36:10.7555834Z         "unit": {
2026-06-13T10:36:10.7555935Z           "complete": true,
2026-06-13T10:36:10.7556029Z           "evidence": [
2026-06-13T10:36:10.7556115Z             {
2026-06-13T10:36:10.7556240Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.7556344Z               "line": 261
2026-06-13T10:36:10.7556430Z             },
2026-06-13T10:36:10.7556512Z             {
2026-06-13T10:36:10.7556645Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.7556734Z               "line": 276
2026-06-13T10:36:10.7556829Z             },
2026-06-13T10:36:10.7556915Z             {
2026-06-13T10:36:10.7557046Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.7557142Z               "line": 293
2026-06-13T10:36:10.7557224Z             },
2026-06-13T10:36:10.7557314Z             {
2026-06-13T10:36:10.7557437Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.7557543Z               "line": 310
2026-06-13T10:36:10.7557624Z             },
2026-06-13T10:36:10.7557713Z             {
2026-06-13T10:36:10.7557834Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.7557924Z               "line": 327
2026-06-13T10:36:10.7558004Z             },
2026-06-13T10:36:10.7558096Z             {
2026-06-13T10:36:10.7558229Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.7558315Z               "line": 366
2026-06-13T10:36:10.7558405Z             },
2026-06-13T10:36:10.7558520Z             {
2026-06-13T10:36:10.7558667Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T10:36:10.7558778Z               "line": 179
2026-06-13T10:36:10.7563271Z             },
2026-06-13T10:36:10.7563398Z             {
2026-06-13T10:36:10.7563561Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T10:36:10.7563665Z               "line": 194
2026-06-13T10:36:10.7563770Z             },
2026-06-13T10:36:10.7563847Z             {
2026-06-13T10:36:10.7564004Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T10:36:10.7564094Z               "line": 204
2026-06-13T10:36:10.7564181Z             },
2026-06-13T10:36:10.7564267Z             {
2026-06-13T10:36:10.7564558Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T10:36:10.7564666Z               "line": 259
2026-06-13T10:36:10.7564746Z             },
2026-06-13T10:36:10.7564832Z             {
2026-06-13T10:36:10.7564959Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T10:36:10.7565049Z               "line": 269
2026-06-13T10:36:10.7565135Z             },
2026-06-13T10:36:10.7565217Z             {
2026-06-13T10:36:10.7565354Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T10:36:10.7565431Z               "line": 283
2026-06-13T10:36:10.7565517Z             }
2026-06-13T10:36:10.7565707Z           ]
2026-06-13T10:36:10.7565794Z         }
2026-06-13T10:36:10.7565879Z       }
2026-06-13T10:36:10.7565960Z     },
2026-06-13T10:36:10.7566040Z     {
2026-06-13T10:36:10.7566156Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-13T10:36:10.7566370Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-13T10:36:10.7566481Z       "requiredStages": [],
2026-06-13T10:36:10.7566575Z       "stages": {
2026-06-13T10:36:10.7566666Z         "doc": {
2026-06-13T10:36:10.7566758Z           "complete": false,
2026-06-13T10:36:10.7566857Z           "evidence": []
2026-06-13T10:36:10.7566942Z         },
2026-06-13T10:36:10.7567039Z         "impl": {
2026-06-13T10:36:10.7567129Z           "complete": false,
2026-06-13T10:36:10.7567228Z           "evidence": []
2026-06-13T10:36:10.7567313Z         },
2026-06-13T10:36:10.7567394Z         "int": {
2026-06-13T10:36:10.7567489Z           "complete": false,
2026-06-13T10:36:10.7567578Z           "evidence": []
2026-06-13T10:36:10.7567678Z         },
2026-06-13T10:36:10.7567759Z         "unit": {
2026-06-13T10:36:10.7567865Z           "complete": false,
2026-06-13T10:36:10.7567959Z           "evidence": []
2026-06-13T10:36:10.7568046Z         }
2026-06-13T10:36:10.7568136Z       }
2026-06-13T10:36:10.7568222Z     },
2026-06-13T10:36:10.7568307Z     {
2026-06-13T10:36:10.7568446Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-13T10:36:10.7569442Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-13T10:36:10.7569547Z       "requiredStages": [
2026-06-13T10:36:10.7569630Z         "impl",
2026-06-13T10:36:10.7569715Z         "unit"
2026-06-13T10:36:10.7569799Z       ],
2026-06-13T10:36:10.7569896Z       "stages": {
2026-06-13T10:36:10.7569977Z         "doc": {
2026-06-13T10:36:10.7570072Z           "complete": false,
2026-06-13T10:36:10.7570180Z           "evidence": []
2026-06-13T10:36:10.7570266Z         },
2026-06-13T10:36:10.7570367Z         "impl": {
2026-06-13T10:36:10.7570452Z           "complete": true,
2026-06-13T10:36:10.7570547Z           "evidence": [
2026-06-13T10:36:10.7570629Z             {
2026-06-13T10:36:10.7570767Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T10:36:10.7570871Z               "line": 26
2026-06-13T10:36:10.7570944Z             },
2026-06-13T10:36:10.7571034Z             {
2026-06-13T10:36:10.7571157Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T10:36:10.7571244Z               "line": 95
2026-06-13T10:36:10.7571334Z             },
2026-06-13T10:36:10.7571406Z             {
2026-06-13T10:36:10.7571530Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T10:36:10.7571617Z               "line": 166
2026-06-13T10:36:10.7571706Z             },
2026-06-13T10:36:10.7571787Z             {
2026-06-13T10:36:10.7571922Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T10:36:10.7572020Z               "line": 19
2026-06-13T10:36:10.7572102Z             },
2026-06-13T10:36:10.7572184Z             {
2026-06-13T10:36:10.7572298Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T10:36:10.7572387Z               "line": 50
2026-06-13T10:36:10.7572652Z             },
2026-06-13T10:36:10.7572752Z             {
2026-06-13T10:36:10.7572881Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T10:36:10.7572962Z               "line": 18
2026-06-13T10:36:10.7573042Z             },
2026-06-13T10:36:10.7573133Z             {
2026-06-13T10:36:10.7573253Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T10:36:10.7573347Z               "line": 71
2026-06-13T10:36:10.7573438Z             },
2026-06-13T10:36:10.7573525Z             {
2026-06-13T10:36:10.7573639Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.7573734Z               "line": 79
2026-06-13T10:36:10.7573935Z             }
2026-06-13T10:36:10.7574020Z           ]
2026-06-13T10:36:10.7574107Z         },
2026-06-13T10:36:10.7574188Z         "int": {
2026-06-13T10:36:10.7574292Z           "complete": false,
2026-06-13T10:36:10.7574373Z           "evidence": []
2026-06-13T10:36:10.7574470Z         },
2026-06-13T10:36:10.7574549Z         "unit": {
2026-06-13T10:36:10.7574659Z           "complete": true,
2026-06-13T10:36:10.7574746Z           "evidence": [
2026-06-13T10:36:10.7574827Z             {
2026-06-13T10:36:10.7574945Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T10:36:10.7575037Z               "line": 289
2026-06-13T10:36:10.7575119Z             },
2026-06-13T10:36:10.7575198Z             {
2026-06-13T10:36:10.7575325Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T10:36:10.7575416Z               "line": 308
2026-06-13T10:36:10.7575487Z             },
2026-06-13T10:36:10.7575581Z             {
2026-06-13T10:36:10.7575691Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T10:36:10.7575791Z               "line": 336
2026-06-13T10:36:10.7575872Z             },
2026-06-13T10:36:10.7575952Z             {
2026-06-13T10:36:10.7576077Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T10:36:10.7576158Z               "line": 399
2026-06-13T10:36:10.7576243Z             },
2026-06-13T10:36:10.7576325Z             {
2026-06-13T10:36:10.7576449Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T10:36:10.7576534Z               "line": 410
2026-06-13T10:36:10.7576615Z             },
2026-06-13T10:36:10.7576698Z             {
2026-06-13T10:36:10.7576816Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T10:36:10.7576911Z               "line": 441
2026-06-13T10:36:10.7576993Z             },
2026-06-13T10:36:10.7577079Z             {
2026-06-13T10:36:10.7577197Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T10:36:10.7577284Z               "line": 452
2026-06-13T10:36:10.7577384Z             },
2026-06-13T10:36:10.7577454Z             {
2026-06-13T10:36:10.7577574Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T10:36:10.7577661Z               "line": 77
2026-06-13T10:36:10.7577746Z             },
2026-06-13T10:36:10.7577830Z             {
2026-06-13T10:36:10.7577954Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T10:36:10.7578044Z               "line": 97
2026-06-13T10:36:10.7578114Z             },
2026-06-13T10:36:10.7578204Z             {
2026-06-13T10:36:10.7578310Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T10:36:10.7578406Z               "line": 112
2026-06-13T10:36:10.7578481Z             },
2026-06-13T10:36:10.7578572Z             {
2026-06-13T10:36:10.7578683Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T10:36:10.7578772Z               "line": 123
2026-06-13T10:36:10.7578867Z             },
2026-06-13T10:36:10.7579025Z             {
2026-06-13T10:36:10.7579148Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T10:36:10.7579250Z               "line": 130
2026-06-13T10:36:10.7579349Z             },
2026-06-13T10:36:10.7579435Z             {
2026-06-13T10:36:10.7579555Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T10:36:10.7579650Z               "line": 145
2026-06-13T10:36:10.7579836Z             },
2026-06-13T10:36:10.7579922Z             {
2026-06-13T10:36:10.7580035Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T10:36:10.7580126Z               "line": 115
2026-06-13T10:36:10.7580204Z             },
2026-06-13T10:36:10.7580284Z             {
2026-06-13T10:36:10.7580403Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T10:36:10.7580490Z               "line": 130
2026-06-13T10:36:10.7580576Z             },
2026-06-13T10:36:10.7580674Z             {
2026-06-13T10:36:10.7580817Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.7580932Z               "line": 420
2026-06-13T10:36:10.7581107Z             }
2026-06-13T10:36:10.7581199Z           ]
2026-06-13T10:36:10.7581285Z         }
2026-06-13T10:36:10.7581374Z       }
2026-06-13T10:36:10.7581461Z     },
2026-06-13T10:36:10.7581547Z     {
2026-06-13T10:36:10.7581670Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-13T10:36:10.7582501Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-13T10:36:10.7582609Z       "requiredStages": [
2026-06-13T10:36:10.7582691Z         "doc",
2026-06-13T10:36:10.7582783Z         "impl",
2026-06-13T10:36:10.7582867Z         "unit"
2026-06-13T10:36:10.7582952Z       ],
2026-06-13T10:36:10.7583042Z       "stages": {
2026-06-13T10:36:10.7583128Z         "doc": {
2026-06-13T10:36:10.7583226Z           "complete": true,
2026-06-13T10:36:10.7583317Z           "evidence": [
2026-06-13T10:36:10.7583417Z             {
2026-06-13T10:36:10.7583532Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7583626Z               "line": 360
2026-06-13T10:36:10.7583717Z             }
2026-06-13T10:36:10.7583794Z           ]
2026-06-13T10:36:10.7583884Z         },
2026-06-13T10:36:10.7583970Z         "impl": {
2026-06-13T10:36:10.7584076Z           "complete": true,
2026-06-13T10:36:10.7584171Z           "evidence": [
2026-06-13T10:36:10.7584256Z             {
2026-06-13T10:36:10.7584391Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7584480Z               "line": 180
2026-06-13T10:36:10.7584570Z             },
2026-06-13T10:36:10.7584657Z             {
2026-06-13T10:36:10.7584776Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7584866Z               "line": 284
2026-06-13T10:36:10.7584952Z             },
2026-06-13T10:36:10.7585049Z             {
2026-06-13T10:36:10.7585157Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7585267Z               "line": 496
2026-06-13T10:36:10.7585354Z             },
2026-06-13T10:36:10.7585438Z             {
2026-06-13T10:36:10.7585563Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7585655Z               "line": 511
2026-06-13T10:36:10.7585744Z             },
2026-06-13T10:36:10.7585834Z             {
2026-06-13T10:36:10.7585948Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7586047Z               "line": 1038
2026-06-13T10:36:10.7586131Z             },
2026-06-13T10:36:10.7586221Z             {
2026-06-13T10:36:10.7586342Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7586436Z               "line": 443
2026-06-13T10:36:10.7586522Z             },
2026-06-13T10:36:10.7586614Z             {
2026-06-13T10:36:10.7586733Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7586823Z               "line": 590
2026-06-13T10:36:10.7586914Z             },
2026-06-13T10:36:10.7587004Z             {
2026-06-13T10:36:10.7587123Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7587214Z               "line": 731
2026-06-13T10:36:10.7587300Z             }
2026-06-13T10:36:10.7587390Z           ]
2026-06-13T10:36:10.7587476Z         },
2026-06-13T10:36:10.7587563Z         "int": {
2026-06-13T10:36:10.7587733Z           "complete": false,
2026-06-13T10:36:10.7587834Z           "evidence": []
2026-06-13T10:36:10.7587916Z         },
2026-06-13T10:36:10.7588010Z         "unit": {
2026-06-13T10:36:10.7588106Z           "complete": true,
2026-06-13T10:36:10.7588202Z           "evidence": [
2026-06-13T10:36:10.7588297Z             {
2026-06-13T10:36:10.7588414Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7588509Z               "line": 1155
2026-06-13T10:36:10.7588595Z             },
2026-06-13T10:36:10.7588679Z             {
2026-06-13T10:36:10.7588822Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-13T10:36:10.7589060Z               "line": 30
2026-06-13T10:36:10.7589471Z             }
2026-06-13T10:36:10.7589657Z           ]
2026-06-13T10:36:10.7589757Z         }
2026-06-13T10:36:10.7589838Z       }
2026-06-13T10:36:10.7589938Z     },
2026-06-13T10:36:10.7590023Z     {
2026-06-13T10:36:10.7590186Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-13T10:36:10.7590468Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-13T10:36:10.7590572Z       "requiredStages": [
2026-06-13T10:36:10.7590672Z         "impl",
2026-06-13T10:36:10.7590755Z         "unit"
2026-06-13T10:36:10.7590849Z       ],
2026-06-13T10:36:10.7590944Z       "stages": {
2026-06-13T10:36:10.7591031Z         "doc": {
2026-06-13T10:36:10.7591131Z           "complete": true,
2026-06-13T10:36:10.7591220Z           "evidence": [
2026-06-13T10:36:10.7591310Z             {
2026-06-13T10:36:10.7591425Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7591526Z               "line": 139
2026-06-13T10:36:10.7591615Z             }
2026-06-13T10:36:10.7591701Z           ]
2026-06-13T10:36:10.7591788Z         },
2026-06-13T10:36:10.7591873Z         "impl": {
2026-06-13T10:36:10.7591972Z           "complete": true,
2026-06-13T10:36:10.7592064Z           "evidence": [
2026-06-13T10:36:10.7592154Z             {
2026-06-13T10:36:10.7592263Z               "path": "crates/spt-store/src/db.rs",
2026-06-13T10:36:10.7592350Z               "line": 29
2026-06-13T10:36:10.7592441Z             },
2026-06-13T10:36:10.7592522Z             {
2026-06-13T10:36:10.7592640Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.7592723Z               "line": 101
2026-06-13T10:36:10.7592812Z             },
2026-06-13T10:36:10.7592897Z             {
2026-06-13T10:36:10.7593013Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7593099Z               "line": 30
2026-06-13T10:36:10.7593179Z             },
2026-06-13T10:36:10.7593270Z             {
2026-06-13T10:36:10.7593385Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7593479Z               "line": 48
2026-06-13T10:36:10.7593560Z             }
2026-06-13T10:36:10.7593645Z           ]
2026-06-13T10:36:10.7593731Z         },
2026-06-13T10:36:10.7593815Z         "int": {
2026-06-13T10:36:10.7593919Z           "complete": false,
2026-06-13T10:36:10.7594011Z           "evidence": []
2026-06-13T10:36:10.7594097Z         },
2026-06-13T10:36:10.7594196Z         "unit": {
2026-06-13T10:36:10.7594287Z           "complete": true,
2026-06-13T10:36:10.7594378Z           "evidence": [
2026-06-13T10:36:10.7594454Z             {
2026-06-13T10:36:10.7594578Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7594664Z               "line": 162
2026-06-13T10:36:10.7594750Z             }
2026-06-13T10:36:10.7594835Z           ]
2026-06-13T10:36:10.7594912Z         }
2026-06-13T10:36:10.7594993Z       }
2026-06-13T10:36:10.7595074Z     },
2026-06-13T10:36:10.7595159Z     {
2026-06-13T10:36:10.7595280Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-13T10:36:10.7595741Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-13T10:36:10.7595842Z       "requiredStages": [
2026-06-13T10:36:10.7595933Z         "doc",
2026-06-13T10:36:10.7596229Z         "impl",
2026-06-13T10:36:10.7596323Z         "unit"
2026-06-13T10:36:10.7596408Z       ],
2026-06-13T10:36:10.7596489Z       "stages": {
2026-06-13T10:36:10.7596575Z         "doc": {
2026-06-13T10:36:10.7596672Z           "complete": true,
2026-06-13T10:36:10.7596763Z           "evidence": [
2026-06-13T10:36:10.7596854Z             {
2026-06-13T10:36:10.7596969Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7597063Z               "line": 151
2026-06-13T10:36:10.7597145Z             }
2026-06-13T10:36:10.7597236Z           ]
2026-06-13T10:36:10.7597316Z         },
2026-06-13T10:36:10.7597402Z         "impl": {
2026-06-13T10:36:10.7597617Z           "complete": true,
2026-06-13T10:36:10.7597702Z           "evidence": [
2026-06-13T10:36:10.7597789Z             {
2026-06-13T10:36:10.7597902Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7597998Z               "line": 22
2026-06-13T10:36:10.7598079Z             }
2026-06-13T10:36:10.7598175Z           ]
2026-06-13T10:36:10.7598260Z         },
2026-06-13T10:36:10.7598341Z         "int": {
2026-06-13T10:36:10.7598438Z           "complete": false,
2026-06-13T10:36:10.7598523Z           "evidence": []
2026-06-13T10:36:10.7598613Z         },
2026-06-13T10:36:10.7598689Z         "unit": {
2026-06-13T10:36:10.7598782Z           "complete": true,
2026-06-13T10:36:10.7598866Z           "evidence": [
2026-06-13T10:36:10.7599026Z             {
2026-06-13T10:36:10.7599150Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7599230Z               "line": 298
2026-06-13T10:36:10.7599310Z             }
2026-06-13T10:36:10.7599411Z           ]
2026-06-13T10:36:10.7599488Z         }
2026-06-13T10:36:10.7599573Z       }
2026-06-13T10:36:10.7599653Z     },
2026-06-13T10:36:10.7599745Z     {
2026-06-13T10:36:10.7599860Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-13T10:36:10.7600317Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-13T10:36:10.7600422Z       "requiredStages": [
2026-06-13T10:36:10.7600503Z         "impl",
2026-06-13T10:36:10.7600584Z         "unit"
2026-06-13T10:36:10.7600670Z       ],
2026-06-13T10:36:10.7600751Z       "stages": {
2026-06-13T10:36:10.7600837Z         "doc": {
2026-06-13T10:36:10.7600927Z           "complete": true,
2026-06-13T10:36:10.7601019Z           "evidence": [
2026-06-13T10:36:10.7601103Z             {
2026-06-13T10:36:10.7601218Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7601305Z               "line": 145
2026-06-13T10:36:10.7601395Z             }
2026-06-13T10:36:10.7601499Z           ]
2026-06-13T10:36:10.7601586Z         },
2026-06-13T10:36:10.7601677Z         "impl": {
2026-06-13T10:36:10.7601775Z           "complete": true,
2026-06-13T10:36:10.7601865Z           "evidence": [
2026-06-13T10:36:10.7601951Z             {
2026-06-13T10:36:10.7602095Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-13T10:36:10.7602189Z               "line": 160
2026-06-13T10:36:10.7602276Z             },
2026-06-13T10:36:10.7602367Z             {
2026-06-13T10:36:10.7602494Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7602596Z               "line": 184
2026-06-13T10:36:10.7602681Z             },
2026-06-13T10:36:10.7602772Z             {
2026-06-13T10:36:10.7602900Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7602991Z               "line": 282
2026-06-13T10:36:10.7603082Z             },
2026-06-13T10:36:10.7603162Z             {
2026-06-13T10:36:10.7603287Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-13T10:36:10.7603381Z               "line": 20
2026-06-13T10:36:10.7603472Z             }
2026-06-13T10:36:10.7603564Z           ]
2026-06-13T10:36:10.7603645Z         },
2026-06-13T10:36:10.7603739Z         "int": {
2026-06-13T10:36:10.7603830Z           "complete": false,
2026-06-13T10:36:10.7604034Z           "evidence": []
2026-06-13T10:36:10.7604120Z         },
2026-06-13T10:36:10.7604210Z         "unit": {
2026-06-13T10:36:10.7604314Z           "complete": true,
2026-06-13T10:36:10.7604403Z           "evidence": [
2026-06-13T10:36:10.7604494Z             {
2026-06-13T10:36:10.7604619Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7604713Z               "line": 856
2026-06-13T10:36:10.7604799Z             },
2026-06-13T10:36:10.7604886Z             {
2026-06-13T10:36:10.7605019Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-13T10:36:10.7605104Z               "line": 88
2026-06-13T10:36:10.7605296Z             },
2026-06-13T10:36:10.7605376Z             {
2026-06-13T10:36:10.7605506Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7605600Z               "line": 802
2026-06-13T10:36:10.7605690Z             },
2026-06-13T10:36:10.7605782Z             {
2026-06-13T10:36:10.7605910Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7606005Z               "line": 821
2026-06-13T10:36:10.7606087Z             },
2026-06-13T10:36:10.7606179Z             {
2026-06-13T10:36:10.7606306Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T10:36:10.7606397Z               "line": 278
2026-06-13T10:36:10.7606493Z             },
2026-06-13T10:36:10.7606573Z             {
2026-06-13T10:36:10.7606693Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-13T10:36:10.7606779Z               "line": 82
2026-06-13T10:36:10.7606869Z             },
2026-06-13T10:36:10.7606949Z             {
2026-06-13T10:36:10.7607068Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-13T10:36:10.7607172Z               "line": 99
2026-06-13T10:36:10.7607256Z             },
2026-06-13T10:36:10.7607346Z             {
2026-06-13T10:36:10.7607467Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-13T10:36:10.7607561Z               "line": 119
2026-06-13T10:36:10.7607661Z             }
2026-06-13T10:36:10.7607753Z           ]
2026-06-13T10:36:10.7607844Z         }
2026-06-13T10:36:10.7607928Z       }
2026-06-13T10:36:10.7608020Z     },
2026-06-13T10:36:10.7608106Z     {
2026-06-13T10:36:10.7608224Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-13T10:36:10.7609616Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-13T10:36:10.7609724Z       "requiredStages": [
2026-06-13T10:36:10.7609818Z         "doc",
2026-06-13T10:36:10.7609908Z         "impl",
2026-06-13T10:36:10.7609995Z         "unit"
2026-06-13T10:36:10.7610086Z       ],
2026-06-13T10:36:10.7610171Z       "stages": {
2026-06-13T10:36:10.7610271Z         "doc": {
2026-06-13T10:36:10.7610363Z           "complete": true,
2026-06-13T10:36:10.7610457Z           "evidence": [
2026-06-13T10:36:10.7610538Z             {
2026-06-13T10:36:10.7610658Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7610753Z               "line": 157
2026-06-13T10:36:10.7610838Z             }
2026-06-13T10:36:10.7610921Z           ]
2026-06-13T10:36:10.7611006Z         },
2026-06-13T10:36:10.7611092Z         "impl": {
2026-06-13T10:36:10.7611182Z           "complete": true,
2026-06-13T10:36:10.7611278Z           "evidence": [
2026-06-13T10:36:10.7611373Z             {
2026-06-13T10:36:10.7611516Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T10:36:10.7611607Z               "line": 137
2026-06-13T10:36:10.7611692Z             },
2026-06-13T10:36:10.7611778Z             {
2026-06-13T10:36:10.7611904Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7612112Z               "line": 484
2026-06-13T10:36:10.7612204Z             },
2026-06-13T10:36:10.7612289Z             {
2026-06-13T10:36:10.7612416Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7612506Z               "line": 491
2026-06-13T10:36:10.7612593Z             },
2026-06-13T10:36:10.7612678Z             {
2026-06-13T10:36:10.7612802Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7612898Z               "line": 211
2026-06-13T10:36:10.7612970Z             }
2026-06-13T10:36:10.7613055Z           ]
2026-06-13T10:36:10.7613136Z         },
2026-06-13T10:36:10.7613227Z         "int": {
2026-06-13T10:36:10.7613446Z           "complete": false,
2026-06-13T10:36:10.7613537Z           "evidence": []
2026-06-13T10:36:10.7613622Z         },
2026-06-13T10:36:10.7613708Z         "unit": {
2026-06-13T10:36:10.7613810Z           "complete": true,
2026-06-13T10:36:10.7613890Z           "evidence": [
2026-06-13T10:36:10.7613980Z             {
2026-06-13T10:36:10.7614110Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7614210Z               "line": 1484
2026-06-13T10:36:10.7614294Z             },
2026-06-13T10:36:10.7614371Z             {
2026-06-13T10:36:10.7614496Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7614581Z               "line": 1542
2026-06-13T10:36:10.7614656Z             },
2026-06-13T10:36:10.7614742Z             {
2026-06-13T10:36:10.7614860Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7614954Z               "line": 834
2026-06-13T10:36:10.7615039Z             }
2026-06-13T10:36:10.7615121Z           ]
2026-06-13T10:36:10.7615203Z         }
2026-06-13T10:36:10.7615297Z       }
2026-06-13T10:36:10.7615373Z     },
2026-06-13T10:36:10.7615456Z     {
2026-06-13T10:36:10.7615574Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-13T10:36:10.7615766Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-13T10:36:10.7615870Z       "requiredStages": [
2026-06-13T10:36:10.7615960Z         "impl",
2026-06-13T10:36:10.7616042Z         "unit"
2026-06-13T10:36:10.7616118Z       ],
2026-06-13T10:36:10.7616213Z       "stages": {
2026-06-13T10:36:10.7616304Z         "doc": {
2026-06-13T10:36:10.7616395Z           "complete": false,
2026-06-13T10:36:10.7616494Z           "evidence": []
2026-06-13T10:36:10.7616580Z         },
2026-06-13T10:36:10.7616672Z         "impl": {
2026-06-13T10:36:10.7616767Z           "complete": true,
2026-06-13T10:36:10.7616862Z           "evidence": [
2026-06-13T10:36:10.7616948Z             {
2026-06-13T10:36:10.7617063Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T10:36:10.7617166Z               "line": 15
2026-06-13T10:36:10.7617253Z             },
2026-06-13T10:36:10.7617339Z             {
2026-06-13T10:36:10.7617457Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7617542Z               "line": 55
2026-06-13T10:36:10.7617633Z             },
2026-06-13T10:36:10.7617723Z             {
2026-06-13T10:36:10.7617840Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7617926Z               "line": 66
2026-06-13T10:36:10.7618018Z             },
2026-06-13T10:36:10.7618099Z             {
2026-06-13T10:36:10.7618221Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7618313Z               "line": 115
2026-06-13T10:36:10.7618394Z             },
2026-06-13T10:36:10.7618483Z             {
2026-06-13T10:36:10.7618590Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7618675Z               "line": 138
2026-06-13T10:36:10.7618756Z             }
2026-06-13T10:36:10.7618846Z           ]
2026-06-13T10:36:10.7618928Z         },
2026-06-13T10:36:10.7619085Z         "int": {
2026-06-13T10:36:10.7619185Z           "complete": false,
2026-06-13T10:36:10.7619277Z           "evidence": []
2026-06-13T10:36:10.7619366Z         },
2026-06-13T10:36:10.7619447Z         "unit": {
2026-06-13T10:36:10.7619629Z           "complete": true,
2026-06-13T10:36:10.7619728Z           "evidence": [
2026-06-13T10:36:10.7619805Z             {
2026-06-13T10:36:10.7619930Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T10:36:10.7620014Z               "line": 149
2026-06-13T10:36:10.7620104Z             },
2026-06-13T10:36:10.7620185Z             {
2026-06-13T10:36:10.7620294Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T10:36:10.7620383Z               "line": 155
2026-06-13T10:36:10.7620468Z             },
2026-06-13T10:36:10.7620550Z             {
2026-06-13T10:36:10.7620660Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T10:36:10.7620841Z               "line": 169
2026-06-13T10:36:10.7620932Z             },
2026-06-13T10:36:10.7621012Z             {
2026-06-13T10:36:10.7621132Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T10:36:10.7621213Z               "line": 178
2026-06-13T10:36:10.7621299Z             },
2026-06-13T10:36:10.7621389Z             {
2026-06-13T10:36:10.7621514Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7621604Z               "line": 195
2026-06-13T10:36:10.7621684Z             },
2026-06-13T10:36:10.7621766Z             {
2026-06-13T10:36:10.7621876Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7621957Z               "line": 208
2026-06-13T10:36:10.7622033Z             },
2026-06-13T10:36:10.7622120Z             {
2026-06-13T10:36:10.7622247Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7622328Z               "line": 271
2026-06-13T10:36:10.7622411Z             },
2026-06-13T10:36:10.7622496Z             {
2026-06-13T10:36:10.7622610Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7622691Z               "line": 290
2026-06-13T10:36:10.7622774Z             },
2026-06-13T10:36:10.7622858Z             {
2026-06-13T10:36:10.7622967Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7623061Z               "line": 319
2026-06-13T10:36:10.7623149Z             }
2026-06-13T10:36:10.7623234Z           ]
2026-06-13T10:36:10.7623314Z         }
2026-06-13T10:36:10.7623391Z       }
2026-06-13T10:36:10.7623478Z     },
2026-06-13T10:36:10.7623563Z     {
2026-06-13T10:36:10.7623682Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-13T10:36:10.7623939Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-13T10:36:10.7624050Z       "requiredStages": [
2026-06-13T10:36:10.7624130Z         "impl",
2026-06-13T10:36:10.7624211Z         "unit",
2026-06-13T10:36:10.7624316Z         "int"
2026-06-13T10:36:10.7624388Z       ],
2026-06-13T10:36:10.7624478Z       "stages": {
2026-06-13T10:36:10.7624564Z         "doc": {
2026-06-13T10:36:10.7624665Z           "complete": false,
2026-06-13T10:36:10.7624755Z           "evidence": []
2026-06-13T10:36:10.7624840Z         },
2026-06-13T10:36:10.7624931Z         "impl": {
2026-06-13T10:36:10.7625028Z           "complete": true,
2026-06-13T10:36:10.7625117Z           "evidence": [
2026-06-13T10:36:10.7625202Z             {
2026-06-13T10:36:10.7625326Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7625416Z               "line": 428
2026-06-13T10:36:10.7625500Z             },
2026-06-13T10:36:10.7625581Z             {
2026-06-13T10:36:10.7625691Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7625786Z               "line": 830
2026-06-13T10:36:10.7625866Z             },
2026-06-13T10:36:10.7625943Z             {
2026-06-13T10:36:10.7626054Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7626153Z               "line": 854
2026-06-13T10:36:10.7626243Z             },
2026-06-13T10:36:10.7626326Z             {
2026-06-13T10:36:10.7626439Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.7626524Z               "line": 879
2026-06-13T10:36:10.7626612Z             },
2026-06-13T10:36:10.7626773Z             {
2026-06-13T10:36:10.7626897Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7626993Z               "line": 633
2026-06-13T10:36:10.7627064Z             },
2026-06-13T10:36:10.7627154Z             {
2026-06-13T10:36:10.7627260Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7627350Z               "line": 745
2026-06-13T10:36:10.7627431Z             },
2026-06-13T10:36:10.7627513Z             {
2026-06-13T10:36:10.7627637Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7627716Z               "line": 855
2026-06-13T10:36:10.7627808Z             },
2026-06-13T10:36:10.7627961Z             {
2026-06-13T10:36:10.7628083Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.7628179Z               "line": 903
2026-06-13T10:36:10.7628260Z             },
2026-06-13T10:36:10.7628339Z             {
2026-06-13T10:36:10.7628453Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T10:36:10.7628553Z               "line": 46
2026-06-13T10:36:10.7628635Z             },
2026-06-13T10:36:10.7628719Z             {
2026-06-13T10:36:10.7628835Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T10:36:10.7628916Z               "line": 167
2026-06-13T10:36:10.7629101Z             },
2026-06-13T10:36:10.7629183Z             {
2026-06-13T10:36:10.7629298Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T10:36:10.7629377Z               "line": 100
2026-06-13T10:36:10.7629464Z             },
2026-06-13T10:36:10.7629546Z             {
2026-06-13T10:36:10.7629655Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7629745Z               "line": 134
2026-06-13T10:36:10.7629827Z             },
2026-06-13T10:36:10.7629916Z             {
2026-06-13T10:36:10.7630021Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7630113Z               "line": 180
2026-06-13T10:36:10.7630204Z             }
2026-06-13T10:36:10.7630288Z           ]
2026-06-13T10:36:10.7630370Z         },
2026-06-13T10:36:10.7630457Z         "int": {
2026-06-13T10:36:10.7630556Z           "complete": true,
2026-06-13T10:36:10.7630641Z           "evidence": [
2026-06-13T10:36:10.7630721Z             {
2026-06-13T10:36:10.7630854Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-13T10:36:10.7630934Z               "line": 27
2026-06-13T10:36:10.7631028Z             },
2026-06-13T10:36:10.7631110Z             {
2026-06-13T10:36:10.7631243Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T10:36:10.7631334Z               "line": 129
2026-06-13T10:36:10.7635001Z             },
2026-06-13T10:36:10.7635119Z             {
2026-06-13T10:36:10.7635268Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-13T10:36:10.7635362Z               "line": 200
2026-06-13T10:36:10.7635443Z             }
2026-06-13T10:36:10.7635530Z           ]
2026-06-13T10:36:10.7635611Z         },
2026-06-13T10:36:10.7635705Z         "unit": {
2026-06-13T10:36:10.7635805Z           "complete": true,
2026-06-13T10:36:10.7635896Z           "evidence": [
2026-06-13T10:36:10.7635980Z             {
2026-06-13T10:36:10.7636107Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T10:36:10.7636203Z               "line": 313
2026-06-13T10:36:10.7636285Z             },
2026-06-13T10:36:10.7636370Z             {
2026-06-13T10:36:10.7636493Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T10:36:10.7636576Z               "line": 345
2026-06-13T10:36:10.7636656Z             },
2026-06-13T10:36:10.7636737Z             {
2026-06-13T10:36:10.7636852Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T10:36:10.7636943Z               "line": 366
2026-06-13T10:36:10.7637028Z             },
2026-06-13T10:36:10.7637109Z             {
2026-06-13T10:36:10.7637233Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-13T10:36:10.7637324Z               "line": 254
2026-06-13T10:36:10.7637548Z             },
2026-06-13T10:36:10.7637639Z             {
2026-06-13T10:36:10.7637767Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-13T10:36:10.7637854Z               "line": 282
2026-06-13T10:36:10.7637939Z             },
2026-06-13T10:36:10.7638015Z             {
2026-06-13T10:36:10.7638131Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-13T10:36:10.7638216Z               "line": 230
2026-06-13T10:36:10.7638301Z             },
2026-06-13T10:36:10.7638388Z             {
2026-06-13T10:36:10.7638498Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7638587Z               "line": 488
2026-06-13T10:36:10.7638768Z             },
2026-06-13T10:36:10.7638848Z             {
2026-06-13T10:36:10.7639061Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.7639152Z               "line": 518
2026-06-13T10:36:10.7639237Z             }
2026-06-13T10:36:10.7639318Z           ]
2026-06-13T10:36:10.7639409Z         }
2026-06-13T10:36:10.7639499Z       }
2026-06-13T10:36:10.7639585Z     },
2026-06-13T10:36:10.7639666Z     {
2026-06-13T10:36:10.7639800Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-13T10:36:10.7641508Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-13T10:36:10.7641613Z       "requiredStages": [
2026-06-13T10:36:10.7641700Z         "doc",
2026-06-13T10:36:10.7641781Z         "impl",
2026-06-13T10:36:10.7641870Z         "unit"
2026-06-13T10:36:10.7641952Z       ],
2026-06-13T10:36:10.7642047Z       "stages": {
2026-06-13T10:36:10.7642133Z         "doc": {
2026-06-13T10:36:10.7642223Z           "complete": true,
2026-06-13T10:36:10.7642315Z           "evidence": [
2026-06-13T10:36:10.7642395Z             {
2026-06-13T10:36:10.7642495Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7642577Z               "line": 300
2026-06-13T10:36:10.7642658Z             }
2026-06-13T10:36:10.7642738Z           ]
2026-06-13T10:36:10.7642819Z         },
2026-06-13T10:36:10.7642901Z         "impl": {
2026-06-13T10:36:10.7642982Z           "complete": true,
2026-06-13T10:36:10.7643068Z           "evidence": [
2026-06-13T10:36:10.7643148Z             {
2026-06-13T10:36:10.7643293Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-13T10:36:10.7643386Z               "line": 33
2026-06-13T10:36:10.7643468Z             },
2026-06-13T10:36:10.7643550Z             {
2026-06-13T10:36:10.7643677Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-13T10:36:10.7643763Z               "line": 39
2026-06-13T10:36:10.7643846Z             }
2026-06-13T10:36:10.7643927Z           ]
2026-06-13T10:36:10.7644011Z         },
2026-06-13T10:36:10.7644092Z         "int": {
2026-06-13T10:36:10.7644177Z           "complete": false,
2026-06-13T10:36:10.7644259Z           "evidence": []
2026-06-13T10:36:10.7644344Z         },
2026-06-13T10:36:10.7644425Z         "unit": {
2026-06-13T10:36:10.7644511Z           "complete": true,
2026-06-13T10:36:10.7644588Z           "evidence": [
2026-06-13T10:36:10.7644669Z             {
2026-06-13T10:36:10.7644797Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-13T10:36:10.7644888Z               "line": 95
2026-06-13T10:36:10.7644974Z             }
2026-06-13T10:36:10.7645059Z           ]
2026-06-13T10:36:10.7645127Z         }
2026-06-13T10:36:10.7645203Z       }
2026-06-13T10:36:10.7645284Z     },
2026-06-13T10:36:10.7645355Z     {
2026-06-13T10:36:10.7645465Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-13T10:36:10.7645814Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-13T10:36:10.7645956Z       "requiredStages": [
2026-06-13T10:36:10.7646042Z         "impl",
2026-06-13T10:36:10.7646124Z         "unit"
2026-06-13T10:36:10.7646209Z       ],
2026-06-13T10:36:10.7646294Z       "stages": {
2026-06-13T10:36:10.7646379Z         "doc": {
2026-06-13T10:36:10.7646470Z           "complete": false,
2026-06-13T10:36:10.7646554Z           "evidence": []
2026-06-13T10:36:10.7646635Z         },
2026-06-13T10:36:10.7646720Z         "impl": {
2026-06-13T10:36:10.7646806Z           "complete": true,
2026-06-13T10:36:10.7646883Z           "evidence": [
2026-06-13T10:36:10.7647063Z             {
2026-06-13T10:36:10.7647188Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7647268Z               "line": 62
2026-06-13T10:36:10.7647339Z             },
2026-06-13T10:36:10.7647417Z             {
2026-06-13T10:36:10.7647545Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7647630Z               "line": 71
2026-06-13T10:36:10.7647718Z             },
2026-06-13T10:36:10.7647798Z             {
2026-06-13T10:36:10.7647922Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7648003Z               "line": 80
2026-06-13T10:36:10.7648080Z             },
2026-06-13T10:36:10.7648160Z             {
2026-06-13T10:36:10.7648284Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7648371Z               "line": 88
2026-06-13T10:36:10.7648447Z             },
2026-06-13T10:36:10.7648532Z             {
2026-06-13T10:36:10.7648642Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7648733Z               "line": 33
2026-06-13T10:36:10.7648818Z             },
2026-06-13T10:36:10.7648904Z             {
2026-06-13T10:36:10.7649100Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7649184Z               "line": 65
2026-06-13T10:36:10.7649265Z             },
2026-06-13T10:36:10.7649351Z             {
2026-06-13T10:36:10.7649459Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7649534Z               "line": 74
2026-06-13T10:36:10.7649621Z             },
2026-06-13T10:36:10.7649703Z             {
2026-06-13T10:36:10.7649802Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7649887Z               "line": 93
2026-06-13T10:36:10.7649969Z             },
2026-06-13T10:36:10.7650050Z             {
2026-06-13T10:36:10.7650164Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7650245Z               "line": 102
2026-06-13T10:36:10.7650327Z             },
2026-06-13T10:36:10.7650408Z             {
2026-06-13T10:36:10.7650512Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7650599Z               "line": 111
2026-06-13T10:36:10.7650680Z             },
2026-06-13T10:36:10.7650761Z             {
2026-06-13T10:36:10.7650875Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7650957Z               "line": 122
2026-06-13T10:36:10.7651037Z             },
2026-06-13T10:36:10.7651118Z             {
2026-06-13T10:36:10.7651229Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7651315Z               "line": 140
2026-06-13T10:36:10.7651389Z             },
2026-06-13T10:36:10.7651471Z             {
2026-06-13T10:36:10.7651582Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7651667Z               "line": 149
2026-06-13T10:36:10.7651751Z             },
2026-06-13T10:36:10.7651831Z             {
2026-06-13T10:36:10.7651937Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7652021Z               "line": 158
2026-06-13T10:36:10.7652101Z             },
2026-06-13T10:36:10.7652178Z             {
2026-06-13T10:36:10.7652283Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7652383Z               "line": 169
2026-06-13T10:36:10.7652454Z             },
2026-06-13T10:36:10.7652626Z             {
2026-06-13T10:36:10.7652740Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7652822Z               "line": 177
2026-06-13T10:36:10.7652903Z             },
2026-06-13T10:36:10.7652984Z             {
2026-06-13T10:36:10.7653088Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7653170Z               "line": 186
2026-06-13T10:36:10.7653256Z             },
2026-06-13T10:36:10.7653337Z             {
2026-06-13T10:36:10.7653436Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7653514Z               "line": 195
2026-06-13T10:36:10.7653598Z             },
2026-06-13T10:36:10.7654018Z             {
2026-06-13T10:36:10.7654124Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7654210Z               "line": 204
2026-06-13T10:36:10.7654295Z             },
2026-06-13T10:36:10.7654372Z             {
2026-06-13T10:36:10.7654478Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7654566Z               "line": 216
2026-06-13T10:36:10.7654647Z             },
2026-06-13T10:36:10.7654723Z             {
2026-06-13T10:36:10.7654829Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7654918Z               "line": 223
2026-06-13T10:36:10.7655004Z             },
2026-06-13T10:36:10.7655086Z             {
2026-06-13T10:36:10.7655191Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7655271Z               "line": 232
2026-06-13T10:36:10.7655352Z             },
2026-06-13T10:36:10.7655435Z             {
2026-06-13T10:36:10.7655544Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7655629Z               "line": 239
2026-06-13T10:36:10.7655710Z             },
2026-06-13T10:36:10.7655792Z             {
2026-06-13T10:36:10.7655896Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7655977Z               "line": 306
2026-06-13T10:36:10.7656060Z             },
2026-06-13T10:36:10.7656139Z             {
2026-06-13T10:36:10.7656244Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7656331Z               "line": 318
2026-06-13T10:36:10.7656412Z             },
2026-06-13T10:36:10.7656496Z             {
2026-06-13T10:36:10.7656602Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7656694Z               "line": 405
2026-06-13T10:36:10.7656769Z             }
2026-06-13T10:36:10.7656849Z           ]
2026-06-13T10:36:10.7656944Z         },
2026-06-13T10:36:10.7657035Z         "int": {
2026-06-13T10:36:10.7657128Z           "complete": false,
2026-06-13T10:36:10.7657213Z           "evidence": []
2026-06-13T10:36:10.7657295Z         },
2026-06-13T10:36:10.7657376Z         "unit": {
2026-06-13T10:36:10.7657461Z           "complete": true,
2026-06-13T10:36:10.7657542Z           "evidence": [
2026-06-13T10:36:10.7657628Z             {
2026-06-13T10:36:10.7657739Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7657824Z               "line": 487
2026-06-13T10:36:10.7657909Z             },
2026-06-13T10:36:10.7657987Z             {
2026-06-13T10:36:10.7658091Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7658181Z               "line": 528
2026-06-13T10:36:10.7658258Z             },
2026-06-13T10:36:10.7658339Z             {
2026-06-13T10:36:10.7658448Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7658529Z               "line": 541
2026-06-13T10:36:10.7658607Z             },
2026-06-13T10:36:10.7658687Z             {
2026-06-13T10:36:10.7658792Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7658873Z               "line": 627
2026-06-13T10:36:10.7659045Z             }
2026-06-13T10:36:10.7659116Z           ]
2026-06-13T10:36:10.7659198Z         }
2026-06-13T10:36:10.7659284Z       }
2026-06-13T10:36:10.7659364Z     },
2026-06-13T10:36:10.7659445Z     {
2026-06-13T10:36:10.7659556Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-13T10:36:10.7659873Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-13T10:36:10.7659972Z       "requiredStages": [
2026-06-13T10:36:10.7660080Z         "impl",
2026-06-13T10:36:10.7660195Z         "unit"
2026-06-13T10:36:10.7660277Z       ],
2026-06-13T10:36:10.7660357Z       "stages": {
2026-06-13T10:36:10.7660438Z         "doc": {
2026-06-13T10:36:10.7660520Z           "complete": false,
2026-06-13T10:36:10.7660606Z           "evidence": []
2026-06-13T10:36:10.7660691Z         },
2026-06-13T10:36:10.7660771Z         "impl": {
2026-06-13T10:36:10.7660854Z           "complete": true,
2026-06-13T10:36:10.7660935Z           "evidence": [
2026-06-13T10:36:10.7661116Z             {
2026-06-13T10:36:10.7661231Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T10:36:10.7661316Z               "line": 143
2026-06-13T10:36:10.7661391Z             },
2026-06-13T10:36:10.7661474Z             {
2026-06-13T10:36:10.7661592Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.7661697Z               "line": 148
2026-06-13T10:36:10.7661774Z             }
2026-06-13T10:36:10.7661855Z           ]
2026-06-13T10:36:10.7661935Z         },
2026-06-13T10:36:10.7662017Z         "int": {
2026-06-13T10:36:10.7662109Z           "complete": false,
2026-06-13T10:36:10.7662184Z           "evidence": []
2026-06-13T10:36:10.7662269Z         },
2026-06-13T10:36:10.7662349Z         "unit": {
2026-06-13T10:36:10.7662440Z           "complete": true,
2026-06-13T10:36:10.7662525Z           "evidence": [
2026-06-13T10:36:10.7662609Z             {
2026-06-13T10:36:10.7662718Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T10:36:10.7662810Z               "line": 264
2026-06-13T10:36:10.7662892Z             },
2026-06-13T10:36:10.7662971Z             {
2026-06-13T10:36:10.7663096Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.7663186Z               "line": 623
2026-06-13T10:36:10.7663272Z             },
2026-06-13T10:36:10.7663353Z             {
2026-06-13T10:36:10.7663468Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.7663559Z               "line": 636
2026-06-13T10:36:10.7663639Z             }
2026-06-13T10:36:10.7663721Z           ]
2026-06-13T10:36:10.7663811Z         }
2026-06-13T10:36:10.7663892Z       }
2026-06-13T10:36:10.7663973Z     },
2026-06-13T10:36:10.7664050Z     {
2026-06-13T10:36:10.7664163Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-13T10:36:10.7664288Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-13T10:36:10.7664384Z       "requiredStages": [
2026-06-13T10:36:10.7664469Z         "impl",
2026-06-13T10:36:10.7664550Z         "unit"
2026-06-13T10:36:10.7664641Z       ],
2026-06-13T10:36:10.7664723Z       "stages": {
2026-06-13T10:36:10.7664812Z         "doc": {
2026-06-13T10:36:10.7664903Z           "complete": false,
2026-06-13T10:36:10.7664995Z           "evidence": []
2026-06-13T10:36:10.7665076Z         },
2026-06-13T10:36:10.7665159Z         "impl": {
2026-06-13T10:36:10.7665259Z           "complete": true,
2026-06-13T10:36:10.7665345Z           "evidence": [
2026-06-13T10:36:10.7665432Z             {
2026-06-13T10:36:10.7665545Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7665632Z               "line": 114
2026-06-13T10:36:10.7665718Z             },
2026-06-13T10:36:10.7665798Z             {
2026-06-13T10:36:10.7665922Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.7666004Z               "line": 481
2026-06-13T10:36:10.7666090Z             }
2026-06-13T10:36:10.7666170Z           ]
2026-06-13T10:36:10.7666256Z         },
2026-06-13T10:36:10.7666338Z         "int": {
2026-06-13T10:36:10.7666433Z           "complete": false,
2026-06-13T10:36:10.7666518Z           "evidence": []
2026-06-13T10:36:10.7666600Z         },
2026-06-13T10:36:10.7666685Z         "unit": {
2026-06-13T10:36:10.7666776Z           "complete": true,
2026-06-13T10:36:10.7666866Z           "evidence": [
2026-06-13T10:36:10.7667019Z             {
2026-06-13T10:36:10.7667143Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.7667230Z               "line": 515
2026-06-13T10:36:10.7667315Z             }
2026-06-13T10:36:10.7667405Z           ]
2026-06-13T10:36:10.7667490Z         }
2026-06-13T10:36:10.7667585Z       }
2026-06-13T10:36:10.7667665Z     },
2026-06-13T10:36:10.7667750Z     {
2026-06-13T10:36:10.7667874Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-13T10:36:10.7668036Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-13T10:36:10.7668135Z       "requiredStages": [
2026-06-13T10:36:10.7668227Z         "impl",
2026-06-13T10:36:10.7668388Z         "unit"
2026-06-13T10:36:10.7668474Z       ],
2026-06-13T10:36:10.7668566Z       "stages": {
2026-06-13T10:36:10.7668656Z         "doc": {
2026-06-13T10:36:10.7668746Z           "complete": false,
2026-06-13T10:36:10.7668838Z           "evidence": []
2026-06-13T10:36:10.7668918Z         },
2026-06-13T10:36:10.7669104Z         "impl": {
2026-06-13T10:36:10.7669210Z           "complete": true,
2026-06-13T10:36:10.7669314Z           "evidence": [
2026-06-13T10:36:10.7669418Z             {
2026-06-13T10:36:10.7669543Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7669633Z               "line": 502
2026-06-13T10:36:10.7669714Z             },
2026-06-13T10:36:10.7669801Z             {
2026-06-13T10:36:10.7669924Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T10:36:10.7670015Z               "line": 28
2026-06-13T10:36:10.7670106Z             }
2026-06-13T10:36:10.7670187Z           ]
2026-06-13T10:36:10.7670277Z         },
2026-06-13T10:36:10.7670371Z         "int": {
2026-06-13T10:36:10.7670472Z           "complete": false,
2026-06-13T10:36:10.7670570Z           "evidence": []
2026-06-13T10:36:10.7670650Z         },
2026-06-13T10:36:10.7670741Z         "unit": {
2026-06-13T10:36:10.7670832Z           "complete": true,
2026-06-13T10:36:10.7670932Z           "evidence": [
2026-06-13T10:36:10.7671032Z             {
2026-06-13T10:36:10.7671161Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T10:36:10.7671256Z               "line": 229
2026-06-13T10:36:10.7671336Z             }
2026-06-13T10:36:10.7671424Z           ]
2026-06-13T10:36:10.7671509Z         }
2026-06-13T10:36:10.7671594Z       }
2026-06-13T10:36:10.7671676Z     },
2026-06-13T10:36:10.7671767Z     {
2026-06-13T10:36:10.7671876Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-13T10:36:10.7672024Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-13T10:36:10.7672124Z       "requiredStages": [],
2026-06-13T10:36:10.7672209Z       "stages": {
2026-06-13T10:36:10.7672310Z         "doc": {
2026-06-13T10:36:10.7672401Z           "complete": false,
2026-06-13T10:36:10.7672495Z           "evidence": []
2026-06-13T10:36:10.7672586Z         },
2026-06-13T10:36:10.7672669Z         "impl": {
2026-06-13T10:36:10.7672754Z           "complete": false,
2026-06-13T10:36:10.7672848Z           "evidence": []
2026-06-13T10:36:10.7672928Z         },
2026-06-13T10:36:10.7673010Z         "int": {
2026-06-13T10:36:10.7673109Z           "complete": false,
2026-06-13T10:36:10.7673193Z           "evidence": []
2026-06-13T10:36:10.7673269Z         },
2026-06-13T10:36:10.7673360Z         "unit": {
2026-06-13T10:36:10.7673447Z           "complete": false,
2026-06-13T10:36:10.7673536Z           "evidence": []
2026-06-13T10:36:10.7673617Z         }
2026-06-13T10:36:10.7673700Z       }
2026-06-13T10:36:10.7673781Z     },
2026-06-13T10:36:10.7673870Z     {
2026-06-13T10:36:10.7673990Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-13T10:36:10.7674138Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-13T10:36:10.7674242Z       "requiredStages": [
2026-06-13T10:36:10.7674324Z         "impl",
2026-06-13T10:36:10.7674409Z         "unit"
2026-06-13T10:36:10.7674490Z       ],
2026-06-13T10:36:10.7674581Z       "stages": {
2026-06-13T10:36:10.7674667Z         "doc": {
2026-06-13T10:36:10.7674862Z           "complete": false,
2026-06-13T10:36:10.7674963Z           "evidence": []
2026-06-13T10:36:10.7675043Z         },
2026-06-13T10:36:10.7675129Z         "impl": {
2026-06-13T10:36:10.7675206Z           "complete": true,
2026-06-13T10:36:10.7675297Z           "evidence": [
2026-06-13T10:36:10.7675381Z             {
2026-06-13T10:36:10.7675482Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T10:36:10.7675578Z               "line": 19
2026-06-13T10:36:10.7675659Z             },
2026-06-13T10:36:10.7675738Z             {
2026-06-13T10:36:10.7675862Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.7676058Z               "line": 347
2026-06-13T10:36:10.7676143Z             },
2026-06-13T10:36:10.7676225Z             {
2026-06-13T10:36:10.7676345Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.7676425Z               "line": 383
2026-06-13T10:36:10.7676521Z             },
2026-06-13T10:36:10.7676602Z             {
2026-06-13T10:36:10.7676725Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T10:36:10.7676821Z               "line": 15
2026-06-13T10:36:10.7676898Z             },
2026-06-13T10:36:10.7676978Z             {
2026-06-13T10:36:10.7677097Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T10:36:10.7677189Z               "line": 48
2026-06-13T10:36:10.7677273Z             },
2026-06-13T10:36:10.7677354Z             {
2026-06-13T10:36:10.7677470Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T10:36:10.7677551Z               "line": 119
2026-06-13T10:36:10.7677626Z             },
2026-06-13T10:36:10.7677717Z             {
2026-06-13T10:36:10.7677833Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7677926Z               "line": 3075
2026-06-13T10:36:10.7678012Z             }
2026-06-13T10:36:10.7678093Z           ]
2026-06-13T10:36:10.7678174Z         },
2026-06-13T10:36:10.7678258Z         "int": {
2026-06-13T10:36:10.7678343Z           "complete": false,
2026-06-13T10:36:10.7678443Z           "evidence": []
2026-06-13T10:36:10.7678525Z         },
2026-06-13T10:36:10.7678605Z         "unit": {
2026-06-13T10:36:10.7678700Z           "complete": true,
2026-06-13T10:36:10.7678782Z           "evidence": [
2026-06-13T10:36:10.7678873Z             {
2026-06-13T10:36:10.7679064Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.7679154Z               "line": 496
2026-06-13T10:36:10.7679249Z             },
2026-06-13T10:36:10.7679339Z             {
2026-06-13T10:36:10.7679455Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T10:36:10.7679541Z               "line": 165
2026-06-13T10:36:10.7679621Z             },
2026-06-13T10:36:10.7679703Z             {
2026-06-13T10:36:10.7679821Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T10:36:10.7679926Z               "line": 175
2026-06-13T10:36:10.7680008Z             }
2026-06-13T10:36:10.7680090Z           ]
2026-06-13T10:36:10.7680174Z         }
2026-06-13T10:36:10.7680260Z       }
2026-06-13T10:36:10.7680333Z     },
2026-06-13T10:36:10.7680418Z     {
2026-06-13T10:36:10.7680532Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-13T10:36:10.7681392Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-13T10:36:10.7681492Z       "requiredStages": [
2026-06-13T10:36:10.7681577Z         "impl",
2026-06-13T10:36:10.7681655Z         "unit"
2026-06-13T10:36:10.7681740Z       ],
2026-06-13T10:36:10.7681820Z       "stages": {
2026-06-13T10:36:10.7681901Z         "doc": {
2026-06-13T10:36:10.7681984Z           "complete": false,
2026-06-13T10:36:10.7682079Z           "evidence": []
2026-06-13T10:36:10.7682164Z         },
2026-06-13T10:36:10.7682250Z         "impl": {
2026-06-13T10:36:10.7682460Z           "complete": true,
2026-06-13T10:36:10.7682555Z           "evidence": [
2026-06-13T10:36:10.7682642Z             {
2026-06-13T10:36:10.7682755Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7682850Z               "line": 2817
2026-06-13T10:36:10.7682933Z             },
2026-06-13T10:36:10.7683013Z             {
2026-06-13T10:36:10.7683128Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T10:36:10.7683214Z               "line": 103
2026-06-13T10:36:10.7683295Z             },
2026-06-13T10:36:10.7683375Z             {
2026-06-13T10:36:10.7683493Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T10:36:10.7683580Z               "line": 135
2026-06-13T10:36:10.7683762Z             }
2026-06-13T10:36:10.7683853Z           ]
2026-06-13T10:36:10.7683930Z         },
2026-06-13T10:36:10.7684012Z         "int": {
2026-06-13T10:36:10.7684096Z           "complete": false,
2026-06-13T10:36:10.7684182Z           "evidence": []
2026-06-13T10:36:10.7684255Z         },
2026-06-13T10:36:10.7684350Z         "unit": {
2026-06-13T10:36:10.7684449Z           "complete": true,
2026-06-13T10:36:10.7684536Z           "evidence": [
2026-06-13T10:36:10.7684622Z             {
2026-06-13T10:36:10.7684721Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T10:36:10.7684817Z               "line": 258
2026-06-13T10:36:10.7684898Z             },
2026-06-13T10:36:10.7684983Z             {
2026-06-13T10:36:10.7685098Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T10:36:10.7685180Z               "line": 283
2026-06-13T10:36:10.7685256Z             },
2026-06-13T10:36:10.7685337Z             {
2026-06-13T10:36:10.7685456Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T10:36:10.7685552Z               "line": 296
2026-06-13T10:36:10.7685631Z             },
2026-06-13T10:36:10.7685713Z             {
2026-06-13T10:36:10.7685814Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T10:36:10.7685899Z               "line": 308
2026-06-13T10:36:10.7685980Z             }
2026-06-13T10:36:10.7686062Z           ]
2026-06-13T10:36:10.7686139Z         }
2026-06-13T10:36:10.7686228Z       }
2026-06-13T10:36:10.7686313Z     },
2026-06-13T10:36:10.7686398Z     {
2026-06-13T10:36:10.7686500Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-13T10:36:10.7686646Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-13T10:36:10.7686747Z       "requiredStages": [
2026-06-13T10:36:10.7686829Z         "impl",
2026-06-13T10:36:10.7686905Z         "unit"
2026-06-13T10:36:10.7686985Z       ],
2026-06-13T10:36:10.7687062Z       "stages": {
2026-06-13T10:36:10.7687148Z         "doc": {
2026-06-13T10:36:10.7687243Z           "complete": false,
2026-06-13T10:36:10.7687338Z           "evidence": []
2026-06-13T10:36:10.7687420Z         },
2026-06-13T10:36:10.7687505Z         "impl": {
2026-06-13T10:36:10.7687604Z           "complete": true,
2026-06-13T10:36:10.7687686Z           "evidence": [
2026-06-13T10:36:10.7687768Z             {
2026-06-13T10:36:10.7687887Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T10:36:10.7687977Z               "line": 35
2026-06-13T10:36:10.7688059Z             }
2026-06-13T10:36:10.7688139Z           ]
2026-06-13T10:36:10.7688225Z         },
2026-06-13T10:36:10.7688302Z         "int": {
2026-06-13T10:36:10.7688403Z           "complete": false,
2026-06-13T10:36:10.7688487Z           "evidence": []
2026-06-13T10:36:10.7688572Z         },
2026-06-13T10:36:10.7688658Z         "unit": {
2026-06-13T10:36:10.7688749Z           "complete": true,
2026-06-13T10:36:10.7688837Z           "evidence": [
2026-06-13T10:36:10.7688908Z             {
2026-06-13T10:36:10.7689105Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T10:36:10.7689208Z               "line": 220
2026-06-13T10:36:10.7689323Z             }
2026-06-13T10:36:10.7689409Z           ]
2026-06-13T10:36:10.7689490Z         }
2026-06-13T10:36:10.7689571Z       }
2026-06-13T10:36:10.7689653Z     },
2026-06-13T10:36:10.7689738Z     {
2026-06-13T10:36:10.7689934Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-13T10:36:10.7690195Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-13T10:36:10.7690297Z       "requiredStages": [
2026-06-13T10:36:10.7690386Z         "impl",
2026-06-13T10:36:10.7690467Z         "unit"
2026-06-13T10:36:10.7690548Z       ],
2026-06-13T10:36:10.7690640Z       "stages": {
2026-06-13T10:36:10.7690715Z         "doc": {
2026-06-13T10:36:10.7690810Z           "complete": false,
2026-06-13T10:36:10.7690893Z           "evidence": []
2026-06-13T10:36:10.7690974Z         },
2026-06-13T10:36:10.7691053Z         "impl": {
2026-06-13T10:36:10.7691231Z           "complete": true,
2026-06-13T10:36:10.7691331Z           "evidence": [
2026-06-13T10:36:10.7691411Z             {
2026-06-13T10:36:10.7691544Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.7691625Z               "line": 405
2026-06-13T10:36:10.7691704Z             },
2026-06-13T10:36:10.7691789Z             {
2026-06-13T10:36:10.7691909Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.7692000Z               "line": 409
2026-06-13T10:36:10.7692080Z             },
2026-06-13T10:36:10.7692166Z             {
2026-06-13T10:36:10.7692277Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T10:36:10.7692371Z               "line": 156
2026-06-13T10:36:10.7692456Z             }
2026-06-13T10:36:10.7692535Z           ]
2026-06-13T10:36:10.7692624Z         },
2026-06-13T10:36:10.7692705Z         "int": {
2026-06-13T10:36:10.7692801Z           "complete": false,
2026-06-13T10:36:10.7692882Z           "evidence": []
2026-06-13T10:36:10.7692977Z         },
2026-06-13T10:36:10.7693058Z         "unit": {
2026-06-13T10:36:10.7693149Z           "complete": true,
2026-06-13T10:36:10.7693249Z           "evidence": [
2026-06-13T10:36:10.7693329Z             {
2026-06-13T10:36:10.7693445Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.7693535Z               "line": 812
2026-06-13T10:36:10.7693625Z             },
2026-06-13T10:36:10.7693716Z             {
2026-06-13T10:36:10.7693832Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.7693926Z               "line": 826
2026-06-13T10:36:10.7694010Z             },
2026-06-13T10:36:10.7694091Z             {
2026-06-13T10:36:10.7694210Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.7694304Z               "line": 845
2026-06-13T10:36:10.7694389Z             },
2026-06-13T10:36:10.7694471Z             {
2026-06-13T10:36:10.7694595Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.7694685Z               "line": 862
2026-06-13T10:36:10.7694772Z             },
2026-06-13T10:36:10.7694858Z             {
2026-06-13T10:36:10.7694990Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T10:36:10.7695082Z               "line": 441
2026-06-13T10:36:10.7695163Z             }
2026-06-13T10:36:10.7695262Z           ]
2026-06-13T10:36:10.7695343Z         }
2026-06-13T10:36:10.7695425Z       }
2026-06-13T10:36:10.7695510Z     },
2026-06-13T10:36:10.7695596Z     {
2026-06-13T10:36:10.7695706Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-13T10:36:10.7696492Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-13T10:36:10.7696592Z       "requiredStages": [
2026-06-13T10:36:10.7696680Z         "doc",
2026-06-13T10:36:10.7696774Z         "impl",
2026-06-13T10:36:10.7696868Z         "unit"
2026-06-13T10:36:10.7696949Z       ],
2026-06-13T10:36:10.7697040Z       "stages": {
2026-06-13T10:36:10.7697122Z         "doc": {
2026-06-13T10:36:10.7697220Z           "complete": true,
2026-06-13T10:36:10.7697307Z           "evidence": [
2026-06-13T10:36:10.7697394Z             {
2026-06-13T10:36:10.7697588Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T10:36:10.7697675Z               "line": 352
2026-06-13T10:36:10.7697765Z             }
2026-06-13T10:36:10.7697845Z           ]
2026-06-13T10:36:10.7697931Z         },
2026-06-13T10:36:10.7698018Z         "impl": {
2026-06-13T10:36:10.7698113Z           "complete": true,
2026-06-13T10:36:10.7698208Z           "evidence": [
2026-06-13T10:36:10.7698290Z             {
2026-06-13T10:36:10.7698417Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T10:36:10.7698503Z               "line": 85
2026-06-13T10:36:10.7698596Z             },
2026-06-13T10:36:10.7698686Z             {
2026-06-13T10:36:10.7698895Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T10:36:10.7699075Z               "line": 99
2026-06-13T10:36:10.7699156Z             },
2026-06-13T10:36:10.7699242Z             {
2026-06-13T10:36:10.7699364Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.7699473Z               "line": 55
2026-06-13T10:36:10.7699564Z             },
2026-06-13T10:36:10.7699660Z             {
2026-06-13T10:36:10.7699778Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T10:36:10.7699864Z               "line": 31
2026-06-13T10:36:10.7699950Z             },
2026-06-13T10:36:10.7700031Z             {
2026-06-13T10:36:10.7702998Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T10:36:10.7703109Z               "line": 189
2026-06-13T10:36:10.7703194Z             },
2026-06-13T10:36:10.7703284Z             {
2026-06-13T10:36:10.7703414Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T10:36:10.7703523Z               "line": 95
2026-06-13T10:36:10.7703604Z             },
2026-06-13T10:36:10.7703690Z             {
2026-06-13T10:36:10.7703814Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.7703913Z               "line": 29
2026-06-13T10:36:10.7703985Z             },
2026-06-13T10:36:10.7704072Z             {
2026-06-13T10:36:10.7704204Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.7704290Z               "line": 104
2026-06-13T10:36:10.7704383Z             },
2026-06-13T10:36:10.7704458Z             {
2026-06-13T10:36:10.7704589Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7704680Z               "line": 192
2026-06-13T10:36:10.7704761Z             },
2026-06-13T10:36:10.7704835Z             {
2026-06-13T10:36:10.7704959Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T10:36:10.7705041Z               "line": 28
2026-06-13T10:36:10.7705127Z             },
2026-06-13T10:36:10.7705212Z             {
2026-06-13T10:36:10.7705327Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T10:36:10.7705408Z               "line": 74
2026-06-13T10:36:10.7705489Z             },
2026-06-13T10:36:10.7705569Z             {
2026-06-13T10:36:10.7705689Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T10:36:10.7705770Z               "line": 32
2026-06-13T10:36:10.7705846Z             },
2026-06-13T10:36:10.7705932Z             {
2026-06-13T10:36:10.7706047Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.7706142Z               "line": 40
2026-06-13T10:36:10.7706213Z             },
2026-06-13T10:36:10.7706296Z             {
2026-06-13T10:36:10.7706409Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.7706490Z               "line": 184
2026-06-13T10:36:10.7706571Z             },
2026-06-13T10:36:10.7706653Z             {
2026-06-13T10:36:10.7706761Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T10:36:10.7706842Z               "line": 57
2026-06-13T10:36:10.7706925Z             },
2026-06-13T10:36:10.7707001Z             {
2026-06-13T10:36:10.7707110Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T10:36:10.7707192Z               "line": 99
2026-06-13T10:36:10.7707273Z             },
2026-06-13T10:36:10.7707358Z             {
2026-06-13T10:36:10.7707595Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T10:36:10.7707696Z               "line": 223
2026-06-13T10:36:10.7707776Z             },
2026-06-13T10:36:10.7707857Z             {
2026-06-13T10:36:10.7707977Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T10:36:10.7708053Z               "line": 37
2026-06-13T10:36:10.7708138Z             },
2026-06-13T10:36:10.7708220Z             {
2026-06-13T10:36:10.7708345Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T10:36:10.7708434Z               "line": 38
2026-06-13T10:36:10.7708506Z             },
2026-06-13T10:36:10.7708592Z             {
2026-06-13T10:36:10.7708806Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T10:36:10.7708888Z               "line": 36
2026-06-13T10:36:10.7709059Z             },
2026-06-13T10:36:10.7709141Z             {
2026-06-13T10:36:10.7709251Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T10:36:10.7709360Z               "line": 40
2026-06-13T10:36:10.7709445Z             }
2026-06-13T10:36:10.7709518Z           ]
2026-06-13T10:36:10.7709602Z         },
2026-06-13T10:36:10.7709697Z         "int": {
2026-06-13T10:36:10.7709802Z           "complete": false,
2026-06-13T10:36:10.7709887Z           "evidence": []
2026-06-13T10:36:10.7709966Z         },
2026-06-13T10:36:10.7710057Z         "unit": {
2026-06-13T10:36:10.7710148Z           "complete": true,
2026-06-13T10:36:10.7710240Z           "evidence": [
2026-06-13T10:36:10.7710319Z             {
2026-06-13T10:36:10.7710443Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T10:36:10.7710539Z               "line": 212
2026-06-13T10:36:10.7710629Z             },
2026-06-13T10:36:10.7710719Z             {
2026-06-13T10:36:10.7710849Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-13T10:36:10.7710934Z               "line": 136
2026-06-13T10:36:10.7711015Z             },
2026-06-13T10:36:10.7711102Z             {
2026-06-13T10:36:10.7711235Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T10:36:10.7711310Z               "line": 685
2026-06-13T10:36:10.7711393Z             },
2026-06-13T10:36:10.7711474Z             {
2026-06-13T10:36:10.7711592Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T10:36:10.7711678Z               "line": 224
2026-06-13T10:36:10.7711765Z             },
2026-06-13T10:36:10.7711849Z             {
2026-06-13T10:36:10.7711959Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-13T10:36:10.7712041Z               "line": 200
2026-06-13T10:36:10.7712122Z             },
2026-06-13T10:36:10.7712207Z             {
2026-06-13T10:36:10.7712323Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T10:36:10.7712404Z               "line": 112
2026-06-13T10:36:10.7712488Z             },
2026-06-13T10:36:10.7712569Z             {
2026-06-13T10:36:10.7712683Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T10:36:10.7712773Z               "line": 157
2026-06-13T10:36:10.7712857Z             },
2026-06-13T10:36:10.7712942Z             {
2026-06-13T10:36:10.7713058Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T10:36:10.7713148Z               "line": 215
2026-06-13T10:36:10.7713229Z             },
2026-06-13T10:36:10.7713315Z             {
2026-06-13T10:36:10.7713435Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T10:36:10.7713524Z               "line": 140
2026-06-13T10:36:10.7713606Z             },
2026-06-13T10:36:10.7713688Z             {
2026-06-13T10:36:10.7713806Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T10:36:10.7713906Z               "line": 162
2026-06-13T10:36:10.7713993Z             }
2026-06-13T10:36:10.7714073Z           ]
2026-06-13T10:36:10.7714159Z         }
2026-06-13T10:36:10.7714245Z       }
2026-06-13T10:36:10.7714323Z     },
2026-06-13T10:36:10.7714412Z     {
2026-06-13T10:36:10.7714526Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-13T10:36:10.7714788Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-13T10:36:10.7714890Z       "requiredStages": [
2026-06-13T10:36:10.7714976Z         "impl",
2026-06-13T10:36:10.7715064Z         "unit"
2026-06-13T10:36:10.7715145Z       ],
2026-06-13T10:36:10.7715230Z       "stages": {
2026-06-13T10:36:10.7715316Z         "doc": {
2026-06-13T10:36:10.7715410Z           "complete": false,
2026-06-13T10:36:10.7715495Z           "evidence": []
2026-06-13T10:36:10.7715582Z         },
2026-06-13T10:36:10.7715668Z         "impl": {
2026-06-13T10:36:10.7715758Z           "complete": true,
2026-06-13T10:36:10.7715849Z           "evidence": [
2026-06-13T10:36:10.7716030Z             {
2026-06-13T10:36:10.7716148Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.7716235Z               "line": 95
2026-06-13T10:36:10.7716321Z             },
2026-06-13T10:36:10.7716406Z             {
2026-06-13T10:36:10.7716517Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.7716616Z               "line": 102
2026-06-13T10:36:10.7716693Z             }
2026-06-13T10:36:10.7716783Z           ]
2026-06-13T10:36:10.7716865Z         },
2026-06-13T10:36:10.7716950Z         "int": {
2026-06-13T10:36:10.7717045Z           "complete": false,
2026-06-13T10:36:10.7717127Z           "evidence": []
2026-06-13T10:36:10.7717213Z         },
2026-06-13T10:36:10.7717293Z         "unit": {
2026-06-13T10:36:10.7717389Z           "complete": true,
2026-06-13T10:36:10.7717471Z           "evidence": [
2026-06-13T10:36:10.7717556Z             {
2026-06-13T10:36:10.7717670Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.7717766Z               "line": 250
2026-06-13T10:36:10.7717852Z             },
2026-06-13T10:36:10.7717932Z             {
2026-06-13T10:36:10.7718050Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T10:36:10.7718141Z               "line": 198
2026-06-13T10:36:10.7718228Z             },
2026-06-13T10:36:10.7718308Z             {
2026-06-13T10:36:10.7718422Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.7718514Z               "line": 459
2026-06-13T10:36:10.7718594Z             },
2026-06-13T10:36:10.7718679Z             {
2026-06-13T10:36:10.7718790Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.7718876Z               "line": 492
2026-06-13T10:36:10.7719056Z             }
2026-06-13T10:36:10.7719133Z           ]
2026-06-13T10:36:10.7719218Z         }
2026-06-13T10:36:10.7719299Z       }
2026-06-13T10:36:10.7719381Z     },
2026-06-13T10:36:10.7719462Z     {
2026-06-13T10:36:10.7719567Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-13T10:36:10.7719753Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-13T10:36:10.7719848Z       "requiredStages": [
2026-06-13T10:36:10.7719934Z         "impl",
2026-06-13T10:36:10.7720010Z         "unit"
2026-06-13T10:36:10.7720097Z       ],
2026-06-13T10:36:10.7720182Z       "stages": {
2026-06-13T10:36:10.7720276Z         "doc": {
2026-06-13T10:36:10.7720372Z           "complete": false,
2026-06-13T10:36:10.7720466Z           "evidence": []
2026-06-13T10:36:10.7720550Z         },
2026-06-13T10:36:10.7720636Z         "impl": {
2026-06-13T10:36:10.7720727Z           "complete": true,
2026-06-13T10:36:10.7720814Z           "evidence": [
2026-06-13T10:36:10.7720898Z             {
2026-06-13T10:36:10.7721013Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7721103Z               "line": 262
2026-06-13T10:36:10.7721189Z             },
2026-06-13T10:36:10.7721270Z             {
2026-06-13T10:36:10.7721381Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7721471Z               "line": 307
2026-06-13T10:36:10.7721561Z             },
2026-06-13T10:36:10.7721643Z             {
2026-06-13T10:36:10.7721752Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7721842Z               "line": 319
2026-06-13T10:36:10.7721923Z             }
2026-06-13T10:36:10.7722110Z           ]
2026-06-13T10:36:10.7722195Z         },
2026-06-13T10:36:10.7722278Z         "int": {
2026-06-13T10:36:10.7722377Z           "complete": false,
2026-06-13T10:36:10.7722463Z           "evidence": []
2026-06-13T10:36:10.7722544Z         },
2026-06-13T10:36:10.7722626Z         "unit": {
2026-06-13T10:36:10.7722720Z           "complete": true,
2026-06-13T10:36:10.7722806Z           "evidence": [
2026-06-13T10:36:10.7722888Z             {
2026-06-13T10:36:10.7722998Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7723081Z               "line": 455
2026-06-13T10:36:10.7723167Z             },
2026-06-13T10:36:10.7723343Z             {
2026-06-13T10:36:10.7723455Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7723542Z               "line": 499
2026-06-13T10:36:10.7723618Z             }
2026-06-13T10:36:10.7723695Z           ]
2026-06-13T10:36:10.7723765Z         }
2026-06-13T10:36:10.7723841Z       }
2026-06-13T10:36:10.7723924Z     },
2026-06-13T10:36:10.7724010Z     {
2026-06-13T10:36:10.7724108Z       "id": "REQ-INFRA-1",
2026-06-13T10:36:10.7724285Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-13T10:36:10.7724380Z       "requiredStages": [],
2026-06-13T10:36:10.7724457Z       "stages": {
2026-06-13T10:36:10.7724539Z         "doc": {
2026-06-13T10:36:10.7724619Z           "complete": false,
2026-06-13T10:36:10.7724709Z           "evidence": []
2026-06-13T10:36:10.7724776Z         },
2026-06-13T10:36:10.7724863Z         "impl": {
2026-06-13T10:36:10.7724957Z           "complete": false,
2026-06-13T10:36:10.7725038Z           "evidence": []
2026-06-13T10:36:10.7725130Z         },
2026-06-13T10:36:10.7725207Z         "int": {
2026-06-13T10:36:10.7725300Z           "complete": false,
2026-06-13T10:36:10.7725382Z           "evidence": []
2026-06-13T10:36:10.7725460Z         },
2026-06-13T10:36:10.7725536Z         "unit": {
2026-06-13T10:36:10.7725624Z           "complete": false,
2026-06-13T10:36:10.7725728Z           "evidence": []
2026-06-13T10:36:10.7725805Z         }
2026-06-13T10:36:10.7725890Z       }
2026-06-13T10:36:10.7725960Z     },
2026-06-13T10:36:10.7726045Z     {
2026-06-13T10:36:10.7726137Z       "id": "REQ-INST-1",
2026-06-13T10:36:10.7726289Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-13T10:36:10.7726389Z       "requiredStages": [],
2026-06-13T10:36:10.7726462Z       "stages": {
2026-06-13T10:36:10.7726547Z         "doc": {
2026-06-13T10:36:10.7726637Z           "complete": false,
2026-06-13T10:36:10.7726718Z           "evidence": []
2026-06-13T10:36:10.7726791Z         },
2026-06-13T10:36:10.7726876Z         "impl": {
2026-06-13T10:36:10.7726971Z           "complete": false,
2026-06-13T10:36:10.7727057Z           "evidence": []
2026-06-13T10:36:10.7727143Z         },
2026-06-13T10:36:10.7727224Z         "int": {
2026-06-13T10:36:10.7727319Z           "complete": false,
2026-06-13T10:36:10.7727406Z           "evidence": []
2026-06-13T10:36:10.7727481Z         },
2026-06-13T10:36:10.7727567Z         "unit": {
2026-06-13T10:36:10.7727653Z           "complete": false,
2026-06-13T10:36:10.7727745Z           "evidence": []
2026-06-13T10:36:10.7727824Z         }
2026-06-13T10:36:10.7727901Z       }
2026-06-13T10:36:10.7727982Z     },
2026-06-13T10:36:10.7728045Z     {
2026-06-13T10:36:10.7728139Z       "id": "REQ-INST-10",
2026-06-13T10:36:10.7728345Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-13T10:36:10.7728431Z       "requiredStages": [
2026-06-13T10:36:10.7728515Z         "impl",
2026-06-13T10:36:10.7728595Z         "unit"
2026-06-13T10:36:10.7728682Z       ],
2026-06-13T10:36:10.7728769Z       "stages": {
2026-06-13T10:36:10.7728849Z         "doc": {
2026-06-13T10:36:10.7729035Z           "complete": false,
2026-06-13T10:36:10.7729126Z           "evidence": []
2026-06-13T10:36:10.7729211Z         },
2026-06-13T10:36:10.7729297Z         "impl": {
2026-06-13T10:36:10.7729384Z           "complete": true,
2026-06-13T10:36:10.7729549Z           "evidence": [
2026-06-13T10:36:10.7729636Z             {
2026-06-13T10:36:10.7729765Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7729845Z               "line": 600
2026-06-13T10:36:10.7729927Z             },
2026-06-13T10:36:10.7730013Z             {
2026-06-13T10:36:10.7730132Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7730217Z               "line": 677
2026-06-13T10:36:10.7730300Z             },
2026-06-13T10:36:10.7730371Z             {
2026-06-13T10:36:10.7730489Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T10:36:10.7730685Z               "line": 13
2026-06-13T10:36:10.7730765Z             },
2026-06-13T10:36:10.7730846Z             {
2026-06-13T10:36:10.7730950Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T10:36:10.7731035Z               "line": 67
2026-06-13T10:36:10.7731115Z             },
2026-06-13T10:36:10.7731196Z             {
2026-06-13T10:36:10.7731307Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.7731397Z               "line": 18
2026-06-13T10:36:10.7731477Z             },
2026-06-13T10:36:10.7731559Z             {
2026-06-13T10:36:10.7731659Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.7731749Z               "line": 444
2026-06-13T10:36:10.7731840Z             }
2026-06-13T10:36:10.7731907Z           ]
2026-06-13T10:36:10.7731988Z         },
2026-06-13T10:36:10.7732074Z         "int": {
2026-06-13T10:36:10.7732159Z           "complete": false,
2026-06-13T10:36:10.7732246Z           "evidence": []
2026-06-13T10:36:10.7732326Z         },
2026-06-13T10:36:10.7732416Z         "unit": {
2026-06-13T10:36:10.7732513Z           "complete": true,
2026-06-13T10:36:10.7732608Z           "evidence": [
2026-06-13T10:36:10.7732698Z             {
2026-06-13T10:36:10.7732813Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7732900Z               "line": 883
2026-06-13T10:36:10.7732988Z             },
2026-06-13T10:36:10.7733074Z             {
2026-06-13T10:36:10.7733186Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7733275Z               "line": 1212
2026-06-13T10:36:10.7733361Z             },
2026-06-13T10:36:10.7733443Z             {
2026-06-13T10:36:10.7733548Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7733637Z               "line": 1223
2026-06-13T10:36:10.7733722Z             },
2026-06-13T10:36:10.7733808Z             {
2026-06-13T10:36:10.7733917Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7733996Z               "line": 1239
2026-06-13T10:36:10.7734087Z             },
2026-06-13T10:36:10.7734174Z             {
2026-06-13T10:36:10.7734283Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7734368Z               "line": 1255
2026-06-13T10:36:10.7734455Z             },
2026-06-13T10:36:10.7734531Z             {
2026-06-13T10:36:10.7734654Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7734741Z               "line": 1277
2026-06-13T10:36:10.7734823Z             },
2026-06-13T10:36:10.7734894Z             {
2026-06-13T10:36:10.7735017Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7735099Z               "line": 1582
2026-06-13T10:36:10.7735184Z             },
2026-06-13T10:36:10.7735265Z             {
2026-06-13T10:36:10.7735365Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T10:36:10.7735461Z               "line": 130
2026-06-13T10:36:10.7735546Z             },
2026-06-13T10:36:10.7735627Z             {
2026-06-13T10:36:10.7735748Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T10:36:10.7735837Z               "line": 167
2026-06-13T10:36:10.7735928Z             },
2026-06-13T10:36:10.7736005Z             {
2026-06-13T10:36:10.7736124Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T10:36:10.7736208Z               "line": 175
2026-06-13T10:36:10.7736370Z             },
2026-06-13T10:36:10.7736455Z             {
2026-06-13T10:36:10.7736568Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T10:36:10.7736659Z               "line": 183
2026-06-13T10:36:10.7736740Z             },
2026-06-13T10:36:10.7736821Z             {
2026-06-13T10:36:10.7736925Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.7737017Z               "line": 895
2026-06-13T10:36:10.7737102Z             }
2026-06-13T10:36:10.7737187Z           ]
2026-06-13T10:36:10.7737273Z         }
2026-06-13T10:36:10.7737356Z       }
2026-06-13T10:36:10.7737436Z     },
2026-06-13T10:36:10.7737588Z     {
2026-06-13T10:36:10.7737685Z       "id": "REQ-INST-11",
2026-06-13T10:36:10.7737898Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-13T10:36:10.7737995Z       "requiredStages": [
2026-06-13T10:36:10.7738079Z         "impl",
2026-06-13T10:36:10.7738160Z         "unit"
2026-06-13T10:36:10.7738257Z       ],
2026-06-13T10:36:10.7738343Z       "stages": {
2026-06-13T10:36:10.7738432Z         "doc": {
2026-06-13T10:36:10.7738528Z           "complete": false,
2026-06-13T10:36:10.7738615Z           "evidence": []
2026-06-13T10:36:10.7738695Z         },
2026-06-13T10:36:10.7738785Z         "impl": {
2026-06-13T10:36:10.7738882Z           "complete": true,
2026-06-13T10:36:10.7739047Z           "evidence": [
2026-06-13T10:36:10.7739132Z             {
2026-06-13T10:36:10.7739266Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7739353Z               "line": 466
2026-06-13T10:36:10.7739461Z             },
2026-06-13T10:36:10.7739547Z             {
2026-06-13T10:36:10.7739681Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7739766Z               "line": 297
2026-06-13T10:36:10.7739848Z             },
2026-06-13T10:36:10.7739929Z             {
2026-06-13T10:36:10.7740043Z               "path": "crates/spt-store/src/rename.rs",
2026-06-13T10:36:10.7740138Z               "line": 59
2026-06-13T10:36:10.7740221Z             },
2026-06-13T10:36:10.7740306Z             {
2026-06-13T10:36:10.7740420Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7740506Z               "line": 4284
2026-06-13T10:36:10.7740597Z             },
2026-06-13T10:36:10.7740677Z             {
2026-06-13T10:36:10.7740777Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7740869Z               "line": 5502
2026-06-13T10:36:10.7740949Z             }
2026-06-13T10:36:10.7741035Z           ]
2026-06-13T10:36:10.7741116Z         },
2026-06-13T10:36:10.7741203Z         "int": {
2026-06-13T10:36:10.7741297Z           "complete": false,
2026-06-13T10:36:10.7741387Z           "evidence": []
2026-06-13T10:36:10.7741468Z         },
2026-06-13T10:36:10.7741558Z         "unit": {
2026-06-13T10:36:10.7741652Z           "complete": true,
2026-06-13T10:36:10.7741742Z           "evidence": [
2026-06-13T10:36:10.7741823Z             {
2026-06-13T10:36:10.7741947Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7742042Z               "line": 1382
2026-06-13T10:36:10.7742124Z             },
2026-06-13T10:36:10.7742215Z             {
2026-06-13T10:36:10.7742333Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7742424Z               "line": 1415
2026-06-13T10:36:10.7742511Z             },
2026-06-13T10:36:10.7742591Z             {
2026-06-13T10:36:10.7742715Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7742801Z               "line": 527
2026-06-13T10:36:10.7742886Z             },
2026-06-13T10:36:10.7742972Z             {
2026-06-13T10:36:10.7743088Z               "path": "crates/spt-store/src/rename.rs",
2026-06-13T10:36:10.7743177Z               "line": 160
2026-06-13T10:36:10.7743258Z             },
2026-06-13T10:36:10.7743339Z             {
2026-06-13T10:36:10.7743450Z               "path": "crates/spt-store/src/rename.rs",
2026-06-13T10:36:10.7743644Z               "line": 190
2026-06-13T10:36:10.7743736Z             },
2026-06-13T10:36:10.7743817Z             {
2026-06-13T10:36:10.7743931Z               "path": "crates/spt-store/src/rename.rs",
2026-06-13T10:36:10.7744017Z               "line": 225
2026-06-13T10:36:10.7744104Z             },
2026-06-13T10:36:10.7744183Z             {
2026-06-13T10:36:10.7744292Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7744378Z               "line": 5841
2026-06-13T10:36:10.7744458Z             }
2026-06-13T10:36:10.7744542Z           ]
2026-06-13T10:36:10.7744628Z         }
2026-06-13T10:36:10.7744714Z       }
2026-06-13T10:36:10.7744796Z     },
2026-06-13T10:36:10.7744971Z     {
2026-06-13T10:36:10.7745073Z       "id": "REQ-INST-12",
2026-06-13T10:36:10.7745354Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-13T10:36:10.7745449Z       "requiredStages": [
2026-06-13T10:36:10.7745533Z         "impl",
2026-06-13T10:36:10.7745625Z         "unit"
2026-06-13T10:36:10.7745707Z       ],
2026-06-13T10:36:10.7745792Z       "stages": {
2026-06-13T10:36:10.7745872Z         "doc": {
2026-06-13T10:36:10.7745959Z           "complete": false,
2026-06-13T10:36:10.7746050Z           "evidence": []
2026-06-13T10:36:10.7746130Z         },
2026-06-13T10:36:10.7746216Z         "impl": {
2026-06-13T10:36:10.7746308Z           "complete": true,
2026-06-13T10:36:10.7746397Z           "evidence": [
2026-06-13T10:36:10.7746469Z             {
2026-06-13T10:36:10.7746580Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7746670Z               "line": 518
2026-06-13T10:36:10.7746759Z             },
2026-06-13T10:36:10.7746840Z             {
2026-06-13T10:36:10.7746949Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7747039Z               "line": 611
2026-06-13T10:36:10.7747123Z             },
2026-06-13T10:36:10.7747194Z             {
2026-06-13T10:36:10.7747319Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7747400Z               "line": 691
2026-06-13T10:36:10.7747476Z             },
2026-06-13T10:36:10.7747553Z             {
2026-06-13T10:36:10.7747667Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7747762Z               "line": 96
2026-06-13T10:36:10.7747843Z             },
2026-06-13T10:36:10.7747921Z             {
2026-06-13T10:36:10.7748025Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7748115Z               "line": 269
2026-06-13T10:36:10.7748187Z             },
2026-06-13T10:36:10.7748268Z             {
2026-06-13T10:36:10.7748373Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T10:36:10.7748458Z               "line": 135
2026-06-13T10:36:10.7748541Z             }
2026-06-13T10:36:10.7748625Z           ]
2026-06-13T10:36:10.7748706Z         },
2026-06-13T10:36:10.7748787Z         "int": {
2026-06-13T10:36:10.7748884Z           "complete": false,
2026-06-13T10:36:10.7749040Z           "evidence": []
2026-06-13T10:36:10.7749112Z         },
2026-06-13T10:36:10.7749199Z         "unit": {
2026-06-13T10:36:10.7749311Z           "complete": true,
2026-06-13T10:36:10.7749452Z           "evidence": [
2026-06-13T10:36:10.7749561Z             {
2026-06-13T10:36:10.7749725Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7749850Z               "line": 1457
2026-06-13T10:36:10.7749955Z             },
2026-06-13T10:36:10.7750074Z             {
2026-06-13T10:36:10.7750242Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7750369Z               "line": 1480
2026-06-13T10:36:10.7750475Z             },
2026-06-13T10:36:10.7750599Z             {
2026-06-13T10:36:10.7750761Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7750885Z               "line": 1517
2026-06-13T10:36:10.7750984Z             },
2026-06-13T10:36:10.7751066Z             {
2026-06-13T10:36:10.7751290Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7751386Z               "line": 457
2026-06-13T10:36:10.7751467Z             },
2026-06-13T10:36:10.7751542Z             {
2026-06-13T10:36:10.7751662Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T10:36:10.7751749Z               "line": 172
2026-06-13T10:36:10.7751833Z             },
2026-06-13T10:36:10.7751909Z             {
2026-06-13T10:36:10.7752032Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T10:36:10.7752109Z               "line": 193
2026-06-13T10:36:10.7752193Z             },
2026-06-13T10:36:10.7752273Z             {
2026-06-13T10:36:10.7752393Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T10:36:10.7752578Z               "line": 219
2026-06-13T10:36:10.7752659Z             }
2026-06-13T10:36:10.7752742Z           ]
2026-06-13T10:36:10.7752822Z         }
2026-06-13T10:36:10.7752902Z       }
2026-06-13T10:36:10.7752979Z     },
2026-06-13T10:36:10.7753061Z     {
2026-06-13T10:36:10.7753160Z       "id": "REQ-INST-13",
2026-06-13T10:36:10.7753342Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-13T10:36:10.7753442Z       "requiredStages": [
2026-06-13T10:36:10.7753523Z         "impl",
2026-06-13T10:36:10.7753609Z         "unit"
2026-06-13T10:36:10.7753676Z       ],
2026-06-13T10:36:10.7753766Z       "stages": {
2026-06-13T10:36:10.7753842Z         "doc": {
2026-06-13T10:36:10.7753938Z           "complete": false,
2026-06-13T10:36:10.7754029Z           "evidence": []
2026-06-13T10:36:10.7754109Z         },
2026-06-13T10:36:10.7754195Z         "impl": {
2026-06-13T10:36:10.7754282Z           "complete": true,
2026-06-13T10:36:10.7754381Z           "evidence": [
2026-06-13T10:36:10.7754462Z             {
2026-06-13T10:36:10.7754582Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.7754673Z               "line": 100
2026-06-13T10:36:10.7754743Z             },
2026-06-13T10:36:10.7754833Z             {
2026-06-13T10:36:10.7754952Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T10:36:10.7755041Z               "line": 158
2026-06-13T10:36:10.7755126Z             }
2026-06-13T10:36:10.7755207Z           ]
2026-06-13T10:36:10.7755294Z         },
2026-06-13T10:36:10.7755375Z         "int": {
2026-06-13T10:36:10.7755469Z           "complete": false,
2026-06-13T10:36:10.7755556Z           "evidence": []
2026-06-13T10:36:10.7755642Z         },
2026-06-13T10:36:10.7755732Z         "unit": {
2026-06-13T10:36:10.7755827Z           "complete": true,
2026-06-13T10:36:10.7755914Z           "evidence": [
2026-06-13T10:36:10.7755994Z             {
2026-06-13T10:36:10.7756117Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T10:36:10.7756214Z               "line": 248
2026-06-13T10:36:10.7756300Z             },
2026-06-13T10:36:10.7756381Z             {
2026-06-13T10:36:10.7756500Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T10:36:10.7756591Z               "line": 266
2026-06-13T10:36:10.7756680Z             }
2026-06-13T10:36:10.7756767Z           ]
2026-06-13T10:36:10.7756849Z         }
2026-06-13T10:36:10.7756934Z       }
2026-06-13T10:36:10.7757014Z     },
2026-06-13T10:36:10.7757101Z     {
2026-06-13T10:36:10.7757192Z       "id": "REQ-INST-14",
2026-06-13T10:36:10.7757552Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-13T10:36:10.7757655Z       "requiredStages": [
2026-06-13T10:36:10.7757736Z         "doc",
2026-06-13T10:36:10.7757817Z         "impl",
2026-06-13T10:36:10.7757904Z         "unit"
2026-06-13T10:36:10.7757988Z       ],
2026-06-13T10:36:10.7758079Z       "stages": {
2026-06-13T10:36:10.7758161Z         "doc": {
2026-06-13T10:36:10.7758252Z           "complete": true,
2026-06-13T10:36:10.7758341Z           "evidence": [
2026-06-13T10:36:10.7758423Z             {
2026-06-13T10:36:10.7758518Z               "path": "CONTEXT.md",
2026-06-13T10:36:10.7758704Z               "line": 476
2026-06-13T10:36:10.7758795Z             },
2026-06-13T10:36:10.7758880Z             {
2026-06-13T10:36:10.7759067Z               "path": "docs/STORAGE.md",
2026-06-13T10:36:10.7759148Z               "line": 49
2026-06-13T10:36:10.7759234Z             }
2026-06-13T10:36:10.7759329Z           ]
2026-06-13T10:36:10.7759420Z         },
2026-06-13T10:36:10.7759505Z         "impl": {
2026-06-13T10:36:10.7759595Z           "complete": true,
2026-06-13T10:36:10.7759687Z           "evidence": [
2026-06-13T10:36:10.7759769Z             {
2026-06-13T10:36:10.7759901Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7760093Z               "line": 388
2026-06-13T10:36:10.7760177Z             },
2026-06-13T10:36:10.7760262Z             {
2026-06-13T10:36:10.7760382Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7760473Z               "line": 330
2026-06-13T10:36:10.7760553Z             },
2026-06-13T10:36:10.7760638Z             {
2026-06-13T10:36:10.7760754Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7760844Z               "line": 211
2026-06-13T10:36:10.7760934Z             },
2026-06-13T10:36:10.7761017Z             {
2026-06-13T10:36:10.7761121Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7761211Z               "line": 1104
2026-06-13T10:36:10.7761292Z             }
2026-06-13T10:36:10.7761369Z           ]
2026-06-13T10:36:10.7761454Z         },
2026-06-13T10:36:10.7761540Z         "int": {
2026-06-13T10:36:10.7761631Z           "complete": false,
2026-06-13T10:36:10.7761726Z           "evidence": []
2026-06-13T10:36:10.7761802Z         },
2026-06-13T10:36:10.7761902Z         "unit": {
2026-06-13T10:36:10.7761990Z           "complete": true,
2026-06-13T10:36:10.7762079Z           "evidence": [
2026-06-13T10:36:10.7762160Z             {
2026-06-13T10:36:10.7762290Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7762380Z               "line": 1081
2026-06-13T10:36:10.7762464Z             },
2026-06-13T10:36:10.7762549Z             {
2026-06-13T10:36:10.7762669Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7762757Z               "line": 895
2026-06-13T10:36:10.7762842Z             },
2026-06-13T10:36:10.7762919Z             {
2026-06-13T10:36:10.7763040Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7763124Z               "line": 1153
2026-06-13T10:36:10.7763215Z             },
2026-06-13T10:36:10.7763302Z             {
2026-06-13T10:36:10.7763411Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7763496Z               "line": 463
2026-06-13T10:36:10.7763583Z             },
2026-06-13T10:36:10.7763669Z             {
2026-06-13T10:36:10.7763768Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7763864Z               "line": 5917
2026-06-13T10:36:10.7763945Z             }
2026-06-13T10:36:10.7764026Z           ]
2026-06-13T10:36:10.7764116Z         }
2026-06-13T10:36:10.7764198Z       }
2026-06-13T10:36:10.7764283Z     },
2026-06-13T10:36:10.7764364Z     {
2026-06-13T10:36:10.7764459Z       "id": "REQ-INST-15",
2026-06-13T10:36:10.7765152Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-13T10:36:10.7765252Z       "requiredStages": [
2026-06-13T10:36:10.7765336Z         "doc",
2026-06-13T10:36:10.7765421Z         "impl",
2026-06-13T10:36:10.7765508Z         "unit"
2026-06-13T10:36:10.7765597Z       ],
2026-06-13T10:36:10.7768319Z       "stages": {
2026-06-13T10:36:10.7768426Z         "doc": {
2026-06-13T10:36:10.7768516Z           "complete": true,
2026-06-13T10:36:10.7768601Z           "evidence": [
2026-06-13T10:36:10.7768683Z             {
2026-06-13T10:36:10.7769107Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-13T10:36:10.7769206Z               "line": 3
2026-06-13T10:36:10.7769298Z             }
2026-06-13T10:36:10.7769384Z           ]
2026-06-13T10:36:10.7769464Z         },
2026-06-13T10:36:10.7769550Z         "impl": {
2026-06-13T10:36:10.7769637Z           "complete": true,
2026-06-13T10:36:10.7769718Z           "evidence": [
2026-06-13T10:36:10.7769799Z             {
2026-06-13T10:36:10.7769927Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7770019Z               "line": 337
2026-06-13T10:36:10.7770098Z             },
2026-06-13T10:36:10.7770184Z             {
2026-06-13T10:36:10.7770394Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T10:36:10.7770480Z               "line": 60
2026-06-13T10:36:10.7770567Z             },
2026-06-13T10:36:10.7770648Z             {
2026-06-13T10:36:10.7770779Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7770860Z               "line": 368
2026-06-13T10:36:10.7770951Z             },
2026-06-13T10:36:10.7771038Z             {
2026-06-13T10:36:10.7771156Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7771242Z               "line": 417
2026-06-13T10:36:10.7771323Z             },
2026-06-13T10:36:10.7771404Z             {
2026-06-13T10:36:10.7771513Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T10:36:10.7771601Z               "line": 19
2026-06-13T10:36:10.7771681Z             },
2026-06-13T10:36:10.7771766Z             {
2026-06-13T10:36:10.7771872Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T10:36:10.7771957Z               "line": 70
2026-06-13T10:36:10.7772043Z             },
2026-06-13T10:36:10.7772124Z             {
2026-06-13T10:36:10.7772230Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T10:36:10.7772314Z               "line": 96
2026-06-13T10:36:10.7772400Z             },
2026-06-13T10:36:10.7772472Z             {
2026-06-13T10:36:10.7772578Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T10:36:10.7772662Z               "line": 121
2026-06-13T10:36:10.7772744Z             },
2026-06-13T10:36:10.7772826Z             {
2026-06-13T10:36:10.7772930Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T10:36:10.7773015Z               "line": 172
2026-06-13T10:36:10.7773100Z             },
2026-06-13T10:36:10.7773182Z             {
2026-06-13T10:36:10.7773289Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.7773375Z               "line": 146
2026-06-13T10:36:10.7773456Z             },
2026-06-13T10:36:10.7773542Z             {
2026-06-13T10:36:10.7773651Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7773746Z               "line": 996
2026-06-13T10:36:10.7773828Z             }
2026-06-13T10:36:10.7773914Z           ]
2026-06-13T10:36:10.7773994Z         },
2026-06-13T10:36:10.7774080Z         "int": {
2026-06-13T10:36:10.7774167Z           "complete": false,
2026-06-13T10:36:10.7774266Z           "evidence": []
2026-06-13T10:36:10.7774347Z         },
2026-06-13T10:36:10.7774429Z         "unit": {
2026-06-13T10:36:10.7774510Z           "complete": true,
2026-06-13T10:36:10.7774595Z           "evidence": [
2026-06-13T10:36:10.7774681Z             {
2026-06-13T10:36:10.7774806Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7774891Z               "line": 577
2026-06-13T10:36:10.7774967Z             },
2026-06-13T10:36:10.7775044Z             {
2026-06-13T10:36:10.7775163Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.7775253Z               "line": 638
2026-06-13T10:36:10.7775339Z             },
2026-06-13T10:36:10.7775417Z             {
2026-06-13T10:36:10.7775525Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T10:36:10.7775606Z               "line": 213
2026-06-13T10:36:10.7775688Z             },
2026-06-13T10:36:10.7775774Z             {
2026-06-13T10:36:10.7775977Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T10:36:10.7776063Z               "line": 249
2026-06-13T10:36:10.7776138Z             },
2026-06-13T10:36:10.7776218Z             {
2026-06-13T10:36:10.7776323Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T10:36:10.7776399Z               "line": 262
2026-06-13T10:36:10.7776481Z             },
2026-06-13T10:36:10.7776561Z             {
2026-06-13T10:36:10.7776671Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T10:36:10.7776758Z               "line": 338
2026-06-13T10:36:10.7776838Z             },
2026-06-13T10:36:10.7776923Z             {
2026-06-13T10:36:10.7777029Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.7777190Z               "line": 513
2026-06-13T10:36:10.7777272Z             },
2026-06-13T10:36:10.7777358Z             {
2026-06-13T10:36:10.7777457Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7777548Z               "line": 5854
2026-06-13T10:36:10.7777630Z             },
2026-06-13T10:36:10.7777721Z             {
2026-06-13T10:36:10.7777820Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7777901Z               "line": 7419
2026-06-13T10:36:10.7777983Z             }
2026-06-13T10:36:10.7778068Z           ]
2026-06-13T10:36:10.7778149Z         }
2026-06-13T10:36:10.7778231Z       }
2026-06-13T10:36:10.7778307Z     },
2026-06-13T10:36:10.7778388Z     {
2026-06-13T10:36:10.7778477Z       "id": "REQ-INST-2",
2026-06-13T10:36:10.7778596Z       "title": "Per-node files, synced Psyche mind",
2026-06-13T10:36:10.7778691Z       "requiredStages": [
2026-06-13T10:36:10.7778775Z         "impl",
2026-06-13T10:36:10.7778851Z         "unit"
2026-06-13T10:36:10.7778933Z       ],
2026-06-13T10:36:10.7779095Z       "stages": {
2026-06-13T10:36:10.7779175Z         "doc": {
2026-06-13T10:36:10.7779277Z           "complete": false,
2026-06-13T10:36:10.7779367Z           "evidence": []
2026-06-13T10:36:10.7779456Z         },
2026-06-13T10:36:10.7779538Z         "impl": {
2026-06-13T10:36:10.7779634Z           "complete": true,
2026-06-13T10:36:10.7779725Z           "evidence": [
2026-06-13T10:36:10.7779800Z             {
2026-06-13T10:36:10.7779925Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7780005Z               "line": 88
2026-06-13T10:36:10.7780086Z             },
2026-06-13T10:36:10.7780167Z             {
2026-06-13T10:36:10.7780264Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T10:36:10.7780344Z               "line": 28
2026-06-13T10:36:10.7780424Z             },
2026-06-13T10:36:10.7780507Z             {
2026-06-13T10:36:10.7780607Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T10:36:10.7780702Z               "line": 74
2026-06-13T10:36:10.7780783Z             },
2026-06-13T10:36:10.7780860Z             {
2026-06-13T10:36:10.7780973Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T10:36:10.7781054Z               "line": 96
2026-06-13T10:36:10.7781132Z             },
2026-06-13T10:36:10.7781218Z             {
2026-06-13T10:36:10.7781325Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T10:36:10.7781401Z               "line": 86
2026-06-13T10:36:10.7781482Z             },
2026-06-13T10:36:10.7781559Z             {
2026-06-13T10:36:10.7781668Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T10:36:10.7781758Z               "line": 118
2026-06-13T10:36:10.7781841Z             }
2026-06-13T10:36:10.7781922Z           ]
2026-06-13T10:36:10.7781997Z         },
2026-06-13T10:36:10.7782073Z         "int": {
2026-06-13T10:36:10.7782170Z           "complete": false,
2026-06-13T10:36:10.7782251Z           "evidence": []
2026-06-13T10:36:10.7782340Z         },
2026-06-13T10:36:10.7782427Z         "unit": {
2026-06-13T10:36:10.7782508Z           "complete": true,
2026-06-13T10:36:10.7782594Z           "evidence": [
2026-06-13T10:36:10.7782674Z             {
2026-06-13T10:36:10.7782775Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T10:36:10.7782955Z               "line": 250
2026-06-13T10:36:10.7783042Z             },
2026-06-13T10:36:10.7783114Z             {
2026-06-13T10:36:10.7783217Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T10:36:10.7783313Z               "line": 272
2026-06-13T10:36:10.7783386Z             }
2026-06-13T10:36:10.7783463Z           ]
2026-06-13T10:36:10.7783537Z         }
2026-06-13T10:36:10.7783618Z       }
2026-06-13T10:36:10.7783694Z     },
2026-06-13T10:36:10.7783770Z     {
2026-06-13T10:36:10.7783859Z       "id": "REQ-INST-3",
2026-06-13T10:36:10.7784016Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-13T10:36:10.7784107Z       "requiredStages": [
2026-06-13T10:36:10.7784292Z         "doc",
2026-06-13T10:36:10.7784378Z         "impl",
2026-06-13T10:36:10.7784464Z         "unit"
2026-06-13T10:36:10.7784549Z       ],
2026-06-13T10:36:10.7784640Z       "stages": {
2026-06-13T10:36:10.7784718Z         "doc": {
2026-06-13T10:36:10.7784813Z           "complete": true,
2026-06-13T10:36:10.7784907Z           "evidence": [
2026-06-13T10:36:10.7784984Z             {
2026-06-13T10:36:10.7785103Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-13T10:36:10.7785189Z               "line": 3
2026-06-13T10:36:10.7785270Z             }
2026-06-13T10:36:10.7785347Z           ]
2026-06-13T10:36:10.7785427Z         },
2026-06-13T10:36:10.7785508Z         "impl": {
2026-06-13T10:36:10.7785599Z           "complete": true,
2026-06-13T10:36:10.7785686Z           "evidence": [
2026-06-13T10:36:10.7785770Z             {
2026-06-13T10:36:10.7785890Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T10:36:10.7785977Z               "line": 70
2026-06-13T10:36:10.7786066Z             },
2026-06-13T10:36:10.7786147Z             {
2026-06-13T10:36:10.7786267Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.7786358Z               "line": 480
2026-06-13T10:36:10.7786438Z             },
2026-06-13T10:36:10.7786522Z             {
2026-06-13T10:36:10.7786651Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7786740Z               "line": 204
2026-06-13T10:36:10.7786816Z             },
2026-06-13T10:36:10.7786897Z             {
2026-06-13T10:36:10.7787017Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7787102Z               "line": 334
2026-06-13T10:36:10.7787183Z             },
2026-06-13T10:36:10.7787261Z             {
2026-06-13T10:36:10.7787375Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7787464Z               "line": 368
2026-06-13T10:36:10.7787546Z             },
2026-06-13T10:36:10.7787641Z             {
2026-06-13T10:36:10.7787765Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-13T10:36:10.7787851Z               "line": 74
2026-06-13T10:36:10.7787932Z             },
2026-06-13T10:36:10.7788013Z             {
2026-06-13T10:36:10.7788142Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7788229Z               "line": 218
2026-06-13T10:36:10.7788323Z             },
2026-06-13T10:36:10.7788404Z             {
2026-06-13T10:36:10.7788529Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7788614Z               "line": 374
2026-06-13T10:36:10.7788699Z             },
2026-06-13T10:36:10.7788776Z             {
2026-06-13T10:36:10.7788896Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7789108Z               "line": 45
2026-06-13T10:36:10.7789185Z             },
2026-06-13T10:36:10.7789270Z             {
2026-06-13T10:36:10.7789382Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7789469Z               "line": 114
2026-06-13T10:36:10.7789565Z             },
2026-06-13T10:36:10.7789674Z             {
2026-06-13T10:36:10.7789793Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7789880Z               "line": 152
2026-06-13T10:36:10.7789960Z             },
2026-06-13T10:36:10.7790040Z             {
2026-06-13T10:36:10.7790270Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7790364Z               "line": 168
2026-06-13T10:36:10.7790443Z             },
2026-06-13T10:36:10.7790523Z             {
2026-06-13T10:36:10.7790637Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7790727Z               "line": 178
2026-06-13T10:36:10.7790810Z             },
2026-06-13T10:36:10.7790899Z             {
2026-06-13T10:36:10.7791014Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7791100Z               "line": 210
2026-06-13T10:36:10.7791181Z             },
2026-06-13T10:36:10.7791262Z             {
2026-06-13T10:36:10.7791468Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7791556Z               "line": 287
2026-06-13T10:36:10.7791638Z             },
2026-06-13T10:36:10.7791721Z             {
2026-06-13T10:36:10.7791834Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7791928Z               "line": 311
2026-06-13T10:36:10.7792009Z             },
2026-06-13T10:36:10.7792096Z             {
2026-06-13T10:36:10.7792210Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7792295Z               "line": 389
2026-06-13T10:36:10.7792376Z             },
2026-06-13T10:36:10.7792457Z             {
2026-06-13T10:36:10.7792571Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7792658Z               "line": 438
2026-06-13T10:36:10.7792744Z             },
2026-06-13T10:36:10.7792826Z             {
2026-06-13T10:36:10.7792944Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-13T10:36:10.7793040Z               "line": 37
2026-06-13T10:36:10.7793125Z             },
2026-06-13T10:36:10.7793210Z             {
2026-06-13T10:36:10.7793326Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7793411Z               "line": 62
2026-06-13T10:36:10.7793493Z             },
2026-06-13T10:36:10.7793573Z             {
2026-06-13T10:36:10.7793694Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7793777Z               "line": 190
2026-06-13T10:36:10.7793859Z             },
2026-06-13T10:36:10.7793941Z             {
2026-06-13T10:36:10.7794046Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7794130Z               "line": 1325
2026-06-13T10:36:10.7794211Z             }
2026-06-13T10:36:10.7794297Z           ]
2026-06-13T10:36:10.7794377Z         },
2026-06-13T10:36:10.7794461Z         "int": {
2026-06-13T10:36:10.7794556Z           "complete": false,
2026-06-13T10:36:10.7794648Z           "evidence": []
2026-06-13T10:36:10.7794729Z         },
2026-06-13T10:36:10.7794809Z         "unit": {
2026-06-13T10:36:10.7794900Z           "complete": true,
2026-06-13T10:36:10.7794986Z           "evidence": [
2026-06-13T10:36:10.7795067Z             {
2026-06-13T10:36:10.7795181Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T10:36:10.7795278Z               "line": 360
2026-06-13T10:36:10.7795363Z             },
2026-06-13T10:36:10.7795443Z             {
2026-06-13T10:36:10.7795564Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7795644Z               "line": 787
2026-06-13T10:36:10.7795730Z             },
2026-06-13T10:36:10.7795806Z             {
2026-06-13T10:36:10.7795926Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7796006Z               "line": 844
2026-06-13T10:36:10.7796078Z             },
2026-06-13T10:36:10.7796159Z             {
2026-06-13T10:36:10.7796274Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7796354Z               "line": 889
2026-06-13T10:36:10.7796431Z             },
2026-06-13T10:36:10.7796508Z             {
2026-06-13T10:36:10.7796626Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7796702Z               "line": 1014
2026-06-13T10:36:10.7796784Z             },
2026-06-13T10:36:10.7796861Z             {
2026-06-13T10:36:10.7797064Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7797149Z               "line": 1182
2026-06-13T10:36:10.7797226Z             },
2026-06-13T10:36:10.7797309Z             {
2026-06-13T10:36:10.7797428Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7797515Z               "line": 1322
2026-06-13T10:36:10.7797596Z             },
2026-06-13T10:36:10.7797681Z             {
2026-06-13T10:36:10.7797781Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7797863Z               "line": 449
2026-06-13T10:36:10.7797944Z             },
2026-06-13T10:36:10.7798025Z             {
2026-06-13T10:36:10.7798211Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7798287Z               "line": 485
2026-06-13T10:36:10.7798372Z             },
2026-06-13T10:36:10.7798450Z             {
2026-06-13T10:36:10.7798568Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7798659Z               "line": 540
2026-06-13T10:36:10.7798740Z             },
2026-06-13T10:36:10.7798821Z             {
2026-06-13T10:36:10.7798930Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7799113Z               "line": 697
2026-06-13T10:36:10.7799193Z             },
2026-06-13T10:36:10.7799269Z             {
2026-06-13T10:36:10.7799380Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7799465Z               "line": 931
2026-06-13T10:36:10.7799545Z             },
2026-06-13T10:36:10.7799626Z             {
2026-06-13T10:36:10.7799736Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7799825Z               "line": 945
2026-06-13T10:36:10.7799905Z             },
2026-06-13T10:36:10.7799995Z             {
2026-06-13T10:36:10.7800106Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7800191Z               "line": 1193
2026-06-13T10:36:10.7800276Z             },
2026-06-13T10:36:10.7800363Z             {
2026-06-13T10:36:10.7800473Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.7800558Z               "line": 413
2026-06-13T10:36:10.7800644Z             },
2026-06-13T10:36:10.7800730Z             {
2026-06-13T10:36:10.7800830Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7800915Z               "line": 5878
2026-06-13T10:36:10.7800993Z             }
2026-06-13T10:36:10.7801078Z           ]
2026-06-13T10:36:10.7801154Z         }
2026-06-13T10:36:10.7801230Z       }
2026-06-13T10:36:10.7801312Z     },
2026-06-13T10:36:10.7801393Z     {
2026-06-13T10:36:10.7801474Z       "id": "REQ-INST-4",
2026-06-13T10:36:10.7801651Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-13T10:36:10.7801741Z       "requiredStages": [
2026-06-13T10:36:10.7801827Z         "impl",
2026-06-13T10:36:10.7801908Z         "unit"
2026-06-13T10:36:10.7801990Z       ],
2026-06-13T10:36:10.7802079Z       "stages": {
2026-06-13T10:36:10.7802165Z         "doc": {
2026-06-13T10:36:10.7802257Z           "complete": false,
2026-06-13T10:36:10.7802343Z           "evidence": []
2026-06-13T10:36:10.7802427Z         },
2026-06-13T10:36:10.7802516Z         "impl": {
2026-06-13T10:36:10.7802598Z           "complete": true,
2026-06-13T10:36:10.7802689Z           "evidence": [
2026-06-13T10:36:10.7802765Z             {
2026-06-13T10:36:10.7802893Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7802980Z               "line": 335
2026-06-13T10:36:10.7803066Z             },
2026-06-13T10:36:10.7803146Z             {
2026-06-13T10:36:10.7803261Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7803351Z               "line": 202
2026-06-13T10:36:10.7803437Z             },
2026-06-13T10:36:10.7803518Z             {
2026-06-13T10:36:10.7803633Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7803719Z               "line": 234
2026-06-13T10:36:10.7803799Z             },
2026-06-13T10:36:10.7803976Z             {
2026-06-13T10:36:10.7804085Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7804172Z               "line": 274
2026-06-13T10:36:10.7804254Z             }
2026-06-13T10:36:10.7804338Z           ]
2026-06-13T10:36:10.7804419Z         },
2026-06-13T10:36:10.7804501Z         "int": {
2026-06-13T10:36:10.7804592Z           "complete": false,
2026-06-13T10:36:10.7804671Z           "evidence": []
2026-06-13T10:36:10.7804757Z         },
2026-06-13T10:36:10.7804838Z         "unit": {
2026-06-13T10:36:10.7804928Z           "complete": true,
2026-06-13T10:36:10.7805012Z           "evidence": [
2026-06-13T10:36:10.7805184Z             {
2026-06-13T10:36:10.7805299Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.7805384Z               "line": 839
2026-06-13T10:36:10.7805470Z             },
2026-06-13T10:36:10.7805551Z             {
2026-06-13T10:36:10.7805665Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7805755Z               "line": 561
2026-06-13T10:36:10.7805843Z             },
2026-06-13T10:36:10.7805918Z             {
2026-06-13T10:36:10.7806037Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7806119Z               "line": 668
2026-06-13T10:36:10.7806200Z             },
2026-06-13T10:36:10.7806285Z             {
2026-06-13T10:36:10.7806394Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7806477Z               "line": 750
2026-06-13T10:36:10.7806561Z             }
2026-06-13T10:36:10.7806642Z           ]
2026-06-13T10:36:10.7806709Z         }
2026-06-13T10:36:10.7806787Z       }
2026-06-13T10:36:10.7806871Z     },
2026-06-13T10:36:10.7806948Z     {
2026-06-13T10:36:10.7807034Z       "id": "REQ-INST-5",
2026-06-13T10:36:10.7807205Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-13T10:36:10.7807310Z       "requiredStages": [
2026-06-13T10:36:10.7807392Z         "impl",
2026-06-13T10:36:10.7807483Z         "unit",
2026-06-13T10:36:10.7807562Z         "int"
2026-06-13T10:36:10.7807642Z       ],
2026-06-13T10:36:10.7807729Z       "stages": {
2026-06-13T10:36:10.7807814Z         "doc": {
2026-06-13T10:36:10.7807898Z           "complete": false,
2026-06-13T10:36:10.7807969Z           "evidence": []
2026-06-13T10:36:10.7808051Z         },
2026-06-13T10:36:10.7808133Z         "impl": {
2026-06-13T10:36:10.7808218Z           "complete": true,
2026-06-13T10:36:10.7808303Z           "evidence": [
2026-06-13T10:36:10.7808386Z             {
2026-06-13T10:36:10.7808499Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-13T10:36:10.7808580Z               "line": 85
2026-06-13T10:36:10.7808661Z             },
2026-06-13T10:36:10.7808738Z             {
2026-06-13T10:36:10.7808856Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.7809034Z               "line": 68
2026-06-13T10:36:10.7809114Z             },
2026-06-13T10:36:10.7809200Z             {
2026-06-13T10:36:10.7809310Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.7809391Z               "line": 99
2026-06-13T10:36:10.7809476Z             },
2026-06-13T10:36:10.7809553Z             {
2026-06-13T10:36:10.7809669Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.7809748Z               "line": 183
2026-06-13T10:36:10.7809834Z             },
2026-06-13T10:36:10.7809911Z             {
2026-06-13T10:36:10.7810025Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.7810105Z               "line": 314
2026-06-13T10:36:10.7810181Z             }
2026-06-13T10:36:10.7810257Z           ]
2026-06-13T10:36:10.7810333Z         },
2026-06-13T10:36:10.7810418Z         "int": {
2026-06-13T10:36:10.7810498Z           "complete": true,
2026-06-13T10:36:10.7810584Z           "evidence": [
2026-06-13T10:36:10.7810661Z             {
2026-06-13T10:36:10.7810785Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T10:36:10.7810875Z               "line": 156
2026-06-13T10:36:10.7811037Z             },
2026-06-13T10:36:10.7811118Z             {
2026-06-13T10:36:10.7811233Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-13T10:36:10.7811324Z               "line": 102
2026-06-13T10:36:10.7811419Z             },
2026-06-13T10:36:10.7811494Z             {
2026-06-13T10:36:10.7811610Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.7811691Z               "line": 637
2026-06-13T10:36:10.7811781Z             },
2026-06-13T10:36:10.7811853Z             {
2026-06-13T10:36:10.7811962Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.7812158Z               "line": 974
2026-06-13T10:36:10.7812235Z             }
2026-06-13T10:36:10.7812310Z           ]
2026-06-13T10:36:10.7812387Z         },
2026-06-13T10:36:10.7812478Z         "unit": {
2026-06-13T10:36:10.7812564Z           "complete": true,
2026-06-13T10:36:10.7812658Z           "evidence": [
2026-06-13T10:36:10.7812735Z             {
2026-06-13T10:36:10.7812846Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.7812940Z               "line": 552
2026-06-13T10:36:10.7813006Z             },
2026-06-13T10:36:10.7813086Z             {
2026-06-13T10:36:10.7813191Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.7813274Z               "line": 595
2026-06-13T10:36:10.7813349Z             },
2026-06-13T10:36:10.7813420Z             {
2026-06-13T10:36:10.7813540Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T10:36:10.7813621Z               "line": 219
2026-06-13T10:36:10.7813701Z             }
2026-06-13T10:36:10.7813778Z           ]
2026-06-13T10:36:10.7813865Z         }
2026-06-13T10:36:10.7813955Z       }
2026-06-13T10:36:10.7814035Z     },
2026-06-13T10:36:10.7814117Z     {
2026-06-13T10:36:10.7814198Z       "id": "REQ-INST-6",
2026-06-13T10:36:10.7814378Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-13T10:36:10.7814480Z       "requiredStages": [
2026-06-13T10:36:10.7814569Z         "impl",
2026-06-13T10:36:10.7814650Z         "unit",
2026-06-13T10:36:10.7814732Z         "int"
2026-06-13T10:36:10.7814818Z       ],
2026-06-13T10:36:10.7814903Z       "stages": {
2026-06-13T10:36:10.7814988Z         "doc": {
2026-06-13T10:36:10.7815076Z           "complete": true,
2026-06-13T10:36:10.7815166Z           "evidence": [
2026-06-13T10:36:10.7815250Z             {
2026-06-13T10:36:10.7815354Z               "path": "docs/DEFERRED.md",
2026-06-13T10:36:10.7815441Z               "line": 13
2026-06-13T10:36:10.7815526Z             }
2026-06-13T10:36:10.7815610Z           ]
2026-06-13T10:36:10.7815696Z         },
2026-06-13T10:36:10.7815783Z         "impl": {
2026-06-13T10:36:10.7815878Z           "complete": true,
2026-06-13T10:36:10.7815963Z           "evidence": [
2026-06-13T10:36:10.7816049Z             {
2026-06-13T10:36:10.7816164Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.7816253Z               "line": 391
2026-06-13T10:36:10.7816350Z             },
2026-06-13T10:36:10.7816426Z             {
2026-06-13T10:36:10.7816549Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T10:36:10.7816635Z               "line": 27
2026-06-13T10:36:10.7816722Z             },
2026-06-13T10:36:10.7816798Z             {
2026-06-13T10:36:10.7816916Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T10:36:10.7817003Z               "line": 73
2026-06-13T10:36:10.7817084Z             },
2026-06-13T10:36:10.7817170Z             {
2026-06-13T10:36:10.7817284Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T10:36:10.7817376Z               "line": 182
2026-06-13T10:36:10.7817460Z             },
2026-06-13T10:36:10.7817546Z             {
2026-06-13T10:36:10.7817662Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7817747Z               "line": 426
2026-06-13T10:36:10.7817832Z             },
2026-06-13T10:36:10.7817909Z             {
2026-06-13T10:36:10.7818103Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-13T10:36:10.7818189Z               "line": 31
2026-06-13T10:36:10.7818275Z             },
2026-06-13T10:36:10.7818360Z             {
2026-06-13T10:36:10.7818473Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.7818558Z               "line": 182
2026-06-13T10:36:10.7818645Z             },
2026-06-13T10:36:10.7818731Z             {
2026-06-13T10:36:10.7818844Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T10:36:10.7818931Z               "line": 81
2026-06-13T10:36:10.7819101Z             },
2026-06-13T10:36:10.7819182Z             {
2026-06-13T10:36:10.7819388Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7819478Z               "line": 1326
2026-06-13T10:36:10.7819560Z             },
2026-06-13T10:36:10.7819641Z             {
2026-06-13T10:36:10.7819750Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.7819836Z               "line": 179
2026-06-13T10:36:10.7819928Z             },
2026-06-13T10:36:10.7820013Z             {
2026-06-13T10:36:10.7820118Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.7820209Z               "line": 215
2026-06-13T10:36:10.7820290Z             }
2026-06-13T10:36:10.7820375Z           ]
2026-06-13T10:36:10.7820461Z         },
2026-06-13T10:36:10.7820539Z         "int": {
2026-06-13T10:36:10.7820633Z           "complete": true,
2026-06-13T10:36:10.7820718Z           "evidence": [
2026-06-13T10:36:10.7820803Z             {
2026-06-13T10:36:10.7820917Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.7821006Z               "line": 651
2026-06-13T10:36:10.7821096Z             },
2026-06-13T10:36:10.7821178Z             {
2026-06-13T10:36:10.7821297Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.7821387Z               "line": 1019
2026-06-13T10:36:10.7821468Z             },
2026-06-13T10:36:10.7821550Z             {
2026-06-13T10:36:10.7821664Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.7821754Z               "line": 725
2026-06-13T10:36:10.7821836Z             }
2026-06-13T10:36:10.7821922Z           ]
2026-06-13T10:36:10.7822002Z         },
2026-06-13T10:36:10.7822089Z         "unit": {
2026-06-13T10:36:10.7822179Z           "complete": true,
2026-06-13T10:36:10.7822265Z           "evidence": [
2026-06-13T10:36:10.7822350Z             {
2026-06-13T10:36:10.7822466Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.7822556Z               "line": 660
2026-06-13T10:36:10.7822637Z             },
2026-06-13T10:36:10.7822723Z             {
2026-06-13T10:36:10.7822847Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.7822937Z               "line": 899
2026-06-13T10:36:10.7823018Z             },
2026-06-13T10:36:10.7823101Z             {
2026-06-13T10:36:10.7823228Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-13T10:36:10.7823314Z               "line": 66
2026-06-13T10:36:10.7823401Z             },
2026-06-13T10:36:10.7823486Z             {
2026-06-13T10:36:10.7823599Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.7823694Z               "line": 272
2026-06-13T10:36:10.7823781Z             },
2026-06-13T10:36:10.7823862Z             {
2026-06-13T10:36:10.7823970Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T10:36:10.7824062Z               "line": 201
2026-06-13T10:36:10.7824148Z             }
2026-06-13T10:36:10.7824228Z           ]
2026-06-13T10:36:10.7824309Z         }
2026-06-13T10:36:10.7824391Z       }
2026-06-13T10:36:10.7824472Z     },
2026-06-13T10:36:10.7824562Z     {
2026-06-13T10:36:10.7824652Z       "id": "REQ-INST-7",
2026-06-13T10:36:10.7824796Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-13T10:36:10.7824881Z       "requiredStages": [
2026-06-13T10:36:10.7824967Z         "impl",
2026-06-13T10:36:10.7825049Z         "unit",
2026-06-13T10:36:10.7825139Z         "int"
2026-06-13T10:36:10.7825317Z       ],
2026-06-13T10:36:10.7825407Z       "stages": {
2026-06-13T10:36:10.7825481Z         "doc": {
2026-06-13T10:36:10.7825573Z           "complete": false,
2026-06-13T10:36:10.7825665Z           "evidence": []
2026-06-13T10:36:10.7825745Z         },
2026-06-13T10:36:10.7825824Z         "impl": {
2026-06-13T10:36:10.7825910Z           "complete": true,
2026-06-13T10:36:10.7826001Z           "evidence": [
2026-06-13T10:36:10.7826076Z             {
2026-06-13T10:36:10.7826199Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.7826290Z               "line": 436
2026-06-13T10:36:10.7826366Z             },
2026-06-13T10:36:10.7826518Z             {
2026-06-13T10:36:10.7826643Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7826734Z               "line": 27
2026-06-13T10:36:10.7826804Z             },
2026-06-13T10:36:10.7826876Z             {
2026-06-13T10:36:10.7827001Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7827081Z               "line": 191
2026-06-13T10:36:10.7827157Z             },
2026-06-13T10:36:10.7827235Z             {
2026-06-13T10:36:10.7827362Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7827448Z               "line": 328
2026-06-13T10:36:10.7827529Z             },
2026-06-13T10:36:10.7827606Z             {
2026-06-13T10:36:10.7827711Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-13T10:36:10.7827806Z               "line": 59
2026-06-13T10:36:10.7827883Z             },
2026-06-13T10:36:10.7827964Z             {
2026-06-13T10:36:10.7828078Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7828164Z               "line": 41
2026-06-13T10:36:10.7828246Z             },
2026-06-13T10:36:10.7828321Z             {
2026-06-13T10:36:10.7828440Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T10:36:10.7828522Z               "line": 27
2026-06-13T10:36:10.7828617Z             },
2026-06-13T10:36:10.7828696Z             {
2026-06-13T10:36:10.7828806Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T10:36:10.7828897Z               "line": 119
2026-06-13T10:36:10.7829051Z             },
2026-06-13T10:36:10.7831690Z             {
2026-06-13T10:36:10.7831848Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T10:36:10.7831933Z               "line": 134
2026-06-13T10:36:10.7832010Z             },
2026-06-13T10:36:10.7832082Z             {
2026-06-13T10:36:10.7832219Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T10:36:10.7832300Z               "line": 139
2026-06-13T10:36:10.7832397Z             }
2026-06-13T10:36:10.7832477Z           ]
2026-06-13T10:36:10.7832557Z         },
2026-06-13T10:36:10.7832644Z         "int": {
2026-06-13T10:36:10.7832725Z           "complete": true,
2026-06-13T10:36:10.7832811Z           "evidence": [
2026-06-13T10:36:10.7832891Z             {
2026-06-13T10:36:10.7833017Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-13T10:36:10.7833102Z               "line": 102
2026-06-13T10:36:10.7833178Z             },
2026-06-13T10:36:10.7833263Z             {
2026-06-13T10:36:10.7833374Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.7833459Z               "line": 595
2026-06-13T10:36:10.7833535Z             },
2026-06-13T10:36:10.7833622Z             {
2026-06-13T10:36:10.7833740Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.7833821Z               "line": 869
2026-06-13T10:36:10.7833908Z             }
2026-06-13T10:36:10.7833985Z           ]
2026-06-13T10:36:10.7834069Z         },
2026-06-13T10:36:10.7834154Z         "unit": {
2026-06-13T10:36:10.7834240Z           "complete": true,
2026-06-13T10:36:10.7834326Z           "evidence": [
2026-06-13T10:36:10.7834408Z             {
2026-06-13T10:36:10.7834530Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7834755Z               "line": 1052
2026-06-13T10:36:10.7834845Z             },
2026-06-13T10:36:10.7834928Z             {
2026-06-13T10:36:10.7835061Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7835164Z               "line": 1383
2026-06-13T10:36:10.7835247Z             },
2026-06-13T10:36:10.7835332Z             {
2026-06-13T10:36:10.7835456Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-13T10:36:10.7835542Z               "line": 84
2026-06-13T10:36:10.7835623Z             },
2026-06-13T10:36:10.7835704Z             {
2026-06-13T10:36:10.7835828Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7836018Z               "line": 763
2026-06-13T10:36:10.7836100Z             },
2026-06-13T10:36:10.7836181Z             {
2026-06-13T10:36:10.7836296Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7836380Z               "line": 774
2026-06-13T10:36:10.7836466Z             },
2026-06-13T10:36:10.7836551Z             {
2026-06-13T10:36:10.7836669Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7836759Z               "line": 789
2026-06-13T10:36:10.7836836Z             },
2026-06-13T10:36:10.7836922Z             {
2026-06-13T10:36:10.7837040Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T10:36:10.7837126Z               "line": 165
2026-06-13T10:36:10.7837213Z             },
2026-06-13T10:36:10.7837289Z             {
2026-06-13T10:36:10.7837412Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T10:36:10.7837494Z               "line": 180
2026-06-13T10:36:10.7837580Z             },
2026-06-13T10:36:10.7837665Z             {
2026-06-13T10:36:10.7837785Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T10:36:10.7837871Z               "line": 213
2026-06-13T10:36:10.7837947Z             }
2026-06-13T10:36:10.7838031Z           ]
2026-06-13T10:36:10.7838114Z         }
2026-06-13T10:36:10.7838195Z       }
2026-06-13T10:36:10.7838285Z     },
2026-06-13T10:36:10.7838370Z     {
2026-06-13T10:36:10.7838457Z       "id": "REQ-INST-8",
2026-06-13T10:36:10.7838609Z       "title": "Remote-control mode distinct from local operation",
2026-06-13T10:36:10.7838705Z       "requiredStages": [
2026-06-13T10:36:10.7838792Z         "impl",
2026-06-13T10:36:10.7838872Z         "unit",
2026-06-13T10:36:10.7839054Z         "int"
2026-06-13T10:36:10.7839135Z       ],
2026-06-13T10:36:10.7839224Z       "stages": {
2026-06-13T10:36:10.7839304Z         "doc": {
2026-06-13T10:36:10.7839409Z           "complete": false,
2026-06-13T10:36:10.7839499Z           "evidence": []
2026-06-13T10:36:10.7839583Z         },
2026-06-13T10:36:10.7839668Z         "impl": {
2026-06-13T10:36:10.7839745Z           "complete": true,
2026-06-13T10:36:10.7839837Z           "evidence": [
2026-06-13T10:36:10.7839912Z             {
2026-06-13T10:36:10.7840032Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T10:36:10.7840122Z               "line": 98
2026-06-13T10:36:10.7840213Z             },
2026-06-13T10:36:10.7840293Z             {
2026-06-13T10:36:10.7840414Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T10:36:10.7840500Z               "line": 209
2026-06-13T10:36:10.7840584Z             },
2026-06-13T10:36:10.7840666Z             {
2026-06-13T10:36:10.7840780Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T10:36:10.7840866Z               "line": 230
2026-06-13T10:36:10.7840947Z             },
2026-06-13T10:36:10.7841029Z             {
2026-06-13T10:36:10.7841147Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-13T10:36:10.7841233Z               "line": 35
2026-06-13T10:36:10.7841320Z             }
2026-06-13T10:36:10.7841401Z           ]
2026-06-13T10:36:10.7841480Z         },
2026-06-13T10:36:10.7841557Z         "int": {
2026-06-13T10:36:10.7841649Z           "complete": true,
2026-06-13T10:36:10.7841739Z           "evidence": [
2026-06-13T10:36:10.7841819Z             {
2026-06-13T10:36:10.7842047Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T10:36:10.7842126Z               "line": 415
2026-06-13T10:36:10.7842207Z             },
2026-06-13T10:36:10.7842288Z             {
2026-06-13T10:36:10.7842408Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.7842483Z               "line": 933
2026-06-13T10:36:10.7842560Z             }
2026-06-13T10:36:10.7842642Z           ]
2026-06-13T10:36:10.7842732Z         },
2026-06-13T10:36:10.7842822Z         "unit": {
2026-06-13T10:36:10.7842913Z           "complete": true,
2026-06-13T10:36:10.7842989Z           "evidence": [
2026-06-13T10:36:10.7843075Z             {
2026-06-13T10:36:10.7843371Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-13T10:36:10.7843485Z               "line": 181
2026-06-13T10:36:10.7843567Z             },
2026-06-13T10:36:10.7843657Z             {
2026-06-13T10:36:10.7843795Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-13T10:36:10.7843906Z               "line": 259
2026-06-13T10:36:10.7843990Z             },
2026-06-13T10:36:10.7844072Z             {
2026-06-13T10:36:10.7844187Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-13T10:36:10.7844272Z               "line": 70
2026-06-13T10:36:10.7844357Z             },
2026-06-13T10:36:10.7844439Z             {
2026-06-13T10:36:10.7844550Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-13T10:36:10.7844639Z               "line": 110
2026-06-13T10:36:10.7844715Z             }
2026-06-13T10:36:10.7844800Z           ]
2026-06-13T10:36:10.7844881Z         }
2026-06-13T10:36:10.7844963Z       }
2026-06-13T10:36:10.7845043Z     },
2026-06-13T10:36:10.7845134Z     {
2026-06-13T10:36:10.7845220Z       "id": "REQ-INST-9",
2026-06-13T10:36:10.7845405Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-13T10:36:10.7845497Z       "requiredStages": [
2026-06-13T10:36:10.7845578Z         "impl",
2026-06-13T10:36:10.7845663Z         "unit"
2026-06-13T10:36:10.7845749Z       ],
2026-06-13T10:36:10.7845836Z       "stages": {
2026-06-13T10:36:10.7845921Z         "doc": {
2026-06-13T10:36:10.7846006Z           "complete": false,
2026-06-13T10:36:10.7846093Z           "evidence": []
2026-06-13T10:36:10.7846174Z         },
2026-06-13T10:36:10.7846255Z         "impl": {
2026-06-13T10:36:10.7846345Z           "complete": true,
2026-06-13T10:36:10.7846432Z           "evidence": [
2026-06-13T10:36:10.7846508Z             {
2026-06-13T10:36:10.7846631Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7846708Z               "line": 401
2026-06-13T10:36:10.7846790Z             }
2026-06-13T10:36:10.7846874Z           ]
2026-06-13T10:36:10.7846954Z         },
2026-06-13T10:36:10.7847030Z         "int": {
2026-06-13T10:36:10.7847121Z           "complete": false,
2026-06-13T10:36:10.7847201Z           "evidence": []
2026-06-13T10:36:10.7847281Z         },
2026-06-13T10:36:10.7847352Z         "unit": {
2026-06-13T10:36:10.7847443Z           "complete": true,
2026-06-13T10:36:10.7847525Z           "evidence": [
2026-06-13T10:36:10.7847605Z             {
2026-06-13T10:36:10.7847725Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7847811Z               "line": 1300
2026-06-13T10:36:10.7847892Z             },
2026-06-13T10:36:10.7847972Z             {
2026-06-13T10:36:10.7848088Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7848173Z               "line": 1309
2026-06-13T10:36:10.7848249Z             },
2026-06-13T10:36:10.7848325Z             {
2026-06-13T10:36:10.7848431Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7848521Z               "line": 1325
2026-06-13T10:36:10.7848601Z             },
2026-06-13T10:36:10.7848684Z             {
2026-06-13T10:36:10.7848793Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7848874Z               "line": 1337
2026-06-13T10:36:10.7849041Z             },
2026-06-13T10:36:10.7849231Z             {
2026-06-13T10:36:10.7849356Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.7849446Z               "line": 1357
2026-06-13T10:36:10.7849527Z             }
2026-06-13T10:36:10.7849609Z           ]
2026-06-13T10:36:10.7849685Z         }
2026-06-13T10:36:10.7849770Z       }
2026-06-13T10:36:10.7849850Z     },
2026-06-13T10:36:10.7849921Z     {
2026-06-13T10:36:10.7850012Z       "id": "REQ-INSTALL-1",
2026-06-13T10:36:10.7850195Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-13T10:36:10.7850282Z       "requiredStages": [
2026-06-13T10:36:10.7850363Z         "doc",
2026-06-13T10:36:10.7850548Z         "impl",
2026-06-13T10:36:10.7850631Z         "int"
2026-06-13T10:36:10.7850701Z       ],
2026-06-13T10:36:10.7850782Z       "stages": {
2026-06-13T10:36:10.7850863Z         "doc": {
2026-06-13T10:36:10.7850945Z           "complete": true,
2026-06-13T10:36:10.7851030Z           "evidence": [
2026-06-13T10:36:10.7851120Z             {
2026-06-13T10:36:10.7851211Z               "path": "CONTEXT.md",
2026-06-13T10:36:10.7851289Z               "line": 627
2026-06-13T10:36:10.7851373Z             }
2026-06-13T10:36:10.7851454Z           ]
2026-06-13T10:36:10.7851536Z         },
2026-06-13T10:36:10.7851618Z         "impl": {
2026-06-13T10:36:10.7851702Z           "complete": true,
2026-06-13T10:36:10.7851788Z           "evidence": [
2026-06-13T10:36:10.7851871Z             {
2026-06-13T10:36:10.7851980Z               "path": "installer/install.ps1",
2026-06-13T10:36:10.7852060Z               "line": 57
2026-06-13T10:36:10.7852137Z             },
2026-06-13T10:36:10.7852219Z             {
2026-06-13T10:36:10.7852322Z               "path": "installer/install.sh",
2026-06-13T10:36:10.7852403Z               "line": 52
2026-06-13T10:36:10.7852483Z             }
2026-06-13T10:36:10.7852560Z           ]
2026-06-13T10:36:10.7852640Z         },
2026-06-13T10:36:10.7852715Z         "int": {
2026-06-13T10:36:10.7852805Z           "complete": true,
2026-06-13T10:36:10.7852887Z           "evidence": [
2026-06-13T10:36:10.7852964Z             {
2026-06-13T10:36:10.7853091Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-13T10:36:10.7853173Z               "line": 21
2026-06-13T10:36:10.7853254Z             }
2026-06-13T10:36:10.7853339Z           ]
2026-06-13T10:36:10.7853415Z         },
2026-06-13T10:36:10.7853498Z         "unit": {
2026-06-13T10:36:10.7853588Z           "complete": false,
2026-06-13T10:36:10.7853668Z           "evidence": []
2026-06-13T10:36:10.7853744Z         }
2026-06-13T10:36:10.7853827Z       }
2026-06-13T10:36:10.7853902Z     },
2026-06-13T10:36:10.7853988Z     {
2026-06-13T10:36:10.7854078Z       "id": "REQ-INSTALL-2",
2026-06-13T10:36:10.7854212Z       "title": "Marketplace-repackaging-friendly install",
2026-06-13T10:36:10.7854303Z       "requiredStages": [
2026-06-13T10:36:10.7854383Z         "doc"
2026-06-13T10:36:10.7854466Z       ],
2026-06-13T10:36:10.7854550Z       "stages": {
2026-06-13T10:36:10.7854636Z         "doc": {
2026-06-13T10:36:10.7854728Z           "complete": true,
2026-06-13T10:36:10.7854819Z           "evidence": [
2026-06-13T10:36:10.7854898Z             {
2026-06-13T10:36:10.7854989Z               "path": "CONTEXT.md",
2026-06-13T10:36:10.7855081Z               "line": 628
2026-06-13T10:36:10.7855166Z             }
2026-06-13T10:36:10.7855246Z           ]
2026-06-13T10:36:10.7855331Z         },
2026-06-13T10:36:10.7855413Z         "impl": {
2026-06-13T10:36:10.7855504Z           "complete": false,
2026-06-13T10:36:10.7855598Z           "evidence": []
2026-06-13T10:36:10.7855679Z         },
2026-06-13T10:36:10.7855757Z         "int": {
2026-06-13T10:36:10.7855852Z           "complete": false,
2026-06-13T10:36:10.7855942Z           "evidence": []
2026-06-13T10:36:10.7856018Z         },
2026-06-13T10:36:10.7856105Z         "unit": {
2026-06-13T10:36:10.7856190Z           "complete": false,
2026-06-13T10:36:10.7856285Z           "evidence": []
2026-06-13T10:36:10.7856362Z         }
2026-06-13T10:36:10.7856524Z       }
2026-06-13T10:36:10.7856609Z     },
2026-06-13T10:36:10.7856687Z     {
2026-06-13T10:36:10.7856781Z       "id": "REQ-INSTALL-3",
2026-06-13T10:36:10.7856915Z       "title": "Idempotent + interactive-optional first run",
2026-06-13T10:36:10.7857007Z       "requiredStages": [
2026-06-13T10:36:10.7857087Z         "impl",
2026-06-13T10:36:10.7857167Z         "int"
2026-06-13T10:36:10.7857248Z       ],
2026-06-13T10:36:10.7857331Z       "stages": {
2026-06-13T10:36:10.7857416Z         "doc": {
2026-06-13T10:36:10.7857505Z           "complete": false,
2026-06-13T10:36:10.7857595Z           "evidence": []
2026-06-13T10:36:10.7857672Z         },
2026-06-13T10:36:10.7857836Z         "impl": {
2026-06-13T10:36:10.7857927Z           "complete": true,
2026-06-13T10:36:10.7858013Z           "evidence": [
2026-06-13T10:36:10.7858103Z             {
2026-06-13T10:36:10.7858208Z               "path": "installer/install.ps1",
2026-06-13T10:36:10.7858290Z               "line": 100
2026-06-13T10:36:10.7858381Z             },
2026-06-13T10:36:10.7858466Z             {
2026-06-13T10:36:10.7858570Z               "path": "installer/install.ps1",
2026-06-13T10:36:10.7858652Z               "line": 111
2026-06-13T10:36:10.7858738Z             },
2026-06-13T10:36:10.7858814Z             {
2026-06-13T10:36:10.7858915Z               "path": "installer/install.sh",
2026-06-13T10:36:10.7859086Z               "line": 79
2026-06-13T10:36:10.7859171Z             }
2026-06-13T10:36:10.7859249Z           ]
2026-06-13T10:36:10.7859329Z         },
2026-06-13T10:36:10.7859410Z         "int": {
2026-06-13T10:36:10.7859495Z           "complete": true,
2026-06-13T10:36:10.7859592Z           "evidence": [
2026-06-13T10:36:10.7859672Z             {
2026-06-13T10:36:10.7859786Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-13T10:36:10.7859874Z               "line": 167
2026-06-13T10:36:10.7859954Z             }
2026-06-13T10:36:10.7860034Z           ]
2026-06-13T10:36:10.7860115Z         },
2026-06-13T10:36:10.7860203Z         "unit": {
2026-06-13T10:36:10.7860293Z           "complete": false,
2026-06-13T10:36:10.7860381Z           "evidence": []
2026-06-13T10:36:10.7860467Z         }
2026-06-13T10:36:10.7860548Z       }
2026-06-13T10:36:10.7860628Z     },
2026-06-13T10:36:10.7860708Z     {
2026-06-13T10:36:10.7860798Z       "id": "REQ-INSTALL-4",
2026-06-13T10:36:10.7861418Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-13T10:36:10.7861510Z       "requiredStages": [
2026-06-13T10:36:10.7861600Z         "impl",
2026-06-13T10:36:10.7861681Z         "unit"
2026-06-13T10:36:10.7861762Z       ],
2026-06-13T10:36:10.7861849Z       "stages": {
2026-06-13T10:36:10.7861933Z         "doc": {
2026-06-13T10:36:10.7862019Z           "complete": false,
2026-06-13T10:36:10.7862106Z           "evidence": []
2026-06-13T10:36:10.7862173Z         },
2026-06-13T10:36:10.7862257Z         "impl": {
2026-06-13T10:36:10.7862348Z           "complete": true,
2026-06-13T10:36:10.7862436Z           "evidence": [
2026-06-13T10:36:10.7862517Z             {
2026-06-13T10:36:10.7862649Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.7862731Z               "line": 154
2026-06-13T10:36:10.7862836Z             },
2026-06-13T10:36:10.7862920Z             {
2026-06-13T10:36:10.7863038Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7863125Z               "line": 29
2026-06-13T10:36:10.7863205Z             },
2026-06-13T10:36:10.7863289Z             {
2026-06-13T10:36:10.7863404Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7863490Z               "line": 139
2026-06-13T10:36:10.7863561Z             },
2026-06-13T10:36:10.7863637Z             {
2026-06-13T10:36:10.7863753Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7864019Z               "line": 183
2026-06-13T10:36:10.7864105Z             },
2026-06-13T10:36:10.7864223Z             {
2026-06-13T10:36:10.7864377Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7864462Z               "line": 213
2026-06-13T10:36:10.7864534Z             },
2026-06-13T10:36:10.7864605Z             {
2026-06-13T10:36:10.7864721Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7864800Z               "line": 245
2026-06-13T10:36:10.7864881Z             },
2026-06-13T10:36:10.7864963Z             {
2026-06-13T10:36:10.7865064Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7865244Z               "line": 4389
2026-06-13T10:36:10.7865321Z             }
2026-06-13T10:36:10.7865407Z           ]
2026-06-13T10:36:10.7865477Z         },
2026-06-13T10:36:10.7865554Z         "int": {
2026-06-13T10:36:10.7865646Z           "complete": false,
2026-06-13T10:36:10.7865736Z           "evidence": []
2026-06-13T10:36:10.7865830Z         },
2026-06-13T10:36:10.7865905Z         "unit": {
2026-06-13T10:36:10.7865997Z           "complete": true,
2026-06-13T10:36:10.7866088Z           "evidence": [
2026-06-13T10:36:10.7866168Z             {
2026-06-13T10:36:10.7866302Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.7866383Z               "line": 335
2026-06-13T10:36:10.7866459Z             },
2026-06-13T10:36:10.7866535Z             {
2026-06-13T10:36:10.7866655Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7866736Z               "line": 567
2026-06-13T10:36:10.7866821Z             },
2026-06-13T10:36:10.7866898Z             {
2026-06-13T10:36:10.7867017Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7867107Z               "line": 608
2026-06-13T10:36:10.7867183Z             },
2026-06-13T10:36:10.7867276Z             {
2026-06-13T10:36:10.7867394Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7867475Z               "line": 628
2026-06-13T10:36:10.7867557Z             },
2026-06-13T10:36:10.7867637Z             {
2026-06-13T10:36:10.7867737Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7867818Z               "line": 6197
2026-06-13T10:36:10.7867896Z             }
2026-06-13T10:36:10.7867971Z           ]
2026-06-13T10:36:10.7868042Z         }
2026-06-13T10:36:10.7868127Z       }
2026-06-13T10:36:10.7868208Z     },
2026-06-13T10:36:10.7868284Z     {
2026-06-13T10:36:10.7868378Z       "id": "REQ-INSTALL-5",
2026-06-13T10:36:10.7868850Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-13T10:36:10.7869035Z       "requiredStages": [
2026-06-13T10:36:10.7869116Z         "impl",
2026-06-13T10:36:10.7869203Z         "int"
2026-06-13T10:36:10.7869279Z       ],
2026-06-13T10:36:10.7869374Z       "stages": {
2026-06-13T10:36:10.7869470Z         "doc": {
2026-06-13T10:36:10.7869555Z           "complete": false,
2026-06-13T10:36:10.7869646Z           "evidence": []
2026-06-13T10:36:10.7869717Z         },
2026-06-13T10:36:10.7869804Z         "impl": {
2026-06-13T10:36:10.7869889Z           "complete": true,
2026-06-13T10:36:10.7869984Z           "evidence": [
2026-06-13T10:36:10.7870070Z             {
2026-06-13T10:36:10.7870171Z               "path": "installer/install.ps1",
2026-06-13T10:36:10.7870265Z               "line": 5
2026-06-13T10:36:10.7870342Z             },
2026-06-13T10:36:10.7870429Z             {
2026-06-13T10:36:10.7870533Z               "path": "installer/install.sh",
2026-06-13T10:36:10.7870623Z               "line": 6
2026-06-13T10:36:10.7870710Z             }
2026-06-13T10:36:10.7870782Z           ]
2026-06-13T10:36:10.7870862Z         },
2026-06-13T10:36:10.7870942Z         "int": {
2026-06-13T10:36:10.7871037Z           "complete": true,
2026-06-13T10:36:10.7871118Z           "evidence": [
2026-06-13T10:36:10.7871311Z             {
2026-06-13T10:36:10.7871430Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-13T10:36:10.7871512Z               "line": 22
2026-06-13T10:36:10.7871593Z             }
2026-06-13T10:36:10.7871674Z           ]
2026-06-13T10:36:10.7871755Z         },
2026-06-13T10:36:10.7871831Z         "unit": {
2026-06-13T10:36:10.7871917Z           "complete": false,
2026-06-13T10:36:10.7872012Z           "evidence": []
2026-06-13T10:36:10.7872094Z         }
2026-06-13T10:36:10.7872175Z       }
2026-06-13T10:36:10.7872255Z     },
2026-06-13T10:36:10.7872336Z     {
2026-06-13T10:36:10.7872418Z       "id": "REQ-INSTALL-6",
2026-06-13T10:36:10.7873811Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-13T10:36:10.7873911Z       "requiredStages": [
2026-06-13T10:36:10.7873992Z         "impl",
2026-06-13T10:36:10.7874075Z         "unit"
2026-06-13T10:36:10.7874154Z       ],
2026-06-13T10:36:10.7874245Z       "stages": {
2026-06-13T10:36:10.7874327Z         "doc": {
2026-06-13T10:36:10.7874413Z           "complete": false,
2026-06-13T10:36:10.7874507Z           "evidence": []
2026-06-13T10:36:10.7874589Z         },
2026-06-13T10:36:10.7874675Z         "impl": {
2026-06-13T10:36:10.7874765Z           "complete": true,
2026-06-13T10:36:10.7874855Z           "evidence": [
2026-06-13T10:36:10.7874937Z             {
2026-06-13T10:36:10.7875070Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7875156Z               "line": 59
2026-06-13T10:36:10.7875238Z             },
2026-06-13T10:36:10.7875323Z             {
2026-06-13T10:36:10.7875437Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.7875533Z               "line": 559
2026-06-13T10:36:10.7875620Z             },
2026-06-13T10:36:10.7875703Z             {
2026-06-13T10:36:10.7875828Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7875915Z               "line": 191
2026-06-13T10:36:10.7876000Z             },
2026-06-13T10:36:10.7876076Z             {
2026-06-13T10:36:10.7876192Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7876282Z               "line": 276
2026-06-13T10:36:10.7876366Z             },
2026-06-13T10:36:10.7876447Z             {
2026-06-13T10:36:10.7876557Z               "path": "crates/spt/src/main.rs",
2026-06-13T10:36:10.7876653Z               "line": 40
2026-06-13T10:36:10.7876733Z             },
2026-06-13T10:36:10.7876824Z             {
2026-06-13T10:36:10.7876929Z               "path": "installer/install.sh",
2026-06-13T10:36:10.7877014Z               "line": 104
2026-06-13T10:36:10.7877100Z             }
2026-06-13T10:36:10.7877182Z           ]
2026-06-13T10:36:10.7877272Z         },
2026-06-13T10:36:10.7877352Z         "int": {
2026-06-13T10:36:10.7877444Z           "complete": false,
2026-06-13T10:36:10.7877540Z           "evidence": []
2026-06-13T10:36:10.7877620Z         },
2026-06-13T10:36:10.7877705Z         "unit": {
2026-06-13T10:36:10.7877797Z           "complete": true,
2026-06-13T10:36:10.7877887Z           "evidence": [
2026-06-13T10:36:10.7877968Z             {
2026-06-13T10:36:10.7878088Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T10:36:10.7878179Z               "line": 866
2026-06-13T10:36:10.7878263Z             }
2026-06-13T10:36:10.7878354Z           ]
2026-06-13T10:36:10.7878436Z         }
2026-06-13T10:36:10.7878526Z       }
2026-06-13T10:36:10.7878602Z     },
2026-06-13T10:36:10.7878687Z     {
2026-06-13T10:36:10.7878783Z       "id": "REQ-INSTALL-7",
2026-06-13T10:36:10.7880059Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-13T10:36:10.7880163Z       "requiredStages": [
2026-06-13T10:36:10.7880244Z         "impl"
2026-06-13T10:36:10.7880330Z       ],
2026-06-13T10:36:10.7880421Z       "stages": {
2026-06-13T10:36:10.7880506Z         "doc": {
2026-06-13T10:36:10.7880597Z           "complete": false,
2026-06-13T10:36:10.7880684Z           "evidence": []
2026-06-13T10:36:10.7880769Z         },
2026-06-13T10:36:10.7880854Z         "impl": {
2026-06-13T10:36:10.7881041Z           "complete": true,
2026-06-13T10:36:10.7881135Z           "evidence": [
2026-06-13T10:36:10.7881217Z             {
2026-06-13T10:36:10.7881323Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7881408Z               "line": 3047
2026-06-13T10:36:10.7881488Z             },
2026-06-13T10:36:10.7881587Z             {
2026-06-13T10:36:10.7881697Z               "path": "installer/install.ps1",
2026-06-13T10:36:10.7881790Z               "line": 157
2026-06-13T10:36:10.7881871Z             }
2026-06-13T10:36:10.7881952Z           ]
2026-06-13T10:36:10.7882030Z         },
2026-06-13T10:36:10.7882115Z         "int": {
2026-06-13T10:36:10.7882200Z           "complete": false,
2026-06-13T10:36:10.7882292Z           "evidence": []
2026-06-13T10:36:10.7882382Z         },
2026-06-13T10:36:10.7882462Z         "unit": {
2026-06-13T10:36:10.7882558Z           "complete": false,
2026-06-13T10:36:10.7882649Z           "evidence": []
2026-06-13T10:36:10.7882730Z         }
2026-06-13T10:36:10.7882824Z       }
2026-06-13T10:36:10.7882911Z     },
2026-06-13T10:36:10.7882993Z     {
2026-06-13T10:36:10.7883083Z       "id": "REQ-INSTALL-8",
2026-06-13T10:36:10.7884107Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-13T10:36:10.7884197Z       "requiredStages": [
2026-06-13T10:36:10.7884283Z         "impl"
2026-06-13T10:36:10.7884367Z       ],
2026-06-13T10:36:10.7884452Z       "stages": {
2026-06-13T10:36:10.7884538Z         "doc": {
2026-06-13T10:36:10.7884630Z           "complete": false,
2026-06-13T10:36:10.7884719Z           "evidence": []
2026-06-13T10:36:10.7884795Z         },
2026-06-13T10:36:10.7884887Z         "impl": {
2026-06-13T10:36:10.7884987Z           "complete": true,
2026-06-13T10:36:10.7885072Z           "evidence": [
2026-06-13T10:36:10.7885154Z             {
2026-06-13T10:36:10.7885254Z               "path": "installer/install.ps1",
2026-06-13T10:36:10.7885344Z               "line": 184
2026-06-13T10:36:10.7885420Z             },
2026-06-13T10:36:10.7885502Z             {
2026-06-13T10:36:10.7885611Z               "path": "installer/install.sh",
2026-06-13T10:36:10.7885696Z               "line": 121
2026-06-13T10:36:10.7885778Z             }
2026-06-13T10:36:10.7885855Z           ]
2026-06-13T10:36:10.7885950Z         },
2026-06-13T10:36:10.7886030Z         "int": {
2026-06-13T10:36:10.7886122Z           "complete": false,
2026-06-13T10:36:10.7886208Z           "evidence": []
2026-06-13T10:36:10.7886288Z         },
2026-06-13T10:36:10.7886364Z         "unit": {
2026-06-13T10:36:10.7886456Z           "complete": false,
2026-06-13T10:36:10.7886546Z           "evidence": []
2026-06-13T10:36:10.7886622Z         }
2026-06-13T10:36:10.7886708Z       }
2026-06-13T10:36:10.7886790Z     },
2026-06-13T10:36:10.7886870Z     {
2026-06-13T10:36:10.7886969Z       "id": "REQ-MANIFEST-1",
2026-06-13T10:36:10.7887151Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-13T10:36:10.7887245Z       "requiredStages": [
2026-06-13T10:36:10.7887398Z         "doc",
2026-06-13T10:36:10.7887475Z         "impl",
2026-06-13T10:36:10.7887551Z         "unit"
2026-06-13T10:36:10.7887631Z       ],
2026-06-13T10:36:10.7887709Z       "stages": {
2026-06-13T10:36:10.7887790Z         "doc": {
2026-06-13T10:36:10.7887885Z           "complete": true,
2026-06-13T10:36:10.7887965Z           "evidence": [
2026-06-13T10:36:10.7888052Z             {
2026-06-13T10:36:10.7888152Z               "path": "docs/MANIFEST.md",
2026-06-13T10:36:10.7888232Z               "line": 19
2026-06-13T10:36:10.7888318Z             }
2026-06-13T10:36:10.7888396Z           ]
2026-06-13T10:36:10.7888480Z         },
2026-06-13T10:36:10.7888643Z         "impl": {
2026-06-13T10:36:10.7888725Z           "complete": true,
2026-06-13T10:36:10.7888814Z           "evidence": [
2026-06-13T10:36:10.7888895Z             {
2026-06-13T10:36:10.7889101Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7889181Z               "line": 18
2026-06-13T10:36:10.7889275Z             }
2026-06-13T10:36:10.7889352Z           ]
2026-06-13T10:36:10.7889436Z         },
2026-06-13T10:36:10.7889517Z         "int": {
2026-06-13T10:36:10.7889602Z           "complete": false,
2026-06-13T10:36:10.7889684Z           "evidence": []
2026-06-13T10:36:10.7889765Z         },
2026-06-13T10:36:10.7889845Z         "unit": {
2026-06-13T10:36:10.7889922Z           "complete": true,
2026-06-13T10:36:10.7890008Z           "evidence": [
2026-06-13T10:36:10.7890094Z             {
2026-06-13T10:36:10.7890212Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7890295Z               "line": 820
2026-06-13T10:36:10.7890375Z             },
2026-06-13T10:36:10.7890470Z             {
2026-06-13T10:36:10.7890580Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7890661Z               "line": 934
2026-06-13T10:36:10.7890747Z             },
2026-06-13T10:36:10.7890832Z             {
2026-06-13T10:36:10.7890948Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7891033Z               "line": 946
2026-06-13T10:36:10.7891114Z             },
2026-06-13T10:36:10.7891195Z             {
2026-06-13T10:36:10.7891319Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7891400Z               "line": 957
2026-06-13T10:36:10.7891476Z             },
2026-06-13T10:36:10.7891563Z             {
2026-06-13T10:36:10.7891672Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7891763Z               "line": 974
2026-06-13T10:36:10.7891835Z             },
2026-06-13T10:36:10.7891917Z             {
2026-06-13T10:36:10.7892039Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7892123Z               "line": 988
2026-06-13T10:36:10.7892205Z             },
2026-06-13T10:36:10.7892285Z             {
2026-06-13T10:36:10.7892403Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7892489Z               "line": 1053
2026-06-13T10:36:10.7892575Z             },
2026-06-13T10:36:10.7892656Z             {
2026-06-13T10:36:10.7892769Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7892857Z               "line": 1068
2026-06-13T10:36:10.7892937Z             },
2026-06-13T10:36:10.7893018Z             {
2026-06-13T10:36:10.7893132Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7893219Z               "line": 1083
2026-06-13T10:36:10.7893300Z             },
2026-06-13T10:36:10.7893385Z             {
2026-06-13T10:36:10.7893491Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7893571Z               "line": 1094
2026-06-13T10:36:10.7893657Z             }
2026-06-13T10:36:10.7893738Z           ]
2026-06-13T10:36:10.7893820Z         }
2026-06-13T10:36:10.7893910Z       }
2026-06-13T10:36:10.7893986Z     },
2026-06-13T10:36:10.7894067Z     {
2026-06-13T10:36:10.7894144Z       "id": "REQ-MANIFEST-2",
2026-06-13T10:36:10.7894738Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-13T10:36:10.7894838Z       "requiredStages": [
2026-06-13T10:36:10.7894927Z         "doc",
2026-06-13T10:36:10.7895012Z         "impl",
2026-06-13T10:36:10.7895084Z         "unit"
2026-06-13T10:36:10.7895170Z       ],
2026-06-13T10:36:10.7895256Z       "stages": {
2026-06-13T10:36:10.7895336Z         "doc": {
2026-06-13T10:36:10.7895428Z           "complete": true,
2026-06-13T10:36:10.7895513Z           "evidence": [
2026-06-13T10:36:10.7895594Z             {
2026-06-13T10:36:10.7895684Z               "path": "CONTEXT.md",
2026-06-13T10:36:10.7895876Z               "line": 75
2026-06-13T10:36:10.7895961Z             }
2026-06-13T10:36:10.7896043Z           ]
2026-06-13T10:36:10.7896129Z         },
2026-06-13T10:36:10.7898869Z         "impl": {
2026-06-13T10:36:10.7899074Z           "complete": true,
2026-06-13T10:36:10.7899169Z           "evidence": [
2026-06-13T10:36:10.7899256Z             {
2026-06-13T10:36:10.7899383Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7899474Z               "line": 66
2026-06-13T10:36:10.7899552Z             },
2026-06-13T10:36:10.7899628Z             {
2026-06-13T10:36:10.7899760Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7899845Z               "line": 15
2026-06-13T10:36:10.7899927Z             },
2026-06-13T10:36:10.7899997Z             {
2026-06-13T10:36:10.7900119Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7900205Z               "line": 65
2026-06-13T10:36:10.7900287Z             },
2026-06-13T10:36:10.7900377Z             {
2026-06-13T10:36:10.7900492Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7900578Z               "line": 83
2026-06-13T10:36:10.7900659Z             },
2026-06-13T10:36:10.7900734Z             {
2026-06-13T10:36:10.7900855Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7900935Z               "line": 165
2026-06-13T10:36:10.7901011Z             },
2026-06-13T10:36:10.7901087Z             {
2026-06-13T10:36:10.7901203Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7901283Z               "line": 326
2026-06-13T10:36:10.7901368Z             },
2026-06-13T10:36:10.7901450Z             {
2026-06-13T10:36:10.7901564Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7901645Z               "line": 352
2026-06-13T10:36:10.7901727Z             },
2026-06-13T10:36:10.7901804Z             {
2026-06-13T10:36:10.7901922Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7902027Z               "line": 430
2026-06-13T10:36:10.7902104Z             },
2026-06-13T10:36:10.7902180Z             {
2026-06-13T10:36:10.7902289Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7902375Z               "line": 455
2026-06-13T10:36:10.7902458Z             },
2026-06-13T10:36:10.7902542Z             {
2026-06-13T10:36:10.7902655Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7902736Z               "line": 478
2026-06-13T10:36:10.7902817Z             },
2026-06-13T10:36:10.7902892Z             {
2026-06-13T10:36:10.7903000Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7903087Z               "line": 493
2026-06-13T10:36:10.7903159Z             },
2026-06-13T10:36:10.7903244Z             {
2026-06-13T10:36:10.7903349Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7903440Z               "line": 4539
2026-06-13T10:36:10.7903531Z             },
2026-06-13T10:36:10.7903611Z             {
2026-06-13T10:36:10.7903717Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7903807Z               "line": 4553
2026-06-13T10:36:10.7903883Z             },
2026-06-13T10:36:10.7903968Z             {
2026-06-13T10:36:10.7904061Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7904298Z               "line": 4587
2026-06-13T10:36:10.7904385Z             }
2026-06-13T10:36:10.7904470Z           ]
2026-06-13T10:36:10.7904551Z         },
2026-06-13T10:36:10.7904632Z         "int": {
2026-06-13T10:36:10.7904728Z           "complete": false,
2026-06-13T10:36:10.7904817Z           "evidence": []
2026-06-13T10:36:10.7904894Z         },
2026-06-13T10:36:10.7904976Z         "unit": {
2026-06-13T10:36:10.7905071Z           "complete": true,
2026-06-13T10:36:10.7905161Z           "evidence": [
2026-06-13T10:36:10.7905245Z             {
2026-06-13T10:36:10.7905369Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.7905558Z               "line": 920
2026-06-13T10:36:10.7905639Z             },
2026-06-13T10:36:10.7905721Z             {
2026-06-13T10:36:10.7905844Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7905934Z               "line": 193
2026-06-13T10:36:10.7906012Z             },
2026-06-13T10:36:10.7906103Z             {
2026-06-13T10:36:10.7906216Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7906307Z               "line": 254
2026-06-13T10:36:10.7906393Z             },
2026-06-13T10:36:10.7906478Z             {
2026-06-13T10:36:10.7906594Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7906679Z               "line": 295
2026-06-13T10:36:10.7906765Z             },
2026-06-13T10:36:10.7906845Z             {
2026-06-13T10:36:10.7906966Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7907051Z               "line": 307
2026-06-13T10:36:10.7907132Z             },
2026-06-13T10:36:10.7907233Z             {
2026-06-13T10:36:10.7907346Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7907437Z               "line": 318
2026-06-13T10:36:10.7907514Z             },
2026-06-13T10:36:10.7907595Z             {
2026-06-13T10:36:10.7907708Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7907809Z               "line": 327
2026-06-13T10:36:10.7907891Z             },
2026-06-13T10:36:10.7907972Z             {
2026-06-13T10:36:10.7908094Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7908180Z               "line": 343
2026-06-13T10:36:10.7908262Z             },
2026-06-13T10:36:10.7908343Z             {
2026-06-13T10:36:10.7908456Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7908542Z               "line": 400
2026-06-13T10:36:10.7908623Z             },
2026-06-13T10:36:10.7908704Z             {
2026-06-13T10:36:10.7908819Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7908915Z               "line": 681
2026-06-13T10:36:10.7909090Z             },
2026-06-13T10:36:10.7909167Z             {
2026-06-13T10:36:10.7909286Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7909376Z               "line": 705
2026-06-13T10:36:10.7909463Z             },
2026-06-13T10:36:10.7909544Z             {
2026-06-13T10:36:10.7909663Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7909749Z               "line": 731
2026-06-13T10:36:10.7909831Z             },
2026-06-13T10:36:10.7909915Z             {
2026-06-13T10:36:10.7910025Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7910112Z               "line": 750
2026-06-13T10:36:10.7910193Z             },
2026-06-13T10:36:10.7910277Z             {
2026-06-13T10:36:10.7910400Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7910487Z               "line": 781
2026-06-13T10:36:10.7910575Z             },
2026-06-13T10:36:10.7910656Z             {
2026-06-13T10:36:10.7910775Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.7910862Z               "line": 309
2026-06-13T10:36:10.7910947Z             },
2026-06-13T10:36:10.7911027Z             {
2026-06-13T10:36:10.7911238Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T10:36:10.7911328Z               "line": 477
2026-06-13T10:36:10.7911410Z             },
2026-06-13T10:36:10.7911490Z             {
2026-06-13T10:36:10.7911590Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7911676Z               "line": 6261
2026-06-13T10:36:10.7911763Z             },
2026-06-13T10:36:10.7911843Z             {
2026-06-13T10:36:10.7911943Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7912030Z               "line": 7140
2026-06-13T10:36:10.7912115Z             }
2026-06-13T10:36:10.7912192Z           ]
2026-06-13T10:36:10.7912282Z         }
2026-06-13T10:36:10.7912359Z       }
2026-06-13T10:36:10.7912544Z     },
2026-06-13T10:36:10.7912630Z     {
2026-06-13T10:36:10.7912727Z       "id": "REQ-MANIFEST-3",
2026-06-13T10:36:10.7913387Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-13T10:36:10.7913485Z       "requiredStages": [
2026-06-13T10:36:10.7913565Z         "doc",
2026-06-13T10:36:10.7913652Z         "impl",
2026-06-13T10:36:10.7913724Z         "unit"
2026-06-13T10:36:10.7913809Z       ],
2026-06-13T10:36:10.7913894Z       "stages": {
2026-06-13T10:36:10.7913977Z         "doc": {
2026-06-13T10:36:10.7914072Z           "complete": true,
2026-06-13T10:36:10.7914157Z           "evidence": [
2026-06-13T10:36:10.7914243Z             {
2026-06-13T10:36:10.7914329Z               "path": "CONTEXT.md",
2026-06-13T10:36:10.7914415Z               "line": 81
2026-06-13T10:36:10.7914500Z             }
2026-06-13T10:36:10.7914586Z           ]
2026-06-13T10:36:10.7914663Z         },
2026-06-13T10:36:10.7914739Z         "impl": {
2026-06-13T10:36:10.7914830Z           "complete": true,
2026-06-13T10:36:10.7914906Z           "evidence": [
2026-06-13T10:36:10.7914987Z             {
2026-06-13T10:36:10.7915106Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7915192Z               "line": 76
2026-06-13T10:36:10.7915270Z             },
2026-06-13T10:36:10.7915345Z             {
2026-06-13T10:36:10.7915464Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7915541Z               "line": 101
2026-06-13T10:36:10.7915617Z             },
2026-06-13T10:36:10.7915697Z             {
2026-06-13T10:36:10.7915815Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7915897Z               "line": 114
2026-06-13T10:36:10.7915977Z             },
2026-06-13T10:36:10.7916057Z             {
2026-06-13T10:36:10.7916166Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7916252Z               "line": 376
2026-06-13T10:36:10.7916324Z             },
2026-06-13T10:36:10.7916395Z             {
2026-06-13T10:36:10.7916514Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7916596Z               "line": 392
2026-06-13T10:36:10.7916672Z             },
2026-06-13T10:36:10.7916756Z             {
2026-06-13T10:36:10.7916854Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7916944Z               "line": 4600
2026-06-13T10:36:10.7917020Z             },
2026-06-13T10:36:10.7917100Z             {
2026-06-13T10:36:10.7917201Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7917277Z               "line": 4622
2026-06-13T10:36:10.7917358Z             }
2026-06-13T10:36:10.7917439Z           ]
2026-06-13T10:36:10.7917511Z         },
2026-06-13T10:36:10.7917597Z         "int": {
2026-06-13T10:36:10.7917682Z           "complete": false,
2026-06-13T10:36:10.7917764Z           "evidence": []
2026-06-13T10:36:10.7917845Z         },
2026-06-13T10:36:10.7917926Z         "unit": {
2026-06-13T10:36:10.7918016Z           "complete": true,
2026-06-13T10:36:10.7918093Z           "evidence": [
2026-06-13T10:36:10.7918179Z             {
2026-06-13T10:36:10.7918297Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7918447Z               "line": 353
2026-06-13T10:36:10.7918527Z             },
2026-06-13T10:36:10.7918602Z             {
2026-06-13T10:36:10.7918716Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T10:36:10.7918797Z               "line": 385
2026-06-13T10:36:10.7918889Z             },
2026-06-13T10:36:10.7919049Z             {
2026-06-13T10:36:10.7919165Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T10:36:10.7919246Z               "line": 805
2026-06-13T10:36:10.7919326Z             },
2026-06-13T10:36:10.7919408Z             {
2026-06-13T10:36:10.7919508Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7919703Z               "line": 6316
2026-06-13T10:36:10.7919785Z             }
2026-06-13T10:36:10.7919855Z           ]
2026-06-13T10:36:10.7919941Z         }
2026-06-13T10:36:10.7920018Z       }
2026-06-13T10:36:10.7920100Z     },
2026-06-13T10:36:10.7920170Z     {
2026-06-13T10:36:10.7920260Z       "id": "REQ-MANIFEST-4",
2026-06-13T10:36:10.7920960Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-13T10:36:10.7921051Z       "requiredStages": [
2026-06-13T10:36:10.7921136Z         "doc",
2026-06-13T10:36:10.7921221Z         "impl",
2026-06-13T10:36:10.7921307Z         "unit"
2026-06-13T10:36:10.7921388Z       ],
2026-06-13T10:36:10.7921474Z       "stages": {
2026-06-13T10:36:10.7921559Z         "doc": {
2026-06-13T10:36:10.7921641Z           "complete": true,
2026-06-13T10:36:10.7921727Z           "evidence": [
2026-06-13T10:36:10.7921812Z             {
2026-06-13T10:36:10.7921916Z               "path": "CONTEXT.md",
2026-06-13T10:36:10.7922004Z               "line": 86
2026-06-13T10:36:10.7922079Z             }
2026-06-13T10:36:10.7922155Z           ]
2026-06-13T10:36:10.7922236Z         },
2026-06-13T10:36:10.7922323Z         "impl": {
2026-06-13T10:36:10.7922413Z           "complete": true,
2026-06-13T10:36:10.7922493Z           "evidence": [
2026-06-13T10:36:10.7922580Z             {
2026-06-13T10:36:10.7922727Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7922832Z               "line": 84
2026-06-13T10:36:10.7922910Z             },
2026-06-13T10:36:10.7922995Z             {
2026-06-13T10:36:10.7923132Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7923220Z               "line": 148
2026-06-13T10:36:10.7923306Z             },
2026-06-13T10:36:10.7923385Z             {
2026-06-13T10:36:10.7923500Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7923592Z               "line": 83
2026-06-13T10:36:10.7923676Z             },
2026-06-13T10:36:10.7923761Z             {
2026-06-13T10:36:10.7923880Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.7923966Z               "line": 437
2026-06-13T10:36:10.7924045Z             },
2026-06-13T10:36:10.7924139Z             {
2026-06-13T10:36:10.7924284Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.7924388Z               "line": 462
2026-06-13T10:36:10.7924464Z             }
2026-06-13T10:36:10.7924552Z           ]
2026-06-13T10:36:10.7924622Z         },
2026-06-13T10:36:10.7924707Z         "int": {
2026-06-13T10:36:10.7924793Z           "complete": false,
2026-06-13T10:36:10.7924885Z           "evidence": []
2026-06-13T10:36:10.7924966Z         },
2026-06-13T10:36:10.7925051Z         "unit": {
2026-06-13T10:36:10.7925137Z           "complete": true,
2026-06-13T10:36:10.7925223Z           "evidence": [
2026-06-13T10:36:10.7925309Z             {
2026-06-13T10:36:10.7925423Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7925510Z               "line": 1003
2026-06-13T10:36:10.7925599Z             },
2026-06-13T10:36:10.7925675Z             {
2026-06-13T10:36:10.7925791Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.7925981Z               "line": 1036
2026-06-13T10:36:10.7926067Z             },
2026-06-13T10:36:10.7926154Z             {
2026-06-13T10:36:10.7926257Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.7926351Z               "line": 739
2026-06-13T10:36:10.7926423Z             }
2026-06-13T10:36:10.7926509Z           ]
2026-06-13T10:36:10.7926593Z         }
2026-06-13T10:36:10.7926692Z       }
2026-06-13T10:36:10.7926774Z     },
2026-06-13T10:36:10.7926851Z     {
2026-06-13T10:36:10.7926950Z       "id": "REQ-MESH-1",
2026-06-13T10:36:10.7929087Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-13T10:36:10.7929304Z       "requiredStages": [
2026-06-13T10:36:10.7929392Z         "impl",
2026-06-13T10:36:10.7929491Z         "unit",
2026-06-13T10:36:10.7929571Z         "int"
2026-06-13T10:36:10.7929653Z       ],
2026-06-13T10:36:10.7929768Z       "stages": {
2026-06-13T10:36:10.7929853Z         "doc": {
2026-06-13T10:36:10.7929949Z           "complete": false,
2026-06-13T10:36:10.7930044Z           "evidence": []
2026-06-13T10:36:10.7930130Z         },
2026-06-13T10:36:10.7930210Z         "impl": {
2026-06-13T10:36:10.7930293Z           "complete": true,
2026-06-13T10:36:10.7930383Z           "evidence": [
2026-06-13T10:36:10.7930468Z             {
2026-06-13T10:36:10.7930603Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7930684Z               "line": 680
2026-06-13T10:36:10.7930774Z             },
2026-06-13T10:36:10.7930854Z             {
2026-06-13T10:36:10.7930984Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7931073Z               "line": 38
2026-06-13T10:36:10.7931150Z             },
2026-06-13T10:36:10.7931232Z             {
2026-06-13T10:36:10.7931355Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7931445Z               "line": 161
2026-06-13T10:36:10.7931525Z             },
2026-06-13T10:36:10.7931611Z             {
2026-06-13T10:36:10.7931738Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7931828Z               "line": 206
2026-06-13T10:36:10.7931919Z             },
2026-06-13T10:36:10.7931997Z             {
2026-06-13T10:36:10.7932119Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.7932206Z               "line": 57
2026-06-13T10:36:10.7932296Z             },
2026-06-13T10:36:10.7932377Z             {
2026-06-13T10:36:10.7932501Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T10:36:10.7932592Z               "line": 24
2026-06-13T10:36:10.7932678Z             },
2026-06-13T10:36:10.7932748Z             {
2026-06-13T10:36:10.7932874Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T10:36:10.7932968Z               "line": 142
2026-06-13T10:36:10.7933063Z             },
2026-06-13T10:36:10.7933140Z             {
2026-06-13T10:36:10.7933273Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T10:36:10.7933354Z               "line": 162
2026-06-13T10:36:10.7933450Z             }
2026-06-13T10:36:10.7933532Z           ]
2026-06-13T10:36:10.7933611Z         },
2026-06-13T10:36:10.7933702Z         "int": {
2026-06-13T10:36:10.7933790Z           "complete": true,
2026-06-13T10:36:10.7933885Z           "evidence": [
2026-06-13T10:36:10.7933954Z             {
2026-06-13T10:36:10.7934199Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-13T10:36:10.7934288Z               "line": 67
2026-06-13T10:36:10.7934378Z             },
2026-06-13T10:36:10.7934459Z             {
2026-06-13T10:36:10.7934586Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-13T10:36:10.7934681Z               "line": 93
2026-06-13T10:36:10.7934767Z             },
2026-06-13T10:36:10.7934849Z             {
2026-06-13T10:36:10.7934972Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-13T10:36:10.7935068Z               "line": 117
2026-06-13T10:36:10.7935163Z             },
2026-06-13T10:36:10.7935320Z             {
2026-06-13T10:36:10.7935450Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-13T10:36:10.7935536Z               "line": 134
2026-06-13T10:36:10.7935625Z             }
2026-06-13T10:36:10.7935712Z           ]
2026-06-13T10:36:10.7935797Z         },
2026-06-13T10:36:10.7935883Z         "unit": {
2026-06-13T10:36:10.7935983Z           "complete": true,
2026-06-13T10:36:10.7936075Z           "evidence": [
2026-06-13T10:36:10.7936154Z             {
2026-06-13T10:36:10.7936279Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.7936370Z               "line": 427
2026-06-13T10:36:10.7936451Z             },
2026-06-13T10:36:10.7936536Z             {
2026-06-13T10:36:10.7936661Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T10:36:10.7936756Z               "line": 376
2026-06-13T10:36:10.7936836Z             },
2026-06-13T10:36:10.7936921Z             {
2026-06-13T10:36:10.7937050Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T10:36:10.7937148Z               "line": 412
2026-06-13T10:36:10.7937233Z             },
2026-06-13T10:36:10.7937315Z             {
2026-06-13T10:36:10.7937440Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T10:36:10.7937529Z               "line": 427
2026-06-13T10:36:10.7937620Z             },
2026-06-13T10:36:10.7937711Z             {
2026-06-13T10:36:10.7937839Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T10:36:10.7937930Z               "line": 438
2026-06-13T10:36:10.7938011Z             },
2026-06-13T10:36:10.7938097Z             {
2026-06-13T10:36:10.7938220Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T10:36:10.7938312Z               "line": 449
2026-06-13T10:36:10.7938402Z             },
2026-06-13T10:36:10.7938483Z             {
2026-06-13T10:36:10.7938608Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T10:36:10.7938693Z               "line": 460
2026-06-13T10:36:10.7938793Z             },
2026-06-13T10:36:10.7938874Z             {
2026-06-13T10:36:10.7939093Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T10:36:10.7939184Z               "line": 496
2026-06-13T10:36:10.7939280Z             },
2026-06-13T10:36:10.7939365Z             {
2026-06-13T10:36:10.7939499Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T10:36:10.7939591Z               "line": 519
2026-06-13T10:36:10.7939680Z             },
2026-06-13T10:36:10.7939764Z             {
2026-06-13T10:36:10.7939889Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T10:36:10.7939975Z               "line": 546
2026-06-13T10:36:10.7940065Z             }
2026-06-13T10:36:10.7940146Z           ]
2026-06-13T10:36:10.7940232Z         }
2026-06-13T10:36:10.7940318Z       }
2026-06-13T10:36:10.7940399Z     },
2026-06-13T10:36:10.7940485Z     {
2026-06-13T10:36:10.7940576Z       "id": "REQ-MESH-2",
2026-06-13T10:36:10.7943261Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-13T10:36:10.7943366Z       "requiredStages": [
2026-06-13T10:36:10.7943443Z         "impl",
2026-06-13T10:36:10.7943533Z         "unit",
2026-06-13T10:36:10.7943710Z         "int"
2026-06-13T10:36:10.7943796Z       ],
2026-06-13T10:36:10.7943877Z       "stages": {
2026-06-13T10:36:10.7943957Z         "doc": {
2026-06-13T10:36:10.7944054Z           "complete": false,
2026-06-13T10:36:10.7944139Z           "evidence": []
2026-06-13T10:36:10.7944225Z         },
2026-06-13T10:36:10.7944306Z         "impl": {
2026-06-13T10:36:10.7944407Z           "complete": true,
2026-06-13T10:36:10.7944491Z           "evidence": [
2026-06-13T10:36:10.7944568Z             {
2026-06-13T10:36:10.7944679Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.7944769Z               "line": 569
2026-06-13T10:36:10.7944853Z             },
2026-06-13T10:36:10.7944933Z             {
2026-06-13T10:36:10.7945063Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.7945151Z               "line": 118
2026-06-13T10:36:10.7945236Z             },
2026-06-13T10:36:10.7945313Z             {
2026-06-13T10:36:10.7945428Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.7945517Z               "line": 347
2026-06-13T10:36:10.7945598Z             },
2026-06-13T10:36:10.7945676Z             {
2026-06-13T10:36:10.7945800Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.7945880Z               "line": 389
2026-06-13T10:36:10.7945977Z             },
2026-06-13T10:36:10.7946052Z             {
2026-06-13T10:36:10.7946175Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.7946262Z               "line": 403
2026-06-13T10:36:10.7946339Z             },
2026-06-13T10:36:10.7946429Z             {
2026-06-13T10:36:10.7946543Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.7946635Z               "line": 492
2026-06-13T10:36:10.7946710Z             },
2026-06-13T10:36:10.7946795Z             {
2026-06-13T10:36:10.7946911Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.7946992Z               "line": 507
2026-06-13T10:36:10.7947086Z             },
2026-06-13T10:36:10.7947168Z             {
2026-06-13T10:36:10.7947284Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.7947368Z               "line": 534
2026-06-13T10:36:10.7947448Z             },
2026-06-13T10:36:10.7947529Z             {
2026-06-13T10:36:10.7947657Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7947751Z               "line": 207
2026-06-13T10:36:10.7947826Z             },
2026-06-13T10:36:10.7947909Z             {
2026-06-13T10:36:10.7948032Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7948118Z               "line": 755
2026-06-13T10:36:10.7948194Z             },
2026-06-13T10:36:10.7948271Z             {
2026-06-13T10:36:10.7948385Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7948461Z               "line": 816
2026-06-13T10:36:10.7948553Z             },
2026-06-13T10:36:10.7948629Z             {
2026-06-13T10:36:10.7948752Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7948844Z               "line": 869
2026-06-13T10:36:10.7948924Z             },
2026-06-13T10:36:10.7949105Z             {
2026-06-13T10:36:10.7949225Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7949419Z               "line": 891
2026-06-13T10:36:10.7949512Z             },
2026-06-13T10:36:10.7949586Z             {
2026-06-13T10:36:10.7949711Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7949793Z               "line": 122
2026-06-13T10:36:10.7949873Z             },
2026-06-13T10:36:10.7949939Z             {
2026-06-13T10:36:10.7950059Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7950146Z               "line": 44
2026-06-13T10:36:10.7950226Z             },
2026-06-13T10:36:10.7950306Z             {
2026-06-13T10:36:10.7950420Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7950611Z               "line": 184
2026-06-13T10:36:10.7950691Z             },
2026-06-13T10:36:10.7950773Z             {
2026-06-13T10:36:10.7950888Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7950968Z               "line": 211
2026-06-13T10:36:10.7951045Z             },
2026-06-13T10:36:10.7951117Z             {
2026-06-13T10:36:10.7951245Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7951325Z               "line": 251
2026-06-13T10:36:10.7951408Z             },
2026-06-13T10:36:10.7951493Z             {
2026-06-13T10:36:10.7951607Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7951703Z               "line": 275
2026-06-13T10:36:10.7951784Z             },
2026-06-13T10:36:10.7951879Z             {
2026-06-13T10:36:10.7951989Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7952080Z               "line": 289
2026-06-13T10:36:10.7952170Z             },
2026-06-13T10:36:10.7952256Z             {
2026-06-13T10:36:10.7952372Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7952466Z               "line": 300
2026-06-13T10:36:10.7952550Z             },
2026-06-13T10:36:10.7952636Z             {
2026-06-13T10:36:10.7952755Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7952858Z               "line": 313
2026-06-13T10:36:10.7952939Z             }
2026-06-13T10:36:10.7953025Z           ]
2026-06-13T10:36:10.7953102Z         },
2026-06-13T10:36:10.7953196Z         "int": {
2026-06-13T10:36:10.7953292Z           "complete": true,
2026-06-13T10:36:10.7953384Z           "evidence": [
2026-06-13T10:36:10.7953473Z             {
2026-06-13T10:36:10.7953602Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-13T10:36:10.7953698Z               "line": 116
2026-06-13T10:36:10.7953779Z             },
2026-06-13T10:36:10.7953863Z             {
2026-06-13T10:36:10.7953989Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-13T10:36:10.7954088Z               "line": 181
2026-06-13T10:36:10.7954178Z             }
2026-06-13T10:36:10.7954260Z           ]
2026-06-13T10:36:10.7954347Z         },
2026-06-13T10:36:10.7954427Z         "unit": {
2026-06-13T10:36:10.7954522Z           "complete": true,
2026-06-13T10:36:10.7954609Z           "evidence": [
2026-06-13T10:36:10.7954704Z             {
2026-06-13T10:36:10.7954827Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7954915Z               "line": 999
2026-06-13T10:36:10.7955000Z             },
2026-06-13T10:36:10.7955084Z             {
2026-06-13T10:36:10.7955210Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7955296Z               "line": 1016
2026-06-13T10:36:10.7955385Z             },
2026-06-13T10:36:10.7955470Z             {
2026-06-13T10:36:10.7955589Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7955683Z               "line": 1024
2026-06-13T10:36:10.7955763Z             },
2026-06-13T10:36:10.7955854Z             {
2026-06-13T10:36:10.7955969Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7956064Z               "line": 1048
2026-06-13T10:36:10.7956154Z             },
2026-06-13T10:36:10.7956236Z             {
2026-06-13T10:36:10.7956445Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.7956532Z               "line": 1499
2026-06-13T10:36:10.7956622Z             },
2026-06-13T10:36:10.7956707Z             {
2026-06-13T10:36:10.7956822Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7956913Z               "line": 347
2026-06-13T10:36:10.7956994Z             },
2026-06-13T10:36:10.7957079Z             {
2026-06-13T10:36:10.7957195Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7957289Z               "line": 370
2026-06-13T10:36:10.7957375Z             },
2026-06-13T10:36:10.7957457Z             {
2026-06-13T10:36:10.7957576Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7957752Z               "line": 407
2026-06-13T10:36:10.7957844Z             },
2026-06-13T10:36:10.7957923Z             {
2026-06-13T10:36:10.7958041Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7958137Z               "line": 431
2026-06-13T10:36:10.7958222Z             },
2026-06-13T10:36:10.7958316Z             {
2026-06-13T10:36:10.7958426Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7958521Z               "line": 483
2026-06-13T10:36:10.7958602Z             },
2026-06-13T10:36:10.7958687Z             {
2026-06-13T10:36:10.7958799Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7958889Z               "line": 499
2026-06-13T10:36:10.7959050Z             },
2026-06-13T10:36:10.7959132Z             {
2026-06-13T10:36:10.7959250Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7959345Z               "line": 514
2026-06-13T10:36:10.7959437Z             },
2026-06-13T10:36:10.7959527Z             {
2026-06-13T10:36:10.7959641Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7959738Z               "line": 531
2026-06-13T10:36:10.7959823Z             }
2026-06-13T10:36:10.7959913Z           ]
2026-06-13T10:36:10.7959994Z         }
2026-06-13T10:36:10.7960086Z       }
2026-06-13T10:36:10.7960180Z     },
2026-06-13T10:36:10.7960266Z     {
2026-06-13T10:36:10.7960358Z       "id": "REQ-MESH-3",
2026-06-13T10:36:10.7962025Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-13T10:36:10.7962125Z       "requiredStages": [
2026-06-13T10:36:10.7962215Z         "impl",
2026-06-13T10:36:10.7962298Z         "unit",
2026-06-13T10:36:10.7962382Z         "int"
2026-06-13T10:36:10.7962463Z       ],
2026-06-13T10:36:10.7962549Z       "stages": {
2026-06-13T10:36:10.7962650Z         "doc": {
2026-06-13T10:36:10.7962744Z           "complete": false,
2026-06-13T10:36:10.7962830Z           "evidence": []
2026-06-13T10:36:10.7962912Z         },
2026-06-13T10:36:10.7962998Z         "impl": {
2026-06-13T10:36:10.7963083Z           "complete": true,
2026-06-13T10:36:10.7963177Z           "evidence": [
2026-06-13T10:36:10.7963268Z             {
2026-06-13T10:36:10.7963390Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7963480Z               "line": 641
2026-06-13T10:36:10.7963561Z             }
2026-06-13T10:36:10.7963643Z           ]
2026-06-13T10:36:10.7963714Z         },
2026-06-13T10:36:10.7963804Z         "int": {
2026-06-13T10:36:10.7963900Z           "complete": true,
2026-06-13T10:36:10.7963981Z           "evidence": [
2026-06-13T10:36:10.7964057Z             {
2026-06-13T10:36:10.7964176Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-13T10:36:10.7964273Z               "line": 373
2026-06-13T10:36:10.7964443Z             },
2026-06-13T10:36:10.7964530Z             {
2026-06-13T10:36:10.7964653Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-13T10:36:10.7964734Z               "line": 436
2026-06-13T10:36:10.7964811Z             }
2026-06-13T10:36:10.7964892Z           ]
2026-06-13T10:36:10.7964973Z         },
2026-06-13T10:36:10.7965054Z         "unit": {
2026-06-13T10:36:10.7965155Z           "complete": true,
2026-06-13T10:36:10.7965236Z           "evidence": [
2026-06-13T10:36:10.7965320Z             {
2026-06-13T10:36:10.7965440Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.7965527Z               "line": 910
2026-06-13T10:36:10.7965707Z             }
2026-06-13T10:36:10.7965789Z           ]
2026-06-13T10:36:10.7965875Z         }
2026-06-13T10:36:10.7965964Z       }
2026-06-13T10:36:10.7966035Z     },
2026-06-13T10:36:10.7966116Z     {
2026-06-13T10:36:10.7966201Z       "id": "REQ-MESH-4",
2026-06-13T10:36:10.7968356Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-13T10:36:10.7968456Z       "requiredStages": [
2026-06-13T10:36:10.7968535Z         "impl",
2026-06-13T10:36:10.7968620Z         "unit",
2026-06-13T10:36:10.7968706Z         "int"
2026-06-13T10:36:10.7968787Z       ],
2026-06-13T10:36:10.7968871Z       "stages": {
2026-06-13T10:36:10.7969029Z         "doc": {
2026-06-13T10:36:10.7969134Z           "complete": false,
2026-06-13T10:36:10.7969224Z           "evidence": []
2026-06-13T10:36:10.7972494Z         },
2026-06-13T10:36:10.7972604Z         "impl": {
2026-06-13T10:36:10.7972704Z           "complete": true,
2026-06-13T10:36:10.7972804Z           "evidence": [
2026-06-13T10:36:10.7972881Z             {
2026-06-13T10:36:10.7973023Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T10:36:10.7973109Z               "line": 33
2026-06-13T10:36:10.7973192Z             },
2026-06-13T10:36:10.7973271Z             {
2026-06-13T10:36:10.7973409Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7973516Z               "line": 68
2026-06-13T10:36:10.7973590Z             },
2026-06-13T10:36:10.7973676Z             {
2026-06-13T10:36:10.7973799Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7973889Z               "line": 111
2026-06-13T10:36:10.7973974Z             },
2026-06-13T10:36:10.7974068Z             {
2026-06-13T10:36:10.7974194Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7974279Z               "line": 462
2026-06-13T10:36:10.7974369Z             },
2026-06-13T10:36:10.7974451Z             {
2026-06-13T10:36:10.7974570Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7974660Z               "line": 711
2026-06-13T10:36:10.7974741Z             },
2026-06-13T10:36:10.7974833Z             {
2026-06-13T10:36:10.7974946Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7975037Z               "line": 725
2026-06-13T10:36:10.7975118Z             },
2026-06-13T10:36:10.7975209Z             {
2026-06-13T10:36:10.7975322Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.7975415Z               "line": 132
2026-06-13T10:36:10.7975499Z             },
2026-06-13T10:36:10.7975580Z             {
2026-06-13T10:36:10.7975843Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T10:36:10.7975933Z               "line": 26
2026-06-13T10:36:10.7976025Z             },
2026-06-13T10:36:10.7976106Z             {
2026-06-13T10:36:10.7976224Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T10:36:10.7976316Z               "line": 97
2026-06-13T10:36:10.7976397Z             },
2026-06-13T10:36:10.7976482Z             {
2026-06-13T10:36:10.7976599Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T10:36:10.7976691Z               "line": 119
2026-06-13T10:36:10.7976775Z             },
2026-06-13T10:36:10.7976860Z             {
2026-06-13T10:36:10.7976974Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7977160Z               "line": 82
2026-06-13T10:36:10.7977241Z             },
2026-06-13T10:36:10.7977318Z             {
2026-06-13T10:36:10.7977437Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7977527Z               "line": 111
2026-06-13T10:36:10.7977608Z             },
2026-06-13T10:36:10.7977700Z             {
2026-06-13T10:36:10.7977804Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7977894Z               "line": 232
2026-06-13T10:36:10.7977981Z             },
2026-06-13T10:36:10.7978066Z             {
2026-06-13T10:36:10.7978175Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7978262Z               "line": 245
2026-06-13T10:36:10.7978343Z             },
2026-06-13T10:36:10.7978423Z             {
2026-06-13T10:36:10.7978533Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7978620Z               "line": 3785
2026-06-13T10:36:10.7978710Z             }
2026-06-13T10:36:10.7978805Z           ]
2026-06-13T10:36:10.7978882Z         },
2026-06-13T10:36:10.7979076Z         "int": {
2026-06-13T10:36:10.7979166Z           "complete": true,
2026-06-13T10:36:10.7979257Z           "evidence": [
2026-06-13T10:36:10.7979338Z             {
2026-06-13T10:36:10.7979479Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-13T10:36:10.7979569Z               "line": 98
2026-06-13T10:36:10.7979651Z             },
2026-06-13T10:36:10.7979741Z             {
2026-06-13T10:36:10.7979855Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-13T10:36:10.7979952Z               "line": 140
2026-06-13T10:36:10.7980033Z             }
2026-06-13T10:36:10.7980117Z           ]
2026-06-13T10:36:10.7980204Z         },
2026-06-13T10:36:10.7980285Z         "unit": {
2026-06-13T10:36:10.7980385Z           "complete": true,
2026-06-13T10:36:10.7980470Z           "evidence": [
2026-06-13T10:36:10.7980562Z             {
2026-06-13T10:36:10.7980690Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T10:36:10.7980790Z               "line": 178
2026-06-13T10:36:10.7980877Z             },
2026-06-13T10:36:10.7980961Z             {
2026-06-13T10:36:10.7981096Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T10:36:10.7981182Z               "line": 242
2026-06-13T10:36:10.7981272Z             },
2026-06-13T10:36:10.7981353Z             {
2026-06-13T10:36:10.7981478Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7981568Z               "line": 1079
2026-06-13T10:36:10.7981653Z             },
2026-06-13T10:36:10.7981739Z             {
2026-06-13T10:36:10.7981855Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7981948Z               "line": 1109
2026-06-13T10:36:10.7982029Z             },
2026-06-13T10:36:10.7982124Z             {
2026-06-13T10:36:10.7982244Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T10:36:10.7982329Z               "line": 1129
2026-06-13T10:36:10.7982420Z             },
2026-06-13T10:36:10.7982497Z             {
2026-06-13T10:36:10.7982634Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T10:36:10.7982725Z               "line": 602
2026-06-13T10:36:10.7982807Z             },
2026-06-13T10:36:10.7982893Z             {
2026-06-13T10:36:10.7983108Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T10:36:10.7983202Z               "line": 148
2026-06-13T10:36:10.7983287Z             },
2026-06-13T10:36:10.7983374Z             {
2026-06-13T10:36:10.7983498Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T10:36:10.7983588Z               "line": 169
2026-06-13T10:36:10.7983669Z             },
2026-06-13T10:36:10.7983752Z             {
2026-06-13T10:36:10.7983864Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T10:36:10.7983950Z               "line": 181
2026-06-13T10:36:10.7984037Z             },
2026-06-13T10:36:10.7984122Z             {
2026-06-13T10:36:10.7984331Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T10:36:10.7984421Z               "line": 202
2026-06-13T10:36:10.7984505Z             },
2026-06-13T10:36:10.7984586Z             {
2026-06-13T10:36:10.7984706Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7984802Z               "line": 375
2026-06-13T10:36:10.7984886Z             },
2026-06-13T10:36:10.7984968Z             {
2026-06-13T10:36:10.7985073Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.7985153Z               "line": 407
2026-06-13T10:36:10.7985239Z             },
2026-06-13T10:36:10.7985316Z             {
2026-06-13T10:36:10.7985421Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7985511Z               "line": 7633
2026-06-13T10:36:10.7985587Z             }
2026-06-13T10:36:10.7985669Z           ]
2026-06-13T10:36:10.7985750Z         }
2026-06-13T10:36:10.7985840Z       }
2026-06-13T10:36:10.7985921Z     },
2026-06-13T10:36:10.7986017Z     {
2026-06-13T10:36:10.7986112Z       "id": "REQ-MESH-5",
2026-06-13T10:36:10.7987510Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-13T10:36:10.7987606Z       "requiredStages": [
2026-06-13T10:36:10.7987692Z         "impl",
2026-06-13T10:36:10.7987772Z         "unit"
2026-06-13T10:36:10.7987853Z       ],
2026-06-13T10:36:10.7987931Z       "stages": {
2026-06-13T10:36:10.7988012Z         "doc": {
2026-06-13T10:36:10.7988106Z           "complete": false,
2026-06-13T10:36:10.7988198Z           "evidence": []
2026-06-13T10:36:10.7988279Z         },
2026-06-13T10:36:10.7988374Z         "impl": {
2026-06-13T10:36:10.7988474Z           "complete": true,
2026-06-13T10:36:10.7988555Z           "evidence": [
2026-06-13T10:36:10.7988636Z             {
2026-06-13T10:36:10.7988764Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T10:36:10.7988861Z               "line": 61
2026-06-13T10:36:10.7989041Z             },
2026-06-13T10:36:10.7989127Z             {
2026-06-13T10:36:10.7989252Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T10:36:10.7989336Z               "line": 109
2026-06-13T10:36:10.7989423Z             },
2026-06-13T10:36:10.7989500Z             {
2026-06-13T10:36:10.7989627Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.7989708Z               "line": 104
2026-06-13T10:36:10.7989779Z             },
2026-06-13T10:36:10.7989865Z             {
2026-06-13T10:36:10.7989982Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.7990067Z               "line": 105
2026-06-13T10:36:10.7990153Z             },
2026-06-13T10:36:10.7990241Z             {
2026-06-13T10:36:10.7990358Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7990445Z               "line": 85
2026-06-13T10:36:10.7990530Z             },
2026-06-13T10:36:10.7990612Z             {
2026-06-13T10:36:10.7990855Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7990945Z               "line": 234
2026-06-13T10:36:10.7991026Z             },
2026-06-13T10:36:10.7991108Z             {
2026-06-13T10:36:10.7991231Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7991331Z               "line": 298
2026-06-13T10:36:10.7991408Z             },
2026-06-13T10:36:10.7991494Z             {
2026-06-13T10:36:10.7991617Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7991704Z               "line": 687
2026-06-13T10:36:10.7991785Z             },
2026-06-13T10:36:10.7991869Z             {
2026-06-13T10:36:10.7992086Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.7992170Z               "line": 101
2026-06-13T10:36:10.7992256Z             },
2026-06-13T10:36:10.7992334Z             {
2026-06-13T10:36:10.7992457Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7992551Z               "line": 193
2026-06-13T10:36:10.7992631Z             }
2026-06-13T10:36:10.7992718Z           ]
2026-06-13T10:36:10.7992800Z         },
2026-06-13T10:36:10.7992884Z         "int": {
2026-06-13T10:36:10.7992975Z           "complete": false,
2026-06-13T10:36:10.7993066Z           "evidence": []
2026-06-13T10:36:10.7993152Z         },
2026-06-13T10:36:10.7993237Z         "unit": {
2026-06-13T10:36:10.7993329Z           "complete": true,
2026-06-13T10:36:10.7993419Z           "evidence": [
2026-06-13T10:36:10.7993499Z             {
2026-06-13T10:36:10.7993624Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.7993710Z               "line": 927
2026-06-13T10:36:10.7993805Z             },
2026-06-13T10:36:10.7993886Z             {
2026-06-13T10:36:10.7994002Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T10:36:10.7994091Z               "line": 462
2026-06-13T10:36:10.7994177Z             }
2026-06-13T10:36:10.7994259Z           ]
2026-06-13T10:36:10.7994340Z         }
2026-06-13T10:36:10.7994434Z       }
2026-06-13T10:36:10.7994515Z     },
2026-06-13T10:36:10.7994597Z     {
2026-06-13T10:36:10.7994687Z       "id": "REQ-MESH-6",
2026-06-13T10:36:10.7995943Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-13T10:36:10.7996038Z       "requiredStages": [
2026-06-13T10:36:10.7996133Z         "impl",
2026-06-13T10:36:10.7996215Z         "unit"
2026-06-13T10:36:10.7996296Z       ],
2026-06-13T10:36:10.7996381Z       "stages": {
2026-06-13T10:36:10.7996462Z         "doc": {
2026-06-13T10:36:10.7996559Z           "complete": false,
2026-06-13T10:36:10.7996648Z           "evidence": []
2026-06-13T10:36:10.7996734Z         },
2026-06-13T10:36:10.7996820Z         "impl": {
2026-06-13T10:36:10.7996911Z           "complete": true,
2026-06-13T10:36:10.7997001Z           "evidence": [
2026-06-13T10:36:10.7997082Z             {
2026-06-13T10:36:10.7997189Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7997287Z               "line": 3308
2026-06-13T10:36:10.7997368Z             }
2026-06-13T10:36:10.7997450Z           ]
2026-06-13T10:36:10.7997531Z         },
2026-06-13T10:36:10.7997616Z         "int": {
2026-06-13T10:36:10.7997705Z           "complete": false,
2026-06-13T10:36:10.7997801Z           "evidence": []
2026-06-13T10:36:10.7997891Z         },
2026-06-13T10:36:10.7997980Z         "unit": {
2026-06-13T10:36:10.7998075Z           "complete": true,
2026-06-13T10:36:10.7998161Z           "evidence": [
2026-06-13T10:36:10.7998243Z             {
2026-06-13T10:36:10.7998346Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7998438Z               "line": 8161
2026-06-13T10:36:10.7998600Z             },
2026-06-13T10:36:10.7998690Z             {
2026-06-13T10:36:10.7998796Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7998881Z               "line": 8188
2026-06-13T10:36:10.7999048Z             },
2026-06-13T10:36:10.7999134Z             {
2026-06-13T10:36:10.7999234Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.7999324Z               "line": 8212
2026-06-13T10:36:10.7999402Z             }
2026-06-13T10:36:10.7999487Z           ]
2026-06-13T10:36:10.7999567Z         }
2026-06-13T10:36:10.7999658Z       }
2026-06-13T10:36:10.7999736Z     },
2026-06-13T10:36:10.7999821Z     {
2026-06-13T10:36:10.8000017Z       "id": "REQ-MIGRATE-1",
2026-06-13T10:36:10.8000192Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-13T10:36:10.8000291Z       "requiredStages": [],
2026-06-13T10:36:10.8000377Z       "stages": {
2026-06-13T10:36:10.8000462Z         "doc": {
2026-06-13T10:36:10.8000551Z           "complete": false,
2026-06-13T10:36:10.8000651Z           "evidence": []
2026-06-13T10:36:10.8000743Z         },
2026-06-13T10:36:10.8000824Z         "impl": {
2026-06-13T10:36:10.8000913Z           "complete": false,
2026-06-13T10:36:10.8001005Z           "evidence": []
2026-06-13T10:36:10.8001086Z         },
2026-06-13T10:36:10.8001172Z         "int": {
2026-06-13T10:36:10.8001267Z           "complete": false,
2026-06-13T10:36:10.8001358Z           "evidence": []
2026-06-13T10:36:10.8001438Z         },
2026-06-13T10:36:10.8001524Z         "unit": {
2026-06-13T10:36:10.8001615Z           "complete": false,
2026-06-13T10:36:10.8001706Z           "evidence": []
2026-06-13T10:36:10.8001796Z         }
2026-06-13T10:36:10.8001877Z       }
2026-06-13T10:36:10.8001964Z     },
2026-06-13T10:36:10.8002049Z     {
2026-06-13T10:36:10.8002144Z       "id": "REQ-MSG-1",
2026-06-13T10:36:10.8002579Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-13T10:36:10.8002679Z       "requiredStages": [
2026-06-13T10:36:10.8002763Z         "impl",
2026-06-13T10:36:10.8002845Z         "unit",
2026-06-13T10:36:10.8002927Z         "int"
2026-06-13T10:36:10.8003008Z       ],
2026-06-13T10:36:10.8003096Z       "stages": {
2026-06-13T10:36:10.8003182Z         "doc": {
2026-06-13T10:36:10.8003273Z           "complete": false,
2026-06-13T10:36:10.8003360Z           "evidence": []
2026-06-13T10:36:10.8003449Z         },
2026-06-13T10:36:10.8003535Z         "impl": {
2026-06-13T10:36:10.8003627Z           "complete": true,
2026-06-13T10:36:10.8003712Z           "evidence": [
2026-06-13T10:36:10.8003802Z             {
2026-06-13T10:36:10.8003923Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.8004008Z               "line": 28
2026-06-13T10:36:10.8004088Z             },
2026-06-13T10:36:10.8004165Z             {
2026-06-13T10:36:10.8004280Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.8004365Z               "line": 94
2026-06-13T10:36:10.8004441Z             },
2026-06-13T10:36:10.8004518Z             {
2026-06-13T10:36:10.8004627Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.8004708Z               "line": 127
2026-06-13T10:36:10.8004804Z             },
2026-06-13T10:36:10.8004881Z             {
2026-06-13T10:36:10.8004984Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.8005075Z               "line": 149
2026-06-13T10:36:10.8005153Z             },
2026-06-13T10:36:10.8005229Z             {
2026-06-13T10:36:10.8005342Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.8005436Z               "line": 174
2026-06-13T10:36:10.8005513Z             },
2026-06-13T10:36:10.8005593Z             {
2026-06-13T10:36:10.8005711Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T10:36:10.8005806Z               "line": 18
2026-06-13T10:36:10.8005893Z             },
2026-06-13T10:36:10.8006073Z             {
2026-06-13T10:36:10.8006179Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T10:36:10.8006274Z               "line": 13
2026-06-13T10:36:10.8006369Z             },
2026-06-13T10:36:10.8006451Z             {
2026-06-13T10:36:10.8006560Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T10:36:10.8006655Z               "line": 61
2026-06-13T10:36:10.8006741Z             },
2026-06-13T10:36:10.8006832Z             {
2026-06-13T10:36:10.8006931Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T10:36:10.8007022Z               "line": 10
2026-06-13T10:36:10.8007100Z             }
2026-06-13T10:36:10.8007179Z           ]
2026-06-13T10:36:10.8007341Z         },
2026-06-13T10:36:10.8007419Z         "int": {
2026-06-13T10:36:10.8007513Z           "complete": true,
2026-06-13T10:36:10.8007595Z           "evidence": [
2026-06-13T10:36:10.8007676Z             {
2026-06-13T10:36:10.8007814Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T10:36:10.8007895Z               "line": 9
2026-06-13T10:36:10.8007981Z             },
2026-06-13T10:36:10.8008059Z             {
2026-06-13T10:36:10.8008185Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T10:36:10.8008270Z               "line": 70
2026-06-13T10:36:10.8008346Z             },
2026-06-13T10:36:10.8008423Z             {
2026-06-13T10:36:10.8008545Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T10:36:10.8008640Z               "line": 129
2026-06-13T10:36:10.8008717Z             }
2026-06-13T10:36:10.8008793Z           ]
2026-06-13T10:36:10.8008869Z         },
2026-06-13T10:36:10.8009041Z         "unit": {
2026-06-13T10:36:10.8009141Z           "complete": true,
2026-06-13T10:36:10.8009231Z           "evidence": [
2026-06-13T10:36:10.8009308Z             {
2026-06-13T10:36:10.8009413Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.8009503Z               "line": 203
2026-06-13T10:36:10.8009584Z             },
2026-06-13T10:36:10.8009680Z             {
2026-06-13T10:36:10.8009789Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.8009870Z               "line": 232
2026-06-13T10:36:10.8009957Z             },
2026-06-13T10:36:10.8010038Z             {
2026-06-13T10:36:10.8010142Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.8010223Z               "line": 277
2026-06-13T10:36:10.8010306Z             },
2026-06-13T10:36:10.8010381Z             {
2026-06-13T10:36:10.8010486Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.8010572Z               "line": 300
2026-06-13T10:36:10.8010653Z             },
2026-06-13T10:36:10.8010752Z             {
2026-06-13T10:36:10.8010856Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T10:36:10.8010952Z               "line": 324
2026-06-13T10:36:10.8011036Z             },
2026-06-13T10:36:10.8011111Z             {
2026-06-13T10:36:10.8011226Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T10:36:10.8011318Z               "line": 203
2026-06-13T10:36:10.8011398Z             },
2026-06-13T10:36:10.8011478Z             {
2026-06-13T10:36:10.8011599Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T10:36:10.8011689Z               "line": 236
2026-06-13T10:36:10.8011760Z             },
2026-06-13T10:36:10.8011836Z             {
2026-06-13T10:36:10.8011942Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T10:36:10.8012042Z               "line": 250
2026-06-13T10:36:10.8012122Z             },
2026-06-13T10:36:10.8012218Z             {
2026-06-13T10:36:10.8012332Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T10:36:10.8012427Z               "line": 262
2026-06-13T10:36:10.8012514Z             },
2026-06-13T10:36:10.8012595Z             {
2026-06-13T10:36:10.8012695Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T10:36:10.8012780Z               "line": 158
2026-06-13T10:36:10.8012858Z             },
2026-06-13T10:36:10.8013038Z             {
2026-06-13T10:36:10.8013144Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T10:36:10.8013244Z               "line": 241
2026-06-13T10:36:10.8013323Z             },
2026-06-13T10:36:10.8013405Z             {
2026-06-13T10:36:10.8013511Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T10:36:10.8013601Z               "line": 68
2026-06-13T10:36:10.8013680Z             },
2026-06-13T10:36:10.8013756Z             {
2026-06-13T10:36:10.8013863Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T10:36:10.8013948Z               "line": 77
2026-06-13T10:36:10.8014028Z             },
2026-06-13T10:36:10.8014210Z             {
2026-06-13T10:36:10.8014319Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T10:36:10.8014405Z               "line": 83
2026-06-13T10:36:10.8014492Z             },
2026-06-13T10:36:10.8014583Z             {
2026-06-13T10:36:10.8014681Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T10:36:10.8014778Z               "line": 102
2026-06-13T10:36:10.8014863Z             }
2026-06-13T10:36:10.8014944Z           ]
2026-06-13T10:36:10.8015030Z         }
2026-06-13T10:36:10.8015112Z       }
2026-06-13T10:36:10.8015201Z     },
2026-06-13T10:36:10.8015282Z     {
2026-06-13T10:36:10.8015379Z       "id": "REQ-MSG-2",
2026-06-13T10:36:10.8015640Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-13T10:36:10.8015742Z       "requiredStages": [
2026-06-13T10:36:10.8015831Z         "impl",
2026-06-13T10:36:10.8015911Z         "unit"
2026-06-13T10:36:10.8015987Z       ],
2026-06-13T10:36:10.8016083Z       "stages": {
2026-06-13T10:36:10.8016162Z         "doc": {
2026-06-13T10:36:10.8016257Z           "complete": false,
2026-06-13T10:36:10.8016348Z           "evidence": []
2026-06-13T10:36:10.8016429Z         },
2026-06-13T10:36:10.8016510Z         "impl": {
2026-06-13T10:36:10.8016605Z           "complete": true,
2026-06-13T10:36:10.8016696Z           "evidence": [
2026-06-13T10:36:10.8016772Z             {
2026-06-13T10:36:10.8016871Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8016962Z               "line": 11
2026-06-13T10:36:10.8017045Z             },
2026-06-13T10:36:10.8017130Z             {
2026-06-13T10:36:10.8017234Z               "path": "crates/spt/src/main.rs",
2026-06-13T10:36:10.8017316Z               "line": 8
2026-06-13T10:36:10.8017392Z             }
2026-06-13T10:36:10.8017473Z           ]
2026-06-13T10:36:10.8017558Z         },
2026-06-13T10:36:10.8017645Z         "int": {
2026-06-13T10:36:10.8017739Z           "complete": false,
2026-06-13T10:36:10.8017825Z           "evidence": []
2026-06-13T10:36:10.8017902Z         },
2026-06-13T10:36:10.8017989Z         "unit": {
2026-06-13T10:36:10.8018078Z           "complete": true,
2026-06-13T10:36:10.8018169Z           "evidence": [
2026-06-13T10:36:10.8018246Z             {
2026-06-13T10:36:10.8018351Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8018450Z               "line": 5646
2026-06-13T10:36:10.8018532Z             },
2026-06-13T10:36:10.8018614Z             {
2026-06-13T10:36:10.8018717Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8018812Z               "line": 5688
2026-06-13T10:36:10.8018897Z             },
2026-06-13T10:36:10.8019062Z             {
2026-06-13T10:36:10.8019161Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8019238Z               "line": 5737
2026-06-13T10:36:10.8019325Z             },
2026-06-13T10:36:10.8019405Z             {
2026-06-13T10:36:10.8019505Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8019583Z               "line": 5760
2026-06-13T10:36:10.8019663Z             },
2026-06-13T10:36:10.8019739Z             {
2026-06-13T10:36:10.8019839Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8019935Z               "line": 7389
2026-06-13T10:36:10.8020011Z             },
2026-06-13T10:36:10.8020106Z             {
2026-06-13T10:36:10.8020321Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8020416Z               "line": 7398
2026-06-13T10:36:10.8020507Z             },
2026-06-13T10:36:10.8020583Z             {
2026-06-13T10:36:10.8020688Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8020773Z               "line": 7412
2026-06-13T10:36:10.8020856Z             }
2026-06-13T10:36:10.8020941Z           ]
2026-06-13T10:36:10.8021026Z         }
2026-06-13T10:36:10.8021108Z       }
2026-06-13T10:36:10.8021190Z     },
2026-06-13T10:36:10.8021270Z     {
2026-06-13T10:36:10.8021359Z       "id": "REQ-MSG-3",
2026-06-13T10:36:10.8021733Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-13T10:36:10.8021916Z       "requiredStages": [
2026-06-13T10:36:10.8022001Z         "impl",
2026-06-13T10:36:10.8022082Z         "unit",
2026-06-13T10:36:10.8022163Z         "int"
2026-06-13T10:36:10.8022249Z       ],
2026-06-13T10:36:10.8022348Z       "stages": {
2026-06-13T10:36:10.8022435Z         "doc": {
2026-06-13T10:36:10.8022530Z           "complete": false,
2026-06-13T10:36:10.8022616Z           "evidence": []
2026-06-13T10:36:10.8022701Z         },
2026-06-13T10:36:10.8022783Z         "impl": {
2026-06-13T10:36:10.8022878Z           "complete": true,
2026-06-13T10:36:10.8022973Z           "evidence": [
2026-06-13T10:36:10.8023054Z             {
2026-06-13T10:36:10.8023169Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T10:36:10.8023260Z               "line": 19
2026-06-13T10:36:10.8023340Z             },
2026-06-13T10:36:10.8023423Z             {
2026-06-13T10:36:10.8023545Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T10:36:10.8023636Z               "line": 21
2026-06-13T10:36:10.8023719Z             },
2026-06-13T10:36:10.8023799Z             {
2026-06-13T10:36:10.8023908Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T10:36:10.8023999Z               "line": 48
2026-06-13T10:36:10.8024085Z             },
2026-06-13T10:36:10.8024175Z             {
2026-06-13T10:36:10.8024288Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T10:36:10.8024374Z               "line": 142
2026-06-13T10:36:10.8024466Z             }
2026-06-13T10:36:10.8024546Z           ]
2026-06-13T10:36:10.8024641Z         },
2026-06-13T10:36:10.8024723Z         "int": {
2026-06-13T10:36:10.8024823Z           "complete": true,
2026-06-13T10:36:10.8024912Z           "evidence": [
2026-06-13T10:36:10.8024995Z             {
2026-06-13T10:36:10.8025133Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T10:36:10.8025227Z               "line": 10
2026-06-13T10:36:10.8025314Z             },
2026-06-13T10:36:10.8025395Z             {
2026-06-13T10:36:10.8025528Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T10:36:10.8025624Z               "line": 70
2026-06-13T10:36:10.8025701Z             }
2026-06-13T10:36:10.8025785Z           ]
2026-06-13T10:36:10.8025876Z         },
2026-06-13T10:36:10.8025963Z         "unit": {
2026-06-13T10:36:10.8026053Z           "complete": true,
2026-06-13T10:36:10.8026153Z           "evidence": [
2026-06-13T10:36:10.8026239Z             {
2026-06-13T10:36:10.8026345Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T10:36:10.8026433Z               "line": 196
2026-06-13T10:36:10.8026519Z             },
2026-06-13T10:36:10.8026605Z             {
2026-06-13T10:36:10.8026709Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T10:36:10.8026803Z               "line": 215
2026-06-13T10:36:10.8026888Z             },
2026-06-13T10:36:10.8026980Z             {
2026-06-13T10:36:10.8027089Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T10:36:10.8027174Z               "line": 237
2026-06-13T10:36:10.8027260Z             }
2026-06-13T10:36:10.8027346Z           ]
2026-06-13T10:36:10.8027436Z         }
2026-06-13T10:36:10.8027522Z       }
2026-06-13T10:36:10.8027605Z     },
2026-06-13T10:36:10.8027775Z     {
2026-06-13T10:36:10.8027867Z       "id": "REQ-MSG-4",
2026-06-13T10:36:10.8028681Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-13T10:36:10.8028781Z       "requiredStages": [
2026-06-13T10:36:10.8028869Z         "impl",
2026-06-13T10:36:10.8029053Z         "unit",
2026-06-13T10:36:10.8029140Z         "int"
2026-06-13T10:36:10.8029226Z       ],
2026-06-13T10:36:10.8029310Z       "stages": {
2026-06-13T10:36:10.8029505Z         "doc": {
2026-06-13T10:36:10.8029599Z           "complete": false,
2026-06-13T10:36:10.8029698Z           "evidence": []
2026-06-13T10:36:10.8029784Z         },
2026-06-13T10:36:10.8029871Z         "impl": {
2026-06-13T10:36:10.8029970Z           "complete": true,
2026-06-13T10:36:10.8030060Z           "evidence": [
2026-06-13T10:36:10.8030157Z             {
2026-06-13T10:36:10.8030271Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T10:36:10.8030366Z               "line": 16
2026-06-13T10:36:10.8030448Z             },
2026-06-13T10:36:10.8030533Z             {
2026-06-13T10:36:10.8030647Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T10:36:10.8030733Z               "line": 25
2026-06-13T10:36:10.8030815Z             },
2026-06-13T10:36:10.8030900Z             {
2026-06-13T10:36:10.8031005Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T10:36:10.8031097Z               "line": 47
2026-06-13T10:36:10.8031181Z             },
2026-06-13T10:36:10.8031276Z             {
2026-06-13T10:36:10.8031397Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8031487Z               "line": 380
2026-06-13T10:36:10.8031572Z             },
2026-06-13T10:36:10.8031653Z             {
2026-06-13T10:36:10.8031764Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8031858Z               "line": 2437
2026-06-13T10:36:10.8031943Z             }
2026-06-13T10:36:10.8032024Z           ]
2026-06-13T10:36:10.8032110Z         },
2026-06-13T10:36:10.8032198Z         "int": {
2026-06-13T10:36:10.8032288Z           "complete": true,
2026-06-13T10:36:10.8032375Z           "evidence": [
2026-06-13T10:36:10.8032457Z             {
2026-06-13T10:36:10.8032584Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-13T10:36:10.8032670Z               "line": 98
2026-06-13T10:36:10.8032762Z             },
2026-06-13T10:36:10.8032847Z             {
2026-06-13T10:36:10.8032971Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-13T10:36:10.8033071Z               "line": 128
2026-06-13T10:36:10.8033152Z             }
2026-06-13T10:36:10.8033237Z           ]
2026-06-13T10:36:10.8033320Z         },
2026-06-13T10:36:10.8033400Z         "unit": {
2026-06-13T10:36:10.8033491Z           "complete": true,
2026-06-13T10:36:10.8033576Z           "evidence": [
2026-06-13T10:36:10.8033668Z             {
2026-06-13T10:36:10.8033772Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T10:36:10.8033867Z               "line": 62
2026-06-13T10:36:10.8033949Z             },
2026-06-13T10:36:10.8034025Z             {
2026-06-13T10:36:10.8034139Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T10:36:10.8034220Z               "line": 73
2026-06-13T10:36:10.8034307Z             },
2026-06-13T10:36:10.8034382Z             {
2026-06-13T10:36:10.8034483Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T10:36:10.8034574Z               "line": 84
2026-06-13T10:36:10.8034665Z             },
2026-06-13T10:36:10.8034791Z             {
2026-06-13T10:36:10.8034896Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T10:36:10.8034993Z               "line": 96
2026-06-13T10:36:10.8035073Z             },
2026-06-13T10:36:10.8035153Z             {
2026-06-13T10:36:10.8035259Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T10:36:10.8035444Z               "line": 121
2026-06-13T10:36:10.8035535Z             },
2026-06-13T10:36:10.8035612Z             {
2026-06-13T10:36:10.8035717Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T10:36:10.8035797Z               "line": 136
2026-06-13T10:36:10.8035884Z             }
2026-06-13T10:36:10.8035970Z           ]
2026-06-13T10:36:10.8036060Z         }
2026-06-13T10:36:10.8036140Z       }
2026-06-13T10:36:10.8036218Z     },
2026-06-13T10:36:10.8036299Z     {
2026-06-13T10:36:10.8036384Z       "id": "REQ-MSG-5",
2026-06-13T10:36:10.8037088Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-13T10:36:10.8037255Z       "requiredStages": [
2026-06-13T10:36:10.8037339Z         "doc",
2026-06-13T10:36:10.8037424Z         "impl",
2026-06-13T10:36:10.8037511Z         "unit"
2026-06-13T10:36:10.8037583Z       ],
2026-06-13T10:36:10.8037668Z       "stages": {
2026-06-13T10:36:10.8037753Z         "doc": {
2026-06-13T10:36:10.8037850Z           "complete": true,
2026-06-13T10:36:10.8037936Z           "evidence": [
2026-06-13T10:36:10.8038020Z             {
2026-06-13T10:36:10.8038117Z               "path": "CONTEXT.md",
2026-06-13T10:36:10.8038207Z               "line": 210
2026-06-13T10:36:10.8038283Z             }
2026-06-13T10:36:10.8038368Z           ]
2026-06-13T10:36:10.8038451Z         },
2026-06-13T10:36:10.8041226Z         "impl": {
2026-06-13T10:36:10.8041322Z           "complete": true,
2026-06-13T10:36:10.8041422Z           "evidence": [
2026-06-13T10:36:10.8041503Z             {
2026-06-13T10:36:10.8041628Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T10:36:10.8041713Z               "line": 56
2026-06-13T10:36:10.8041793Z             },
2026-06-13T10:36:10.8041870Z             {
2026-06-13T10:36:10.8042000Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.8042089Z               "line": 118
2026-06-13T10:36:10.8042171Z             },
2026-06-13T10:36:10.8042248Z             {
2026-06-13T10:36:10.8042371Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.8042451Z               "line": 127
2026-06-13T10:36:10.8042531Z             },
2026-06-13T10:36:10.8042623Z             {
2026-06-13T10:36:10.8042726Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.8042806Z               "line": 141
2026-06-13T10:36:10.8042882Z             },
2026-06-13T10:36:10.8042968Z             {
2026-06-13T10:36:10.8043083Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.8043177Z               "line": 170
2026-06-13T10:36:10.8043265Z             },
2026-06-13T10:36:10.8043345Z             {
2026-06-13T10:36:10.8043459Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8043545Z               "line": 2186
2026-06-13T10:36:10.8043631Z             }
2026-06-13T10:36:10.8043717Z           ]
2026-06-13T10:36:10.8043798Z         },
2026-06-13T10:36:10.8043880Z         "int": {
2026-06-13T10:36:10.8043970Z           "complete": true,
2026-06-13T10:36:10.8044056Z           "evidence": [
2026-06-13T10:36:10.8044136Z             {
2026-06-13T10:36:10.8044256Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-13T10:36:10.8044342Z               "line": 19
2026-06-13T10:36:10.8044413Z             }
2026-06-13T10:36:10.8044504Z           ]
2026-06-13T10:36:10.8044585Z         },
2026-06-13T10:36:10.8044665Z         "unit": {
2026-06-13T10:36:10.8044752Z           "complete": true,
2026-06-13T10:36:10.8044839Z           "evidence": [
2026-06-13T10:36:10.8044919Z             {
2026-06-13T10:36:10.8045038Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T10:36:10.8045134Z               "line": 153
2026-06-13T10:36:10.8045215Z             },
2026-06-13T10:36:10.8045295Z             {
2026-06-13T10:36:10.8045528Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-13T10:36:10.8045619Z               "line": 152
2026-06-13T10:36:10.8045703Z             },
2026-06-13T10:36:10.8045780Z             {
2026-06-13T10:36:10.8045886Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T10:36:10.8045967Z               "line": 105
2026-06-13T10:36:10.8046047Z             },
2026-06-13T10:36:10.8046130Z             {
2026-06-13T10:36:10.8046248Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.8046338Z               "line": 444
2026-06-13T10:36:10.8046414Z             },
2026-06-13T10:36:10.8046496Z             {
2026-06-13T10:36:10.8046715Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.8046797Z               "line": 493
2026-06-13T10:36:10.8046877Z             },
2026-06-13T10:36:10.8046958Z             {
2026-06-13T10:36:10.8047064Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.8047145Z               "line": 509
2026-06-13T10:36:10.8047239Z             },
2026-06-13T10:36:10.8047320Z             {
2026-06-13T10:36:10.8047431Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T10:36:10.8047516Z               "line": 528
2026-06-13T10:36:10.8047601Z             },
2026-06-13T10:36:10.8047686Z             {
2026-06-13T10:36:10.8047792Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8047880Z               "line": 5589
2026-06-13T10:36:10.8047956Z             }
2026-06-13T10:36:10.8048038Z           ]
2026-06-13T10:36:10.8048119Z         }
2026-06-13T10:36:10.8048205Z       }
2026-06-13T10:36:10.8048285Z     },
2026-06-13T10:36:10.8048362Z     {
2026-06-13T10:36:10.8048452Z       "id": "REQ-NET-1",
2026-06-13T10:36:10.8048633Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-13T10:36:10.8048725Z       "requiredStages": [
2026-06-13T10:36:10.8048800Z         "impl",
2026-06-13T10:36:10.8048881Z         "unit",
2026-06-13T10:36:10.8049035Z         "int"
2026-06-13T10:36:10.8049120Z       ],
2026-06-13T10:36:10.8049200Z       "stages": {
2026-06-13T10:36:10.8049281Z         "doc": {
2026-06-13T10:36:10.8049373Z           "complete": false,
2026-06-13T10:36:10.8049448Z           "evidence": []
2026-06-13T10:36:10.8049529Z         },
2026-06-13T10:36:10.8049606Z         "impl": {
2026-06-13T10:36:10.8049688Z           "complete": true,
2026-06-13T10:36:10.8049768Z           "evidence": [
2026-06-13T10:36:10.8049849Z             {
2026-06-13T10:36:10.8049984Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.8050064Z               "line": 54
2026-06-13T10:36:10.8050155Z             },
2026-06-13T10:36:10.8050236Z             {
2026-06-13T10:36:10.8050361Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.8050440Z               "line": 594
2026-06-13T10:36:10.8050516Z             },
2026-06-13T10:36:10.8050602Z             {
2026-06-13T10:36:10.8050701Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T10:36:10.8050790Z               "line": 98
2026-06-13T10:36:10.8050861Z             },
2026-06-13T10:36:10.8050938Z             {
2026-06-13T10:36:10.8051062Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8051142Z               "line": 97
2026-06-13T10:36:10.8051229Z             },
2026-06-13T10:36:10.8051306Z             {
2026-06-13T10:36:10.8051424Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8051505Z               "line": 159
2026-06-13T10:36:10.8051582Z             },
2026-06-13T10:36:10.8051672Z             {
2026-06-13T10:36:10.8051781Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8051882Z               "line": 175
2026-06-13T10:36:10.8051959Z             },
2026-06-13T10:36:10.8052040Z             {
2026-06-13T10:36:10.8052153Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8052241Z               "line": 190
2026-06-13T10:36:10.8052315Z             },
2026-06-13T10:36:10.8052498Z             {
2026-06-13T10:36:10.8052616Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8052707Z               "line": 271
2026-06-13T10:36:10.8052788Z             },
2026-06-13T10:36:10.8052861Z             {
2026-06-13T10:36:10.8052973Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8053063Z               "line": 306
2026-06-13T10:36:10.8053144Z             },
2026-06-13T10:36:10.8053225Z             {
2026-06-13T10:36:10.8053338Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8053413Z               "line": 312
2026-06-13T10:36:10.8053500Z             },
2026-06-13T10:36:10.8053700Z             {
2026-06-13T10:36:10.8053820Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8053905Z               "line": 318
2026-06-13T10:36:10.8053990Z             },
2026-06-13T10:36:10.8054071Z             {
2026-06-13T10:36:10.8054191Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8054282Z               "line": 334
2026-06-13T10:36:10.8054362Z             },
2026-06-13T10:36:10.8054445Z             {
2026-06-13T10:36:10.8054558Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8054648Z               "line": 354
2026-06-13T10:36:10.8054735Z             },
2026-06-13T10:36:10.8054816Z             {
2026-06-13T10:36:10.8054935Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T10:36:10.8055020Z               "line": 35
2026-06-13T10:36:10.8055108Z             },
2026-06-13T10:36:10.8055187Z             {
2026-06-13T10:36:10.8055302Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T10:36:10.8055403Z               "line": 85
2026-06-13T10:36:10.8055484Z             },
2026-06-13T10:36:10.8055569Z             {
2026-06-13T10:36:10.8055680Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.8055771Z               "line": 135
2026-06-13T10:36:10.8055850Z             },
2026-06-13T10:36:10.8055944Z             {
2026-06-13T10:36:10.8056060Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8056146Z               "line": 2283
2026-06-13T10:36:10.8056231Z             },
2026-06-13T10:36:10.8056312Z             {
2026-06-13T10:36:10.8056422Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.8056517Z               "line": 17
2026-06-13T10:36:10.8056602Z             }
2026-06-13T10:36:10.8056685Z           ]
2026-06-13T10:36:10.8056770Z         },
2026-06-13T10:36:10.8056851Z         "int": {
2026-06-13T10:36:10.8056941Z           "complete": true,
2026-06-13T10:36:10.8057033Z           "evidence": [
2026-06-13T10:36:10.8057123Z             {
2026-06-13T10:36:10.8057251Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T10:36:10.8057338Z               "line": 341
2026-06-13T10:36:10.8057419Z             },
2026-06-13T10:36:10.8057500Z             {
2026-06-13T10:36:10.8057619Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8057710Z               "line": 605
2026-06-13T10:36:10.8057795Z             },
2026-06-13T10:36:10.8057871Z             {
2026-06-13T10:36:10.8057991Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8058081Z               "line": 878
2026-06-13T10:36:10.8058161Z             }
2026-06-13T10:36:10.8058246Z           ]
2026-06-13T10:36:10.8058328Z         },
2026-06-13T10:36:10.8058417Z         "unit": {
2026-06-13T10:36:10.8058507Z           "complete": true,
2026-06-13T10:36:10.8058598Z           "evidence": [
2026-06-13T10:36:10.8058675Z             {
2026-06-13T10:36:10.8058793Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.8058883Z               "line": 650
2026-06-13T10:36:10.8059056Z             },
2026-06-13T10:36:10.8059140Z             {
2026-06-13T10:36:10.8059261Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.8059351Z               "line": 685
2026-06-13T10:36:10.8059537Z             },
2026-06-13T10:36:10.8059623Z             {
2026-06-13T10:36:10.8059742Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T10:36:10.8059833Z               "line": 932
2026-06-13T10:36:10.8059914Z             },
2026-06-13T10:36:10.8059995Z             {
2026-06-13T10:36:10.8060118Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-13T10:36:10.8060205Z               "line": 195
2026-06-13T10:36:10.8060286Z             },
2026-06-13T10:36:10.8060366Z             {
2026-06-13T10:36:10.8060486Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8060577Z               "line": 442
2026-06-13T10:36:10.8060752Z             },
2026-06-13T10:36:10.8060835Z             {
2026-06-13T10:36:10.8060949Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8061038Z               "line": 456
2026-06-13T10:36:10.8061118Z             },
2026-06-13T10:36:10.8061200Z             {
2026-06-13T10:36:10.8061331Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8061417Z               "line": 475
2026-06-13T10:36:10.8061503Z             },
2026-06-13T10:36:10.8061579Z             {
2026-06-13T10:36:10.8061698Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T10:36:10.8061784Z               "line": 119
2026-06-13T10:36:10.8061870Z             },
2026-06-13T10:36:10.8061956Z             {
2026-06-13T10:36:10.8062065Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T10:36:10.8062157Z               "line": 162
2026-06-13T10:36:10.8062237Z             },
2026-06-13T10:36:10.8062327Z             {
2026-06-13T10:36:10.8062443Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T10:36:10.8062537Z               "line": 492
2026-06-13T10:36:10.8062623Z             },
2026-06-13T10:36:10.8062704Z             {
2026-06-13T10:36:10.8062810Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.8062890Z               "line": 615
2026-06-13T10:36:10.8062980Z             },
2026-06-13T10:36:10.8063063Z             {
2026-06-13T10:36:10.8063167Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.8063262Z               "line": 1004
2026-06-13T10:36:10.8063353Z             }
2026-06-13T10:36:10.8063435Z           ]
2026-06-13T10:36:10.8063515Z         }
2026-06-13T10:36:10.8063600Z       }
2026-06-13T10:36:10.8063685Z     },
2026-06-13T10:36:10.8063767Z     {
2026-06-13T10:36:10.8063860Z       "id": "REQ-NET-2",
2026-06-13T10:36:10.8064040Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-13T10:36:10.8064127Z       "requiredStages": [
2026-06-13T10:36:10.8064212Z         "impl"
2026-06-13T10:36:10.8064298Z       ],
2026-06-13T10:36:10.8064385Z       "stages": {
2026-06-13T10:36:10.8064465Z         "doc": {
2026-06-13T10:36:10.8064550Z           "complete": false,
2026-06-13T10:36:10.8064622Z           "evidence": []
2026-06-13T10:36:10.8064709Z         },
2026-06-13T10:36:10.8064794Z         "impl": {
2026-06-13T10:36:10.8064889Z           "complete": true,
2026-06-13T10:36:10.8064971Z           "evidence": [
2026-06-13T10:36:10.8065052Z             {
2026-06-13T10:36:10.8065171Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T10:36:10.8065256Z               "line": 57
2026-06-13T10:36:10.8065344Z             },
2026-06-13T10:36:10.8065424Z             {
2026-06-13T10:36:10.8065538Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8065629Z               "line": 71
2026-06-13T10:36:10.8065710Z             },
2026-06-13T10:36:10.8065781Z             {
2026-06-13T10:36:10.8065900Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8065988Z               "line": 81
2026-06-13T10:36:10.8066067Z             },
2026-06-13T10:36:10.8066148Z             {
2026-06-13T10:36:10.8066268Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8066349Z               "line": 159
2026-06-13T10:36:10.8066509Z             },
2026-06-13T10:36:10.8066586Z             {
2026-06-13T10:36:10.8066706Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8066786Z               "line": 175
2026-06-13T10:36:10.8066862Z             },
2026-06-13T10:36:10.8066944Z             {
2026-06-13T10:36:10.8067059Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T10:36:10.8067153Z               "line": 190
2026-06-13T10:36:10.8067230Z             }
2026-06-13T10:36:10.8067311Z           ]
2026-06-13T10:36:10.8067388Z         },
2026-06-13T10:36:10.8067468Z         "int": {
2026-06-13T10:36:10.8067564Z           "complete": false,
2026-06-13T10:36:10.8067726Z           "evidence": []
2026-06-13T10:36:10.8067801Z         },
2026-06-13T10:36:10.8067879Z         "unit": {
2026-06-13T10:36:10.8067969Z           "complete": true,
2026-06-13T10:36:10.8068050Z           "evidence": [
2026-06-13T10:36:10.8068130Z             {
2026-06-13T10:36:10.8068246Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T10:36:10.8068331Z               "line": 402
2026-06-13T10:36:10.8068407Z             }
2026-06-13T10:36:10.8068474Z           ]
2026-06-13T10:36:10.8068561Z         }
2026-06-13T10:36:10.8068641Z       }
2026-06-13T10:36:10.8068721Z     },
2026-06-13T10:36:10.8068797Z     {
2026-06-13T10:36:10.8068878Z       "id": "REQ-NET-3",
2026-06-13T10:36:10.8069143Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-13T10:36:10.8069240Z       "requiredStages": [
2026-06-13T10:36:10.8069320Z         "impl",
2026-06-13T10:36:10.8069400Z         "unit"
2026-06-13T10:36:10.8069482Z       ],
2026-06-13T10:36:10.8069578Z       "stages": {
2026-06-13T10:36:10.8069654Z         "doc": {
2026-06-13T10:36:10.8069743Z           "complete": false,
2026-06-13T10:36:10.8069830Z           "evidence": []
2026-06-13T10:36:10.8069911Z         },
2026-06-13T10:36:10.8069992Z         "impl": {
2026-06-13T10:36:10.8070083Z           "complete": true,
2026-06-13T10:36:10.8070169Z           "evidence": [
2026-06-13T10:36:10.8070249Z             {
2026-06-13T10:36:10.8070373Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.8070455Z               "line": 39
2026-06-13T10:36:10.8070545Z             },
2026-06-13T10:36:10.8070617Z             {
2026-06-13T10:36:10.8070741Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.8070827Z               "line": 182
2026-06-13T10:36:10.8070907Z             },
2026-06-13T10:36:10.8070983Z             {
2026-06-13T10:36:10.8071095Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T10:36:10.8071184Z               "line": 333
2026-06-13T10:36:10.8071270Z             },
2026-06-13T10:36:10.8071356Z             {
2026-06-13T10:36:10.8071476Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T10:36:10.8071555Z               "line": 36
2026-06-13T10:36:10.8071640Z             },
2026-06-13T10:36:10.8071722Z             {
2026-06-13T10:36:10.8071858Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8071943Z               "line": 158
2026-06-13T10:36:10.8072025Z             },
2026-06-13T10:36:10.8072107Z             {
2026-06-13T10:36:10.8072229Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8072320Z               "line": 212
2026-06-13T10:36:10.8072402Z             },
2026-06-13T10:36:10.8072483Z             {
2026-06-13T10:36:10.8072591Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8072674Z               "line": 233
2026-06-13T10:36:10.8072760Z             },
2026-06-13T10:36:10.8072841Z             {
2026-06-13T10:36:10.8072964Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8073051Z               "line": 291
2026-06-13T10:36:10.8073130Z             },
2026-06-13T10:36:10.8073211Z             {
2026-06-13T10:36:10.8073337Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8073431Z               "line": 310
2026-06-13T10:36:10.8073613Z             },
2026-06-13T10:36:10.8073704Z             {
2026-06-13T10:36:10.8073822Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8073913Z               "line": 348
2026-06-13T10:36:10.8074000Z             },
2026-06-13T10:36:10.8074080Z             {
2026-06-13T10:36:10.8074202Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8074288Z               "line": 393
2026-06-13T10:36:10.8074374Z             },
2026-06-13T10:36:10.8074453Z             {
2026-06-13T10:36:10.8074572Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8074663Z               "line": 406
2026-06-13T10:36:10.8074858Z             },
2026-06-13T10:36:10.8074945Z             {
2026-06-13T10:36:10.8075069Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T10:36:10.8075163Z               "line": 29
2026-06-13T10:36:10.8075245Z             },
2026-06-13T10:36:10.8075330Z             {
2026-06-13T10:36:10.8075459Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T10:36:10.8075546Z               "line": 72
2026-06-13T10:36:10.8075627Z             },
2026-06-13T10:36:10.8075707Z             {
2026-06-13T10:36:10.8075826Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T10:36:10.8075913Z               "line": 123
2026-06-13T10:36:10.8076002Z             }
2026-06-13T10:36:10.8076088Z           ]
2026-06-13T10:36:10.8076170Z         },
2026-06-13T10:36:10.8076252Z         "int": {
2026-06-13T10:36:10.8076345Z           "complete": false,
2026-06-13T10:36:10.8076437Z           "evidence": []
2026-06-13T10:36:10.8076514Z         },
2026-06-13T10:36:10.8076609Z         "unit": {
2026-06-13T10:36:10.8076704Z           "complete": true,
2026-06-13T10:36:10.8076790Z           "evidence": [
2026-06-13T10:36:10.8076877Z             {
2026-06-13T10:36:10.8076993Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T10:36:10.8077083Z               "line": 223
2026-06-13T10:36:10.8077170Z             },
2026-06-13T10:36:10.8077257Z             {
2026-06-13T10:36:10.8077375Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T10:36:10.8077465Z               "line": 351
2026-06-13T10:36:10.8077552Z             },
2026-06-13T10:36:10.8077628Z             {
2026-06-13T10:36:10.8077746Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T10:36:10.8077829Z               "line": 502
2026-06-13T10:36:10.8077914Z             },
2026-06-13T10:36:10.8078004Z             {
2026-06-13T10:36:10.8078119Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T10:36:10.8078210Z               "line": 93
2026-06-13T10:36:10.8078300Z             },
2026-06-13T10:36:10.8078385Z             {
2026-06-13T10:36:10.8078491Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T10:36:10.8078586Z               "line": 142
2026-06-13T10:36:10.8078672Z             },
2026-06-13T10:36:10.8078749Z             {
2026-06-13T10:36:10.8078872Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T10:36:10.8079044Z               "line": 315
2026-06-13T10:36:10.8079131Z             },
2026-06-13T10:36:10.8079210Z             {
2026-06-13T10:36:10.8079334Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T10:36:10.8079434Z               "line": 355
2026-06-13T10:36:10.8079514Z             },
2026-06-13T10:36:10.8079598Z             {
2026-06-13T10:36:10.8079713Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T10:36:10.8079809Z               "line": 494
2026-06-13T10:36:10.8079894Z             }
2026-06-13T10:36:10.8079979Z           ]
2026-06-13T10:36:10.8080066Z         }
2026-06-13T10:36:10.8080147Z       }
2026-06-13T10:36:10.8080232Z     },
2026-06-13T10:36:10.8080313Z     {
2026-06-13T10:36:10.8080414Z       "id": "REQ-NODE-IDENTITY",
2026-06-13T10:36:10.8080638Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-13T10:36:10.8080843Z       "requiredStages": [
2026-06-13T10:36:10.8080933Z         "impl",
2026-06-13T10:36:10.8081016Z         "unit"
2026-06-13T10:36:10.8081105Z       ],
2026-06-13T10:36:10.8081181Z       "stages": {
2026-06-13T10:36:10.8081262Z         "doc": {
2026-06-13T10:36:10.8081359Z           "complete": false,
2026-06-13T10:36:10.8081453Z           "evidence": []
2026-06-13T10:36:10.8081572Z         },
2026-06-13T10:36:10.8081655Z         "impl": {
2026-06-13T10:36:10.8081749Z           "complete": true,
2026-06-13T10:36:10.8081835Z           "evidence": [
2026-06-13T10:36:10.8081921Z             {
2026-06-13T10:36:10.8082045Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T10:36:10.8082234Z               "line": 60
2026-06-13T10:36:10.8082320Z             },
2026-06-13T10:36:10.8082400Z             {
2026-06-13T10:36:10.8082517Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T10:36:10.8082604Z               "line": 68
2026-06-13T10:36:10.8082695Z             },
2026-06-13T10:36:10.8082790Z             {
2026-06-13T10:36:10.8082899Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T10:36:10.8082991Z               "line": 86
2026-06-13T10:36:10.8083072Z             },
2026-06-13T10:36:10.8083156Z             {
2026-06-13T10:36:10.8083272Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T10:36:10.8083362Z               "line": 120
2026-06-13T10:36:10.8083452Z             },
2026-06-13T10:36:10.8083533Z             {
2026-06-13T10:36:10.8083653Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T10:36:10.8083739Z               "line": 127
2026-06-13T10:36:10.8083829Z             },
2026-06-13T10:36:10.8083911Z             {
2026-06-13T10:36:10.8084024Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T10:36:10.8084115Z               "line": 143
2026-06-13T10:36:10.8084198Z             },
2026-06-13T10:36:10.8084283Z             {
2026-06-13T10:36:10.8084397Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-13T10:36:10.8084493Z               "line": 16
2026-06-13T10:36:10.8084574Z             }
2026-06-13T10:36:10.8084654Z           ]
2026-06-13T10:36:10.8084739Z         },
2026-06-13T10:36:10.8084820Z         "int": {
2026-06-13T10:36:10.8084915Z           "complete": false,
2026-06-13T10:36:10.8085004Z           "evidence": []
2026-06-13T10:36:10.8085089Z         },
2026-06-13T10:36:10.8085170Z         "unit": {
2026-06-13T10:36:10.8085267Z           "complete": true,
2026-06-13T10:36:10.8085351Z           "evidence": [
2026-06-13T10:36:10.8085427Z             {
2026-06-13T10:36:10.8085548Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T10:36:10.8085643Z               "line": 199
2026-06-13T10:36:10.8085723Z             },
2026-06-13T10:36:10.8085805Z             {
2026-06-13T10:36:10.8085924Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T10:36:10.8086014Z               "line": 218
2026-06-13T10:36:10.8086096Z             },
2026-06-13T10:36:10.8086173Z             {
2026-06-13T10:36:10.8086291Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T10:36:10.8086377Z               "line": 234
2026-06-13T10:36:10.8086449Z             },
2026-06-13T10:36:10.8086530Z             {
2026-06-13T10:36:10.8086653Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T10:36:10.8086735Z               "line": 256
2026-06-13T10:36:10.8086812Z             },
2026-06-13T10:36:10.8086891Z             {
2026-06-13T10:36:10.8087011Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-13T10:36:10.8087088Z               "line": 124
2026-06-13T10:36:10.8087174Z             },
2026-06-13T10:36:10.8087264Z             {
2026-06-13T10:36:10.8087375Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-13T10:36:10.8087470Z               "line": 140
2026-06-13T10:36:10.8087553Z             },
2026-06-13T10:36:10.8087630Z             {
2026-06-13T10:36:10.8087740Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-13T10:36:10.8087902Z               "line": 155
2026-06-13T10:36:10.8087992Z             }
2026-06-13T10:36:10.8088069Z           ]
2026-06-13T10:36:10.8088150Z         }
2026-06-13T10:36:10.8088225Z       }
2026-06-13T10:36:10.8088306Z     },
2026-06-13T10:36:10.8088384Z     {
2026-06-13T10:36:10.8088474Z       "id": "REQ-NOTIF-1",
2026-06-13T10:36:10.8088832Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-13T10:36:10.8088912Z       "requiredStages": [
2026-06-13T10:36:10.8089061Z         "impl",
2026-06-13T10:36:10.8089146Z         "unit",
2026-06-13T10:36:10.8089232Z         "int"
2026-06-13T10:36:10.8089418Z       ],
2026-06-13T10:36:10.8089499Z       "stages": {
2026-06-13T10:36:10.8089585Z         "doc": {
2026-06-13T10:36:10.8089672Z           "complete": false,
2026-06-13T10:36:10.8089761Z           "evidence": []
2026-06-13T10:36:10.8089841Z         },
2026-06-13T10:36:10.8089932Z         "impl": {
2026-06-13T10:36:10.8090017Z           "complete": true,
2026-06-13T10:36:10.8090102Z           "evidence": [
2026-06-13T10:36:10.8090187Z             {
2026-06-13T10:36:10.8090297Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.8090379Z               "line": 514
2026-06-13T10:36:10.8090459Z             },
2026-06-13T10:36:10.8090539Z             {
2026-06-13T10:36:10.8090650Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8090736Z               "line": 30
2026-06-13T10:36:10.8090821Z             },
2026-06-13T10:36:10.8090902Z             {
2026-06-13T10:36:10.8091017Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8091107Z               "line": 69
2026-06-13T10:36:10.8091183Z             },
2026-06-13T10:36:10.8091270Z             {
2026-06-13T10:36:10.8091379Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8091460Z               "line": 93
2026-06-13T10:36:10.8091541Z             },
2026-06-13T10:36:10.8091613Z             {
2026-06-13T10:36:10.8091727Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8091817Z               "line": 107
2026-06-13T10:36:10.8091910Z             },
2026-06-13T10:36:10.8091994Z             {
2026-06-13T10:36:10.8092099Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8092181Z               "line": 142
2026-06-13T10:36:10.8092262Z             },
2026-06-13T10:36:10.8092347Z             {
2026-06-13T10:36:10.8092462Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8092553Z               "line": 187
2026-06-13T10:36:10.8092638Z             },
2026-06-13T10:36:10.8092722Z             {
2026-06-13T10:36:10.8092827Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8092913Z               "line": 258
2026-06-13T10:36:10.8092988Z             },
2026-06-13T10:36:10.8093073Z             {
2026-06-13T10:36:10.8093183Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8093260Z               "line": 372
2026-06-13T10:36:10.8093350Z             },
2026-06-13T10:36:10.8093426Z             {
2026-06-13T10:36:10.8093541Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8093632Z               "line": 479
2026-06-13T10:36:10.8093716Z             },
2026-06-13T10:36:10.8093809Z             {
2026-06-13T10:36:10.8093927Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T10:36:10.8094017Z               "line": 24
2026-06-13T10:36:10.8094098Z             },
2026-06-13T10:36:10.8094190Z             {
2026-06-13T10:36:10.8094308Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T10:36:10.8094404Z               "line": 34
2026-06-13T10:36:10.8094495Z             },
2026-06-13T10:36:10.8094580Z             {
2026-06-13T10:36:10.8094699Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T10:36:10.8094786Z               "line": 60
2026-06-13T10:36:10.8094871Z             },
2026-06-13T10:36:10.8095053Z             {
2026-06-13T10:36:10.8095177Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T10:36:10.8095270Z               "line": 82
2026-06-13T10:36:10.8095356Z             },
2026-06-13T10:36:10.8095447Z             {
2026-06-13T10:36:10.8095564Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T10:36:10.8095654Z               "line": 94
2026-06-13T10:36:10.8095740Z             },
2026-06-13T10:36:10.8095827Z             {
2026-06-13T10:36:10.8095949Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T10:36:10.8096036Z               "line": 96
2026-06-13T10:36:10.8096117Z             },
2026-06-13T10:36:10.8096274Z             {
2026-06-13T10:36:10.8096409Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-13T10:36:10.8096494Z               "line": 44
2026-06-13T10:36:10.8096579Z             },
2026-06-13T10:36:10.8096666Z             {
2026-06-13T10:36:10.8096784Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T10:36:10.8096875Z               "line": 20
2026-06-13T10:36:10.8096956Z             },
2026-06-13T10:36:10.8097043Z             {
2026-06-13T10:36:10.8097157Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T10:36:10.8097247Z               "line": 30
2026-06-13T10:36:10.8097334Z             },
2026-06-13T10:36:10.8097414Z             {
2026-06-13T10:36:10.8097523Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T10:36:10.8097610Z               "line": 50
2026-06-13T10:36:10.8097706Z             },
2026-06-13T10:36:10.8097785Z             {
2026-06-13T10:36:10.8097901Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8098006Z               "line": 28
2026-06-13T10:36:10.8098091Z             },
2026-06-13T10:36:10.8098171Z             {
2026-06-13T10:36:10.8098280Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8098377Z               "line": 126
2026-06-13T10:36:10.8098462Z             },
2026-06-13T10:36:10.8098552Z             {
2026-06-13T10:36:10.8098667Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8098753Z               "line": 161
2026-06-13T10:36:10.8098838Z             },
2026-06-13T10:36:10.8098920Z             {
2026-06-13T10:36:10.8099114Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8099206Z               "line": 202
2026-06-13T10:36:10.8099288Z             },
2026-06-13T10:36:10.8099372Z             {
2026-06-13T10:36:10.8099477Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8099564Z               "line": 213
2026-06-13T10:36:10.8099649Z             },
2026-06-13T10:36:10.8099740Z             {
2026-06-13T10:36:10.8099855Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8099941Z               "line": 238
2026-06-13T10:36:10.8100025Z             },
2026-06-13T10:36:10.8100107Z             {
2026-06-13T10:36:10.8100218Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8100311Z               "line": 261
2026-06-13T10:36:10.8100397Z             },
2026-06-13T10:36:10.8100482Z             {
2026-06-13T10:36:10.8100596Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.8100685Z               "line": 63
2026-06-13T10:36:10.8100775Z             }
2026-06-13T10:36:10.8100857Z           ]
2026-06-13T10:36:10.8100939Z         },
2026-06-13T10:36:10.8101029Z         "int": {
2026-06-13T10:36:10.8101124Z           "complete": true,
2026-06-13T10:36:10.8101210Z           "evidence": [
2026-06-13T10:36:10.8101296Z             {
2026-06-13T10:36:10.8101419Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T10:36:10.8101516Z               "line": 285
2026-06-13T10:36:10.8101606Z             },
2026-06-13T10:36:10.8101691Z             {
2026-06-13T10:36:10.8101812Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-13T10:36:10.8101897Z               "line": 102
2026-06-13T10:36:10.8101982Z             },
2026-06-13T10:36:10.8102178Z             {
2026-06-13T10:36:10.8102316Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8102407Z               "line": 614
2026-06-13T10:36:10.8102488Z             },
2026-06-13T10:36:10.8102573Z             {
2026-06-13T10:36:10.8102692Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8102789Z               "line": 1007
2026-06-13T10:36:10.8102869Z             }
2026-06-13T10:36:10.8102955Z           ]
2026-06-13T10:36:10.8105512Z         },
2026-06-13T10:36:10.8105623Z         "unit": {
2026-06-13T10:36:10.8105723Z           "complete": true,
2026-06-13T10:36:10.8105812Z           "evidence": [
2026-06-13T10:36:10.8106031Z             {
2026-06-13T10:36:10.8106162Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8106257Z               "line": 572
2026-06-13T10:36:10.8106334Z             },
2026-06-13T10:36:10.8106416Z             {
2026-06-13T10:36:10.8106538Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8106620Z               "line": 621
2026-06-13T10:36:10.8106715Z             },
2026-06-13T10:36:10.8106787Z             {
2026-06-13T10:36:10.8106896Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8106987Z               "line": 724
2026-06-13T10:36:10.8107068Z             },
2026-06-13T10:36:10.8107143Z             {
2026-06-13T10:36:10.8107245Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8107340Z               "line": 756
2026-06-13T10:36:10.8107412Z             },
2026-06-13T10:36:10.8107492Z             {
2026-06-13T10:36:10.8107598Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8107683Z               "line": 824
2026-06-13T10:36:10.8107759Z             },
2026-06-13T10:36:10.8107836Z             {
2026-06-13T10:36:10.8107946Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8108030Z               "line": 882
2026-06-13T10:36:10.8108112Z             },
2026-06-13T10:36:10.8108204Z             {
2026-06-13T10:36:10.8108317Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8108408Z               "line": 1157
2026-06-13T10:36:10.8108485Z             },
2026-06-13T10:36:10.8108562Z             {
2026-06-13T10:36:10.8108688Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T10:36:10.8108774Z               "line": 157
2026-06-13T10:36:10.8108869Z             },
2026-06-13T10:36:10.8109040Z             {
2026-06-13T10:36:10.8109165Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T10:36:10.8109246Z               "line": 250
2026-06-13T10:36:10.8109336Z             },
2026-06-13T10:36:10.8109417Z             {
2026-06-13T10:36:10.8109538Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T10:36:10.8109624Z               "line": 273
2026-06-13T10:36:10.8109708Z             },
2026-06-13T10:36:10.8109790Z             {
2026-06-13T10:36:10.8109914Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T10:36:10.8109994Z               "line": 341
2026-06-13T10:36:10.8110075Z             },
2026-06-13T10:36:10.8110148Z             {
2026-06-13T10:36:10.8110266Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T10:36:10.8110352Z               "line": 373
2026-06-13T10:36:10.8110434Z             },
2026-06-13T10:36:10.8110515Z             {
2026-06-13T10:36:10.8110633Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-13T10:36:10.8110724Z               "line": 131
2026-06-13T10:36:10.8110802Z             },
2026-06-13T10:36:10.8110886Z             {
2026-06-13T10:36:10.8110999Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T10:36:10.8111095Z               "line": 72
2026-06-13T10:36:10.8111175Z             },
2026-06-13T10:36:10.8111255Z             {
2026-06-13T10:36:10.8111379Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T10:36:10.8111460Z               "line": 97
2026-06-13T10:36:10.8111636Z             },
2026-06-13T10:36:10.8111722Z             {
2026-06-13T10:36:10.8111827Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8111903Z               "line": 379
2026-06-13T10:36:10.8111979Z             },
2026-06-13T10:36:10.8112062Z             {
2026-06-13T10:36:10.8112166Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8112265Z               "line": 417
2026-06-13T10:36:10.8112347Z             },
2026-06-13T10:36:10.8112428Z             {
2026-06-13T10:36:10.8112532Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8112618Z               "line": 433
2026-06-13T10:36:10.8112809Z             },
2026-06-13T10:36:10.8112881Z             {
2026-06-13T10:36:10.8112986Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8113077Z               "line": 472
2026-06-13T10:36:10.8113157Z             },
2026-06-13T10:36:10.8113238Z             {
2026-06-13T10:36:10.8113354Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8113443Z               "line": 489
2026-06-13T10:36:10.8113529Z             },
2026-06-13T10:36:10.8113611Z             {
2026-06-13T10:36:10.8113721Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8113810Z               "line": 517
2026-06-13T10:36:10.8113895Z             },
2026-06-13T10:36:10.8113977Z             {
2026-06-13T10:36:10.8114084Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T10:36:10.8114170Z               "line": 548
2026-06-13T10:36:10.8114255Z             },
2026-06-13T10:36:10.8114337Z             {
2026-06-13T10:36:10.8114456Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.8114551Z               "line": 534
2026-06-13T10:36:10.8114633Z             }
2026-06-13T10:36:10.8114718Z           ]
2026-06-13T10:36:10.8114799Z         }
2026-06-13T10:36:10.8114880Z       }
2026-06-13T10:36:10.8114962Z     },
2026-06-13T10:36:10.8115047Z     {
2026-06-13T10:36:10.8115142Z       "id": "REQ-NOTIF-2",
2026-06-13T10:36:10.8115410Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-13T10:36:10.8115505Z       "requiredStages": [
2026-06-13T10:36:10.8115587Z         "doc",
2026-06-13T10:36:10.8115672Z         "impl",
2026-06-13T10:36:10.8115753Z         "unit",
2026-06-13T10:36:10.8115839Z         "int"
2026-06-13T10:36:10.8115916Z       ],
2026-06-13T10:36:10.8116010Z       "stages": {
2026-06-13T10:36:10.8116096Z         "doc": {
2026-06-13T10:36:10.8116183Z           "complete": true,
2026-06-13T10:36:10.8116273Z           "evidence": [
2026-06-13T10:36:10.8116363Z             {
2026-06-13T10:36:10.8116462Z               "path": "CONTEXT.md",
2026-06-13T10:36:10.8116543Z               "line": 397
2026-06-13T10:36:10.8116628Z             },
2026-06-13T10:36:10.8116712Z             {
2026-06-13T10:36:10.8116812Z               "path": "docs/MANIFEST.md",
2026-06-13T10:36:10.8116904Z               "line": 62
2026-06-13T10:36:10.8116990Z             }
2026-06-13T10:36:10.8117074Z           ]
2026-06-13T10:36:10.8117156Z         },
2026-06-13T10:36:10.8117243Z         "impl": {
2026-06-13T10:36:10.8117342Z           "complete": true,
2026-06-13T10:36:10.8117423Z           "evidence": [
2026-06-13T10:36:10.8117509Z             {
2026-06-13T10:36:10.8117624Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8117718Z               "line": 287
2026-06-13T10:36:10.8117801Z             },
2026-06-13T10:36:10.8117876Z             {
2026-06-13T10:36:10.8117995Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8118081Z               "line": 301
2026-06-13T10:36:10.8118173Z             },
2026-06-13T10:36:10.8118252Z             {
2026-06-13T10:36:10.8118372Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8118468Z               "line": 326
2026-06-13T10:36:10.8118553Z             },
2026-06-13T10:36:10.8118653Z             {
2026-06-13T10:36:10.8118849Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.8119035Z               "line": 195
2026-06-13T10:36:10.8119122Z             },
2026-06-13T10:36:10.8119202Z             {
2026-06-13T10:36:10.8119324Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.8119410Z               "line": 72
2026-06-13T10:36:10.8119492Z             },
2026-06-13T10:36:10.8119572Z             {
2026-06-13T10:36:10.8119686Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8119774Z               "line": 1685
2026-06-13T10:36:10.8119855Z             },
2026-06-13T10:36:10.8119934Z             {
2026-06-13T10:36:10.8120140Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8120230Z               "line": 1734
2026-06-13T10:36:10.8120311Z             },
2026-06-13T10:36:10.8120398Z             {
2026-06-13T10:36:10.8120497Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8120587Z               "line": 1813
2026-06-13T10:36:10.8120675Z             },
2026-06-13T10:36:10.8120760Z             {
2026-06-13T10:36:10.8120865Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8120950Z               "line": 1852
2026-06-13T10:36:10.8121037Z             }
2026-06-13T10:36:10.8121117Z           ]
2026-06-13T10:36:10.8121198Z         },
2026-06-13T10:36:10.8121284Z         "int": {
2026-06-13T10:36:10.8121376Z           "complete": true,
2026-06-13T10:36:10.8121465Z           "evidence": [
2026-06-13T10:36:10.8121550Z             {
2026-06-13T10:36:10.8121669Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8121759Z               "line": 740
2026-06-13T10:36:10.8121858Z             },
2026-06-13T10:36:10.8121944Z             {
2026-06-13T10:36:10.8122054Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8122144Z               "line": 1160
2026-06-13T10:36:10.8122224Z             }
2026-06-13T10:36:10.8122316Z           ]
2026-06-13T10:36:10.8122397Z         },
2026-06-13T10:36:10.8122487Z         "unit": {
2026-06-13T10:36:10.8122583Z           "complete": true,
2026-06-13T10:36:10.8122669Z           "evidence": [
2026-06-13T10:36:10.8122750Z             {
2026-06-13T10:36:10.8122859Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8122951Z               "line": 1006
2026-06-13T10:36:10.8123031Z             },
2026-06-13T10:36:10.8123116Z             {
2026-06-13T10:36:10.8123227Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8123313Z               "line": 1074
2026-06-13T10:36:10.8123398Z             },
2026-06-13T10:36:10.8123474Z             {
2026-06-13T10:36:10.8123576Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8123655Z               "line": 6005
2026-06-13T10:36:10.8123741Z             },
2026-06-13T10:36:10.8123822Z             {
2026-06-13T10:36:10.8123919Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8124008Z               "line": 6060
2026-06-13T10:36:10.8124094Z             }
2026-06-13T10:36:10.8124176Z           ]
2026-06-13T10:36:10.8124257Z         }
2026-06-13T10:36:10.8124332Z       }
2026-06-13T10:36:10.8124417Z     },
2026-06-13T10:36:10.8124498Z     {
2026-06-13T10:36:10.8124579Z       "id": "REQ-PAIR-1",
2026-06-13T10:36:10.8124677Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-13T10:36:10.8124772Z       "requiredStages": [
2026-06-13T10:36:10.8124849Z         "impl",
2026-06-13T10:36:10.8124926Z         "unit",
2026-06-13T10:36:10.8125006Z         "int"
2026-06-13T10:36:10.8125087Z       ],
2026-06-13T10:36:10.8125169Z       "stages": {
2026-06-13T10:36:10.8125245Z         "doc": {
2026-06-13T10:36:10.8125344Z           "complete": false,
2026-06-13T10:36:10.8125425Z           "evidence": []
2026-06-13T10:36:10.8125499Z         },
2026-06-13T10:36:10.8125584Z         "impl": {
2026-06-13T10:36:10.8125664Z           "complete": true,
2026-06-13T10:36:10.8125750Z           "evidence": [
2026-06-13T10:36:10.8125832Z             {
2026-06-13T10:36:10.8126065Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.8126152Z               "line": 27
2026-06-13T10:36:10.8126236Z             },
2026-06-13T10:36:10.8126317Z             {
2026-06-13T10:36:10.8126433Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.8126523Z               "line": 88
2026-06-13T10:36:10.8126603Z             },
2026-06-13T10:36:10.8126680Z             {
2026-06-13T10:36:10.8126800Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.8126880Z               "line": 110
2026-06-13T10:36:10.8126960Z             },
2026-06-13T10:36:10.8127113Z             {
2026-06-13T10:36:10.8127244Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.8127324Z               "line": 153
2026-06-13T10:36:10.8127411Z             },
2026-06-13T10:36:10.8127488Z             {
2026-06-13T10:36:10.8127611Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.8127706Z               "line": 182
2026-06-13T10:36:10.8127793Z             },
2026-06-13T10:36:10.8127874Z             {
2026-06-13T10:36:10.8127997Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T10:36:10.8128074Z               "line": 29
2026-06-13T10:36:10.8128150Z             },
2026-06-13T10:36:10.8128231Z             {
2026-06-13T10:36:10.8128370Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T10:36:10.8128446Z               "line": 31
2026-06-13T10:36:10.8128522Z             },
2026-06-13T10:36:10.8128598Z             {
2026-06-13T10:36:10.8128733Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8128827Z               "line": 44
2026-06-13T10:36:10.8128903Z             },
2026-06-13T10:36:10.8129057Z             {
2026-06-13T10:36:10.8129185Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8129276Z               "line": 171
2026-06-13T10:36:10.8129362Z             },
2026-06-13T10:36:10.8129447Z             {
2026-06-13T10:36:10.8129571Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8129653Z               "line": 376
2026-06-13T10:36:10.8129738Z             }
2026-06-13T10:36:10.8129822Z           ]
2026-06-13T10:36:10.8129903Z         },
2026-06-13T10:36:10.8129989Z         "int": {
2026-06-13T10:36:10.8130077Z           "complete": true,
2026-06-13T10:36:10.8130165Z           "evidence": [
2026-06-13T10:36:10.8130246Z             {
2026-06-13T10:36:10.8130371Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8130452Z               "line": 575
2026-06-13T10:36:10.8130537Z             },
2026-06-13T10:36:10.8130615Z             {
2026-06-13T10:36:10.8130739Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8130823Z               "line": 792
2026-06-13T10:36:10.8130905Z             }
2026-06-13T10:36:10.8130991Z           ]
2026-06-13T10:36:10.8131077Z         },
2026-06-13T10:36:10.8131167Z         "unit": {
2026-06-13T10:36:10.8131249Z           "complete": true,
2026-06-13T10:36:10.8131335Z           "evidence": [
2026-06-13T10:36:10.8131420Z             {
2026-06-13T10:36:10.8131545Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.8131631Z               "line": 236
2026-06-13T10:36:10.8131710Z             },
2026-06-13T10:36:10.8131796Z             {
2026-06-13T10:36:10.8131917Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T10:36:10.8132002Z               "line": 349
2026-06-13T10:36:10.8132082Z             },
2026-06-13T10:36:10.8132167Z             {
2026-06-13T10:36:10.8132287Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T10:36:10.8132375Z               "line": 194
2026-06-13T10:36:10.8132456Z             },
2026-06-13T10:36:10.8132527Z             {
2026-06-13T10:36:10.8132648Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T10:36:10.8132847Z               "line": 216
2026-06-13T10:36:10.8132929Z             },
2026-06-13T10:36:10.8133009Z             {
2026-06-13T10:36:10.8133133Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T10:36:10.8133220Z               "line": 230
2026-06-13T10:36:10.8133301Z             },
2026-06-13T10:36:10.8133385Z             {
2026-06-13T10:36:10.8133511Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T10:36:10.8133581Z               "line": 242
2026-06-13T10:36:10.8133658Z             },
2026-06-13T10:36:10.8133739Z             {
2026-06-13T10:36:10.8133859Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T10:36:10.8134517Z               "line": 256
2026-06-13T10:36:10.8134601Z             },
2026-06-13T10:36:10.8134683Z             {
2026-06-13T10:36:10.8134799Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T10:36:10.8134883Z               "line": 270
2026-06-13T10:36:10.8134963Z             },
2026-06-13T10:36:10.8135034Z             {
2026-06-13T10:36:10.8135154Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T10:36:10.8135232Z               "line": 277
2026-06-13T10:36:10.8135318Z             },
2026-06-13T10:36:10.8135399Z             {
2026-06-13T10:36:10.8135524Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T10:36:10.8135609Z               "line": 295
2026-06-13T10:36:10.8135695Z             },
2026-06-13T10:36:10.8135777Z             {
2026-06-13T10:36:10.8135890Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8135980Z               "line": 968
2026-06-13T10:36:10.8136063Z             },
2026-06-13T10:36:10.8136148Z             {
2026-06-13T10:36:10.8136267Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8136358Z               "line": 1051
2026-06-13T10:36:10.8136439Z             },
2026-06-13T10:36:10.8136520Z             {
2026-06-13T10:36:10.8136639Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8136726Z               "line": 1121
2026-06-13T10:36:10.8136801Z             },
2026-06-13T10:36:10.8136877Z             {
2026-06-13T10:36:10.8137008Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8137088Z               "line": 1182
2026-06-13T10:36:10.8137163Z             },
2026-06-13T10:36:10.8137245Z             {
2026-06-13T10:36:10.8137370Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8137454Z               "line": 1238
2026-06-13T10:36:10.8137539Z             },
2026-06-13T10:36:10.8137620Z             {
2026-06-13T10:36:10.8137748Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8137833Z               "line": 1457
2026-06-13T10:36:10.8137918Z             }
2026-06-13T10:36:10.8138000Z           ]
2026-06-13T10:36:10.8138086Z         }
2026-06-13T10:36:10.8138162Z       }
2026-06-13T10:36:10.8138243Z     },
2026-06-13T10:36:10.8138324Z     {
2026-06-13T10:36:10.8138415Z       "id": "REQ-PAIR-2",
2026-06-13T10:36:10.8138552Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-13T10:36:10.8138639Z       "requiredStages": [],
2026-06-13T10:36:10.8138720Z       "stages": {
2026-06-13T10:36:10.8138805Z         "doc": {
2026-06-13T10:36:10.8138896Z           "complete": false,
2026-06-13T10:36:10.8139077Z           "evidence": []
2026-06-13T10:36:10.8139158Z         },
2026-06-13T10:36:10.8139240Z         "impl": {
2026-06-13T10:36:10.8139335Z           "complete": false,
2026-06-13T10:36:10.8139435Z           "evidence": []
2026-06-13T10:36:10.8139511Z         },
2026-06-13T10:36:10.8139607Z         "int": {
2026-06-13T10:36:10.8139702Z           "complete": false,
2026-06-13T10:36:10.8139792Z           "evidence": []
2026-06-13T10:36:10.8139870Z         },
2026-06-13T10:36:10.8139946Z         "unit": {
2026-06-13T10:36:10.8140040Z           "complete": false,
2026-06-13T10:36:10.8140126Z           "evidence": []
2026-06-13T10:36:10.8140308Z         }
2026-06-13T10:36:10.8140392Z       }
2026-06-13T10:36:10.8140463Z     },
2026-06-13T10:36:10.8140545Z     {
2026-06-13T10:36:10.8140637Z       "id": "REQ-PAIR-3",
2026-06-13T10:36:10.8140778Z       "title": "Fetch current pairing code from any paired node",
2026-06-13T10:36:10.8140869Z       "requiredStages": [
2026-06-13T10:36:10.8140960Z         "impl",
2026-06-13T10:36:10.8141040Z         "unit"
2026-06-13T10:36:10.8141117Z       ],
2026-06-13T10:36:10.8141204Z       "stages": {
2026-06-13T10:36:10.8141279Z         "doc": {
2026-06-13T10:36:10.8141374Z           "complete": false,
2026-06-13T10:36:10.8141455Z           "evidence": []
2026-06-13T10:36:10.8141622Z         },
2026-06-13T10:36:10.8141712Z         "impl": {
2026-06-13T10:36:10.8141805Z           "complete": true,
2026-06-13T10:36:10.8141886Z           "evidence": [
2026-06-13T10:36:10.8141956Z             {
2026-06-13T10:36:10.8142066Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8142153Z               "line": 2534
2026-06-13T10:36:10.8142233Z             },
2026-06-13T10:36:10.8142309Z             {
2026-06-13T10:36:10.8142405Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8142501Z               "line": 2603
2026-06-13T10:36:10.8142576Z             },
2026-06-13T10:36:10.8142656Z             {
2026-06-13T10:36:10.8142756Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8142847Z               "line": 2839
2026-06-13T10:36:10.8142926Z             }
2026-06-13T10:36:10.8143006Z           ]
2026-06-13T10:36:10.8143088Z         },
2026-06-13T10:36:10.8143169Z         "int": {
2026-06-13T10:36:10.8143278Z           "complete": false,
2026-06-13T10:36:10.8143364Z           "evidence": []
2026-06-13T10:36:10.8143456Z         },
2026-06-13T10:36:10.8143546Z         "unit": {
2026-06-13T10:36:10.8143636Z           "complete": true,
2026-06-13T10:36:10.8143727Z           "evidence": [
2026-06-13T10:36:10.8143803Z             {
2026-06-13T10:36:10.8143917Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8144008Z               "line": 7545
2026-06-13T10:36:10.8144095Z             },
2026-06-13T10:36:10.8144180Z             {
2026-06-13T10:36:10.8144279Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8144371Z               "line": 7760
2026-06-13T10:36:10.8144452Z             },
2026-06-13T10:36:10.8144542Z             {
2026-06-13T10:36:10.8144642Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8144734Z               "line": 8357
2026-06-13T10:36:10.8144823Z             },
2026-06-13T10:36:10.8144909Z             {
2026-06-13T10:36:10.8145015Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8145109Z               "line": 8376
2026-06-13T10:36:10.8145195Z             },
2026-06-13T10:36:10.8145277Z             {
2026-06-13T10:36:10.8145383Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8145476Z               "line": 8400
2026-06-13T10:36:10.8145556Z             },
2026-06-13T10:36:10.8145647Z             {
2026-06-13T10:36:10.8145746Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8145840Z               "line": 8419
2026-06-13T10:36:10.8145926Z             },
2026-06-13T10:36:10.8146013Z             {
2026-06-13T10:36:10.8146112Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8146203Z               "line": 8432
2026-06-13T10:36:10.8146284Z             },
2026-06-13T10:36:10.8146370Z             {
2026-06-13T10:36:10.8146474Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8146565Z               "line": 8441
2026-06-13T10:36:10.8146647Z             }
2026-06-13T10:36:10.8146737Z           ]
2026-06-13T10:36:10.8146817Z         }
2026-06-13T10:36:10.8146904Z       }
2026-06-13T10:36:10.8146981Z     },
2026-06-13T10:36:10.8147061Z     {
2026-06-13T10:36:10.8147152Z       "id": "REQ-PAIR-4",
2026-06-13T10:36:10.8147272Z       "title": "Subnet naming on first pairing",
2026-06-13T10:36:10.8147452Z       "requiredStages": [
2026-06-13T10:36:10.8147539Z         "impl",
2026-06-13T10:36:10.8147624Z         "unit"
2026-06-13T10:36:10.8147704Z       ],
2026-06-13T10:36:10.8147796Z       "stages": {
2026-06-13T10:36:10.8147877Z         "doc": {
2026-06-13T10:36:10.8147972Z           "complete": false,
2026-06-13T10:36:10.8148066Z           "evidence": []
2026-06-13T10:36:10.8148147Z         },
2026-06-13T10:36:10.8148233Z         "impl": {
2026-06-13T10:36:10.8148327Z           "complete": true,
2026-06-13T10:36:10.8148416Z           "evidence": [
2026-06-13T10:36:10.8148498Z             {
2026-06-13T10:36:10.8148618Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T10:36:10.8148778Z               "line": 174
2026-06-13T10:36:10.8148861Z             }
2026-06-13T10:36:10.8149041Z           ]
2026-06-13T10:36:10.8149122Z         },
2026-06-13T10:36:10.8149209Z         "int": {
2026-06-13T10:36:10.8149304Z           "complete": false,
2026-06-13T10:36:10.8149394Z           "evidence": []
2026-06-13T10:36:10.8149486Z         },
2026-06-13T10:36:10.8149566Z         "unit": {
2026-06-13T10:36:10.8149661Z           "complete": true,
2026-06-13T10:36:10.8149747Z           "evidence": [
2026-06-13T10:36:10.8149838Z             {
2026-06-13T10:36:10.8149966Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8150066Z               "line": 1294
2026-06-13T10:36:10.8150149Z             }
2026-06-13T10:36:10.8150228Z           ]
2026-06-13T10:36:10.8150315Z         }
2026-06-13T10:36:10.8150396Z       }
2026-06-13T10:36:10.8150482Z     },
2026-06-13T10:36:10.8150562Z     {
2026-06-13T10:36:10.8150658Z       "id": "REQ-PAIR-5",
2026-06-13T10:36:10.8150971Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-13T10:36:10.8151062Z       "requiredStages": [
2026-06-13T10:36:10.8151154Z         "impl",
2026-06-13T10:36:10.8151234Z         "unit",
2026-06-13T10:36:10.8151319Z         "int"
2026-06-13T10:36:10.8151401Z       ],
2026-06-13T10:36:10.8151497Z       "stages": {
2026-06-13T10:36:10.8151582Z         "doc": {
2026-06-13T10:36:10.8151672Z           "complete": false,
2026-06-13T10:36:10.8151764Z           "evidence": []
2026-06-13T10:36:10.8151844Z         },
2026-06-13T10:36:10.8151934Z         "impl": {
2026-06-13T10:36:10.8152020Z           "complete": true,
2026-06-13T10:36:10.8152111Z           "evidence": [
2026-06-13T10:36:10.8152197Z             {
2026-06-13T10:36:10.8152321Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T10:36:10.8152412Z               "line": 44
2026-06-13T10:36:10.8152492Z             },
2026-06-13T10:36:10.8152583Z             {
2026-06-13T10:36:10.8152708Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T10:36:10.8152798Z               "line": 96
2026-06-13T10:36:10.8152884Z             },
2026-06-13T10:36:10.8152965Z             {
2026-06-13T10:36:10.8153094Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T10:36:10.8153183Z               "line": 107
2026-06-13T10:36:10.8153268Z             },
2026-06-13T10:36:10.8153354Z             {
2026-06-13T10:36:10.8153472Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T10:36:10.8153566Z               "line": 124
2026-06-13T10:36:10.8153643Z             },
2026-06-13T10:36:10.8153734Z             {
2026-06-13T10:36:10.8153852Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T10:36:10.8153938Z               "line": 155
2026-06-13T10:36:10.8154025Z             },
2026-06-13T10:36:10.8154101Z             {
2026-06-13T10:36:10.8154215Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T10:36:10.8154302Z               "line": 195
2026-06-13T10:36:10.8154377Z             },
2026-06-13T10:36:10.8154458Z             {
2026-06-13T10:36:10.8154573Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T10:36:10.8154664Z               "line": 251
2026-06-13T10:36:10.8154745Z             },
2026-06-13T10:36:10.8154917Z             {
2026-06-13T10:36:10.8155059Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T10:36:10.8155145Z               "line": 33
2026-06-13T10:36:10.8155227Z             },
2026-06-13T10:36:10.8155304Z             {
2026-06-13T10:36:10.8155445Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T10:36:10.8155537Z               "line": 45
2026-06-13T10:36:10.8155623Z             },
2026-06-13T10:36:10.8155702Z             {
2026-06-13T10:36:10.8155827Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T10:36:10.8155909Z               "line": 59
2026-06-13T10:36:10.8156107Z             },
2026-06-13T10:36:10.8156188Z             {
2026-06-13T10:36:10.8156316Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8156400Z               "line": 376
2026-06-13T10:36:10.8156476Z             }
2026-06-13T10:36:10.8156553Z           ]
2026-06-13T10:36:10.8156640Z         },
2026-06-13T10:36:10.8156719Z         "int": {
2026-06-13T10:36:10.8156810Z           "complete": true,
2026-06-13T10:36:10.8156893Z           "evidence": [
2026-06-13T10:36:10.8156983Z             {
2026-06-13T10:36:10.8157110Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8157188Z               "line": 792
2026-06-13T10:36:10.8157268Z             },
2026-06-13T10:36:10.8157344Z             {
2026-06-13T10:36:10.8157464Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T10:36:10.8157546Z               "line": 342
2026-06-13T10:36:10.8157626Z             }
2026-06-13T10:36:10.8157707Z           ]
2026-06-13T10:36:10.8157803Z         },
2026-06-13T10:36:10.8157888Z         "unit": {
2026-06-13T10:36:10.8157983Z           "complete": true,
2026-06-13T10:36:10.8158079Z           "evidence": [
2026-06-13T10:36:10.8158156Z             {
2026-06-13T10:36:10.8158279Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T10:36:10.8158370Z               "line": 293
2026-06-13T10:36:10.8158447Z             },
2026-06-13T10:36:10.8158528Z             {
2026-06-13T10:36:10.8158655Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T10:36:10.8158736Z               "line": 304
2026-06-13T10:36:10.8158822Z             },
2026-06-13T10:36:10.8158901Z             {
2026-06-13T10:36:10.8159101Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T10:36:10.8159183Z               "line": 406
2026-06-13T10:36:10.8159277Z             },
2026-06-13T10:36:10.8159358Z             {
2026-06-13T10:36:10.8159506Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T10:36:10.8159601Z               "line": 72
2026-06-13T10:36:10.8159682Z             },
2026-06-13T10:36:10.8159755Z             {
2026-06-13T10:36:10.8159897Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T10:36:10.8159982Z               "line": 82
2026-06-13T10:36:10.8160065Z             },
2026-06-13T10:36:10.8160140Z             {
2026-06-13T10:36:10.8160274Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T10:36:10.8160365Z               "line": 100
2026-06-13T10:36:10.8160436Z             },
2026-06-13T10:36:10.8160517Z             {
2026-06-13T10:36:10.8160656Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T10:36:10.8160732Z               "line": 110
2026-06-13T10:36:10.8160812Z             },
2026-06-13T10:36:10.8160893Z             {
2026-06-13T10:36:10.8161029Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T10:36:10.8161108Z               "line": 125
2026-06-13T10:36:10.8161208Z             },
2026-06-13T10:36:10.8161286Z             {
2026-06-13T10:36:10.8161400Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8161489Z               "line": 1044
2026-06-13T10:36:10.8161564Z             },
2026-06-13T10:36:10.8161641Z             {
2026-06-13T10:36:10.8161865Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8161956Z               "line": 1110
2026-06-13T10:36:10.8162038Z             },
2026-06-13T10:36:10.8162118Z             {
2026-06-13T10:36:10.8162237Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8162314Z               "line": 1357
2026-06-13T10:36:10.8162395Z             }
2026-06-13T10:36:10.8162475Z           ]
2026-06-13T10:36:10.8162552Z         }
2026-06-13T10:36:10.8162638Z       }
2026-06-13T10:36:10.8162719Z     },
2026-06-13T10:36:10.8162800Z     {
2026-06-13T10:36:10.8162891Z       "id": "REQ-PAIR-6",
2026-06-13T10:36:10.8163254Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-13T10:36:10.8163353Z       "requiredStages": [
2026-06-13T10:36:10.8163434Z         "impl",
2026-06-13T10:36:10.8163515Z         "unit"
2026-06-13T10:36:10.8163592Z       ],
2026-06-13T10:36:10.8163672Z       "stages": {
2026-06-13T10:36:10.8163752Z         "doc": {
2026-06-13T10:36:10.8163852Z           "complete": false,
2026-06-13T10:36:10.8163943Z           "evidence": []
2026-06-13T10:36:10.8164018Z         },
2026-06-13T10:36:10.8164098Z         "impl": {
2026-06-13T10:36:10.8164179Z           "complete": true,
2026-06-13T10:36:10.8164261Z           "evidence": [
2026-06-13T10:36:10.8164338Z             {
2026-06-13T10:36:10.8164446Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8164528Z               "line": 2603
2026-06-13T10:36:10.8164609Z             },
2026-06-13T10:36:10.8164690Z             {
2026-06-13T10:36:10.8164784Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8164881Z               "line": 2839
2026-06-13T10:36:10.8164956Z             },
2026-06-13T10:36:10.8165037Z             {
2026-06-13T10:36:10.8165153Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T10:36:10.8165229Z               "line": 18
2026-06-13T10:36:10.8165319Z             },
2026-06-13T10:36:10.8165394Z             {
2026-06-13T10:36:10.8165510Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T10:36:10.8165586Z               "line": 49
2026-06-13T10:36:10.8165667Z             },
2026-06-13T10:36:10.8165748Z             {
2026-06-13T10:36:10.8165844Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T10:36:10.8165934Z               "line": 163
2026-06-13T10:36:10.8166015Z             }
2026-06-13T10:36:10.8166097Z           ]
2026-06-13T10:36:10.8166183Z         },
2026-06-13T10:36:10.8166262Z         "int": {
2026-06-13T10:36:10.8166358Z           "complete": false,
2026-06-13T10:36:10.8166441Z           "evidence": []
2026-06-13T10:36:10.8166531Z         },
2026-06-13T10:36:10.8166610Z         "unit": {
2026-06-13T10:36:10.8166705Z           "complete": true,
2026-06-13T10:36:10.8166781Z           "evidence": [
2026-06-13T10:36:10.8166876Z             {
2026-06-13T10:36:10.8166974Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8167056Z               "line": 8454
2026-06-13T10:36:10.8167138Z             },
2026-06-13T10:36:10.8167219Z             {
2026-06-13T10:36:10.8169813Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8169933Z               "line": 8471
2026-06-13T10:36:10.8170019Z             },
2026-06-13T10:36:10.8170100Z             {
2026-06-13T10:36:10.8170218Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T10:36:10.8170310Z               "line": 228
2026-06-13T10:36:10.8170386Z             },
2026-06-13T10:36:10.8170462Z             {
2026-06-13T10:36:10.8170577Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T10:36:10.8170677Z               "line": 237
2026-06-13T10:36:10.8170762Z             }
2026-06-13T10:36:10.8170843Z           ]
2026-06-13T10:36:10.8170915Z         }
2026-06-13T10:36:10.8170996Z       }
2026-06-13T10:36:10.8171077Z     },
2026-06-13T10:36:10.8171158Z     {
2026-06-13T10:36:10.8171255Z       "id": "REQ-PAIR-7",
2026-06-13T10:36:10.8171536Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-13T10:36:10.8171631Z       "requiredStages": [],
2026-06-13T10:36:10.8171715Z       "stages": {
2026-06-13T10:36:10.8171802Z         "doc": {
2026-06-13T10:36:10.8171894Z           "complete": false,
2026-06-13T10:36:10.8171988Z           "evidence": []
2026-06-13T10:36:10.8172063Z         },
2026-06-13T10:36:10.8172139Z         "impl": {
2026-06-13T10:36:10.8172230Z           "complete": false,
2026-06-13T10:36:10.8172317Z           "evidence": []
2026-06-13T10:36:10.8172387Z         },
2026-06-13T10:36:10.8172468Z         "int": {
2026-06-13T10:36:10.8172559Z           "complete": false,
2026-06-13T10:36:10.8172745Z           "evidence": []
2026-06-13T10:36:10.8172826Z         },
2026-06-13T10:36:10.8172912Z         "unit": {
2026-06-13T10:36:10.8173003Z           "complete": false,
2026-06-13T10:36:10.8173087Z           "evidence": []
2026-06-13T10:36:10.8173170Z         }
2026-06-13T10:36:10.8173255Z       }
2026-06-13T10:36:10.8173336Z     },
2026-06-13T10:36:10.8173426Z     {
2026-06-13T10:36:10.8173513Z       "id": "REQ-PAIR-8",
2026-06-13T10:36:10.8174898Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-13T10:36:10.8174987Z       "requiredStages": [
2026-06-13T10:36:10.8175073Z         "impl",
2026-06-13T10:36:10.8175169Z         "unit"
2026-06-13T10:36:10.8175250Z       ],
2026-06-13T10:36:10.8175335Z       "stages": {
2026-06-13T10:36:10.8175417Z         "doc": {
2026-06-13T10:36:10.8175507Z           "complete": false,
2026-06-13T10:36:10.8175598Z           "evidence": []
2026-06-13T10:36:10.8175679Z         },
2026-06-13T10:36:10.8175780Z         "impl": {
2026-06-13T10:36:10.8175870Z           "complete": true,
2026-06-13T10:36:10.8175959Z           "evidence": [
2026-06-13T10:36:10.8176042Z             {
2026-06-13T10:36:10.8176170Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.8176255Z               "line": 577
2026-06-13T10:36:10.8176337Z             },
2026-06-13T10:36:10.8176419Z             {
2026-06-13T10:36:10.8176547Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T10:36:10.8176638Z               "line": 22
2026-06-13T10:36:10.8176710Z             },
2026-06-13T10:36:10.8176795Z             {
2026-06-13T10:36:10.8176904Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T10:36:10.8176991Z               "line": 76
2026-06-13T10:36:10.8177072Z             },
2026-06-13T10:36:10.8177156Z             {
2026-06-13T10:36:10.8177274Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T10:36:10.8177361Z               "line": 127
2026-06-13T10:36:10.8177450Z             }
2026-06-13T10:36:10.8177525Z           ]
2026-06-13T10:36:10.8177606Z         },
2026-06-13T10:36:10.8177683Z         "int": {
2026-06-13T10:36:10.8177774Z           "complete": false,
2026-06-13T10:36:10.8177863Z           "evidence": []
2026-06-13T10:36:10.8177930Z         },
2026-06-13T10:36:10.8178018Z         "unit": {
2026-06-13T10:36:10.8178108Z           "complete": true,
2026-06-13T10:36:10.8178192Z           "evidence": [
2026-06-13T10:36:10.8178275Z             {
2026-06-13T10:36:10.8178384Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T10:36:10.8178474Z               "line": 183
2026-06-13T10:36:10.8178555Z             },
2026-06-13T10:36:10.8178637Z             {
2026-06-13T10:36:10.8178751Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T10:36:10.8178841Z               "line": 195
2026-06-13T10:36:10.8178923Z             },
2026-06-13T10:36:10.8179070Z             {
2026-06-13T10:36:10.8179286Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T10:36:10.8179375Z               "line": 211
2026-06-13T10:36:10.8179461Z             },
2026-06-13T10:36:10.8179534Z             {
2026-06-13T10:36:10.8179653Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T10:36:10.8179737Z               "line": 227
2026-06-13T10:36:10.8179813Z             }
2026-06-13T10:36:10.8179894Z           ]
2026-06-13T10:36:10.8179970Z         }
2026-06-13T10:36:10.8180044Z       }
2026-06-13T10:36:10.8180121Z     },
2026-06-13T10:36:10.8180206Z     {
2026-06-13T10:36:10.8180293Z       "id": "REQ-PRES-1",
2026-06-13T10:36:10.8181618Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-13T10:36:10.8181805Z       "requiredStages": [
2026-06-13T10:36:10.8181885Z         "impl",
2026-06-13T10:36:10.8181956Z         "unit",
2026-06-13T10:36:10.8182038Z         "int"
2026-06-13T10:36:10.8182110Z       ],
2026-06-13T10:36:10.8182191Z       "stages": {
2026-06-13T10:36:10.8182266Z         "doc": {
2026-06-13T10:36:10.8182357Z           "complete": true,
2026-06-13T10:36:10.8182444Z           "evidence": [
2026-06-13T10:36:10.8182524Z             {
2026-06-13T10:36:10.8182628Z               "path": "docs/DEFERRED.md",
2026-06-13T10:36:10.8182713Z               "line": 11
2026-06-13T10:36:10.8182805Z             }
2026-06-13T10:36:10.8182881Z           ]
2026-06-13T10:36:10.8182966Z         },
2026-06-13T10:36:10.8183062Z         "impl": {
2026-06-13T10:36:10.8183148Z           "complete": true,
2026-06-13T10:36:10.8183243Z           "evidence": [
2026-06-13T10:36:10.8183319Z             {
2026-06-13T10:36:10.8183444Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.8183525Z               "line": 515
2026-06-13T10:36:10.8183605Z             },
2026-06-13T10:36:10.8183687Z             {
2026-06-13T10:36:10.8183806Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.8183892Z               "line": 567
2026-06-13T10:36:10.8183977Z             },
2026-06-13T10:36:10.8184050Z             {
2026-06-13T10:36:10.8184163Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8184249Z               "line": 188
2026-06-13T10:36:10.8184331Z             },
2026-06-13T10:36:10.8184417Z             {
2026-06-13T10:36:10.8184535Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8184616Z               "line": 214
2026-06-13T10:36:10.8184704Z             },
2026-06-13T10:36:10.8184784Z             {
2026-06-13T10:36:10.8184901Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T10:36:10.8184996Z               "line": 28
2026-06-13T10:36:10.8185077Z             },
2026-06-13T10:36:10.8185161Z             {
2026-06-13T10:36:10.8185275Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T10:36:10.8185366Z               "line": 105
2026-06-13T10:36:10.8185448Z             },
2026-06-13T10:36:10.8185523Z             {
2026-06-13T10:36:10.8185638Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T10:36:10.8185725Z               "line": 161
2026-06-13T10:36:10.8185810Z             },
2026-06-13T10:36:10.8185880Z             {
2026-06-13T10:36:10.8185996Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T10:36:10.8186077Z               "line": 180
2026-06-13T10:36:10.8186162Z             },
2026-06-13T10:36:10.8186239Z             {
2026-06-13T10:36:10.8186358Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8186435Z               "line": 399
2026-06-13T10:36:10.8186515Z             },
2026-06-13T10:36:10.8186592Z             {
2026-06-13T10:36:10.8186792Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8186883Z               "line": 289
2026-06-13T10:36:10.8186969Z             },
2026-06-13T10:36:10.8187054Z             {
2026-06-13T10:36:10.8187173Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8187260Z               "line": 336
2026-06-13T10:36:10.8187345Z             },
2026-06-13T10:36:10.8187431Z             {
2026-06-13T10:36:10.8187541Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8187632Z               "line": 362
2026-06-13T10:36:10.8187712Z             },
2026-06-13T10:36:10.8187787Z             {
2026-06-13T10:36:10.8187996Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8188085Z               "line": 100
2026-06-13T10:36:10.8188171Z             }
2026-06-13T10:36:10.8188253Z           ]
2026-06-13T10:36:10.8188334Z         },
2026-06-13T10:36:10.8188414Z         "int": {
2026-06-13T10:36:10.8188515Z           "complete": true,
2026-06-13T10:36:10.8188606Z           "evidence": [
2026-06-13T10:36:10.8188691Z             {
2026-06-13T10:36:10.8188815Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T10:36:10.8188897Z               "line": 557
2026-06-13T10:36:10.8189067Z             },
2026-06-13T10:36:10.8189149Z             {
2026-06-13T10:36:10.8189268Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8189354Z               "line": 677
2026-06-13T10:36:10.8189440Z             },
2026-06-13T10:36:10.8189522Z             {
2026-06-13T10:36:10.8189634Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8189735Z               "line": 1070
2026-06-13T10:36:10.8189817Z             }
2026-06-13T10:36:10.8189898Z           ]
2026-06-13T10:36:10.8189978Z         },
2026-06-13T10:36:10.8190065Z         "unit": {
2026-06-13T10:36:10.8190151Z           "complete": true,
2026-06-13T10:36:10.8190246Z           "evidence": [
2026-06-13T10:36:10.8190330Z             {
2026-06-13T10:36:10.8190440Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8190530Z               "line": 659
2026-06-13T10:36:10.8190609Z             },
2026-06-13T10:36:10.8190695Z             {
2026-06-13T10:36:10.8190810Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T10:36:10.8190896Z               "line": 237
2026-06-13T10:36:10.8190981Z             },
2026-06-13T10:36:10.8191057Z             {
2026-06-13T10:36:10.8191182Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T10:36:10.8191267Z               "line": 268
2026-06-13T10:36:10.8191348Z             },
2026-06-13T10:36:10.8191435Z             {
2026-06-13T10:36:10.8191554Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T10:36:10.8191644Z               "line": 304
2026-06-13T10:36:10.8191721Z             },
2026-06-13T10:36:10.8191811Z             {
2026-06-13T10:36:10.8191939Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T10:36:10.8192026Z               "line": 335
2026-06-13T10:36:10.8192112Z             },
2026-06-13T10:36:10.8192193Z             {
2026-06-13T10:36:10.8192321Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8192408Z               "line": 1135
2026-06-13T10:36:10.8192492Z             },
2026-06-13T10:36:10.8192573Z             {
2026-06-13T10:36:10.8192694Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8192784Z               "line": 1112
2026-06-13T10:36:10.8192865Z             }
2026-06-13T10:36:10.8192951Z           ]
2026-06-13T10:36:10.8193033Z         }
2026-06-13T10:36:10.8193126Z       }
2026-06-13T10:36:10.8193207Z     },
2026-06-13T10:36:10.8193293Z     {
2026-06-13T10:36:10.8193384Z       "id": "REQ-REACH-1",
2026-06-13T10:36:10.8193536Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-13T10:36:10.8193631Z       "requiredStages": [
2026-06-13T10:36:10.8193713Z         "impl",
2026-06-13T10:36:10.8193907Z         "unit",
2026-06-13T10:36:10.8193990Z         "int"
2026-06-13T10:36:10.8194075Z       ],
2026-06-13T10:36:10.8194160Z       "stages": {
2026-06-13T10:36:10.8194242Z         "doc": {
2026-06-13T10:36:10.8194333Z           "complete": false,
2026-06-13T10:36:10.8194418Z           "evidence": []
2026-06-13T10:36:10.8194504Z         },
2026-06-13T10:36:10.8194590Z         "impl": {
2026-06-13T10:36:10.8194686Z           "complete": true,
2026-06-13T10:36:10.8194776Z           "evidence": [
2026-06-13T10:36:10.8194861Z             {
2026-06-13T10:36:10.8194977Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T10:36:10.8195157Z               "line": 140
2026-06-13T10:36:10.8195244Z             },
2026-06-13T10:36:10.8195324Z             {
2026-06-13T10:36:10.8195442Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T10:36:10.8195533Z               "line": 76
2026-06-13T10:36:10.8195609Z             },
2026-06-13T10:36:10.8195693Z             {
2026-06-13T10:36:10.8195806Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T10:36:10.8195898Z               "line": 222
2026-06-13T10:36:10.8195984Z             },
2026-06-13T10:36:10.8196065Z             {
2026-06-13T10:36:10.8196179Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T10:36:10.8196266Z               "line": 422
2026-06-13T10:36:10.8196346Z             },
2026-06-13T10:36:10.8196431Z             {
2026-06-13T10:36:10.8196542Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T10:36:10.8196633Z               "line": 529
2026-06-13T10:36:10.8196713Z             },
2026-06-13T10:36:10.8196799Z             {
2026-06-13T10:36:10.8196914Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T10:36:10.8196999Z               "line": 39
2026-06-13T10:36:10.8197080Z             },
2026-06-13T10:36:10.8197162Z             {
2026-06-13T10:36:10.8197281Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.8197371Z               "line": 229
2026-06-13T10:36:10.8197443Z             },
2026-06-13T10:36:10.8197520Z             {
2026-06-13T10:36:10.8197628Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-13T10:36:10.8197714Z               "line": 88
2026-06-13T10:36:10.8197802Z             },
2026-06-13T10:36:10.8197882Z             {
2026-06-13T10:36:10.8197986Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-13T10:36:10.8198073Z               "line": 98
2026-06-13T10:36:10.8198154Z             },
2026-06-13T10:36:10.8198225Z             {
2026-06-13T10:36:10.8198338Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.8198424Z               "line": 210
2026-06-13T10:36:10.8198514Z             }
2026-06-13T10:36:10.8198593Z           ]
2026-06-13T10:36:10.8198678Z         },
2026-06-13T10:36:10.8198760Z         "int": {
2026-06-13T10:36:10.8198856Z           "complete": true,
2026-06-13T10:36:10.8199037Z           "evidence": [
2026-06-13T10:36:10.8199118Z             {
2026-06-13T10:36:10.8199247Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T10:36:10.8199336Z               "line": 415
2026-06-13T10:36:10.8199414Z             },
2026-06-13T10:36:10.8199490Z             {
2026-06-13T10:36:10.8199613Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T10:36:10.8199694Z               "line": 514
2026-06-13T10:36:10.8199781Z             },
2026-06-13T10:36:10.8199856Z             {
2026-06-13T10:36:10.8199976Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8200072Z               "line": 903
2026-06-13T10:36:10.8200148Z             },
2026-06-13T10:36:10.8200224Z             {
2026-06-13T10:36:10.8200344Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8200440Z               "line": 1198
2026-06-13T10:36:10.8200514Z             }
2026-06-13T10:36:10.8200596Z           ]
2026-06-13T10:36:10.8200678Z         },
2026-06-13T10:36:10.8200749Z         "unit": {
2026-06-13T10:36:10.8200928Z           "complete": true,
2026-06-13T10:36:10.8201014Z           "evidence": [
2026-06-13T10:36:10.8201095Z             {
2026-06-13T10:36:10.8201212Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T10:36:10.8201298Z               "line": 639
2026-06-13T10:36:10.8201370Z             },
2026-06-13T10:36:10.8201447Z             {
2026-06-13T10:36:10.8201565Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T10:36:10.8201642Z               "line": 660
2026-06-13T10:36:10.8201714Z             },
2026-06-13T10:36:10.8201790Z             {
2026-06-13T10:36:10.8201899Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-13T10:36:10.8202080Z               "line": 391
2026-06-13T10:36:10.8202156Z             },
2026-06-13T10:36:10.8202232Z             {
2026-06-13T10:36:10.8202348Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-13T10:36:10.8202438Z               "line": 93
2026-06-13T10:36:10.8202523Z             },
2026-06-13T10:36:10.8202610Z             {
2026-06-13T10:36:10.8202728Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-13T10:36:10.8202804Z               "line": 224
2026-06-13T10:36:10.8202881Z             },
2026-06-13T10:36:10.8202963Z             {
2026-06-13T10:36:10.8203076Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T10:36:10.8203153Z               "line": 96
2026-06-13T10:36:10.8203221Z             },
2026-06-13T10:36:10.8203312Z             {
2026-06-13T10:36:10.8203420Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T10:36:10.8203506Z               "line": 146
2026-06-13T10:36:10.8203583Z             },
2026-06-13T10:36:10.8203668Z             {
2026-06-13T10:36:10.8203786Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.8203867Z               "line": 502
2026-06-13T10:36:10.8203944Z             },
2026-06-13T10:36:10.8204030Z             {
2026-06-13T10:36:10.8204143Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-13T10:36:10.8204225Z               "line": 118
2026-06-13T10:36:10.8204306Z             },
2026-06-13T10:36:10.8204386Z             {
2026-06-13T10:36:10.8204487Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-13T10:36:10.8204574Z               "line": 148
2026-06-13T10:36:10.8204655Z             },
2026-06-13T10:36:10.8204735Z             {
2026-06-13T10:36:10.8204850Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.8204935Z               "line": 681
2026-06-13T10:36:10.8205016Z             }
2026-06-13T10:36:10.8205093Z           ]
2026-06-13T10:36:10.8205184Z         }
2026-06-13T10:36:10.8205264Z       }
2026-06-13T10:36:10.8205364Z     },
2026-06-13T10:36:10.8205446Z     {
2026-06-13T10:36:10.8205542Z       "id": "REQ-REACH-2",
2026-06-13T10:36:10.8205698Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-13T10:36:10.8205799Z       "requiredStages": [],
2026-06-13T10:36:10.8205894Z       "stages": {
2026-06-13T10:36:10.8205974Z         "doc": {
2026-06-13T10:36:10.8206083Z           "complete": false,
2026-06-13T10:36:10.8206179Z           "evidence": []
2026-06-13T10:36:10.8206258Z         },
2026-06-13T10:36:10.8206343Z         "impl": {
2026-06-13T10:36:10.8206434Z           "complete": false,
2026-06-13T10:36:10.8206525Z           "evidence": []
2026-06-13T10:36:10.8206606Z         },
2026-06-13T10:36:10.8206695Z         "int": {
2026-06-13T10:36:10.8206787Z           "complete": false,
2026-06-13T10:36:10.8206873Z           "evidence": []
2026-06-13T10:36:10.8206958Z         },
2026-06-13T10:36:10.8207039Z         "unit": {
2026-06-13T10:36:10.8207131Z           "complete": false,
2026-06-13T10:36:10.8207226Z           "evidence": []
2026-06-13T10:36:10.8207311Z         }
2026-06-13T10:36:10.8207398Z       }
2026-06-13T10:36:10.8207478Z     },
2026-06-13T10:36:10.8207559Z     {
2026-06-13T10:36:10.8207649Z       "id": "REQ-REL-1",
2026-06-13T10:36:10.8208113Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-13T10:36:10.8208203Z       "requiredStages": [
2026-06-13T10:36:10.8208288Z         "doc",
2026-06-13T10:36:10.8208376Z         "impl"
2026-06-13T10:36:10.8208461Z       ],
2026-06-13T10:36:10.8208546Z       "stages": {
2026-06-13T10:36:10.8208628Z         "doc": {
2026-06-13T10:36:10.8208719Z           "complete": true,
2026-06-13T10:36:10.8208808Z           "evidence": [
2026-06-13T10:36:10.8208884Z             {
2026-06-13T10:36:10.8209182Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-13T10:36:10.8209272Z               "line": 3
2026-06-13T10:36:10.8209459Z             }
2026-06-13T10:36:10.8209548Z           ]
2026-06-13T10:36:10.8209630Z         },
2026-06-13T10:36:10.8209717Z         "impl": {
2026-06-13T10:36:10.8209807Z           "complete": true,
2026-06-13T10:36:10.8209896Z           "evidence": [
2026-06-13T10:36:10.8209979Z             {
2026-06-13T10:36:10.8210112Z               "path": ".github/workflows/docs-publish.yml",
2026-06-13T10:36:10.8210201Z               "line": 11
2026-06-13T10:36:10.8210284Z             },
2026-06-13T10:36:10.8210365Z             {
2026-06-13T10:36:10.8210488Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8210574Z               "line": 265
2026-06-13T10:36:10.8210656Z             }
2026-06-13T10:36:10.8210741Z           ]
2026-06-13T10:36:10.8210822Z         },
2026-06-13T10:36:10.8210909Z         "int": {
2026-06-13T10:36:10.8211000Z           "complete": false,
2026-06-13T10:36:10.8211088Z           "evidence": []
2026-06-13T10:36:10.8211170Z         },
2026-06-13T10:36:10.8211262Z         "unit": {
2026-06-13T10:36:10.8211357Z           "complete": false,
2026-06-13T10:36:10.8211446Z           "evidence": []
2026-06-13T10:36:10.8211526Z         }
2026-06-13T10:36:10.8211612Z       }
2026-06-13T10:36:10.8211692Z     },
2026-06-13T10:36:10.8211777Z     {
2026-06-13T10:36:10.8211863Z       "id": "REQ-REL-2",
2026-06-13T10:36:10.8212341Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-13T10:36:10.8212430Z       "requiredStages": [
2026-06-13T10:36:10.8212517Z         "impl",
2026-06-13T10:36:10.8212603Z         "int"
2026-06-13T10:36:10.8212684Z       ],
2026-06-13T10:36:10.8212773Z       "stages": {
2026-06-13T10:36:10.8212855Z         "doc": {
2026-06-13T10:36:10.8212946Z           "complete": true,
2026-06-13T10:36:10.8213031Z           "evidence": [
2026-06-13T10:36:10.8213117Z             {
2026-06-13T10:36:10.8213228Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-13T10:36:10.8213323Z               "line": 6
2026-06-13T10:36:10.8213403Z             }
2026-06-13T10:36:10.8213485Z           ]
2026-06-13T10:36:10.8213571Z         },
2026-06-13T10:36:10.8213656Z         "impl": {
2026-06-13T10:36:10.8213747Z           "complete": true,
2026-06-13T10:36:10.8213843Z           "evidence": [
2026-06-13T10:36:10.8213932Z             {
2026-06-13T10:36:10.8214047Z               "path": ".github/workflows/release.yml",
2026-06-13T10:36:10.8214134Z               "line": 16
2026-06-13T10:36:10.8214219Z             },
2026-06-13T10:36:10.8214298Z             {
2026-06-13T10:36:10.8214408Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8214495Z               "line": 352
2026-06-13T10:36:10.8214581Z             },
2026-06-13T10:36:10.8214661Z             {
2026-06-13T10:36:10.8214766Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8214861Z               "line": 426
2026-06-13T10:36:10.8214946Z             },
2026-06-13T10:36:10.8215028Z             {
2026-06-13T10:36:10.8215139Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8215224Z               "line": 588
2026-06-13T10:36:10.8215304Z             },
2026-06-13T10:36:10.8215386Z             {
2026-06-13T10:36:10.8215491Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8215701Z               "line": 720
2026-06-13T10:36:10.8215787Z             }
2026-06-13T10:36:10.8215872Z           ]
2026-06-13T10:36:10.8215958Z         },
2026-06-13T10:36:10.8216045Z         "int": {
2026-06-13T10:36:10.8216135Z           "complete": true,
2026-06-13T10:36:10.8216225Z           "evidence": [
2026-06-13T10:36:10.8216306Z             {
2026-06-13T10:36:10.8216431Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-13T10:36:10.8216520Z               "line": 13
2026-06-13T10:36:10.8216595Z             }
2026-06-13T10:36:10.8216667Z           ]
2026-06-13T10:36:10.8216748Z         },
2026-06-13T10:36:10.8216908Z         "unit": {
2026-06-13T10:36:10.8217003Z           "complete": false,
2026-06-13T10:36:10.8217095Z           "evidence": []
2026-06-13T10:36:10.8217185Z         }
2026-06-13T10:36:10.8217265Z       }
2026-06-13T10:36:10.8217342Z     },
2026-06-13T10:36:10.8217419Z     {
2026-06-13T10:36:10.8217509Z       "id": "REQ-REL-3",
2026-06-13T10:36:10.8217929Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-13T10:36:10.8218015Z       "requiredStages": [
2026-06-13T10:36:10.8218096Z         "impl",
2026-06-13T10:36:10.8218176Z         "unit"
2026-06-13T10:36:10.8218258Z       ],
2026-06-13T10:36:10.8218330Z       "stages": {
2026-06-13T10:36:10.8218439Z         "doc": {
2026-06-13T10:36:10.8218538Z           "complete": false,
2026-06-13T10:36:10.8218668Z           "evidence": []
2026-06-13T10:36:10.8218744Z         },
2026-06-13T10:36:10.8218825Z         "impl": {
2026-06-13T10:36:10.8218917Z           "complete": true,
2026-06-13T10:36:10.8219101Z           "evidence": [
2026-06-13T10:36:10.8219178Z             {
2026-06-13T10:36:10.8219293Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8219378Z               "line": 237
2026-06-13T10:36:10.8219458Z             },
2026-06-13T10:36:10.8219548Z             {
2026-06-13T10:36:10.8219662Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8219742Z               "line": 289
2026-06-13T10:36:10.8219827Z             },
2026-06-13T10:36:10.8219909Z             {
2026-06-13T10:36:10.8220014Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8220099Z               "line": 329
2026-06-13T10:36:10.8220180Z             },
2026-06-13T10:36:10.8220267Z             {
2026-06-13T10:36:10.8220371Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8220466Z               "line": 353
2026-06-13T10:36:10.8220549Z             },
2026-06-13T10:36:10.8220629Z             {
2026-06-13T10:36:10.8220738Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8220820Z               "line": 394
2026-06-13T10:36:10.8220896Z             }
2026-06-13T10:36:10.8220977Z           ]
2026-06-13T10:36:10.8221058Z         },
2026-06-13T10:36:10.8221144Z         "int": {
2026-06-13T10:36:10.8221235Z           "complete": false,
2026-06-13T10:36:10.8221329Z           "evidence": []
2026-06-13T10:36:10.8221411Z         },
2026-06-13T10:36:10.8221489Z         "unit": {
2026-06-13T10:36:10.8221583Z           "complete": true,
2026-06-13T10:36:10.8221668Z           "evidence": [
2026-06-13T10:36:10.8221745Z             {
2026-06-13T10:36:10.8221865Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8221954Z               "line": 992
2026-06-13T10:36:10.8222039Z             },
2026-06-13T10:36:10.8222120Z             {
2026-06-13T10:36:10.8222229Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8222327Z               "line": 1051
2026-06-13T10:36:10.8222399Z             }
2026-06-13T10:36:10.8222475Z           ]
2026-06-13T10:36:10.8222558Z         }
2026-06-13T10:36:10.8222633Z       }
2026-06-13T10:36:10.8222714Z     },
2026-06-13T10:36:10.8222796Z     {
2026-06-13T10:36:10.8222901Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-13T10:36:10.8223163Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-13T10:36:10.8223253Z       "requiredStages": [
2026-06-13T10:36:10.8223343Z         "impl",
2026-06-13T10:36:10.8223425Z         "unit"
2026-06-13T10:36:10.8223501Z       ],
2026-06-13T10:36:10.8223587Z       "stages": {
2026-06-13T10:36:10.8223668Z         "doc": {
2026-06-13T10:36:10.8223750Z           "complete": false,
2026-06-13T10:36:10.8223839Z           "evidence": []
2026-06-13T10:36:10.8223925Z         },
2026-06-13T10:36:10.8224011Z         "impl": {
2026-06-13T10:36:10.8224107Z           "complete": true,
2026-06-13T10:36:10.8224196Z           "evidence": [
2026-06-13T10:36:10.8224374Z             {
2026-06-13T10:36:10.8224488Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.8224569Z               "line": 18
2026-06-13T10:36:10.8224651Z             },
2026-06-13T10:36:10.8224727Z             {
2026-06-13T10:36:10.8224844Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.8224930Z               "line": 35
2026-06-13T10:36:10.8225021Z             },
2026-06-13T10:36:10.8225098Z             {
2026-06-13T10:36:10.8225221Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.8225307Z               "line": 72
2026-06-13T10:36:10.8225393Z             }
2026-06-13T10:36:10.8225479Z           ]
2026-06-13T10:36:10.8225559Z         },
2026-06-13T10:36:10.8225646Z         "int": {
2026-06-13T10:36:10.8225746Z           "complete": false,
2026-06-13T10:36:10.8225840Z           "evidence": []
2026-06-13T10:36:10.8225922Z         },
2026-06-13T10:36:10.8226004Z         "unit": {
2026-06-13T10:36:10.8226113Z           "complete": true,
2026-06-13T10:36:10.8226198Z           "evidence": [
2026-06-13T10:36:10.8226290Z             {
2026-06-13T10:36:10.8226408Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.8226503Z               "line": 214
2026-06-13T10:36:10.8226591Z             },
2026-06-13T10:36:10.8226672Z             {
2026-06-13T10:36:10.8226794Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.8226880Z               "line": 231
2026-06-13T10:36:10.8226973Z             },
2026-06-13T10:36:10.8227056Z             {
2026-06-13T10:36:10.8227175Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.8227270Z               "line": 240
2026-06-13T10:36:10.8227346Z             }
2026-06-13T10:36:10.8227435Z           ]
2026-06-13T10:36:10.8227515Z         }
2026-06-13T10:36:10.8227602Z       }
2026-06-13T10:36:10.8227688Z     },
2026-06-13T10:36:10.8227773Z     {
2026-06-13T10:36:10.8227874Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-13T10:36:10.8228036Z       "title": "Hostable endpoint-types capability declaration",
2026-06-13T10:36:10.8228140Z       "requiredStages": [
2026-06-13T10:36:10.8228228Z         "impl",
2026-06-13T10:36:10.8228308Z         "unit"
2026-06-13T10:36:10.8228393Z       ],
2026-06-13T10:36:10.8228484Z       "stages": {
2026-06-13T10:36:10.8228571Z         "doc": {
2026-06-13T10:36:10.8228666Z           "complete": false,
2026-06-13T10:36:10.8228760Z           "evidence": []
2026-06-13T10:36:10.8228842Z         },
2026-06-13T10:36:10.8228927Z         "impl": {
2026-06-13T10:36:10.8229103Z           "complete": true,
2026-06-13T10:36:10.8229196Z           "evidence": [
2026-06-13T10:36:10.8229280Z             {
2026-06-13T10:36:10.8229399Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.8229496Z               "line": 406
2026-06-13T10:36:10.8229576Z             }
2026-06-13T10:36:10.8229661Z           ]
2026-06-13T10:36:10.8229743Z         },
2026-06-13T10:36:10.8229825Z         "int": {
2026-06-13T10:36:10.8229933Z           "complete": false,
2026-06-13T10:36:10.8230023Z           "evidence": []
2026-06-13T10:36:10.8230108Z         },
2026-06-13T10:36:10.8230194Z         "unit": {
2026-06-13T10:36:10.8230283Z           "complete": true,
2026-06-13T10:36:10.8230368Z           "evidence": [
2026-06-13T10:36:10.8230450Z             {
2026-06-13T10:36:10.8230673Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.8230765Z               "line": 720
2026-06-13T10:36:10.8230856Z             }
2026-06-13T10:36:10.8230936Z           ]
2026-06-13T10:36:10.8231021Z         }
2026-06-13T10:36:10.8231100Z       }
2026-06-13T10:36:10.8231185Z     },
2026-06-13T10:36:10.8231270Z     {
2026-06-13T10:36:10.8231361Z       "id": "REQ-SEAM-HISTORY",
2026-06-13T10:36:10.8231542Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-13T10:36:10.8231637Z       "requiredStages": [
2026-06-13T10:36:10.8231724Z         "impl",
2026-06-13T10:36:10.8231904Z         "unit",
2026-06-13T10:36:10.8231990Z         "int"
2026-06-13T10:36:10.8232077Z       ],
2026-06-13T10:36:10.8232157Z       "stages": {
2026-06-13T10:36:10.8232243Z         "doc": {
2026-06-13T10:36:10.8232334Z           "complete": false,
2026-06-13T10:36:10.8232429Z           "evidence": []
2026-06-13T10:36:10.8232509Z         },
2026-06-13T10:36:10.8232604Z         "impl": {
2026-06-13T10:36:10.8232700Z           "complete": true,
2026-06-13T10:36:10.8232784Z           "evidence": [
2026-06-13T10:36:10.8232869Z             {
2026-06-13T10:36:10.8232983Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T10:36:10.8233075Z               "line": 24
2026-06-13T10:36:10.8233155Z             },
2026-06-13T10:36:10.8233240Z             {
2026-06-13T10:36:10.8233356Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T10:36:10.8233441Z               "line": 22
2026-06-13T10:36:10.8233531Z             }
2026-06-13T10:36:10.8233617Z           ]
2026-06-13T10:36:10.8233699Z         },
2026-06-13T10:36:10.8233789Z         "int": {
2026-06-13T10:36:10.8233879Z           "complete": true,
2026-06-13T10:36:10.8233976Z           "evidence": [
2026-06-13T10:36:10.8234057Z             {
2026-06-13T10:36:10.8236697Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T10:36:10.8236806Z               "line": 260
2026-06-13T10:36:10.8236903Z             }
2026-06-13T10:36:10.8236987Z           ]
2026-06-13T10:36:10.8237073Z         },
2026-06-13T10:36:10.8237160Z         "unit": {
2026-06-13T10:36:10.8237255Z           "complete": true,
2026-06-13T10:36:10.8237340Z           "evidence": [
2026-06-13T10:36:10.8237422Z             {
2026-06-13T10:36:10.8237537Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T10:36:10.8237621Z               "line": 167
2026-06-13T10:36:10.8237707Z             },
2026-06-13T10:36:10.8237788Z             {
2026-06-13T10:36:10.8237897Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T10:36:10.8237985Z               "line": 196
2026-06-13T10:36:10.8238075Z             },
2026-06-13T10:36:10.8238153Z             {
2026-06-13T10:36:10.8238258Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T10:36:10.8238343Z               "line": 216
2026-06-13T10:36:10.8238424Z             },
2026-06-13T10:36:10.8238501Z             {
2026-06-13T10:36:10.8238624Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T10:36:10.8238710Z               "line": 199
2026-06-13T10:36:10.8238788Z             },
2026-06-13T10:36:10.8238868Z             {
2026-06-13T10:36:10.8239073Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T10:36:10.8239168Z               "line": 219
2026-06-13T10:36:10.8239244Z             },
2026-06-13T10:36:10.8239330Z             {
2026-06-13T10:36:10.8239436Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T10:36:10.8239521Z               "line": 244
2026-06-13T10:36:10.8239602Z             },
2026-06-13T10:36:10.8239683Z             {
2026-06-13T10:36:10.8239789Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T10:36:10.8239868Z               "line": 269
2026-06-13T10:36:10.8239950Z             },
2026-06-13T10:36:10.8240032Z             {
2026-06-13T10:36:10.8240145Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T10:36:10.8240226Z               "line": 290
2026-06-13T10:36:10.8240442Z             },
2026-06-13T10:36:10.8240526Z             {
2026-06-13T10:36:10.8240635Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T10:36:10.8240717Z               "line": 317
2026-06-13T10:36:10.8240801Z             }
2026-06-13T10:36:10.8240881Z           ]
2026-06-13T10:36:10.8240957Z         }
2026-06-13T10:36:10.8241034Z       }
2026-06-13T10:36:10.8241106Z     },
2026-06-13T10:36:10.8241191Z     {
2026-06-13T10:36:10.8241296Z       "id": "REQ-SEAM-INJECT",
2026-06-13T10:36:10.8241463Z       "title": "inject-input methods configurable per activity-state",
2026-06-13T10:36:10.8241553Z       "requiredStages": [
2026-06-13T10:36:10.8241740Z         "impl",
2026-06-13T10:36:10.8241820Z         "unit"
2026-06-13T10:36:10.8241906Z       ],
2026-06-13T10:36:10.8241989Z       "stages": {
2026-06-13T10:36:10.8242073Z         "doc": {
2026-06-13T10:36:10.8242164Z           "complete": false,
2026-06-13T10:36:10.8242250Z           "evidence": []
2026-06-13T10:36:10.8242327Z         },
2026-06-13T10:36:10.8242421Z         "impl": {
2026-06-13T10:36:10.8242512Z           "complete": true,
2026-06-13T10:36:10.8242594Z           "evidence": [
2026-06-13T10:36:10.8242675Z             {
2026-06-13T10:36:10.8242788Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.8242875Z               "line": 19
2026-06-13T10:36:10.8242952Z             },
2026-06-13T10:36:10.8243037Z             {
2026-06-13T10:36:10.8243154Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.8243240Z               "line": 111
2026-06-13T10:36:10.8243326Z             }
2026-06-13T10:36:10.8243405Z           ]
2026-06-13T10:36:10.8243485Z         },
2026-06-13T10:36:10.8243572Z         "int": {
2026-06-13T10:36:10.8243659Z           "complete": false,
2026-06-13T10:36:10.8243739Z           "evidence": []
2026-06-13T10:36:10.8243824Z         },
2026-06-13T10:36:10.8243906Z         "unit": {
2026-06-13T10:36:10.8243997Z           "complete": true,
2026-06-13T10:36:10.8244082Z           "evidence": [
2026-06-13T10:36:10.8244168Z             {
2026-06-13T10:36:10.8244273Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.8244359Z               "line": 320
2026-06-13T10:36:10.8244430Z             },
2026-06-13T10:36:10.8244512Z             {
2026-06-13T10:36:10.8244617Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.8244702Z               "line": 340
2026-06-13T10:36:10.8244788Z             }
2026-06-13T10:36:10.8244870Z           ]
2026-06-13T10:36:10.8244955Z         }
2026-06-13T10:36:10.8245031Z       }
2026-06-13T10:36:10.8245117Z     },
2026-06-13T10:36:10.8245194Z     {
2026-06-13T10:36:10.8245303Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-13T10:36:10.8245427Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-13T10:36:10.8245518Z       "requiredStages": [
2026-06-13T10:36:10.8245603Z         "impl",
2026-06-13T10:36:10.8245685Z         "unit"
2026-06-13T10:36:10.8245766Z       ],
2026-06-13T10:36:10.8245852Z       "stages": {
2026-06-13T10:36:10.8245937Z         "doc": {
2026-06-13T10:36:10.8246026Z           "complete": false,
2026-06-13T10:36:10.8246112Z           "evidence": []
2026-06-13T10:36:10.8246194Z         },
2026-06-13T10:36:10.8246275Z         "impl": {
2026-06-13T10:36:10.8246355Z           "complete": true,
2026-06-13T10:36:10.8246447Z           "evidence": [
2026-06-13T10:36:10.8246528Z             {
2026-06-13T10:36:10.8246641Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8246722Z               "line": 18
2026-06-13T10:36:10.8246805Z             },
2026-06-13T10:36:10.8246885Z             {
2026-06-13T10:36:10.8246994Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8247076Z               "line": 325
2026-06-13T10:36:10.8247162Z             }
2026-06-13T10:36:10.8247243Z           ]
2026-06-13T10:36:10.8247318Z         },
2026-06-13T10:36:10.8247406Z         "int": {
2026-06-13T10:36:10.8247487Z           "complete": false,
2026-06-13T10:36:10.8247657Z           "evidence": []
2026-06-13T10:36:10.8247739Z         },
2026-06-13T10:36:10.8247820Z         "unit": {
2026-06-13T10:36:10.8247905Z           "complete": true,
2026-06-13T10:36:10.8247991Z           "evidence": [
2026-06-13T10:36:10.8248078Z             {
2026-06-13T10:36:10.8248186Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8248272Z               "line": 576
2026-06-13T10:36:10.8248357Z             },
2026-06-13T10:36:10.8248438Z             {
2026-06-13T10:36:10.8248541Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8248626Z               "line": 586
2026-06-13T10:36:10.8248775Z             }
2026-06-13T10:36:10.8248855Z           ]
2026-06-13T10:36:10.8249037Z         }
2026-06-13T10:36:10.8249123Z       }
2026-06-13T10:36:10.8249193Z     },
2026-06-13T10:36:10.8249274Z     {
2026-06-13T10:36:10.8249372Z       "id": "REQ-SEAM-PSYCHE",
2026-06-13T10:36:10.8249522Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-13T10:36:10.8249609Z       "requiredStages": [
2026-06-13T10:36:10.8249696Z         "impl",
2026-06-13T10:36:10.8249771Z         "unit",
2026-06-13T10:36:10.8249851Z         "int"
2026-06-13T10:36:10.8249928Z       ],
2026-06-13T10:36:10.8250006Z       "stages": {
2026-06-13T10:36:10.8250085Z         "doc": {
2026-06-13T10:36:10.8250181Z           "complete": false,
2026-06-13T10:36:10.8250268Z           "evidence": []
2026-06-13T10:36:10.8250344Z         },
2026-06-13T10:36:10.8250424Z         "impl": {
2026-06-13T10:36:10.8250510Z           "complete": true,
2026-06-13T10:36:10.8250597Z           "evidence": [
2026-06-13T10:36:10.8250673Z             {
2026-06-13T10:36:10.8250796Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-13T10:36:10.8250878Z               "line": 19
2026-06-13T10:36:10.8250950Z             },
2026-06-13T10:36:10.8251030Z             {
2026-06-13T10:36:10.8251139Z               "path": "crates/spt/src/api/live.rs",
2026-06-13T10:36:10.8251234Z               "line": 12
2026-06-13T10:36:10.8251315Z             },
2026-06-13T10:36:10.8251389Z             {
2026-06-13T10:36:10.8251507Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8251594Z               "line": 225
2026-06-13T10:36:10.8251676Z             }
2026-06-13T10:36:10.8251751Z           ]
2026-06-13T10:36:10.8251832Z         },
2026-06-13T10:36:10.8251919Z         "int": {
2026-06-13T10:36:10.8252005Z           "complete": true,
2026-06-13T10:36:10.8252094Z           "evidence": [
2026-06-13T10:36:10.8252166Z             {
2026-06-13T10:36:10.8252285Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T10:36:10.8252376Z               "line": 259
2026-06-13T10:36:10.8252456Z             }
2026-06-13T10:36:10.8252539Z           ]
2026-06-13T10:36:10.8252614Z         },
2026-06-13T10:36:10.8252700Z         "unit": {
2026-06-13T10:36:10.8252790Z           "complete": true,
2026-06-13T10:36:10.8252878Z           "evidence": [
2026-06-13T10:36:10.8252957Z             {
2026-06-13T10:36:10.8253072Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-13T10:36:10.8253159Z               "line": 161
2026-06-13T10:36:10.8253225Z             },
2026-06-13T10:36:10.8253310Z             {
2026-06-13T10:36:10.8253411Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-13T10:36:10.8253498Z               "line": 168
2026-06-13T10:36:10.8253573Z             },
2026-06-13T10:36:10.8253649Z             {
2026-06-13T10:36:10.8253762Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-13T10:36:10.8253848Z               "line": 191
2026-06-13T10:36:10.8253928Z             },
2026-06-13T10:36:10.8254013Z             {
2026-06-13T10:36:10.8254127Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-13T10:36:10.8254209Z               "line": 106
2026-06-13T10:36:10.8254285Z             },
2026-06-13T10:36:10.8254355Z             {
2026-06-13T10:36:10.8254457Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-13T10:36:10.8254647Z               "line": 137
2026-06-13T10:36:10.8254728Z             },
2026-06-13T10:36:10.8254819Z             {
2026-06-13T10:36:10.8254929Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-13T10:36:10.8255013Z               "line": 161
2026-06-13T10:36:10.8255101Z             }
2026-06-13T10:36:10.8255181Z           ]
2026-06-13T10:36:10.8255267Z         }
2026-06-13T10:36:10.8255348Z       }
2026-06-13T10:36:10.8255435Z     },
2026-06-13T10:36:10.8255520Z     {
2026-06-13T10:36:10.8255615Z       "id": "REQ-SEAM-RESUME",
2026-06-13T10:36:10.8255806Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-13T10:36:10.8255992Z       "requiredStages": [
2026-06-13T10:36:10.8256078Z         "impl",
2026-06-13T10:36:10.8256158Z         "unit"
2026-06-13T10:36:10.8256240Z       ],
2026-06-13T10:36:10.8256326Z       "stages": {
2026-06-13T10:36:10.8256407Z         "doc": {
2026-06-13T10:36:10.8256501Z           "complete": false,
2026-06-13T10:36:10.8256596Z           "evidence": []
2026-06-13T10:36:10.8256682Z         },
2026-06-13T10:36:10.8256769Z         "impl": {
2026-06-13T10:36:10.8256864Z           "complete": true,
2026-06-13T10:36:10.8256949Z           "evidence": [
2026-06-13T10:36:10.8257030Z             {
2026-06-13T10:36:10.8257141Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T10:36:10.8257225Z               "line": 19
2026-06-13T10:36:10.8257307Z             }
2026-06-13T10:36:10.8257389Z           ]
2026-06-13T10:36:10.8257470Z         },
2026-06-13T10:36:10.8257554Z         "int": {
2026-06-13T10:36:10.8257641Z           "complete": false,
2026-06-13T10:36:10.8257732Z           "evidence": []
2026-06-13T10:36:10.8257822Z         },
2026-06-13T10:36:10.8257907Z         "unit": {
2026-06-13T10:36:10.8257994Z           "complete": true,
2026-06-13T10:36:10.8258089Z           "evidence": [
2026-06-13T10:36:10.8258174Z             {
2026-06-13T10:36:10.8258281Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T10:36:10.8258385Z               "line": 193
2026-06-13T10:36:10.8258465Z             },
2026-06-13T10:36:10.8258547Z             {
2026-06-13T10:36:10.8258657Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T10:36:10.8258742Z               "line": 215
2026-06-13T10:36:10.8258827Z             },
2026-06-13T10:36:10.8258908Z             {
2026-06-13T10:36:10.8259110Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T10:36:10.8259196Z               "line": 236
2026-06-13T10:36:10.8259282Z             }
2026-06-13T10:36:10.8259360Z           ]
2026-06-13T10:36:10.8259444Z         }
2026-06-13T10:36:10.8259525Z       }
2026-06-13T10:36:10.8259612Z     },
2026-06-13T10:36:10.8259698Z     {
2026-06-13T10:36:10.8259797Z       "id": "REQ-SEAM-SPAWN",
2026-06-13T10:36:10.8259898Z       "title": "spawn-session seam",
2026-06-13T10:36:10.8259988Z       "requiredStages": [
2026-06-13T10:36:10.8260073Z         "impl",
2026-06-13T10:36:10.8260159Z         "unit"
2026-06-13T10:36:10.8260237Z       ],
2026-06-13T10:36:10.8260336Z       "stages": {
2026-06-13T10:36:10.8260416Z         "doc": {
2026-06-13T10:36:10.8260508Z           "complete": false,
2026-06-13T10:36:10.8260599Z           "evidence": []
2026-06-13T10:36:10.8260685Z         },
2026-06-13T10:36:10.8260774Z         "impl": {
2026-06-13T10:36:10.8260861Z           "complete": true,
2026-06-13T10:36:10.8260951Z           "evidence": [
2026-06-13T10:36:10.8261032Z             {
2026-06-13T10:36:10.8261153Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.8261238Z               "line": 20
2026-06-13T10:36:10.8261322Z             }
2026-06-13T10:36:10.8261404Z           ]
2026-06-13T10:36:10.8261491Z         },
2026-06-13T10:36:10.8261576Z         "int": {
2026-06-13T10:36:10.8261665Z           "complete": false,
2026-06-13T10:36:10.8261750Z           "evidence": []
2026-06-13T10:36:10.8261837Z         },
2026-06-13T10:36:10.8261921Z         "unit": {
2026-06-13T10:36:10.8262011Z           "complete": true,
2026-06-13T10:36:10.8262202Z           "evidence": [
2026-06-13T10:36:10.8262287Z             {
2026-06-13T10:36:10.8262406Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.8262493Z               "line": 435
2026-06-13T10:36:10.8262574Z             },
2026-06-13T10:36:10.8262654Z             {
2026-06-13T10:36:10.8262770Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.8262855Z               "line": 442
2026-06-13T10:36:10.8262940Z             },
2026-06-13T10:36:10.8263021Z             {
2026-06-13T10:36:10.8263137Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.8263222Z               "line": 452
2026-06-13T10:36:10.8263399Z             },
2026-06-13T10:36:10.8263485Z             {
2026-06-13T10:36:10.8263598Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.8263690Z               "line": 458
2026-06-13T10:36:10.8263772Z             },
2026-06-13T10:36:10.8263856Z             {
2026-06-13T10:36:10.8263976Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.8264063Z               "line": 483
2026-06-13T10:36:10.8264147Z             },
2026-06-13T10:36:10.8264227Z             {
2026-06-13T10:36:10.8264346Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T10:36:10.8264432Z               "line": 520
2026-06-13T10:36:10.8264516Z             }
2026-06-13T10:36:10.8264596Z           ]
2026-06-13T10:36:10.8264682Z         }
2026-06-13T10:36:10.8264764Z       }
2026-06-13T10:36:10.8264849Z     },
2026-06-13T10:36:10.8264930Z     {
2026-06-13T10:36:10.8265022Z       "id": "REQ-SEAM-UPDATE",
2026-06-13T10:36:10.8265188Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-13T10:36:10.8265288Z       "requiredStages": [
2026-06-13T10:36:10.8265374Z         "impl",
2026-06-13T10:36:10.8265455Z         "unit"
2026-06-13T10:36:10.8265536Z       ],
2026-06-13T10:36:10.8265622Z       "stages": {
2026-06-13T10:36:10.8265708Z         "doc": {
2026-06-13T10:36:10.8265803Z           "complete": false,
2026-06-13T10:36:10.8265893Z           "evidence": []
2026-06-13T10:36:10.8265976Z         },
2026-06-13T10:36:10.8266051Z         "impl": {
2026-06-13T10:36:10.8266142Z           "complete": true,
2026-06-13T10:36:10.8266222Z           "evidence": [
2026-06-13T10:36:10.8266296Z             {
2026-06-13T10:36:10.8266432Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.8266514Z               "line": 28
2026-06-13T10:36:10.8266601Z             },
2026-06-13T10:36:10.8266686Z             {
2026-06-13T10:36:10.8266809Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.8266896Z               "line": 83
2026-06-13T10:36:10.8266968Z             }
2026-06-13T10:36:10.8267047Z           ]
2026-06-13T10:36:10.8267132Z         },
2026-06-13T10:36:10.8267218Z         "int": {
2026-06-13T10:36:10.8267310Z           "complete": false,
2026-06-13T10:36:10.8267395Z           "evidence": []
2026-06-13T10:36:10.8267475Z         },
2026-06-13T10:36:10.8267552Z         "unit": {
2026-06-13T10:36:10.8267644Z           "complete": true,
2026-06-13T10:36:10.8267724Z           "evidence": [
2026-06-13T10:36:10.8267804Z             {
2026-06-13T10:36:10.8267934Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.8268010Z               "line": 286
2026-06-13T10:36:10.8268095Z             },
2026-06-13T10:36:10.8268177Z             {
2026-06-13T10:36:10.8268296Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.8268373Z               "line": 297
2026-06-13T10:36:10.8268453Z             }
2026-06-13T10:36:10.8268545Z           ]
2026-06-13T10:36:10.8268616Z         }
2026-06-13T10:36:10.8268702Z       }
2026-06-13T10:36:10.8268777Z     },
2026-06-13T10:36:10.8268855Z     {
2026-06-13T10:36:10.8269025Z       "id": "REQ-SEC-1",
2026-06-13T10:36:10.8269501Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-13T10:36:10.8269605Z       "requiredStages": [
2026-06-13T10:36:10.8269685Z         "impl",
2026-06-13T10:36:10.8269765Z         "unit"
2026-06-13T10:36:10.8269847Z       ],
2026-06-13T10:36:10.8269934Z       "stages": {
2026-06-13T10:36:10.8270004Z         "doc": {
2026-06-13T10:36:10.8270099Z           "complete": false,
2026-06-13T10:36:10.8270182Z           "evidence": []
2026-06-13T10:36:10.8270258Z         },
2026-06-13T10:36:10.8270342Z         "impl": {
2026-06-13T10:36:10.8270424Z           "complete": true,
2026-06-13T10:36:10.8270506Z           "evidence": [
2026-06-13T10:36:10.8270587Z             {
2026-06-13T10:36:10.8270821Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T10:36:10.8270901Z               "line": 84
2026-06-13T10:36:10.8270981Z             },
2026-06-13T10:36:10.8271068Z             {
2026-06-13T10:36:10.8271182Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T10:36:10.8271268Z               "line": 114
2026-06-13T10:36:10.8271339Z             },
2026-06-13T10:36:10.8271421Z             {
2026-06-13T10:36:10.8271539Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T10:36:10.8271625Z               "line": 128
2026-06-13T10:36:10.8271713Z             },
2026-06-13T10:36:10.8271784Z             {
2026-06-13T10:36:10.8271907Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T10:36:10.8271998Z               "line": 108
2026-06-13T10:36:10.8272080Z             },
2026-06-13T10:36:10.8272160Z             {
2026-06-13T10:36:10.8272259Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T10:36:10.8272349Z               "line": 129
2026-06-13T10:36:10.8272430Z             },
2026-06-13T10:36:10.8272509Z             {
2026-06-13T10:36:10.8272614Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T10:36:10.8272700Z               "line": 142
2026-06-13T10:36:10.8272786Z             },
2026-06-13T10:36:10.8272866Z             {
2026-06-13T10:36:10.8272971Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T10:36:10.8273054Z               "line": 208
2026-06-13T10:36:10.8273139Z             },
2026-06-13T10:36:10.8273219Z             {
2026-06-13T10:36:10.8273325Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T10:36:10.8273410Z               "line": 234
2026-06-13T10:36:10.8273491Z             },
2026-06-13T10:36:10.8273577Z             {
2026-06-13T10:36:10.8273673Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8273763Z               "line": 4288
2026-06-13T10:36:10.8273853Z             }
2026-06-13T10:36:10.8273930Z           ]
2026-06-13T10:36:10.8274017Z         },
2026-06-13T10:36:10.8274097Z         "int": {
2026-06-13T10:36:10.8274192Z           "complete": false,
2026-06-13T10:36:10.8274274Z           "evidence": []
2026-06-13T10:36:10.8274360Z         },
2026-06-13T10:36:10.8274444Z         "unit": {
2026-06-13T10:36:10.8274521Z           "complete": true,
2026-06-13T10:36:10.8274608Z           "evidence": [
2026-06-13T10:36:10.8274689Z             {
2026-06-13T10:36:10.8274807Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T10:36:10.8274887Z               "line": 140
2026-06-13T10:36:10.8274978Z             },
2026-06-13T10:36:10.8275062Z             {
2026-06-13T10:36:10.8275175Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T10:36:10.8275262Z               "line": 192
2026-06-13T10:36:10.8275339Z             },
2026-06-13T10:36:10.8275433Z             {
2026-06-13T10:36:10.8275548Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T10:36:10.8275629Z               "line": 233
2026-06-13T10:36:10.8275715Z             },
2026-06-13T10:36:10.8275791Z             {
2026-06-13T10:36:10.8275921Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-13T10:36:10.8276001Z               "line": 138
2026-06-13T10:36:10.8276081Z             },
2026-06-13T10:36:10.8276163Z             {
2026-06-13T10:36:10.8276354Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T10:36:10.8276444Z               "line": 246
2026-06-13T10:36:10.8276526Z             },
2026-06-13T10:36:10.8276616Z             {
2026-06-13T10:36:10.8276716Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T10:36:10.8276797Z               "line": 276
2026-06-13T10:36:10.8276880Z             },
2026-06-13T10:36:10.8276964Z             {
2026-06-13T10:36:10.8277069Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T10:36:10.8277151Z               "line": 309
2026-06-13T10:36:10.8277236Z             },
2026-06-13T10:36:10.8277312Z             {
2026-06-13T10:36:10.8277504Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T10:36:10.8277584Z               "line": 328
2026-06-13T10:36:10.8277664Z             },
2026-06-13T10:36:10.8277744Z             {
2026-06-13T10:36:10.8277845Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T10:36:10.8277927Z               "line": 361
2026-06-13T10:36:10.8278017Z             },
2026-06-13T10:36:10.8278107Z             {
2026-06-13T10:36:10.8278218Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T10:36:10.8278298Z               "line": 385
2026-06-13T10:36:10.8278378Z             },
2026-06-13T10:36:10.8278461Z             {
2026-06-13T10:36:10.8278561Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8278646Z               "line": 6091
2026-06-13T10:36:10.8278732Z             }
2026-06-13T10:36:10.8278814Z           ]
2026-06-13T10:36:10.8278894Z         }
2026-06-13T10:36:10.8279042Z       }
2026-06-13T10:36:10.8279124Z     },
2026-06-13T10:36:10.8279204Z     {
2026-06-13T10:36:10.8279304Z       "id": "REQ-SHELL-1",
2026-06-13T10:36:10.8280174Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-13T10:36:10.8280259Z       "requiredStages": [
2026-06-13T10:36:10.8280340Z         "impl",
2026-06-13T10:36:10.8280422Z         "unit",
2026-06-13T10:36:10.8280499Z         "int"
2026-06-13T10:36:10.8280588Z       ],
2026-06-13T10:36:10.8280669Z       "stages": {
2026-06-13T10:36:10.8280751Z         "doc": {
2026-06-13T10:36:10.8280841Z           "complete": false,
2026-06-13T10:36:10.8280921Z           "evidence": []
2026-06-13T10:36:10.8281004Z         },
2026-06-13T10:36:10.8281080Z         "impl": {
2026-06-13T10:36:10.8281170Z           "complete": true,
2026-06-13T10:36:10.8281265Z           "evidence": [
2026-06-13T10:36:10.8281347Z             {
2026-06-13T10:36:10.8281471Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T10:36:10.8281551Z               "line": 94
2026-06-13T10:36:10.8281623Z             },
2026-06-13T10:36:10.8281705Z             {
2026-06-13T10:36:10.8281833Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T10:36:10.8281919Z               "line": 121
2026-06-13T10:36:10.8281996Z             },
2026-06-13T10:36:10.8282076Z             {
2026-06-13T10:36:10.8282190Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T10:36:10.8282278Z               "line": 27
2026-06-13T10:36:10.8282354Z             },
2026-06-13T10:36:10.8282442Z             {
2026-06-13T10:36:10.8282558Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T10:36:10.8282640Z               "line": 52
2026-06-13T10:36:10.8282720Z             },
2026-06-13T10:36:10.8282795Z             {
2026-06-13T10:36:10.8282924Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T10:36:10.8283009Z               "line": 132
2026-06-13T10:36:10.8283088Z             },
2026-06-13T10:36:10.8283179Z             {
2026-06-13T10:36:10.8283294Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T10:36:10.8283380Z               "line": 164
2026-06-13T10:36:10.8283561Z             },
2026-06-13T10:36:10.8283646Z             {
2026-06-13T10:36:10.8283755Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8283846Z               "line": 22
2026-06-13T10:36:10.8283924Z             },
2026-06-13T10:36:10.8283999Z             {
2026-06-13T10:36:10.8284118Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8284200Z               "line": 65
2026-06-13T10:36:10.8284281Z             },
2026-06-13T10:36:10.8284352Z             {
2026-06-13T10:36:10.8284471Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8284548Z               "line": 76
2026-06-13T10:36:10.8284728Z             },
2026-06-13T10:36:10.8284805Z             {
2026-06-13T10:36:10.8284920Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8285009Z               "line": 150
2026-06-13T10:36:10.8285086Z             },
2026-06-13T10:36:10.8285168Z             {
2026-06-13T10:36:10.8285295Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8285386Z               "line": 209
2026-06-13T10:36:10.8285467Z             },
2026-06-13T10:36:10.8285548Z             {
2026-06-13T10:36:10.8285664Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8285754Z               "line": 246
2026-06-13T10:36:10.8285836Z             },
2026-06-13T10:36:10.8285918Z             {
2026-06-13T10:36:10.8286031Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8286127Z               "line": 267
2026-06-13T10:36:10.8286204Z             },
2026-06-13T10:36:10.8286294Z             {
2026-06-13T10:36:10.8286408Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8286504Z               "line": 280
2026-06-13T10:36:10.8286590Z             },
2026-06-13T10:36:10.8286670Z             {
2026-06-13T10:36:10.8286791Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.8286885Z               "line": 217
2026-06-13T10:36:10.8286970Z             },
2026-06-13T10:36:10.8287057Z             {
2026-06-13T10:36:10.8287167Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.8287257Z               "line": 233
2026-06-13T10:36:10.8287343Z             },
2026-06-13T10:36:10.8287430Z             {
2026-06-13T10:36:10.8287543Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.8287634Z               "line": 41
2026-06-13T10:36:10.8287721Z             },
2026-06-13T10:36:10.8287801Z             {
2026-06-13T10:36:10.8287920Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.8288007Z               "line": 222
2026-06-13T10:36:10.8288088Z             },
2026-06-13T10:36:10.8288172Z             {
2026-06-13T10:36:10.8288290Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T10:36:10.8288391Z               "line": 156
2026-06-13T10:36:10.8288487Z             },
2026-06-13T10:36:10.8288577Z             {
2026-06-13T10:36:10.8288692Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T10:36:10.8288787Z               "line": 311
2026-06-13T10:36:10.8288867Z             },
2026-06-13T10:36:10.8289035Z             {
2026-06-13T10:36:10.8289145Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T10:36:10.8289230Z               "line": 363
2026-06-13T10:36:10.8289316Z             },
2026-06-13T10:36:10.8289397Z             {
2026-06-13T10:36:10.8289511Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.8289597Z               "line": 261
2026-06-13T10:36:10.8289684Z             },
2026-06-13T10:36:10.8289774Z             {
2026-06-13T10:36:10.8289888Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8289990Z               "line": 4905
2026-06-13T10:36:10.8290070Z             },
2026-06-13T10:36:10.8290150Z             {
2026-06-13T10:36:10.8290251Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8290337Z               "line": 5055
2026-06-13T10:36:10.8290540Z             },
2026-06-13T10:36:10.8290626Z             {
2026-06-13T10:36:10.8290734Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8290819Z               "line": 5092
2026-06-13T10:36:10.8290905Z             }
2026-06-13T10:36:10.8290987Z           ]
2026-06-13T10:36:10.8291077Z         },
2026-06-13T10:36:10.8291162Z         "int": {
2026-06-13T10:36:10.8291254Z           "complete": true,
2026-06-13T10:36:10.8291340Z           "evidence": [
2026-06-13T10:36:10.8291420Z             {
2026-06-13T10:36:10.8291549Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T10:36:10.8291636Z               "line": 706
2026-06-13T10:36:10.8291815Z             },
2026-06-13T10:36:10.8291902Z             {
2026-06-13T10:36:10.8292026Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-13T10:36:10.8292116Z               "line": 8
2026-06-13T10:36:10.8292198Z             },
2026-06-13T10:36:10.8292284Z             {
2026-06-13T10:36:10.8292412Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-13T10:36:10.8292503Z               "line": 49
2026-06-13T10:36:10.8292585Z             },
2026-06-13T10:36:10.8292669Z             {
2026-06-13T10:36:10.8292789Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8292871Z               "line": 708
2026-06-13T10:36:10.8292960Z             },
2026-06-13T10:36:10.8293037Z             {
2026-06-13T10:36:10.8293167Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8293252Z               "line": 1118
2026-06-13T10:36:10.8293341Z             },
2026-06-13T10:36:10.8293426Z             {
2026-06-13T10:36:10.8293546Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-13T10:36:10.8293634Z               "line": 17
2026-06-13T10:36:10.8293729Z             },
2026-06-13T10:36:10.8293806Z             {
2026-06-13T10:36:10.8293921Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-13T10:36:10.8294010Z               "line": 14
2026-06-13T10:36:10.8294096Z             }
2026-06-13T10:36:10.8294174Z           ]
2026-06-13T10:36:10.8294264Z         },
2026-06-13T10:36:10.8294349Z         "unit": {
2026-06-13T10:36:10.8294436Z           "complete": true,
2026-06-13T10:36:10.8294526Z           "evidence": [
2026-06-13T10:36:10.8294607Z             {
2026-06-13T10:36:10.8294726Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T10:36:10.8294808Z               "line": 234
2026-06-13T10:36:10.8294897Z             },
2026-06-13T10:36:10.8294978Z             {
2026-06-13T10:36:10.8295094Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T10:36:10.8295189Z               "line": 267
2026-06-13T10:36:10.8295270Z             },
2026-06-13T10:36:10.8295360Z             {
2026-06-13T10:36:10.8295476Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T10:36:10.8295564Z               "line": 307
2026-06-13T10:36:10.8295637Z             },
2026-06-13T10:36:10.8295714Z             {
2026-06-13T10:36:10.8295833Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8295922Z               "line": 568
2026-06-13T10:36:10.8296007Z             },
2026-06-13T10:36:10.8296084Z             {
2026-06-13T10:36:10.8296201Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8296291Z               "line": 641
2026-06-13T10:36:10.8296372Z             },
2026-06-13T10:36:10.8296449Z             {
2026-06-13T10:36:10.8296558Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8296639Z               "line": 785
2026-06-13T10:36:10.8296717Z             },
2026-06-13T10:36:10.8296807Z             {
2026-06-13T10:36:10.8296925Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.8296997Z               "line": 595
2026-06-13T10:36:10.8297083Z             },
2026-06-13T10:36:10.8297159Z             {
2026-06-13T10:36:10.8297278Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T10:36:10.8297426Z               "line": 399
2026-06-13T10:36:10.8297516Z             },
2026-06-13T10:36:10.8297602Z             {
2026-06-13T10:36:10.8297699Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8297789Z               "line": 6560
2026-06-13T10:36:10.8297865Z             },
2026-06-13T10:36:10.8300477Z             {
2026-06-13T10:36:10.8300606Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8300700Z               "line": 6882
2026-06-13T10:36:10.8300787Z             },
2026-06-13T10:36:10.8300869Z             {
2026-06-13T10:36:10.8300977Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8301229Z               "line": 7299
2026-06-13T10:36:10.8301313Z             }
2026-06-13T10:36:10.8301393Z           ]
2026-06-13T10:36:10.8301484Z         }
2026-06-13T10:36:10.8301557Z       }
2026-06-13T10:36:10.8301642Z     },
2026-06-13T10:36:10.8301722Z     {
2026-06-13T10:36:10.8301804Z       "id": "REQ-SHELL-2",
2026-06-13T10:36:10.8303310Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-13T10:36:10.8303422Z       "requiredStages": [
2026-06-13T10:36:10.8303502Z         "impl",
2026-06-13T10:36:10.8303582Z         "unit",
2026-06-13T10:36:10.8303659Z         "int"
2026-06-13T10:36:10.8303750Z       ],
2026-06-13T10:36:10.8303826Z       "stages": {
2026-06-13T10:36:10.8303910Z         "doc": {
2026-06-13T10:36:10.8304005Z           "complete": false,
2026-06-13T10:36:10.8304086Z           "evidence": []
2026-06-13T10:36:10.8304171Z         },
2026-06-13T10:36:10.8304251Z         "impl": {
2026-06-13T10:36:10.8304356Z           "complete": true,
2026-06-13T10:36:10.8304438Z           "evidence": [
2026-06-13T10:36:10.8304519Z             {
2026-06-13T10:36:10.8304647Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.8304734Z               "line": 214
2026-06-13T10:36:10.8304815Z             },
2026-06-13T10:36:10.8304899Z             {
2026-06-13T10:36:10.8305024Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.8305114Z               "line": 403
2026-06-13T10:36:10.8305191Z             },
2026-06-13T10:36:10.8305277Z             {
2026-06-13T10:36:10.8305397Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T10:36:10.8305496Z               "line": 250
2026-06-13T10:36:10.8305582Z             },
2026-06-13T10:36:10.8305668Z             {
2026-06-13T10:36:10.8305786Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.8305872Z               "line": 353
2026-06-13T10:36:10.8305960Z             },
2026-06-13T10:36:10.8306050Z             {
2026-06-13T10:36:10.8306168Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T10:36:10.8306255Z               "line": 30
2026-06-13T10:36:10.8306341Z             },
2026-06-13T10:36:10.8306425Z             {
2026-06-13T10:36:10.8306539Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T10:36:10.8306629Z               "line": 152
2026-06-13T10:36:10.8306710Z             },
2026-06-13T10:36:10.8306794Z             {
2026-06-13T10:36:10.8306909Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T10:36:10.8307000Z               "line": 188
2026-06-13T10:36:10.8307081Z             },
2026-06-13T10:36:10.8307171Z             {
2026-06-13T10:36:10.8307286Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T10:36:10.8307372Z               "line": 347
2026-06-13T10:36:10.8307456Z             },
2026-06-13T10:36:10.8307538Z             {
2026-06-13T10:36:10.8307657Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.8307853Z               "line": 348
2026-06-13T10:36:10.8307940Z             },
2026-06-13T10:36:10.8308019Z             {
2026-06-13T10:36:10.8308139Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T10:36:10.8308231Z               "line": 115
2026-06-13T10:36:10.8308315Z             },
2026-06-13T10:36:10.8308391Z             {
2026-06-13T10:36:10.8308512Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8308598Z               "line": 120
2026-06-13T10:36:10.8308682Z             },
2026-06-13T10:36:10.8308764Z             {
2026-06-13T10:36:10.8308884Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8309132Z               "line": 360
2026-06-13T10:36:10.8309213Z             },
2026-06-13T10:36:10.8309292Z             {
2026-06-13T10:36:10.8309406Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8309502Z               "line": 469
2026-06-13T10:36:10.8309584Z             },
2026-06-13T10:36:10.8309682Z             {
2026-06-13T10:36:10.8309802Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8309888Z               "line": 24
2026-06-13T10:36:10.8309978Z             },
2026-06-13T10:36:10.8310059Z             {
2026-06-13T10:36:10.8310175Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8310260Z               "line": 76
2026-06-13T10:36:10.8310350Z             },
2026-06-13T10:36:10.8310432Z             {
2026-06-13T10:36:10.8310546Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8310636Z               "line": 154
2026-06-13T10:36:10.8310727Z             },
2026-06-13T10:36:10.8310809Z             {
2026-06-13T10:36:10.8310927Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8311022Z               "line": 177
2026-06-13T10:36:10.8311105Z             },
2026-06-13T10:36:10.8311185Z             {
2026-06-13T10:36:10.8311313Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8311400Z               "line": 273
2026-06-13T10:36:10.8311485Z             },
2026-06-13T10:36:10.8311566Z             {
2026-06-13T10:36:10.8311689Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8311775Z               "line": 455
2026-06-13T10:36:10.8311864Z             },
2026-06-13T10:36:10.8311944Z             {
2026-06-13T10:36:10.8312059Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8312150Z               "line": 537
2026-06-13T10:36:10.8312226Z             },
2026-06-13T10:36:10.8312311Z             {
2026-06-13T10:36:10.8312436Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-13T10:36:10.8312531Z               "line": 27
2026-06-13T10:36:10.8312616Z             },
2026-06-13T10:36:10.8312699Z             {
2026-06-13T10:36:10.8312817Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-13T10:36:10.8312907Z               "line": 43
2026-06-13T10:36:10.8312999Z             },
2026-06-13T10:36:10.8313084Z             {
2026-06-13T10:36:10.8313198Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.8313289Z               "line": 325
2026-06-13T10:36:10.8313371Z             },
2026-06-13T10:36:10.8313451Z             {
2026-06-13T10:36:10.8313560Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8313643Z               "line": 1398
2026-06-13T10:36:10.8313728Z             },
2026-06-13T10:36:10.8313808Z             {
2026-06-13T10:36:10.8313914Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8314000Z               "line": 4919
2026-06-13T10:36:10.8314090Z             },
2026-06-13T10:36:10.8314181Z             {
2026-06-13T10:36:10.8314277Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8314367Z               "line": 4980
2026-06-13T10:36:10.8314447Z             },
2026-06-13T10:36:10.8314527Z             {
2026-06-13T10:36:10.8314731Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8314825Z               "line": 5008
2026-06-13T10:36:10.8314907Z             },
2026-06-13T10:36:10.8314984Z             {
2026-06-13T10:36:10.8315088Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8315173Z               "line": 5062
2026-06-13T10:36:10.8315256Z             },
2026-06-13T10:36:10.8315337Z             {
2026-06-13T10:36:10.8315436Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8315531Z               "line": 5178
2026-06-13T10:36:10.8315613Z             },
2026-06-13T10:36:10.8315694Z             {
2026-06-13T10:36:10.8315793Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8315985Z               "line": 5231
2026-06-13T10:36:10.8316066Z             },
2026-06-13T10:36:10.8316151Z             {
2026-06-13T10:36:10.8316266Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.8316346Z               "line": 298
2026-06-13T10:36:10.8316427Z             },
2026-06-13T10:36:10.8316505Z             {
2026-06-13T10:36:10.8316610Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.8316694Z               "line": 339
2026-06-13T10:36:10.8316776Z             }
2026-06-13T10:36:10.8316854Z           ]
2026-06-13T10:36:10.8316934Z         },
2026-06-13T10:36:10.8317018Z         "int": {
2026-06-13T10:36:10.8317113Z           "complete": true,
2026-06-13T10:36:10.8317204Z           "evidence": [
2026-06-13T10:36:10.8317279Z             {
2026-06-13T10:36:10.8317397Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T10:36:10.8317479Z               "line": 699
2026-06-13T10:36:10.8317551Z             },
2026-06-13T10:36:10.8317646Z             {
2026-06-13T10:36:10.8317764Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8317851Z               "line": 708
2026-06-13T10:36:10.8317932Z             },
2026-06-13T10:36:10.8318012Z             {
2026-06-13T10:36:10.8318127Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8318208Z               "line": 1118
2026-06-13T10:36:10.8318289Z             },
2026-06-13T10:36:10.8318369Z             {
2026-06-13T10:36:10.8318504Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-13T10:36:10.8318589Z               "line": 18
2026-06-13T10:36:10.8318660Z             }
2026-06-13T10:36:10.8318732Z           ]
2026-06-13T10:36:10.8318810Z         },
2026-06-13T10:36:10.8318899Z         "unit": {
2026-06-13T10:36:10.8319052Z           "complete": true,
2026-06-13T10:36:10.8319144Z           "evidence": [
2026-06-13T10:36:10.8319213Z             {
2026-06-13T10:36:10.8319333Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T10:36:10.8319430Z               "line": 431
2026-06-13T10:36:10.8319510Z             },
2026-06-13T10:36:10.8319591Z             {
2026-06-13T10:36:10.8319702Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T10:36:10.8319788Z               "line": 796
2026-06-13T10:36:10.8319862Z             },
2026-06-13T10:36:10.8319947Z             {
2026-06-13T10:36:10.8320071Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8320154Z               "line": 674
2026-06-13T10:36:10.8320233Z             },
2026-06-13T10:36:10.8320314Z             {
2026-06-13T10:36:10.8320434Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8320524Z               "line": 723
2026-06-13T10:36:10.8320605Z             },
2026-06-13T10:36:10.8320692Z             {
2026-06-13T10:36:10.8320796Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T10:36:10.8320881Z               "line": 747
2026-06-13T10:36:10.8320963Z             },
2026-06-13T10:36:10.8321045Z             {
2026-06-13T10:36:10.8321154Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8321234Z               "line": 602
2026-06-13T10:36:10.8321316Z             },
2026-06-13T10:36:10.8321397Z             {
2026-06-13T10:36:10.8321612Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8321694Z               "line": 623
2026-06-13T10:36:10.8321778Z             },
2026-06-13T10:36:10.8321864Z             {
2026-06-13T10:36:10.8321975Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8322055Z               "line": 659
2026-06-13T10:36:10.8322140Z             },
2026-06-13T10:36:10.8322225Z             {
2026-06-13T10:36:10.8322331Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8322410Z               "line": 713
2026-06-13T10:36:10.8322490Z             },
2026-06-13T10:36:10.8322571Z             {
2026-06-13T10:36:10.8322776Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8322847Z               "line": 731
2026-06-13T10:36:10.8322939Z             },
2026-06-13T10:36:10.8323011Z             {
2026-06-13T10:36:10.8323124Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8323215Z               "line": 765
2026-06-13T10:36:10.8323301Z             },
2026-06-13T10:36:10.8323387Z             {
2026-06-13T10:36:10.8323491Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T10:36:10.8323578Z               "line": 840
2026-06-13T10:36:10.8323654Z             },
2026-06-13T10:36:10.8323739Z             {
2026-06-13T10:36:10.8323859Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-13T10:36:10.8323940Z               "line": 80
2026-06-13T10:36:10.8324021Z             },
2026-06-13T10:36:10.8324092Z             {
2026-06-13T10:36:10.8324198Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8324283Z               "line": 5891
2026-06-13T10:36:10.8324373Z             },
2026-06-13T10:36:10.8324459Z             {
2026-06-13T10:36:10.8324565Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8324659Z               "line": 6637
2026-06-13T10:36:10.8324736Z             },
2026-06-13T10:36:10.8324827Z             {
2026-06-13T10:36:10.8324932Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8325026Z               "line": 6707
2026-06-13T10:36:10.8325106Z             },
2026-06-13T10:36:10.8325188Z             {
2026-06-13T10:36:10.8325296Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8325381Z               "line": 6745
2026-06-13T10:36:10.8325462Z             }
2026-06-13T10:36:10.8325544Z           ]
2026-06-13T10:36:10.8325625Z         }
2026-06-13T10:36:10.8325709Z       }
2026-06-13T10:36:10.8325786Z     },
2026-06-13T10:36:10.8325868Z     {
2026-06-13T10:36:10.8325958Z       "id": "REQ-START-1",
2026-06-13T10:36:10.8326154Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-13T10:36:10.8326254Z       "requiredStages": [
2026-06-13T10:36:10.8326339Z         "impl",
2026-06-13T10:36:10.8326425Z         "unit"
2026-06-13T10:36:10.8326502Z       ],
2026-06-13T10:36:10.8326587Z       "stages": {
2026-06-13T10:36:10.8326673Z         "doc": {
2026-06-13T10:36:10.8326775Z           "complete": false,
2026-06-13T10:36:10.8326864Z           "evidence": []
2026-06-13T10:36:10.8326945Z         },
2026-06-13T10:36:10.8327031Z         "impl": {
2026-06-13T10:36:10.8327117Z           "complete": true,
2026-06-13T10:36:10.8327207Z           "evidence": [
2026-06-13T10:36:10.8327289Z             {
2026-06-13T10:36:10.8327404Z               "path": "crates/spt-store/src/seed.rs",
2026-06-13T10:36:10.8327494Z               "line": 16
2026-06-13T10:36:10.8327574Z             }
2026-06-13T10:36:10.8327654Z           ]
2026-06-13T10:36:10.8327731Z         },
2026-06-13T10:36:10.8327816Z         "int": {
2026-06-13T10:36:10.8327905Z           "complete": false,
2026-06-13T10:36:10.8328000Z           "evidence": []
2026-06-13T10:36:10.8328081Z         },
2026-06-13T10:36:10.8328164Z         "unit": {
2026-06-13T10:36:10.8328257Z           "complete": true,
2026-06-13T10:36:10.8328338Z           "evidence": [
2026-06-13T10:36:10.8328426Z             {
2026-06-13T10:36:10.8328620Z               "path": "crates/spt-store/src/seed.rs",
2026-06-13T10:36:10.8328716Z               "line": 43
2026-06-13T10:36:10.8328796Z             },
2026-06-13T10:36:10.8328877Z             {
2026-06-13T10:36:10.8329083Z               "path": "crates/spt-store/src/seed.rs",
2026-06-13T10:36:10.8329169Z               "line": 59
2026-06-13T10:36:10.8329249Z             }
2026-06-13T10:36:10.8329331Z           ]
2026-06-13T10:36:10.8329412Z         }
2026-06-13T10:36:10.8329493Z       }
2026-06-13T10:36:10.8329574Z     },
2026-06-13T10:36:10.8329656Z     {
2026-06-13T10:36:10.8329746Z       "id": "REQ-START-2",
2026-06-13T10:36:10.8329888Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-13T10:36:10.8330079Z       "requiredStages": [
2026-06-13T10:36:10.8330165Z         "impl",
2026-06-13T10:36:10.8330247Z         "unit",
2026-06-13T10:36:10.8330338Z         "int"
2026-06-13T10:36:10.8330422Z       ],
2026-06-13T10:36:10.8330503Z       "stages": {
2026-06-13T10:36:10.8330593Z         "doc": {
2026-06-13T10:36:10.8330689Z           "complete": false,
2026-06-13T10:36:10.8330784Z           "evidence": []
2026-06-13T10:36:10.8330860Z         },
2026-06-13T10:36:10.8330951Z         "impl": {
2026-06-13T10:36:10.8331042Z           "complete": true,
2026-06-13T10:36:10.8331127Z           "evidence": [
2026-06-13T10:36:10.8331208Z             {
2026-06-13T10:36:10.8331323Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8331413Z               "line": 16
2026-06-13T10:36:10.8331489Z             },
2026-06-13T10:36:10.8331576Z             {
2026-06-13T10:36:10.8331690Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8331780Z               "line": 100
2026-06-13T10:36:10.8331862Z             },
2026-06-13T10:36:10.8331944Z             {
2026-06-13T10:36:10.8332057Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8332147Z               "line": 224
2026-06-13T10:36:10.8332230Z             }
2026-06-13T10:36:10.8332314Z           ]
2026-06-13T10:36:10.8332405Z         },
2026-06-13T10:36:10.8332481Z         "int": {
2026-06-13T10:36:10.8332569Z           "complete": true,
2026-06-13T10:36:10.8332657Z           "evidence": [
2026-06-13T10:36:10.8332743Z             {
2026-06-13T10:36:10.8332871Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T10:36:10.8332960Z               "line": 186
2026-06-13T10:36:10.8333046Z             }
2026-06-13T10:36:10.8333116Z           ]
2026-06-13T10:36:10.8333198Z         },
2026-06-13T10:36:10.8333285Z         "unit": {
2026-06-13T10:36:10.8333374Z           "complete": true,
2026-06-13T10:36:10.8333456Z           "evidence": [
2026-06-13T10:36:10.8333551Z             {
2026-06-13T10:36:10.8333665Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8333750Z               "line": 438
2026-06-13T10:36:10.8333829Z             },
2026-06-13T10:36:10.8333909Z             {
2026-06-13T10:36:10.8334018Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8334100Z               "line": 471
2026-06-13T10:36:10.8334185Z             }
2026-06-13T10:36:10.8334276Z           ]
2026-06-13T10:36:10.8334380Z         }
2026-06-13T10:36:10.8334458Z       }
2026-06-13T10:36:10.8334542Z     },
2026-06-13T10:36:10.8334619Z     {
2026-06-13T10:36:10.8334729Z       "id": "REQ-START-3",
2026-06-13T10:36:10.8334933Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-13T10:36:10.8335024Z       "requiredStages": [
2026-06-13T10:36:10.8335112Z         "impl",
2026-06-13T10:36:10.8335196Z         "unit",
2026-06-13T10:36:10.8335277Z         "int"
2026-06-13T10:36:10.8335359Z       ],
2026-06-13T10:36:10.8335436Z       "stages": {
2026-06-13T10:36:10.8335525Z         "doc": {
2026-06-13T10:36:10.8335605Z           "complete": false,
2026-06-13T10:36:10.8335700Z           "evidence": []
2026-06-13T10:36:10.8335790Z         },
2026-06-13T10:36:10.8335889Z         "impl": {
2026-06-13T10:36:10.8335988Z           "complete": true,
2026-06-13T10:36:10.8336175Z           "evidence": [
2026-06-13T10:36:10.8336265Z             {
2026-06-13T10:36:10.8336381Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T10:36:10.8336476Z               "line": 23
2026-06-13T10:36:10.8336551Z             },
2026-06-13T10:36:10.8336632Z             {
2026-06-13T10:36:10.8336743Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T10:36:10.8336833Z               "line": 205
2026-06-13T10:36:10.8336909Z             },
2026-06-13T10:36:10.8336985Z             {
2026-06-13T10:36:10.8337095Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T10:36:10.8337176Z               "line": 221
2026-06-13T10:36:10.8337335Z             },
2026-06-13T10:36:10.8337420Z             {
2026-06-13T10:36:10.8337543Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8337630Z               "line": 17
2026-06-13T10:36:10.8337706Z             },
2026-06-13T10:36:10.8337786Z             {
2026-06-13T10:36:10.8337901Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8337993Z               "line": 43
2026-06-13T10:36:10.8338078Z             },
2026-06-13T10:36:10.8338153Z             {
2026-06-13T10:36:10.8338272Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8338357Z               "line": 101
2026-06-13T10:36:10.8338437Z             }
2026-06-13T10:36:10.8338512Z           ]
2026-06-13T10:36:10.8338589Z         },
2026-06-13T10:36:10.8338666Z         "int": {
2026-06-13T10:36:10.8338756Z           "complete": true,
2026-06-13T10:36:10.8338846Z           "evidence": [
2026-06-13T10:36:10.8338928Z             {
2026-06-13T10:36:10.8339123Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T10:36:10.8339213Z               "line": 440
2026-06-13T10:36:10.8339291Z             }
2026-06-13T10:36:10.8339376Z           ]
2026-06-13T10:36:10.8339452Z         },
2026-06-13T10:36:10.8339558Z         "unit": {
2026-06-13T10:36:10.8339643Z           "complete": true,
2026-06-13T10:36:10.8339739Z           "evidence": [
2026-06-13T10:36:10.8339814Z             {
2026-06-13T10:36:10.8339939Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T10:36:10.8340024Z               "line": 331
2026-06-13T10:36:10.8340105Z             },
2026-06-13T10:36:10.8340182Z             {
2026-06-13T10:36:10.8340301Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T10:36:10.8340397Z               "line": 352
2026-06-13T10:36:10.8340478Z             },
2026-06-13T10:36:10.8340559Z             {
2026-06-13T10:36:10.8340668Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T10:36:10.8340753Z               "line": 362
2026-06-13T10:36:10.8340841Z             },
2026-06-13T10:36:10.8340926Z             {
2026-06-13T10:36:10.8341034Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8341124Z               "line": 439
2026-06-13T10:36:10.8341206Z             },
2026-06-13T10:36:10.8341288Z             {
2026-06-13T10:36:10.8341401Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8341487Z               "line": 472
2026-06-13T10:36:10.8341568Z             },
2026-06-13T10:36:10.8341654Z             {
2026-06-13T10:36:10.8341758Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T10:36:10.8341850Z               "line": 480
2026-06-13T10:36:10.8341931Z             }
2026-06-13T10:36:10.8342016Z           ]
2026-06-13T10:36:10.8342102Z         }
2026-06-13T10:36:10.8342184Z       }
2026-06-13T10:36:10.8342264Z     },
2026-06-13T10:36:10.8342345Z     {
2026-06-13T10:36:10.8342441Z       "id": "REQ-START-4",
2026-06-13T10:36:10.8342583Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-13T10:36:10.8342688Z       "requiredStages": [
2026-06-13T10:36:10.8342771Z         "impl",
2026-06-13T10:36:10.8342856Z         "unit"
2026-06-13T10:36:10.8342941Z       ],
2026-06-13T10:36:10.8343023Z       "stages": {
2026-06-13T10:36:10.8343105Z         "doc": {
2026-06-13T10:36:10.8343293Z           "complete": false,
2026-06-13T10:36:10.8343379Z           "evidence": []
2026-06-13T10:36:10.8343465Z         },
2026-06-13T10:36:10.8343548Z         "impl": {
2026-06-13T10:36:10.8343643Z           "complete": true,
2026-06-13T10:36:10.8343729Z           "evidence": [
2026-06-13T10:36:10.8343806Z             {
2026-06-13T10:36:10.8343925Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.8344006Z               "line": 393
2026-06-13T10:36:10.8344093Z             }
2026-06-13T10:36:10.8344164Z           ]
2026-06-13T10:36:10.8344244Z         },
2026-06-13T10:36:10.8344315Z         "int": {
2026-06-13T10:36:10.8344403Z           "complete": false,
2026-06-13T10:36:10.8344592Z           "evidence": []
2026-06-13T10:36:10.8344674Z         },
2026-06-13T10:36:10.8344760Z         "unit": {
2026-06-13T10:36:10.8344850Z           "complete": true,
2026-06-13T10:36:10.8344940Z           "evidence": [
2026-06-13T10:36:10.8345023Z             {
2026-06-13T10:36:10.8345151Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T10:36:10.8345241Z               "line": 777
2026-06-13T10:36:10.8345323Z             }
2026-06-13T10:36:10.8345408Z           ]
2026-06-13T10:36:10.8345489Z         }
2026-06-13T10:36:10.8345575Z       }
2026-06-13T10:36:10.8345657Z     },
2026-06-13T10:36:10.8345737Z     {
2026-06-13T10:36:10.8345832Z       "id": "REQ-STORE-1",
2026-06-13T10:36:10.8346669Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-13T10:36:10.8346773Z       "requiredStages": [
2026-06-13T10:36:10.8346853Z         "impl",
2026-06-13T10:36:10.8346941Z         "unit"
2026-06-13T10:36:10.8347026Z       ],
2026-06-13T10:36:10.8347111Z       "stages": {
2026-06-13T10:36:10.8347202Z         "doc": {
2026-06-13T10:36:10.8347298Z           "complete": false,
2026-06-13T10:36:10.8347389Z           "evidence": []
2026-06-13T10:36:10.8347469Z         },
2026-06-13T10:36:10.8347560Z         "impl": {
2026-06-13T10:36:10.8347651Z           "complete": true,
2026-06-13T10:36:10.8347736Z           "evidence": [
2026-06-13T10:36:10.8347827Z             {
2026-06-13T10:36:10.8347956Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8348050Z               "line": 23
2026-06-13T10:36:10.8348132Z             },
2026-06-13T10:36:10.8348214Z             {
2026-06-13T10:36:10.8348341Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8348437Z               "line": 46
2026-06-13T10:36:10.8348524Z             },
2026-06-13T10:36:10.8348610Z             {
2026-06-13T10:36:10.8348741Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8348832Z               "line": 97
2026-06-13T10:36:10.8348913Z             },
2026-06-13T10:36:10.8349082Z             {
2026-06-13T10:36:10.8349201Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8349302Z               "line": 125
2026-06-13T10:36:10.8349382Z             },
2026-06-13T10:36:10.8349468Z             {
2026-06-13T10:36:10.8349593Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8349678Z               "line": 181
2026-06-13T10:36:10.8349769Z             },
2026-06-13T10:36:10.8349851Z             {
2026-06-13T10:36:10.8349974Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8350064Z               "line": 205
2026-06-13T10:36:10.8350151Z             },
2026-06-13T10:36:10.8350241Z             {
2026-06-13T10:36:10.8350355Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8350452Z               "line": 441
2026-06-13T10:36:10.8350537Z             },
2026-06-13T10:36:10.8350628Z             {
2026-06-13T10:36:10.8350870Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.8350966Z               "line": 25
2026-06-13T10:36:10.8351052Z             },
2026-06-13T10:36:10.8351139Z             {
2026-06-13T10:36:10.8351261Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.8351348Z               "line": 120
2026-06-13T10:36:10.8351420Z             },
2026-06-13T10:36:10.8351505Z             {
2026-06-13T10:36:10.8351627Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.8351723Z               "line": 148
2026-06-13T10:36:10.8351805Z             },
2026-06-13T10:36:10.8351890Z             {
2026-06-13T10:36:10.8352013Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.8352200Z               "line": 165
2026-06-13T10:36:10.8352280Z             },
2026-06-13T10:36:10.8352367Z             {
2026-06-13T10:36:10.8352491Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.8352580Z               "line": 180
2026-06-13T10:36:10.8352677Z             },
2026-06-13T10:36:10.8352758Z             {
2026-06-13T10:36:10.8352881Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.8352967Z               "line": 198
2026-06-13T10:36:10.8353050Z             },
2026-06-13T10:36:10.8353139Z             {
2026-06-13T10:36:10.8353258Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.8353345Z               "line": 207
2026-06-13T10:36:10.8353426Z             },
2026-06-13T10:36:10.8353516Z             {
2026-06-13T10:36:10.8353646Z               "path": "crates/spt-store/src/project.rs",
2026-06-13T10:36:10.8353731Z               "line": 16
2026-06-13T10:36:10.8353825Z             },
2026-06-13T10:36:10.8353905Z             {
2026-06-13T10:36:10.8354020Z               "path": "crates/spt-store/src/project.rs",
2026-06-13T10:36:10.8354109Z               "line": 63
2026-06-13T10:36:10.8354194Z             }
2026-06-13T10:36:10.8354280Z           ]
2026-06-13T10:36:10.8354362Z         },
2026-06-13T10:36:10.8354452Z         "int": {
2026-06-13T10:36:10.8354546Z           "complete": false,
2026-06-13T10:36:10.8354638Z           "evidence": []
2026-06-13T10:36:10.8354719Z         },
2026-06-13T10:36:10.8354809Z         "unit": {
2026-06-13T10:36:10.8354905Z           "complete": true,
2026-06-13T10:36:10.8354982Z           "evidence": [
2026-06-13T10:36:10.8355063Z             {
2026-06-13T10:36:10.8355190Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8355282Z               "line": 558
2026-06-13T10:36:10.8355363Z             },
2026-06-13T10:36:10.8355448Z             {
2026-06-13T10:36:10.8355573Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8355667Z               "line": 568
2026-06-13T10:36:10.8355753Z             },
2026-06-13T10:36:10.8355834Z             {
2026-06-13T10:36:10.8355955Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8356039Z               "line": 590
2026-06-13T10:36:10.8356120Z             },
2026-06-13T10:36:10.8356198Z             {
2026-06-13T10:36:10.8356316Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8356411Z               "line": 606
2026-06-13T10:36:10.8356489Z             },
2026-06-13T10:36:10.8356566Z             {
2026-06-13T10:36:10.8356673Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T10:36:10.8356767Z               "line": 629
2026-06-13T10:36:10.8356849Z             },
2026-06-13T10:36:10.8356934Z             {
2026-06-13T10:36:10.8357061Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.8357138Z               "line": 472
2026-06-13T10:36:10.8357224Z             },
2026-06-13T10:36:10.8357295Z             {
2026-06-13T10:36:10.8357418Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T10:36:10.8357511Z               "line": 507
2026-06-13T10:36:10.8357586Z             },
2026-06-13T10:36:10.8357681Z             {
2026-06-13T10:36:10.8357891Z               "path": "crates/spt-store/src/project.rs",
2026-06-13T10:36:10.8357986Z               "line": 120
2026-06-13T10:36:10.8358057Z             },
2026-06-13T10:36:10.8358145Z             {
2026-06-13T10:36:10.8358263Z               "path": "crates/spt-store/src/project.rs",
2026-06-13T10:36:10.8358358Z               "line": 128
2026-06-13T10:36:10.8358435Z             }
2026-06-13T10:36:10.8358516Z           ]
2026-06-13T10:36:10.8358596Z         }
2026-06-13T10:36:10.8358678Z       }
2026-06-13T10:36:10.8358755Z     },
2026-06-13T10:36:10.8358836Z     {
2026-06-13T10:36:10.8358925Z       "id": "REQ-SUBNET-1",
2026-06-13T10:36:10.8359339Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-13T10:36:10.8359543Z       "requiredStages": [
2026-06-13T10:36:10.8359632Z         "impl",
2026-06-13T10:36:10.8359719Z         "unit"
2026-06-13T10:36:10.8359801Z       ],
2026-06-13T10:36:10.8359886Z       "stages": {
2026-06-13T10:36:10.8359971Z         "doc": {
2026-06-13T10:36:10.8360067Z           "complete": false,
2026-06-13T10:36:10.8360148Z           "evidence": []
2026-06-13T10:36:10.8360233Z         },
2026-06-13T10:36:10.8360319Z         "impl": {
2026-06-13T10:36:10.8360415Z           "complete": true,
2026-06-13T10:36:10.8360506Z           "evidence": [
2026-06-13T10:36:10.8360582Z             {
2026-06-13T10:36:10.8360707Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8360796Z               "line": 265
2026-06-13T10:36:10.8360882Z             },
2026-06-13T10:36:10.8360973Z             {
2026-06-13T10:36:10.8361097Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8361192Z               "line": 571
2026-06-13T10:36:10.8361273Z             },
2026-06-13T10:36:10.8361360Z             {
2026-06-13T10:36:10.8361464Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8361554Z               "line": 2674
2026-06-13T10:36:10.8361642Z             },
2026-06-13T10:36:10.8361722Z             {
2026-06-13T10:36:10.8361831Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8361908Z               "line": 2839
2026-06-13T10:36:10.8361990Z             },
2026-06-13T10:36:10.8362074Z             {
2026-06-13T10:36:10.8362173Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8362264Z               "line": 2858
2026-06-13T10:36:10.8362346Z             },
2026-06-13T10:36:10.8362431Z             {
2026-06-13T10:36:10.8362535Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8362617Z               "line": 2919
2026-06-13T10:36:10.8362689Z             },
2026-06-13T10:36:10.8362784Z             {
2026-06-13T10:36:10.8362884Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8362970Z               "line": 2961
2026-06-13T10:36:10.8363061Z             },
2026-06-13T10:36:10.8363141Z             {
2026-06-13T10:36:10.8363247Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8363333Z               "line": 3150
2026-06-13T10:36:10.8363423Z             },
2026-06-13T10:36:10.8363503Z             {
2026-06-13T10:36:10.8363605Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8363689Z               "line": 3220
2026-06-13T10:36:10.8363771Z             },
2026-06-13T10:36:10.8363857Z             {
2026-06-13T10:36:10.8363957Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8364042Z               "line": 3444
2026-06-13T10:36:10.8366609Z             },
2026-06-13T10:36:10.8366714Z             {
2026-06-13T10:36:10.8366834Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.8366933Z               "line": 418
2026-06-13T10:36:10.8367020Z             }
2026-06-13T10:36:10.8367102Z           ]
2026-06-13T10:36:10.8367186Z         },
2026-06-13T10:36:10.8367266Z         "int": {
2026-06-13T10:36:10.8367361Z           "complete": false,
2026-06-13T10:36:10.8367453Z           "evidence": []
2026-06-13T10:36:10.8367532Z         },
2026-06-13T10:36:10.8367731Z         "unit": {
2026-06-13T10:36:10.8367832Z           "complete": true,
2026-06-13T10:36:10.8367921Z           "evidence": [
2026-06-13T10:36:10.8368007Z             {
2026-06-13T10:36:10.8368146Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8368231Z               "line": 1446
2026-06-13T10:36:10.8368312Z             },
2026-06-13T10:36:10.8368400Z             {
2026-06-13T10:36:10.8368504Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8368589Z               "line": 7545
2026-06-13T10:36:10.8368676Z             },
2026-06-13T10:36:10.8368757Z             {
2026-06-13T10:36:10.8368928Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8369104Z               "line": 7715
2026-06-13T10:36:10.8369190Z             },
2026-06-13T10:36:10.8369281Z             {
2026-06-13T10:36:10.8369387Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8369466Z               "line": 7722
2026-06-13T10:36:10.8369548Z             },
2026-06-13T10:36:10.8369620Z             {
2026-06-13T10:36:10.8369720Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8369810Z               "line": 7775
2026-06-13T10:36:10.8369889Z             },
2026-06-13T10:36:10.8369976Z             {
2026-06-13T10:36:10.8370079Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8370165Z               "line": 7792
2026-06-13T10:36:10.8370245Z             },
2026-06-13T10:36:10.8370327Z             {
2026-06-13T10:36:10.8370427Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8370507Z               "line": 7822
2026-06-13T10:36:10.8370593Z             },
2026-06-13T10:36:10.8370675Z             {
2026-06-13T10:36:10.8370775Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8370860Z               "line": 7920
2026-06-13T10:36:10.8370943Z             },
2026-06-13T10:36:10.8371023Z             {
2026-06-13T10:36:10.8371122Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8371204Z               "line": 8070
2026-06-13T10:36:10.8371286Z             }
2026-06-13T10:36:10.8371366Z           ]
2026-06-13T10:36:10.8371447Z         }
2026-06-13T10:36:10.8371528Z       }
2026-06-13T10:36:10.8371605Z     },
2026-06-13T10:36:10.8371681Z     {
2026-06-13T10:36:10.8371781Z       "id": "REQ-SUBNET-2",
2026-06-13T10:36:10.8372019Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-13T10:36:10.8372115Z       "requiredStages": [
2026-06-13T10:36:10.8372202Z         "impl",
2026-06-13T10:36:10.8372282Z         "unit",
2026-06-13T10:36:10.8372367Z         "int"
2026-06-13T10:36:10.8372448Z       ],
2026-06-13T10:36:10.8372536Z       "stages": {
2026-06-13T10:36:10.8372616Z         "doc": {
2026-06-13T10:36:10.8372705Z           "complete": true,
2026-06-13T10:36:10.8372795Z           "evidence": [
2026-06-13T10:36:10.8372872Z             {
2026-06-13T10:36:10.8373048Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-13T10:36:10.8373134Z               "line": 60
2026-06-13T10:36:10.8373211Z             }
2026-06-13T10:36:10.8373292Z           ]
2026-06-13T10:36:10.8373372Z         },
2026-06-13T10:36:10.8373458Z         "impl": {
2026-06-13T10:36:10.8373545Z           "complete": true,
2026-06-13T10:36:10.8373635Z           "evidence": [
2026-06-13T10:36:10.8373715Z             {
2026-06-13T10:36:10.8373840Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.8373930Z               "line": 800
2026-06-13T10:36:10.8374011Z             },
2026-06-13T10:36:10.8374088Z             {
2026-06-13T10:36:10.8374208Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.8374303Z               "line": 801
2026-06-13T10:36:10.8374388Z             },
2026-06-13T10:36:10.8374461Z             {
2026-06-13T10:36:10.8374579Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.8374655Z               "line": 448
2026-06-13T10:36:10.8374818Z             },
2026-06-13T10:36:10.8374898Z             {
2026-06-13T10:36:10.8375012Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T10:36:10.8375102Z               "line": 578
2026-06-13T10:36:10.8375187Z             },
2026-06-13T10:36:10.8375271Z             {
2026-06-13T10:36:10.8375391Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.8375482Z               "line": 26
2026-06-13T10:36:10.8375563Z             },
2026-06-13T10:36:10.8375648Z             {
2026-06-13T10:36:10.8375768Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.8375859Z               "line": 60
2026-06-13T10:36:10.8376045Z             },
2026-06-13T10:36:10.8376126Z             {
2026-06-13T10:36:10.8376239Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.8376330Z               "line": 168
2026-06-13T10:36:10.8376417Z             },
2026-06-13T10:36:10.8376502Z             {
2026-06-13T10:36:10.8376621Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.8376712Z               "line": 295
2026-06-13T10:36:10.8376793Z             },
2026-06-13T10:36:10.8376878Z             {
2026-06-13T10:36:10.8376994Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.8377080Z               "line": 417
2026-06-13T10:36:10.8377169Z             },
2026-06-13T10:36:10.8377250Z             {
2026-06-13T10:36:10.8377380Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T10:36:10.8377464Z               "line": 252
2026-06-13T10:36:10.8377546Z             },
2026-06-13T10:36:10.8377628Z             {
2026-06-13T10:36:10.8377742Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8377831Z               "line": 2885
2026-06-13T10:36:10.8377911Z             },
2026-06-13T10:36:10.8377998Z             {
2026-06-13T10:36:10.8378096Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8378186Z               "line": 3383
2026-06-13T10:36:10.8378272Z             },
2026-06-13T10:36:10.8378363Z             {
2026-06-13T10:36:10.8378463Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8378548Z               "line": 4012
2026-06-13T10:36:10.8378631Z             }
2026-06-13T10:36:10.8378716Z           ]
2026-06-13T10:36:10.8378796Z         },
2026-06-13T10:36:10.8378882Z         "int": {
2026-06-13T10:36:10.8379060Z           "complete": true,
2026-06-13T10:36:10.8379144Z           "evidence": [
2026-06-13T10:36:10.8379221Z             {
2026-06-13T10:36:10.8379345Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-13T10:36:10.8379435Z               "line": 22
2026-06-13T10:36:10.8379555Z             },
2026-06-13T10:36:10.8379637Z             {
2026-06-13T10:36:10.8379759Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8379851Z               "line": 575
2026-06-13T10:36:10.8379933Z             },
2026-06-13T10:36:10.8380021Z             {
2026-06-13T10:36:10.8380141Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8380233Z               "line": 792
2026-06-13T10:36:10.8380313Z             }
2026-06-13T10:36:10.8380393Z           ]
2026-06-13T10:36:10.8380478Z         },
2026-06-13T10:36:10.8380560Z         "unit": {
2026-06-13T10:36:10.8380658Z           "complete": true,
2026-06-13T10:36:10.8380743Z           "evidence": [
2026-06-13T10:36:10.8380829Z             {
2026-06-13T10:36:10.8380945Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.8381030Z               "line": 586
2026-06-13T10:36:10.8381115Z             },
2026-06-13T10:36:10.8381193Z             {
2026-06-13T10:36:10.8381297Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8381387Z               "line": 7585
2026-06-13T10:36:10.8381473Z             },
2026-06-13T10:36:10.8381559Z             {
2026-06-13T10:36:10.8381654Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8381749Z               "line": 8274
2026-06-13T10:36:10.8381931Z             }
2026-06-13T10:36:10.8382011Z           ]
2026-06-13T10:36:10.8382093Z         }
2026-06-13T10:36:10.8382179Z       }
2026-06-13T10:36:10.8382270Z     },
2026-06-13T10:36:10.8382350Z     {
2026-06-13T10:36:10.8382442Z       "id": "REQ-SUBNET-3",
2026-06-13T10:36:10.8382718Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-13T10:36:10.8382814Z       "requiredStages": [
2026-06-13T10:36:10.8382903Z         "impl",
2026-06-13T10:36:10.8382985Z         "unit"
2026-06-13T10:36:10.8383067Z       ],
2026-06-13T10:36:10.8383152Z       "stages": {
2026-06-13T10:36:10.8383350Z         "doc": {
2026-06-13T10:36:10.8383446Z           "complete": false,
2026-06-13T10:36:10.8383537Z           "evidence": []
2026-06-13T10:36:10.8383617Z         },
2026-06-13T10:36:10.8383703Z         "impl": {
2026-06-13T10:36:10.8383795Z           "complete": true,
2026-06-13T10:36:10.8383885Z           "evidence": [
2026-06-13T10:36:10.8383975Z             {
2026-06-13T10:36:10.8384110Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8384195Z               "line": 152
2026-06-13T10:36:10.8384275Z             },
2026-06-13T10:36:10.8384367Z             {
2026-06-13T10:36:10.8384495Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8384581Z               "line": 283
2026-06-13T10:36:10.8384662Z             },
2026-06-13T10:36:10.8384744Z             {
2026-06-13T10:36:10.8384867Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8384953Z               "line": 413
2026-06-13T10:36:10.8385044Z             },
2026-06-13T10:36:10.8385134Z             {
2026-06-13T10:36:10.8385258Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8385340Z               "line": 452
2026-06-13T10:36:10.8385430Z             },
2026-06-13T10:36:10.8385510Z             {
2026-06-13T10:36:10.8385624Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8385719Z               "line": 125
2026-06-13T10:36:10.8385803Z             },
2026-06-13T10:36:10.8385879Z             {
2026-06-13T10:36:10.8386003Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8386090Z               "line": 237
2026-06-13T10:36:10.8386170Z             },
2026-06-13T10:36:10.8386251Z             {
2026-06-13T10:36:10.8386371Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8386457Z               "line": 248
2026-06-13T10:36:10.8386532Z             },
2026-06-13T10:36:10.8386610Z             {
2026-06-13T10:36:10.8386728Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8386823Z               "line": 269
2026-06-13T10:36:10.8386900Z             },
2026-06-13T10:36:10.8386977Z             {
2026-06-13T10:36:10.8387095Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8387176Z               "line": 573
2026-06-13T10:36:10.8387258Z             },
2026-06-13T10:36:10.8387343Z             {
2026-06-13T10:36:10.8387457Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8387549Z               "line": 632
2026-06-13T10:36:10.8387616Z             },
2026-06-13T10:36:10.8387700Z             {
2026-06-13T10:36:10.8387805Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T10:36:10.8387893Z               "line": 61
2026-06-13T10:36:10.8387969Z             },
2026-06-13T10:36:10.8388048Z             {
2026-06-13T10:36:10.8388164Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T10:36:10.8388246Z               "line": 90
2026-06-13T10:36:10.8388335Z             },
2026-06-13T10:36:10.8388415Z             {
2026-06-13T10:36:10.8388534Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T10:36:10.8388615Z               "line": 125
2026-06-13T10:36:10.8388689Z             },
2026-06-13T10:36:10.8388775Z             {
2026-06-13T10:36:10.8389037Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-13T10:36:10.8389127Z               "line": 9
2026-06-13T10:36:10.8389205Z             },
2026-06-13T10:36:10.8389296Z             {
2026-06-13T10:36:10.8389409Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8389501Z               "line": 3220
2026-06-13T10:36:10.8389581Z             },
2026-06-13T10:36:10.8389666Z             {
2026-06-13T10:36:10.8389772Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.8389854Z               "line": 445
2026-06-13T10:36:10.8389938Z             }
2026-06-13T10:36:10.8390019Z           ]
2026-06-13T10:36:10.8390101Z         },
2026-06-13T10:36:10.8390286Z         "int": {
2026-06-13T10:36:10.8390368Z           "complete": false,
2026-06-13T10:36:10.8390450Z           "evidence": []
2026-06-13T10:36:10.8390521Z         },
2026-06-13T10:36:10.8390596Z         "unit": {
2026-06-13T10:36:10.8390682Z           "complete": true,
2026-06-13T10:36:10.8390779Z           "evidence": [
2026-06-13T10:36:10.8390864Z             {
2026-06-13T10:36:10.8390991Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8391077Z               "line": 1273
2026-06-13T10:36:10.8391163Z             },
2026-06-13T10:36:10.8391241Z             {
2026-06-13T10:36:10.8391365Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8391452Z               "line": 1575
2026-06-13T10:36:10.8391533Z             },
2026-06-13T10:36:10.8391608Z             {
2026-06-13T10:36:10.8391733Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T10:36:10.8391819Z               "line": 885
2026-06-13T10:36:10.8391904Z             },
2026-06-13T10:36:10.8391985Z             {
2026-06-13T10:36:10.8392105Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8392186Z               "line": 941
2026-06-13T10:36:10.8392266Z             },
2026-06-13T10:36:10.8392353Z             {
2026-06-13T10:36:10.8392462Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8392548Z               "line": 990
2026-06-13T10:36:10.8392629Z             },
2026-06-13T10:36:10.8392712Z             {
2026-06-13T10:36:10.8392825Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8392906Z               "line": 1049
2026-06-13T10:36:10.8392987Z             },
2026-06-13T10:36:10.8393064Z             {
2026-06-13T10:36:10.8393177Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T10:36:10.8393258Z               "line": 233
2026-06-13T10:36:10.8393341Z             },
2026-06-13T10:36:10.8393425Z             {
2026-06-13T10:36:10.8393545Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-13T10:36:10.8393627Z               "line": 49
2026-06-13T10:36:10.8393708Z             },
2026-06-13T10:36:10.8393792Z             {
2026-06-13T10:36:10.8393886Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8393973Z               "line": 7920
2026-06-13T10:36:10.8394060Z             },
2026-06-13T10:36:10.8394135Z             {
2026-06-13T10:36:10.8394244Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8394326Z               "line": 8025
2026-06-13T10:36:10.8394407Z             },
2026-06-13T10:36:10.8394492Z             {
2026-06-13T10:36:10.8394593Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8394674Z               "line": 8240
2026-06-13T10:36:10.8394755Z             }
2026-06-13T10:36:10.8394840Z           ]
2026-06-13T10:36:10.8394917Z         }
2026-06-13T10:36:10.8394998Z       }
2026-06-13T10:36:10.8395084Z     },
2026-06-13T10:36:10.8395164Z     {
2026-06-13T10:36:10.8395271Z       "id": "REQ-SUBNET-4",
2026-06-13T10:36:10.8395547Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-13T10:36:10.8395647Z       "requiredStages": [
2026-06-13T10:36:10.8395732Z         "impl",
2026-06-13T10:36:10.8395813Z         "unit"
2026-06-13T10:36:10.8395971Z       ],
2026-06-13T10:36:10.8396056Z       "stages": {
2026-06-13T10:36:10.8396141Z         "doc": {
2026-06-13T10:36:10.8396227Z           "complete": true,
2026-06-13T10:36:10.8396321Z           "evidence": [
2026-06-13T10:36:10.8396401Z             {
2026-06-13T10:36:10.8396568Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-13T10:36:10.8396650Z               "line": 60
2026-06-13T10:36:10.8396734Z             }
2026-06-13T10:36:10.8396820Z           ]
2026-06-13T10:36:10.8396898Z         },
2026-06-13T10:36:10.8396979Z         "impl": {
2026-06-13T10:36:10.8397068Z           "complete": true,
2026-06-13T10:36:10.8397227Z           "evidence": [
2026-06-13T10:36:10.8397298Z             {
2026-06-13T10:36:10.8397397Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8397480Z               "line": 2674
2026-06-13T10:36:10.8397565Z             },
2026-06-13T10:36:10.8397655Z             {
2026-06-13T10:36:10.8397765Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8397861Z               "line": 3979
2026-06-13T10:36:10.8397941Z             },
2026-06-13T10:36:10.8398022Z             {
2026-06-13T10:36:10.8398124Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8398204Z               "line": 4012
2026-06-13T10:36:10.8398289Z             }
2026-06-13T10:36:10.8398365Z           ]
2026-06-13T10:36:10.8398448Z         },
2026-06-13T10:36:10.8398533Z         "int": {
2026-06-13T10:36:10.8398623Z           "complete": false,
2026-06-13T10:36:10.8398715Z           "evidence": []
2026-06-13T10:36:10.8398796Z         },
2026-06-13T10:36:10.8398886Z         "unit": {
2026-06-13T10:36:10.8399051Z           "complete": true,
2026-06-13T10:36:10.8399137Z           "evidence": [
2026-06-13T10:36:10.8399212Z             {
2026-06-13T10:36:10.8399311Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8399402Z               "line": 7701
2026-06-13T10:36:10.8399483Z             },
2026-06-13T10:36:10.8399564Z             {
2026-06-13T10:36:10.8399669Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8399756Z               "line": 7775
2026-06-13T10:36:10.8399836Z             }
2026-06-13T10:36:10.8399912Z           ]
2026-06-13T10:36:10.8399998Z         }
2026-06-13T10:36:10.8400080Z       }
2026-06-13T10:36:10.8400160Z     },
2026-06-13T10:36:10.8400245Z     {
2026-06-13T10:36:10.8400341Z       "id": "REQ-SUBNET-5",
2026-06-13T10:36:10.8401528Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-13T10:36:10.8401628Z       "requiredStages": [
2026-06-13T10:36:10.8401718Z         "impl",
2026-06-13T10:36:10.8401797Z         "unit",
2026-06-13T10:36:10.8401883Z         "int"
2026-06-13T10:36:10.8401973Z       ],
2026-06-13T10:36:10.8402050Z       "stages": {
2026-06-13T10:36:10.8402130Z         "doc": {
2026-06-13T10:36:10.8402225Z           "complete": false,
2026-06-13T10:36:10.8402308Z           "evidence": []
2026-06-13T10:36:10.8402379Z         },
2026-06-13T10:36:10.8402469Z         "impl": {
2026-06-13T10:36:10.8402564Z           "complete": true,
2026-06-13T10:36:10.8402652Z           "evidence": [
2026-06-13T10:36:10.8402732Z             {
2026-06-13T10:36:10.8402850Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T10:36:10.8402942Z               "line": 126
2026-06-13T10:36:10.8403018Z             },
2026-06-13T10:36:10.8403108Z             {
2026-06-13T10:36:10.8403228Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T10:36:10.8403318Z               "line": 413
2026-06-13T10:36:10.8403400Z             },
2026-06-13T10:36:10.8403480Z             {
2026-06-13T10:36:10.8403601Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.8403790Z               "line": 74
2026-06-13T10:36:10.8403882Z             },
2026-06-13T10:36:10.8403972Z             {
2026-06-13T10:36:10.8404090Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.8404182Z               "line": 332
2026-06-13T10:36:10.8404268Z             },
2026-06-13T10:36:10.8404347Z             {
2026-06-13T10:36:10.8404461Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.8404548Z               "line": 621
2026-06-13T10:36:10.8404625Z             },
2026-06-13T10:36:10.8404700Z             {
2026-06-13T10:36:10.8404819Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T10:36:10.8405005Z               "line": 31
2026-06-13T10:36:10.8405081Z             },
2026-06-13T10:36:10.8405158Z             {
2026-06-13T10:36:10.8405272Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T10:36:10.8405367Z               "line": 50
2026-06-13T10:36:10.8405449Z             },
2026-06-13T10:36:10.8405530Z             {
2026-06-13T10:36:10.8405639Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T10:36:10.8405725Z               "line": 69
2026-06-13T10:36:10.8405807Z             },
2026-06-13T10:36:10.8405892Z             {
2026-06-13T10:36:10.8406016Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T10:36:10.8406107Z               "line": 113
2026-06-13T10:36:10.8406197Z             },
2026-06-13T10:36:10.8406278Z             {
2026-06-13T10:36:10.8406412Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-13T10:36:10.8406512Z               "line": 25
2026-06-13T10:36:10.8406607Z             },
2026-06-13T10:36:10.8406697Z             {
2026-06-13T10:36:10.8406820Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-13T10:36:10.8406914Z               "line": 34
2026-06-13T10:36:10.8406999Z             },
2026-06-13T10:36:10.8407090Z             {
2026-06-13T10:36:10.8407228Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-13T10:36:10.8407318Z               "line": 17
2026-06-13T10:36:10.8407400Z             },
2026-06-13T10:36:10.8407482Z             {
2026-06-13T10:36:10.8407600Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8407691Z               "line": 3937
2026-06-13T10:36:10.8407777Z             },
2026-06-13T10:36:10.8407863Z             {
2026-06-13T10:36:10.8407976Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T10:36:10.8408073Z               "line": 419
2026-06-13T10:36:10.8408154Z             }
2026-06-13T10:36:10.8408239Z           ]
2026-06-13T10:36:10.8408320Z         },
2026-06-13T10:36:10.8408416Z         "int": {
2026-06-13T10:36:10.8408516Z           "complete": true,
2026-06-13T10:36:10.8408601Z           "evidence": [
2026-06-13T10:36:10.8408689Z             {
2026-06-13T10:36:10.8408812Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T10:36:10.8408902Z               "line": 814
2026-06-13T10:36:10.8409065Z             }
2026-06-13T10:36:10.8409150Z           ]
2026-06-13T10:36:10.8409240Z         },
2026-06-13T10:36:10.8409323Z         "unit": {
2026-06-13T10:36:10.8409418Z           "complete": true,
2026-06-13T10:36:10.8409502Z           "evidence": [
2026-06-13T10:36:10.8409592Z             {
2026-06-13T10:36:10.8409707Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T10:36:10.8409795Z               "line": 341
2026-06-13T10:36:10.8409885Z             },
2026-06-13T10:36:10.8409967Z             {
2026-06-13T10:36:10.8410092Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T10:36:10.8410181Z               "line": 1115
2026-06-13T10:36:10.8410272Z             },
2026-06-13T10:36:10.8410354Z             {
2026-06-13T10:36:10.8410477Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T10:36:10.8410567Z               "line": 151
2026-06-13T10:36:10.8410654Z             },
2026-06-13T10:36:10.8410735Z             {
2026-06-13T10:36:10.8410959Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-13T10:36:10.8411053Z               "line": 61
2026-06-13T10:36:10.8411135Z             },
2026-06-13T10:36:10.8411221Z             {
2026-06-13T10:36:10.8411345Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-13T10:36:10.8411426Z               "line": 111
2026-06-13T10:36:10.8411512Z             },
2026-06-13T10:36:10.8411594Z             {
2026-06-13T10:36:10.8411716Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-13T10:36:10.8411802Z               "line": 138
2026-06-13T10:36:10.8411889Z             },
2026-06-13T10:36:10.8411975Z             {
2026-06-13T10:36:10.8412202Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-13T10:36:10.8412292Z               "line": 148
2026-06-13T10:36:10.8412371Z             },
2026-06-13T10:36:10.8412466Z             {
2026-06-13T10:36:10.8412572Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8412663Z               "line": 7602
2026-06-13T10:36:10.8412752Z             }
2026-06-13T10:36:10.8412839Z           ]
2026-06-13T10:36:10.8412920Z         }
2026-06-13T10:36:10.8413001Z       }
2026-06-13T10:36:10.8413086Z     },
2026-06-13T10:36:10.8413173Z     {
2026-06-13T10:36:10.8413268Z       "id": "REQ-SUBNET-6",
2026-06-13T10:36:10.8413945Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-13T10:36:10.8414040Z       "requiredStages": [
2026-06-13T10:36:10.8414137Z         "impl",
2026-06-13T10:36:10.8414217Z         "unit"
2026-06-13T10:36:10.8414303Z       ],
2026-06-13T10:36:10.8414393Z       "stages": {
2026-06-13T10:36:10.8414480Z         "doc": {
2026-06-13T10:36:10.8414574Z           "complete": false,
2026-06-13T10:36:10.8414660Z           "evidence": []
2026-06-13T10:36:10.8414747Z         },
2026-06-13T10:36:10.8414838Z         "impl": {
2026-06-13T10:36:10.8414936Z           "complete": true,
2026-06-13T10:36:10.8415025Z           "evidence": [
2026-06-13T10:36:10.8415108Z             {
2026-06-13T10:36:10.8415227Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8415312Z               "line": 238
2026-06-13T10:36:10.8415398Z             },
2026-06-13T10:36:10.8415485Z             {
2026-06-13T10:36:10.8415588Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8415679Z               "line": 3595
2026-06-13T10:36:10.8415757Z             },
2026-06-13T10:36:10.8415847Z             {
2026-06-13T10:36:10.8415956Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8416047Z               "line": 3612
2026-06-13T10:36:10.8416128Z             },
2026-06-13T10:36:10.8416204Z             {
2026-06-13T10:36:10.8416308Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8416401Z               "line": 3665
2026-06-13T10:36:10.8416490Z             },
2026-06-13T10:36:10.8416571Z             {
2026-06-13T10:36:10.8416672Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8416762Z               "line": 3688
2026-06-13T10:36:10.8416847Z             }
2026-06-13T10:36:10.8416929Z           ]
2026-06-13T10:36:10.8417001Z         },
2026-06-13T10:36:10.8417082Z         "int": {
2026-06-13T10:36:10.8417176Z           "complete": false,
2026-06-13T10:36:10.8417261Z           "evidence": []
2026-06-13T10:36:10.8417338Z         },
2026-06-13T10:36:10.8417427Z         "unit": {
2026-06-13T10:36:10.8417522Z           "complete": true,
2026-06-13T10:36:10.8417602Z           "evidence": [
2026-06-13T10:36:10.8417693Z             {
2026-06-13T10:36:10.8417793Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8417878Z               "line": 7616
2026-06-13T10:36:10.8417955Z             },
2026-06-13T10:36:10.8418037Z             {
2026-06-13T10:36:10.8418137Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8418285Z               "line": 7649
2026-06-13T10:36:10.8418375Z             },
2026-06-13T10:36:10.8418451Z             {
2026-06-13T10:36:10.8418556Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8418633Z               "line": 7658
2026-06-13T10:36:10.8418714Z             }
2026-06-13T10:36:10.8418790Z           ]
2026-06-13T10:36:10.8418871Z         }
2026-06-13T10:36:10.8419033Z       }
2026-06-13T10:36:10.8419109Z     },
2026-06-13T10:36:10.8419190Z     {
2026-06-13T10:36:10.8419282Z       "id": "REQ-SUBNET-7",
2026-06-13T10:36:10.8420895Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-13T10:36:10.8421098Z       "requiredStages": [
2026-06-13T10:36:10.8421171Z         "impl",
2026-06-13T10:36:10.8421262Z         "unit"
2026-06-13T10:36:10.8421352Z       ],
2026-06-13T10:36:10.8421433Z       "stages": {
2026-06-13T10:36:10.8421514Z         "doc": {
2026-06-13T10:36:10.8421595Z           "complete": false,
2026-06-13T10:36:10.8421681Z           "evidence": []
2026-06-13T10:36:10.8421762Z         },
2026-06-13T10:36:10.8421849Z         "impl": {
2026-06-13T10:36:10.8421947Z           "complete": true,
2026-06-13T10:36:10.8422043Z           "evidence": [
2026-06-13T10:36:10.8422130Z             {
2026-06-13T10:36:10.8422258Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-13T10:36:10.8422348Z               "line": 17
2026-06-13T10:36:10.8422426Z             },
2026-06-13T10:36:10.8422511Z             {
2026-06-13T10:36:10.8422638Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.8422723Z               "line": 103
2026-06-13T10:36:10.8422805Z             },
2026-06-13T10:36:10.8422890Z             {
2026-06-13T10:36:10.8423012Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T10:36:10.8423094Z               "line": 312
2026-06-13T10:36:10.8423180Z             },
2026-06-13T10:36:10.8423265Z             {
2026-06-13T10:36:10.8423394Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T10:36:10.8423485Z               "line": 131
2026-06-13T10:36:10.8423561Z             },
2026-06-13T10:36:10.8423646Z             {
2026-06-13T10:36:10.8423772Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8423862Z               "line": 160
2026-06-13T10:36:10.8423946Z             },
2026-06-13T10:36:10.8424029Z             {
2026-06-13T10:36:10.8424152Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8424233Z               "line": 417
2026-06-13T10:36:10.8424323Z             },
2026-06-13T10:36:10.8424406Z             {
2026-06-13T10:36:10.8424534Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8424615Z               "line": 590
2026-06-13T10:36:10.8424701Z             },
2026-06-13T10:36:10.8424786Z             {
2026-06-13T10:36:10.8424910Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8424993Z               "line": 630
2026-06-13T10:36:10.8425078Z             },
2026-06-13T10:36:10.8425157Z             {
2026-06-13T10:36:10.8425288Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8425374Z               "line": 686
2026-06-13T10:36:10.8425458Z             },
2026-06-13T10:36:10.8425544Z             {
2026-06-13T10:36:10.8425663Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8425755Z               "line": 136
2026-06-13T10:36:10.8425839Z             },
2026-06-13T10:36:10.8425924Z             {
2026-06-13T10:36:10.8426148Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8426239Z               "line": 139
2026-06-13T10:36:10.8426322Z             }
2026-06-13T10:36:10.8426407Z           ]
2026-06-13T10:36:10.8426492Z         },
2026-06-13T10:36:10.8426578Z         "int": {
2026-06-13T10:36:10.8426679Z           "complete": false,
2026-06-13T10:36:10.8426760Z           "evidence": []
2026-06-13T10:36:10.8426835Z         },
2026-06-13T10:36:10.8426917Z         "unit": {
2026-06-13T10:36:10.8426998Z           "complete": true,
2026-06-13T10:36:10.8427088Z           "evidence": [
2026-06-13T10:36:10.8427174Z             {
2026-06-13T10:36:10.8427374Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-13T10:36:10.8427460Z               "line": 136
2026-06-13T10:36:10.8427547Z             },
2026-06-13T10:36:10.8427623Z             {
2026-06-13T10:36:10.8427746Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-13T10:36:10.8427835Z               "line": 156
2026-06-13T10:36:10.8427917Z             },
2026-06-13T10:36:10.8428006Z             {
2026-06-13T10:36:10.8428124Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8428215Z               "line": 905
2026-06-13T10:36:10.8428302Z             },
2026-06-13T10:36:10.8428382Z             {
2026-06-13T10:36:10.8428506Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T10:36:10.8428592Z               "line": 927
2026-06-13T10:36:10.8428673Z             },
2026-06-13T10:36:10.8428754Z             {
2026-06-13T10:36:10.8428883Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T10:36:10.8429059Z               "line": 1419
2026-06-13T10:36:10.8429145Z             },
2026-06-13T10:36:10.8429226Z             {
2026-06-13T10:36:10.8429340Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T10:36:10.8429426Z               "line": 985
2026-06-13T10:36:10.8429508Z             }
2026-06-13T10:36:10.8429603Z           ]
2026-06-13T10:36:10.8429684Z         }
2026-06-13T10:36:10.8429765Z       }
2026-06-13T10:36:10.8429851Z     },
2026-06-13T10:36:10.8429927Z     {
2026-06-13T10:36:10.8430013Z       "id": "REQ-SUBNET-8",
2026-06-13T10:36:10.8431082Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-13T10:36:10.8431178Z       "requiredStages": [
2026-06-13T10:36:10.8431268Z         "impl",
2026-06-13T10:36:10.8431354Z         "unit"
2026-06-13T10:36:10.8431431Z       ],
2026-06-13T10:36:10.8431512Z       "stages": {
2026-06-13T10:36:10.8431587Z         "doc": {
2026-06-13T10:36:10.8431683Z           "complete": false,
2026-06-13T10:36:10.8431779Z           "evidence": []
2026-06-13T10:36:10.8431860Z         },
2026-06-13T10:36:10.8431940Z         "impl": {
2026-06-13T10:36:10.8432026Z           "complete": true,
2026-06-13T10:36:10.8432113Z           "evidence": [
2026-06-13T10:36:10.8432203Z             {
2026-06-13T10:36:10.8432303Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8434947Z               "line": 2962
2026-06-13T10:36:10.8435046Z             },
2026-06-13T10:36:10.8435127Z             {
2026-06-13T10:36:10.8435247Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8435337Z               "line": 2991
2026-06-13T10:36:10.8435428Z             },
2026-06-13T10:36:10.8435514Z             {
2026-06-13T10:36:10.8435638Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8435727Z               "line": 3008
2026-06-13T10:36:10.8435809Z             },
2026-06-13T10:36:10.8435896Z             {
2026-06-13T10:36:10.8435995Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8436089Z               "line": 3031
2026-06-13T10:36:10.8436305Z             },
2026-06-13T10:36:10.8436399Z             {
2026-06-13T10:36:10.8436504Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8436590Z               "line": 3445
2026-06-13T10:36:10.8436681Z             }
2026-06-13T10:36:10.8436761Z           ]
2026-06-13T10:36:10.8436843Z         },
2026-06-13T10:36:10.8436929Z         "int": {
2026-06-13T10:36:10.8437028Z           "complete": false,
2026-06-13T10:36:10.8437119Z           "evidence": []
2026-06-13T10:36:10.8437201Z         },
2026-06-13T10:36:10.8437291Z         "unit": {
2026-06-13T10:36:10.8437381Z           "complete": true,
2026-06-13T10:36:10.8437468Z           "evidence": [
2026-06-13T10:36:10.8437649Z             {
2026-06-13T10:36:10.8437753Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8437845Z               "line": 7806
2026-06-13T10:36:10.8437925Z             },
2026-06-13T10:36:10.8438010Z             {
2026-06-13T10:36:10.8438107Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8438207Z               "line": 7822
2026-06-13T10:36:10.8438287Z             }
2026-06-13T10:36:10.8438367Z           ]
2026-06-13T10:36:10.8438453Z         }
2026-06-13T10:36:10.8438533Z       }
2026-06-13T10:36:10.8438618Z     },
2026-06-13T10:36:10.8438703Z     {
2026-06-13T10:36:10.8438799Z       "id": "REQ-TERM-1",
2026-06-13T10:36:10.8439061Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-13T10:36:10.8439167Z       "requiredStages": [
2026-06-13T10:36:10.8439257Z         "impl",
2026-06-13T10:36:10.8439337Z         "unit"
2026-06-13T10:36:10.8439420Z       ],
2026-06-13T10:36:10.8439505Z       "stages": {
2026-06-13T10:36:10.8439600Z         "doc": {
2026-06-13T10:36:10.8439691Z           "complete": false,
2026-06-13T10:36:10.8439782Z           "evidence": []
2026-06-13T10:36:10.8439867Z         },
2026-06-13T10:36:10.8439957Z         "impl": {
2026-06-13T10:36:10.8440049Z           "complete": true,
2026-06-13T10:36:10.8440143Z           "evidence": [
2026-06-13T10:36:10.8440229Z             {
2026-06-13T10:36:10.8440349Z               "path": "crates/spt-term/src/pty.rs",
2026-06-13T10:36:10.8440440Z               "line": 59
2026-06-13T10:36:10.8440520Z             },
2026-06-13T10:36:10.8440601Z             {
2026-06-13T10:36:10.8440713Z               "path": "crates/spt-term/src/pty.rs",
2026-06-13T10:36:10.8440801Z               "line": 171
2026-06-13T10:36:10.8440883Z             },
2026-06-13T10:36:10.8440970Z             {
2026-06-13T10:36:10.8441088Z               "path": "crates/spt-term/src/surface.rs",
2026-06-13T10:36:10.8441182Z               "line": 100
2026-06-13T10:36:10.8441263Z             }
2026-06-13T10:36:10.8441354Z           ]
2026-06-13T10:36:10.8441438Z         },
2026-06-13T10:36:10.8441523Z         "int": {
2026-06-13T10:36:10.8441614Z           "complete": false,
2026-06-13T10:36:10.8441705Z           "evidence": []
2026-06-13T10:36:10.8441790Z         },
2026-06-13T10:36:10.8441875Z         "unit": {
2026-06-13T10:36:10.8441972Z           "complete": true,
2026-06-13T10:36:10.8442062Z           "evidence": [
2026-06-13T10:36:10.8442143Z             {
2026-06-13T10:36:10.8442267Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-13T10:36:10.8442358Z               "line": 24
2026-06-13T10:36:10.8442444Z             },
2026-06-13T10:36:10.8442524Z             {
2026-06-13T10:36:10.8442649Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-13T10:36:10.8442734Z               "line": 56
2026-06-13T10:36:10.8442820Z             }
2026-06-13T10:36:10.8442901Z           ]
2026-06-13T10:36:10.8442992Z         }
2026-06-13T10:36:10.8443082Z       }
2026-06-13T10:36:10.8443168Z     },
2026-06-13T10:36:10.8443251Z     {
2026-06-13T10:36:10.8443340Z       "id": "REQ-TERM-2",
2026-06-13T10:36:10.8443536Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-13T10:36:10.8443631Z       "requiredStages": [
2026-06-13T10:36:10.8443716Z         "impl",
2026-06-13T10:36:10.8443925Z         "unit"
2026-06-13T10:36:10.8444014Z       ],
2026-06-13T10:36:10.8444099Z       "stages": {
2026-06-13T10:36:10.8444185Z         "doc": {
2026-06-13T10:36:10.8444281Z           "complete": false,
2026-06-13T10:36:10.8444367Z           "evidence": []
2026-06-13T10:36:10.8444452Z         },
2026-06-13T10:36:10.8444529Z         "impl": {
2026-06-13T10:36:10.8444610Z           "complete": true,
2026-06-13T10:36:10.8444696Z           "evidence": [
2026-06-13T10:36:10.8444771Z             {
2026-06-13T10:36:10.8444892Z               "path": "crates/spt-term/src/surface.rs",
2026-06-13T10:36:10.8444967Z               "line": 117
2026-06-13T10:36:10.8445154Z             },
2026-06-13T10:36:10.8445235Z             {
2026-06-13T10:36:10.8445349Z               "path": "crates/spt-term/src/surface.rs",
2026-06-13T10:36:10.8445425Z               "line": 127
2026-06-13T10:36:10.8445507Z             }
2026-06-13T10:36:10.8445597Z           ]
2026-06-13T10:36:10.8445682Z         },
2026-06-13T10:36:10.8445778Z         "int": {
2026-06-13T10:36:10.8445879Z           "complete": false,
2026-06-13T10:36:10.8445963Z           "evidence": []
2026-06-13T10:36:10.8446049Z         },
2026-06-13T10:36:10.8446132Z         "unit": {
2026-06-13T10:36:10.8446222Z           "complete": true,
2026-06-13T10:36:10.8446307Z           "evidence": [
2026-06-13T10:36:10.8446389Z             {
2026-06-13T10:36:10.8446513Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-13T10:36:10.8446597Z               "line": 46
2026-06-13T10:36:10.8446687Z             },
2026-06-13T10:36:10.8446769Z             {
2026-06-13T10:36:10.8446884Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-13T10:36:10.8446978Z               "line": 77
2026-06-13T10:36:10.8447064Z             }
2026-06-13T10:36:10.8447151Z           ]
2026-06-13T10:36:10.8447232Z         }
2026-06-13T10:36:10.8447316Z       }
2026-06-13T10:36:10.8447399Z     },
2026-06-13T10:36:10.8447480Z     {
2026-06-13T10:36:10.8447570Z       "id": "REQ-TERM-3",
2026-06-13T10:36:10.8447727Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-13T10:36:10.8447822Z       "requiredStages": [
2026-06-13T10:36:10.8447903Z         "impl",
2026-06-13T10:36:10.8447989Z         "unit"
2026-06-13T10:36:10.8448071Z       ],
2026-06-13T10:36:10.8448160Z       "stages": {
2026-06-13T10:36:10.8448242Z         "doc": {
2026-06-13T10:36:10.8448338Z           "complete": false,
2026-06-13T10:36:10.8448434Z           "evidence": []
2026-06-13T10:36:10.8448523Z         },
2026-06-13T10:36:10.8448609Z         "impl": {
2026-06-13T10:36:10.8448696Z           "complete": true,
2026-06-13T10:36:10.8448786Z           "evidence": [
2026-06-13T10:36:10.8448870Z             {
2026-06-13T10:36:10.8449075Z               "path": "crates/spt-term/src/stream.rs",
2026-06-13T10:36:10.8449163Z               "line": 71
2026-06-13T10:36:10.8449249Z             }
2026-06-13T10:36:10.8449330Z           ]
2026-06-13T10:36:10.8449412Z         },
2026-06-13T10:36:10.8449502Z         "int": {
2026-06-13T10:36:10.8449597Z           "complete": false,
2026-06-13T10:36:10.8449689Z           "evidence": []
2026-06-13T10:36:10.8449775Z         },
2026-06-13T10:36:10.8449859Z         "unit": {
2026-06-13T10:36:10.8449951Z           "complete": true,
2026-06-13T10:36:10.8450037Z           "evidence": [
2026-06-13T10:36:10.8450127Z             {
2026-06-13T10:36:10.8450236Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-13T10:36:10.8450328Z               "line": 37
2026-06-13T10:36:10.8450418Z             },
2026-06-13T10:36:10.8450503Z             {
2026-06-13T10:36:10.8450614Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-13T10:36:10.8450703Z               "line": 67
2026-06-13T10:36:10.8450789Z             }
2026-06-13T10:36:10.8450870Z           ]
2026-06-13T10:36:10.8450953Z         }
2026-06-13T10:36:10.8451037Z       }
2026-06-13T10:36:10.8451119Z     },
2026-06-13T10:36:10.8451205Z     {
2026-06-13T10:36:10.8451292Z       "id": "REQ-TERM-4",
2026-06-13T10:36:10.8451747Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-13T10:36:10.8451842Z       "requiredStages": [
2026-06-13T10:36:10.8451928Z         "impl",
2026-06-13T10:36:10.8452012Z         "unit",
2026-06-13T10:36:10.8452093Z         "int"
2026-06-13T10:36:10.8452178Z       ],
2026-06-13T10:36:10.8452260Z       "stages": {
2026-06-13T10:36:10.8452346Z         "doc": {
2026-06-13T10:36:10.8452436Z           "complete": true,
2026-06-13T10:36:10.8452527Z           "evidence": [
2026-06-13T10:36:10.8452613Z             {
2026-06-13T10:36:10.8452712Z               "path": "docs/MANIFEST.md",
2026-06-13T10:36:10.8452904Z               "line": 115
2026-06-13T10:36:10.8452985Z             }
2026-06-13T10:36:10.8453070Z           ]
2026-06-13T10:36:10.8453147Z         },
2026-06-13T10:36:10.8453238Z         "impl": {
2026-06-13T10:36:10.8453328Z           "complete": true,
2026-06-13T10:36:10.8453418Z           "evidence": [
2026-06-13T10:36:10.8453501Z             {
2026-06-13T10:36:10.8453614Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.8453709Z               "line": 759
2026-06-13T10:36:10.8453786Z             },
2026-06-13T10:36:10.8453872Z             {
2026-06-13T10:36:10.8453985Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T10:36:10.8454077Z               "line": 41
2026-06-13T10:36:10.8454159Z             },
2026-06-13T10:36:10.8454239Z             {
2026-06-13T10:36:10.8454352Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T10:36:10.8454437Z               "line": 91
2026-06-13T10:36:10.8454518Z             },
2026-06-13T10:36:10.8454602Z             {
2026-06-13T10:36:10.8454711Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T10:36:10.8454802Z               "line": 152
2026-06-13T10:36:10.8454885Z             },
2026-06-13T10:36:10.8454969Z             {
2026-06-13T10:36:10.8455094Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T10:36:10.8455180Z               "line": 221
2026-06-13T10:36:10.8455265Z             },
2026-06-13T10:36:10.8455341Z             {
2026-06-13T10:36:10.8455470Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T10:36:10.8455556Z               "line": 20
2026-06-13T10:36:10.8455641Z             },
2026-06-13T10:36:10.8455724Z             {
2026-06-13T10:36:10.8455842Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T10:36:10.8455932Z               "line": 222
2026-06-13T10:36:10.8456014Z             },
2026-06-13T10:36:10.8456096Z             {
2026-06-13T10:36:10.8456214Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T10:36:10.8456314Z               "line": 242
2026-06-13T10:36:10.8456396Z             },
2026-06-13T10:36:10.8456481Z             {
2026-06-13T10:36:10.8456590Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.8456678Z               "line": 699
2026-06-13T10:36:10.8456768Z             },
2026-06-13T10:36:10.8456852Z             {
2026-06-13T10:36:10.8456958Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T10:36:10.8457040Z               "line": 162
2026-06-13T10:36:10.8457125Z             },
2026-06-13T10:36:10.8457204Z             {
2026-06-13T10:36:10.8457309Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T10:36:10.8457396Z               "line": 206
2026-06-13T10:36:10.8457477Z             },
2026-06-13T10:36:10.8457562Z             {
2026-06-13T10:36:10.8457672Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T10:36:10.8457758Z               "line": 233
2026-06-13T10:36:10.8457843Z             },
2026-06-13T10:36:10.8457929Z             {
2026-06-13T10:36:10.8458035Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8458121Z               "line": 926
2026-06-13T10:36:10.8458201Z             }
2026-06-13T10:36:10.8458283Z           ]
2026-06-13T10:36:10.8458369Z         },
2026-06-13T10:36:10.8458520Z         "int": {
2026-06-13T10:36:10.8458607Z           "complete": true,
2026-06-13T10:36:10.8458693Z           "evidence": [
2026-06-13T10:36:10.8458769Z             {
2026-06-13T10:36:10.8458888Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-13T10:36:10.8459050Z               "line": 18
2026-06-13T10:36:10.8459131Z             }
2026-06-13T10:36:10.8459217Z           ]
2026-06-13T10:36:10.8459299Z         },
2026-06-13T10:36:10.8459383Z         "unit": {
2026-06-13T10:36:10.8459464Z           "complete": true,
2026-06-13T10:36:10.8459550Z           "evidence": [
2026-06-13T10:36:10.8459631Z             {
2026-06-13T10:36:10.8459752Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T10:36:10.8459944Z               "line": 259
2026-06-13T10:36:10.8460029Z             },
2026-06-13T10:36:10.8460110Z             {
2026-06-13T10:36:10.8460220Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T10:36:10.8460301Z               "line": 277
2026-06-13T10:36:10.8460391Z             },
2026-06-13T10:36:10.8460476Z             {
2026-06-13T10:36:10.8460583Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T10:36:10.8460664Z               "line": 289
2026-06-13T10:36:10.8460748Z             },
2026-06-13T10:36:10.8460831Z             {
2026-06-13T10:36:10.8460940Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T10:36:10.8461020Z               "line": 304
2026-06-13T10:36:10.8461101Z             },
2026-06-13T10:36:10.8461174Z             {
2026-06-13T10:36:10.8461283Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T10:36:10.8461364Z               "line": 320
2026-06-13T10:36:10.8461445Z             },
2026-06-13T10:36:10.8461523Z             {
2026-06-13T10:36:10.8461640Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T10:36:10.8461721Z               "line": 346
2026-06-13T10:36:10.8461804Z             },
2026-06-13T10:36:10.8461884Z             {
2026-06-13T10:36:10.8461988Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T10:36:10.8462065Z               "line": 361
2026-06-13T10:36:10.8462147Z             },
2026-06-13T10:36:10.8462232Z             {
2026-06-13T10:36:10.8462345Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T10:36:10.8462431Z               "line": 391
2026-06-13T10:36:10.8462512Z             },
2026-06-13T10:36:10.8462600Z             {
2026-06-13T10:36:10.8462719Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T10:36:10.8462806Z               "line": 365
2026-06-13T10:36:10.8462887Z             },
2026-06-13T10:36:10.8462962Z             {
2026-06-13T10:36:10.8463077Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T10:36:10.8463154Z               "line": 382
2026-06-13T10:36:10.8463230Z             },
2026-06-13T10:36:10.8463315Z             {
2026-06-13T10:36:10.8463431Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T10:36:10.8463516Z               "line": 411
2026-06-13T10:36:10.8463601Z             },
2026-06-13T10:36:10.8463688Z             {
2026-06-13T10:36:10.8463798Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T10:36:10.8463878Z               "line": 428
2026-06-13T10:36:10.8463964Z             },
2026-06-13T10:36:10.8464036Z             {
2026-06-13T10:36:10.8464155Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.8464240Z               "line": 902
2026-06-13T10:36:10.8464327Z             },
2026-06-13T10:36:10.8464409Z             {
2026-06-13T10:36:10.8464526Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.8464622Z               "line": 909
2026-06-13T10:36:10.8464705Z             },
2026-06-13T10:36:10.8464785Z             {
2026-06-13T10:36:10.8464893Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.8464983Z               "line": 924
2026-06-13T10:36:10.8465064Z             },
2026-06-13T10:36:10.8465139Z             {
2026-06-13T10:36:10.8465344Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T10:36:10.8465430Z               "line": 420
2026-06-13T10:36:10.8465511Z             },
2026-06-13T10:36:10.8465591Z             {
2026-06-13T10:36:10.8465707Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T10:36:10.8465802Z               "line": 458
2026-06-13T10:36:10.8465886Z             },
2026-06-13T10:36:10.8465969Z             {
2026-06-13T10:36:10.8466078Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T10:36:10.8466168Z               "line": 471
2026-06-13T10:36:10.8466250Z             },
2026-06-13T10:36:10.8466341Z             {
2026-06-13T10:36:10.8466525Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T10:36:10.8466608Z               "line": 497
2026-06-13T10:36:10.8466693Z             },
2026-06-13T10:36:10.8466774Z             {
2026-06-13T10:36:10.8466884Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T10:36:10.8466970Z               "line": 524
2026-06-13T10:36:10.8467069Z             },
2026-06-13T10:36:10.8467155Z             {
2026-06-13T10:36:10.8467266Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-13T10:36:10.8467360Z               "line": 32
2026-06-13T10:36:10.8467442Z             },
2026-06-13T10:36:10.8467533Z             {
2026-06-13T10:36:10.8467638Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8467727Z               "line": 7374
2026-06-13T10:36:10.8467812Z             }
2026-06-13T10:36:10.8467894Z           ]
2026-06-13T10:36:10.8467975Z         }
2026-06-13T10:36:10.8468056Z       }
2026-06-13T10:36:10.8468146Z     },
2026-06-13T10:36:10.8468232Z     {
2026-06-13T10:36:10.8468323Z       "id": "REQ-UPD-1",
2026-06-13T10:36:10.8468446Z       "title": "Peer-propagated update over P2P",
2026-06-13T10:36:10.8468543Z       "requiredStages": [
2026-06-13T10:36:10.8468628Z         "impl",
2026-06-13T10:36:10.8468709Z         "unit",
2026-06-13T10:36:10.8468799Z         "int"
2026-06-13T10:36:10.8468886Z       ],
2026-06-13T10:36:10.8469047Z       "stages": {
2026-06-13T10:36:10.8469133Z         "doc": {
2026-06-13T10:36:10.8469229Z           "complete": false,
2026-06-13T10:36:10.8469319Z           "evidence": []
2026-06-13T10:36:10.8469405Z         },
2026-06-13T10:36:10.8469492Z         "impl": {
2026-06-13T10:36:10.8469582Z           "complete": true,
2026-06-13T10:36:10.8469677Z           "evidence": [
2026-06-13T10:36:10.8469758Z             {
2026-06-13T10:36:10.8469883Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8469972Z               "line": 28
2026-06-13T10:36:10.8470052Z             },
2026-06-13T10:36:10.8470138Z             {
2026-06-13T10:36:10.8470251Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8470341Z               "line": 103
2026-06-13T10:36:10.8470427Z             },
2026-06-13T10:36:10.8470509Z             {
2026-06-13T10:36:10.8470627Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8470722Z               "line": 342
2026-06-13T10:36:10.8470809Z             },
2026-06-13T10:36:10.8470885Z             {
2026-06-13T10:36:10.8471008Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8471095Z               "line": 22
2026-06-13T10:36:10.8471180Z             },
2026-06-13T10:36:10.8471270Z             {
2026-06-13T10:36:10.8471386Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8471477Z               "line": 207
2026-06-13T10:36:10.8471558Z             },
2026-06-13T10:36:10.8471642Z             {
2026-06-13T10:36:10.8471758Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8471852Z               "line": 283
2026-06-13T10:36:10.8471933Z             },
2026-06-13T10:36:10.8472015Z             {
2026-06-13T10:36:10.8472130Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8472220Z               "line": 340
2026-06-13T10:36:10.8472306Z             },
2026-06-13T10:36:10.8472510Z             {
2026-06-13T10:36:10.8472630Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T10:36:10.8472717Z               "line": 37
2026-06-13T10:36:10.8472801Z             }
2026-06-13T10:36:10.8472886Z           ]
2026-06-13T10:36:10.8472967Z         },
2026-06-13T10:36:10.8473058Z         "int": {
2026-06-13T10:36:10.8473156Z           "complete": true,
2026-06-13T10:36:10.8473241Z           "evidence": [
2026-06-13T10:36:10.8473327Z             {
2026-06-13T10:36:10.8473457Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T10:36:10.8473546Z               "line": 207
2026-06-13T10:36:10.8473633Z             },
2026-06-13T10:36:10.8473813Z             {
2026-06-13T10:36:10.8473938Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T10:36:10.8474019Z               "line": 987
2026-06-13T10:36:10.8474110Z             }
2026-06-13T10:36:10.8474190Z           ]
2026-06-13T10:36:10.8474276Z         },
2026-06-13T10:36:10.8474367Z         "unit": {
2026-06-13T10:36:10.8474457Z           "complete": true,
2026-06-13T10:36:10.8474557Z           "evidence": [
2026-06-13T10:36:10.8474635Z             {
2026-06-13T10:36:10.8474757Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8474839Z               "line": 490
2026-06-13T10:36:10.8474926Z             },
2026-06-13T10:36:10.8475006Z             {
2026-06-13T10:36:10.8475125Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8475212Z               "line": 616
2026-06-13T10:36:10.8475293Z             },
2026-06-13T10:36:10.8475377Z             {
2026-06-13T10:36:10.8475505Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T10:36:10.8475601Z               "line": 277
2026-06-13T10:36:10.8475690Z             },
2026-06-13T10:36:10.8475775Z             {
2026-06-13T10:36:10.8475894Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T10:36:10.8475986Z               "line": 124
2026-06-13T10:36:10.8476075Z             },
2026-06-13T10:36:10.8476156Z             {
2026-06-13T10:36:10.8476276Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T10:36:10.8476366Z               "line": 200
2026-06-13T10:36:10.8476451Z             }
2026-06-13T10:36:10.8476534Z           ]
2026-06-13T10:36:10.8476614Z         }
2026-06-13T10:36:10.8476700Z       }
2026-06-13T10:36:10.8476780Z     },
2026-06-13T10:36:10.8476863Z     {
2026-06-13T10:36:10.8476957Z       "id": "REQ-UPD-2",
2026-06-13T10:36:10.8477105Z       "title": "All binaries signature-verified before handoff",
2026-06-13T10:36:10.8477206Z       "requiredStages": [
2026-06-13T10:36:10.8477291Z         "impl",
2026-06-13T10:36:10.8477382Z         "unit"
2026-06-13T10:36:10.8477463Z       ],
2026-06-13T10:36:10.8477545Z       "stages": {
2026-06-13T10:36:10.8477629Z         "doc": {
2026-06-13T10:36:10.8477711Z           "complete": false,
2026-06-13T10:36:10.8477807Z           "evidence": []
2026-06-13T10:36:10.8477883Z         },
2026-06-13T10:36:10.8477968Z         "impl": {
2026-06-13T10:36:10.8478054Z           "complete": true,
2026-06-13T10:36:10.8478151Z           "evidence": [
2026-06-13T10:36:10.8478226Z             {
2026-06-13T10:36:10.8478344Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8478434Z               "line": 343
2026-06-13T10:36:10.8478512Z             },
2026-06-13T10:36:10.8478588Z             {
2026-06-13T10:36:10.8478706Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8478797Z               "line": 476
2026-06-13T10:36:10.8478878Z             },
2026-06-13T10:36:10.8479025Z             {
2026-06-13T10:36:10.8479146Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8479236Z               "line": 29
2026-06-13T10:36:10.8479321Z             },
2026-06-13T10:36:10.8479398Z             {
2026-06-13T10:36:10.8479513Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8479607Z               "line": 271
2026-06-13T10:36:10.8479780Z             },
2026-06-13T10:36:10.8479860Z             {
2026-06-13T10:36:10.8479969Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8480057Z               "line": 288
2026-06-13T10:36:10.8480138Z             },
2026-06-13T10:36:10.8480217Z             {
2026-06-13T10:36:10.8480332Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8480424Z               "line": 408
2026-06-13T10:36:10.8480508Z             },
2026-06-13T10:36:10.8480589Z             {
2026-06-13T10:36:10.8480698Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8480779Z               "line": 540
2026-06-13T10:36:10.8480958Z             },
2026-06-13T10:36:10.8481035Z             {
2026-06-13T10:36:10.8481154Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T10:36:10.8481230Z               "line": 155
2026-06-13T10:36:10.8481316Z             }
2026-06-13T10:36:10.8481402Z           ]
2026-06-13T10:36:10.8481483Z         },
2026-06-13T10:36:10.8481559Z         "int": {
2026-06-13T10:36:10.8481655Z           "complete": false,
2026-06-13T10:36:10.8481745Z           "evidence": []
2026-06-13T10:36:10.8481826Z         },
2026-06-13T10:36:10.8481916Z         "unit": {
2026-06-13T10:36:10.8481999Z           "complete": true,
2026-06-13T10:36:10.8482079Z           "evidence": [
2026-06-13T10:36:10.8482164Z             {
2026-06-13T10:36:10.8482275Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8482356Z               "line": 697
2026-06-13T10:36:10.8482442Z             },
2026-06-13T10:36:10.8482522Z             {
2026-06-13T10:36:10.8482628Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8482727Z               "line": 758
2026-06-13T10:36:10.8482803Z             },
2026-06-13T10:36:10.8482880Z             {
2026-06-13T10:36:10.8482991Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8483075Z               "line": 772
2026-06-13T10:36:10.8483156Z             },
2026-06-13T10:36:10.8483239Z             {
2026-06-13T10:36:10.8483343Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8483427Z               "line": 788
2026-06-13T10:36:10.8483507Z             },
2026-06-13T10:36:10.8483589Z             {
2026-06-13T10:36:10.8483702Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8483792Z               "line": 879
2026-06-13T10:36:10.8483873Z             },
2026-06-13T10:36:10.8483945Z             {
2026-06-13T10:36:10.8484059Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T10:36:10.8484149Z               "line": 414
2026-06-13T10:36:10.8484237Z             },
2026-06-13T10:36:10.8484317Z             {
2026-06-13T10:36:10.8484421Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T10:36:10.8484517Z               "line": 427
2026-06-13T10:36:10.8484594Z             },
2026-06-13T10:36:10.8484675Z             {
2026-06-13T10:36:10.8484803Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T10:36:10.8484885Z               "line": 410
2026-06-13T10:36:10.8484970Z             }
2026-06-13T10:36:10.8485051Z           ]
2026-06-13T10:36:10.8485132Z         }
2026-06-13T10:36:10.8485205Z       }
2026-06-13T10:36:10.8485279Z     },
2026-06-13T10:36:10.8485360Z     {
2026-06-13T10:36:10.8485442Z       "id": "REQ-UPD-3",
2026-06-13T10:36:10.8485618Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-13T10:36:10.8485704Z       "requiredStages": [
2026-06-13T10:36:10.8485786Z         "impl",
2026-06-13T10:36:10.8485872Z         "unit",
2026-06-13T10:36:10.8485951Z         "int"
2026-06-13T10:36:10.8486036Z       ],
2026-06-13T10:36:10.8486122Z       "stages": {
2026-06-13T10:36:10.8486203Z         "doc": {
2026-06-13T10:36:10.8486292Z           "complete": false,
2026-06-13T10:36:10.8486387Z           "evidence": []
2026-06-13T10:36:10.8486474Z         },
2026-06-13T10:36:10.8486546Z         "impl": {
2026-06-13T10:36:10.8486798Z           "complete": true,
2026-06-13T10:36:10.8486879Z           "evidence": [
2026-06-13T10:36:10.8486964Z             {
2026-06-13T10:36:10.8487089Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8487170Z               "line": 40
2026-06-13T10:36:10.8487260Z             },
2026-06-13T10:36:10.8487340Z             {
2026-06-13T10:36:10.8487461Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8487541Z               "line": 87
2026-06-13T10:36:10.8487622Z             },
2026-06-13T10:36:10.8487704Z             {
2026-06-13T10:36:10.8487813Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T10:36:10.8487980Z               "line": 935
2026-06-13T10:36:10.8488062Z             },
2026-06-13T10:36:10.8488151Z             {
2026-06-13T10:36:10.8488266Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T10:36:10.8488348Z               "line": 717
2026-06-13T10:36:10.8488434Z             },
2026-06-13T10:36:10.8488523Z             {
2026-06-13T10:36:10.8488634Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T10:36:10.8488716Z               "line": 26
2026-06-13T10:36:10.8488800Z             },
2026-06-13T10:36:10.8488880Z             {
2026-06-13T10:36:10.8489091Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T10:36:10.8489181Z               "line": 114
2026-06-13T10:36:10.8489266Z             },
2026-06-13T10:36:10.8489343Z             {
2026-06-13T10:36:10.8489448Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T10:36:10.8489533Z               "line": 246
2026-06-13T10:36:10.8489614Z             },
2026-06-13T10:36:10.8489701Z             {
2026-06-13T10:36:10.8489806Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8489890Z               "line": 1906
2026-06-13T10:36:10.8489978Z             }
2026-06-13T10:36:10.8490054Z           ]
2026-06-13T10:36:10.8490130Z         },
2026-06-13T10:36:10.8490210Z         "int": {
2026-06-13T10:36:10.8490311Z           "complete": true,
2026-06-13T10:36:10.8490397Z           "evidence": [
2026-06-13T10:36:10.8490468Z             {
2026-06-13T10:36:10.8490593Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-13T10:36:10.8490678Z               "line": 58
2026-06-13T10:36:10.8490758Z             }
2026-06-13T10:36:10.8490835Z           ]
2026-06-13T10:36:10.8490917Z         },
2026-06-13T10:36:10.8490993Z         "unit": {
2026-06-13T10:36:10.8491087Z           "complete": true,
2026-06-13T10:36:10.8491173Z           "evidence": [
2026-06-13T10:36:10.8491254Z             {
2026-06-13T10:36:10.8491376Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8491466Z               "line": 532
2026-06-13T10:36:10.8491542Z             },
2026-06-13T10:36:10.8491619Z             {
2026-06-13T10:36:10.8491733Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8491818Z               "line": 582
2026-06-13T10:36:10.8491900Z             },
2026-06-13T10:36:10.8491977Z             {
2026-06-13T10:36:10.8492095Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8492186Z               "line": 650
2026-06-13T10:36:10.8492273Z             },
2026-06-13T10:36:10.8492349Z             {
2026-06-13T10:36:10.8492467Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T10:36:10.8492549Z               "line": 1062
2026-06-13T10:36:10.8492625Z             },
2026-06-13T10:36:10.8492696Z             {
2026-06-13T10:36:10.8492810Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T10:36:10.8492892Z               "line": 271
2026-06-13T10:36:10.8492982Z             },
2026-06-13T10:36:10.8493063Z             {
2026-06-13T10:36:10.8493174Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T10:36:10.8493255Z               "line": 295
2026-06-13T10:36:10.8493330Z             },
2026-06-13T10:36:10.8493406Z             {
2026-06-13T10:36:10.8493621Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T10:36:10.8493716Z               "line": 316
2026-06-13T10:36:10.8493794Z             },
2026-06-13T10:36:10.8493871Z             {
2026-06-13T10:36:10.8493987Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T10:36:10.8494063Z               "line": 332
2026-06-13T10:36:10.8494154Z             }
2026-06-13T10:36:10.8494234Z           ]
2026-06-13T10:36:10.8494309Z         }
2026-06-13T10:36:10.8494385Z       }
2026-06-13T10:36:10.8494467Z     },
2026-06-13T10:36:10.8494543Z     {
2026-06-13T10:36:10.8494633Z       "id": "REQ-UPD-4",
2026-06-13T10:36:10.8494820Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-13T10:36:10.8495033Z       "requiredStages": [
2026-06-13T10:36:10.8495116Z         "impl",
2026-06-13T10:36:10.8495201Z         "unit"
2026-06-13T10:36:10.8495277Z       ],
2026-06-13T10:36:10.8495368Z       "stages": {
2026-06-13T10:36:10.8495445Z         "doc": {
2026-06-13T10:36:10.8495544Z           "complete": false,
2026-06-13T10:36:10.8495649Z           "evidence": []
2026-06-13T10:36:10.8495731Z         },
2026-06-13T10:36:10.8495821Z         "impl": {
2026-06-13T10:36:10.8495911Z           "complete": true,
2026-06-13T10:36:10.8496002Z           "evidence": [
2026-06-13T10:36:10.8496084Z             {
2026-06-13T10:36:10.8496216Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8496307Z               "line": 41
2026-06-13T10:36:10.8498841Z             },
2026-06-13T10:36:10.8499050Z             {
2026-06-13T10:36:10.8499194Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8499285Z               "line": 88
2026-06-13T10:36:10.8499383Z             },
2026-06-13T10:36:10.8499464Z             {
2026-06-13T10:36:10.8499598Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T10:36:10.8499684Z               "line": 23
2026-06-13T10:36:10.8499769Z             },
2026-06-13T10:36:10.8499845Z             {
2026-06-13T10:36:10.8499970Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T10:36:10.8500060Z               "line": 56
2026-06-13T10:36:10.8500150Z             },
2026-06-13T10:36:10.8500233Z             {
2026-06-13T10:36:10.8500352Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T10:36:10.8500446Z               "line": 77
2026-06-13T10:36:10.8500528Z             },
2026-06-13T10:36:10.8500609Z             {
2026-06-13T10:36:10.8500732Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T10:36:10.8500828Z               "line": 186
2026-06-13T10:36:10.8500909Z             },
2026-06-13T10:36:10.8500990Z             {
2026-06-13T10:36:10.8501114Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T10:36:10.8501201Z               "line": 108
2026-06-13T10:36:10.8501286Z             },
2026-06-13T10:36:10.8501367Z             {
2026-06-13T10:36:10.8501482Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.8501572Z               "line": 170
2026-06-13T10:36:10.8501661Z             },
2026-06-13T10:36:10.8501752Z             {
2026-06-13T10:36:10.8501856Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8501946Z               "line": 1905
2026-06-13T10:36:10.8502026Z             }
2026-06-13T10:36:10.8502107Z           ]
2026-06-13T10:36:10.8502194Z         },
2026-06-13T10:36:10.8502274Z         "int": {
2026-06-13T10:36:10.8502369Z           "complete": false,
2026-06-13T10:36:10.8502456Z           "evidence": []
2026-06-13T10:36:10.8502541Z         },
2026-06-13T10:36:10.8502627Z         "unit": {
2026-06-13T10:36:10.8502727Z           "complete": true,
2026-06-13T10:36:10.8502828Z           "evidence": [
2026-06-13T10:36:10.8502909Z             {
2026-06-13T10:36:10.8503032Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8503119Z               "line": 578
2026-06-13T10:36:10.8503204Z             },
2026-06-13T10:36:10.8503285Z             {
2026-06-13T10:36:10.8503537Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8503632Z               "line": 703
2026-06-13T10:36:10.8503715Z             },
2026-06-13T10:36:10.8503801Z             {
2026-06-13T10:36:10.8503919Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T10:36:10.8504010Z               "line": 384
2026-06-13T10:36:10.8504092Z             },
2026-06-13T10:36:10.8504176Z             {
2026-06-13T10:36:10.8504296Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T10:36:10.8504383Z               "line": 102
2026-06-13T10:36:10.8504468Z             },
2026-06-13T10:36:10.8504547Z             {
2026-06-13T10:36:10.8504766Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T10:36:10.8504855Z               "line": 123
2026-06-13T10:36:10.8504941Z             },
2026-06-13T10:36:10.8505031Z             {
2026-06-13T10:36:10.8505142Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T10:36:10.8505231Z               "line": 142
2026-06-13T10:36:10.8505327Z             },
2026-06-13T10:36:10.8505409Z             {
2026-06-13T10:36:10.8505527Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T10:36:10.8505613Z               "line": 386
2026-06-13T10:36:10.8505700Z             },
2026-06-13T10:36:10.8505781Z             {
2026-06-13T10:36:10.8505899Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T10:36:10.8505981Z               "line": 566
2026-06-13T10:36:10.8506066Z             },
2026-06-13T10:36:10.8506152Z             {
2026-06-13T10:36:10.8506257Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8506348Z               "line": 6051
2026-06-13T10:36:10.8506437Z             }
2026-06-13T10:36:10.8506519Z           ]
2026-06-13T10:36:10.8506606Z         }
2026-06-13T10:36:10.8506691Z       }
2026-06-13T10:36:10.8506771Z     },
2026-06-13T10:36:10.8506853Z     {
2026-06-13T10:36:10.8506945Z       "id": "REQ-UPD-5",
2026-06-13T10:36:10.8507100Z       "title": "spt-core ripple-updates registered adapters",
2026-06-13T10:36:10.8507194Z       "requiredStages": [
2026-06-13T10:36:10.8507276Z         "impl",
2026-06-13T10:36:10.8507356Z         "unit"
2026-06-13T10:36:10.8507441Z       ],
2026-06-13T10:36:10.8507526Z       "stages": {
2026-06-13T10:36:10.8507603Z         "doc": {
2026-06-13T10:36:10.8507699Z           "complete": false,
2026-06-13T10:36:10.8507793Z           "evidence": []
2026-06-13T10:36:10.8507870Z         },
2026-06-13T10:36:10.8507956Z         "impl": {
2026-06-13T10:36:10.8508051Z           "complete": true,
2026-06-13T10:36:10.8508146Z           "evidence": [
2026-06-13T10:36:10.8508233Z             {
2026-06-13T10:36:10.8508366Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.8508465Z               "line": 27
2026-06-13T10:36:10.8508538Z             },
2026-06-13T10:36:10.8508623Z             {
2026-06-13T10:36:10.8508752Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.8508834Z               "line": 82
2026-06-13T10:36:10.8508919Z             },
2026-06-13T10:36:10.8509062Z             {
2026-06-13T10:36:10.8509192Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.8509271Z               "line": 134
2026-06-13T10:36:10.8509348Z             },
2026-06-13T10:36:10.8509434Z             {
2026-06-13T10:36:10.8509549Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8509643Z               "line": 492
2026-06-13T10:36:10.8509720Z             },
2026-06-13T10:36:10.8509802Z             {
2026-06-13T10:36:10.8509911Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8509996Z               "line": 528
2026-06-13T10:36:10.8510076Z             }
2026-06-13T10:36:10.8510158Z           ]
2026-06-13T10:36:10.8510240Z         },
2026-06-13T10:36:10.8510320Z         "int": {
2026-06-13T10:36:10.8510410Z           "complete": false,
2026-06-13T10:36:10.8510502Z           "evidence": []
2026-06-13T10:36:10.8510583Z         },
2026-06-13T10:36:10.8510759Z         "unit": {
2026-06-13T10:36:10.8510854Z           "complete": true,
2026-06-13T10:36:10.8510944Z           "evidence": [
2026-06-13T10:36:10.8511025Z             {
2026-06-13T10:36:10.8511150Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.8511231Z               "line": 232
2026-06-13T10:36:10.8511311Z             },
2026-06-13T10:36:10.8511398Z             {
2026-06-13T10:36:10.8511521Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.8511607Z               "line": 246
2026-06-13T10:36:10.8511689Z             },
2026-06-13T10:36:10.8511775Z             {
2026-06-13T10:36:10.8511989Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.8512076Z               "line": 260
2026-06-13T10:36:10.8512160Z             },
2026-06-13T10:36:10.8512236Z             {
2026-06-13T10:36:10.8512364Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.8512445Z               "line": 274
2026-06-13T10:36:10.8512520Z             },
2026-06-13T10:36:10.8512586Z             {
2026-06-13T10:36:10.8512715Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T10:36:10.8512797Z               "line": 308
2026-06-13T10:36:10.8512882Z             },
2026-06-13T10:36:10.8512963Z             {
2026-06-13T10:36:10.8513083Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T10:36:10.8513168Z               "line": 866
2026-06-13T10:36:10.8513248Z             }
2026-06-13T10:36:10.8513331Z           ]
2026-06-13T10:36:10.8513416Z         }
2026-06-13T10:36:10.8513501Z       }
2026-06-13T10:36:10.8513587Z     },
2026-06-13T10:36:10.8513665Z     {
2026-06-13T10:36:10.8513755Z       "id": "REQ-UPD-6",
2026-06-13T10:36:10.8514556Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-13T10:36:10.8514656Z       "requiredStages": [
2026-06-13T10:36:10.8514736Z         "doc",
2026-06-13T10:36:10.8514818Z         "impl",
2026-06-13T10:36:10.8514900Z         "unit",
2026-06-13T10:36:10.8514981Z         "int"
2026-06-13T10:36:10.8515065Z       ],
2026-06-13T10:36:10.8515146Z       "stages": {
2026-06-13T10:36:10.8515227Z         "doc": {
2026-06-13T10:36:10.8515326Z           "complete": true,
2026-06-13T10:36:10.8515406Z           "evidence": [
2026-06-13T10:36:10.8515486Z             {
2026-06-13T10:36:10.8515611Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-13T10:36:10.8515707Z               "line": 3
2026-06-13T10:36:10.8515786Z             },
2026-06-13T10:36:10.8515868Z             {
2026-06-13T10:36:10.8515973Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-13T10:36:10.8516054Z               "line": 3
2026-06-13T10:36:10.8516139Z             },
2026-06-13T10:36:10.8516226Z             {
2026-06-13T10:36:10.8516369Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-13T10:36:10.8516459Z               "line": 3
2026-06-13T10:36:10.8516541Z             }
2026-06-13T10:36:10.8516631Z           ]
2026-06-13T10:36:10.8516712Z         },
2026-06-13T10:36:10.8516803Z         "impl": {
2026-06-13T10:36:10.8516890Z           "complete": true,
2026-06-13T10:36:10.8516979Z           "evidence": [
2026-06-13T10:36:10.8517064Z             {
2026-06-13T10:36:10.8517185Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8517275Z               "line": 76
2026-06-13T10:36:10.8517361Z             },
2026-06-13T10:36:10.8517442Z             {
2026-06-13T10:36:10.8517557Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8517646Z               "line": 212
2026-06-13T10:36:10.8517731Z             },
2026-06-13T10:36:10.8517812Z             {
2026-06-13T10:36:10.8518006Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8518086Z               "line": 69
2026-06-13T10:36:10.8518173Z             },
2026-06-13T10:36:10.8518250Z             {
2026-06-13T10:36:10.8518363Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8518444Z               "line": 133
2026-06-13T10:36:10.8518526Z             },
2026-06-13T10:36:10.8518607Z             {
2026-06-13T10:36:10.8518725Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8518808Z               "line": 243
2026-06-13T10:36:10.8518893Z             },
2026-06-13T10:36:10.8519055Z             {
2026-06-13T10:36:10.8519169Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8519345Z               "line": 406
2026-06-13T10:36:10.8519428Z             },
2026-06-13T10:36:10.8519512Z             {
2026-06-13T10:36:10.8519627Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8519709Z               "line": 534
2026-06-13T10:36:10.8519795Z             },
2026-06-13T10:36:10.8519874Z             {
2026-06-13T10:36:10.8519980Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8520067Z               "line": 548
2026-06-13T10:36:10.8520147Z             },
2026-06-13T10:36:10.8520218Z             {
2026-06-13T10:36:10.8520329Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8520410Z               "line": 603
2026-06-13T10:36:10.8520485Z             },
2026-06-13T10:36:10.8520561Z             {
2026-06-13T10:36:10.8520679Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8520757Z               "line": 634
2026-06-13T10:36:10.8520837Z             },
2026-06-13T10:36:10.8520918Z             {
2026-06-13T10:36:10.8521038Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-13T10:36:10.8521119Z               "line": 137
2026-06-13T10:36:10.8521194Z             },
2026-06-13T10:36:10.8521275Z             {
2026-06-13T10:36:10.8521395Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-13T10:36:10.8521486Z               "line": 184
2026-06-13T10:36:10.8521562Z             },
2026-06-13T10:36:10.8521643Z             {
2026-06-13T10:36:10.8521758Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8521847Z               "line": 78
2026-06-13T10:36:10.8521924Z             },
2026-06-13T10:36:10.8522011Z             {
2026-06-13T10:36:10.8522129Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8522224Z               "line": 114
2026-06-13T10:36:10.8522307Z             },
2026-06-13T10:36:10.8522382Z             {
2026-06-13T10:36:10.8522501Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8522592Z               "line": 185
2026-06-13T10:36:10.8522673Z             },
2026-06-13T10:36:10.8522749Z             {
2026-06-13T10:36:10.8522862Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8522953Z               "line": 260
2026-06-13T10:36:10.8523042Z             },
2026-06-13T10:36:10.8523123Z             {
2026-06-13T10:36:10.8523237Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8523324Z               "line": 292
2026-06-13T10:36:10.8523399Z             },
2026-06-13T10:36:10.8523475Z             {
2026-06-13T10:36:10.8523590Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8523667Z               "line": 323
2026-06-13T10:36:10.8523742Z             },
2026-06-13T10:36:10.8523823Z             {
2026-06-13T10:36:10.8523943Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8524024Z               "line": 346
2026-06-13T10:36:10.8524104Z             },
2026-06-13T10:36:10.8524191Z             {
2026-06-13T10:36:10.8524310Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8524400Z               "line": 388
2026-06-13T10:36:10.8524477Z             },
2026-06-13T10:36:10.8524554Z             {
2026-06-13T10:36:10.8524762Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8524855Z               "line": 398
2026-06-13T10:36:10.8524935Z             },
2026-06-13T10:36:10.8525010Z             {
2026-06-13T10:36:10.8525121Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8525212Z               "line": 410
2026-06-13T10:36:10.8525292Z             },
2026-06-13T10:36:10.8525373Z             {
2026-06-13T10:36:10.8525489Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8525569Z               "line": 420
2026-06-13T10:36:10.8525644Z             },
2026-06-13T10:36:10.8525816Z             {
2026-06-13T10:36:10.8525933Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8526022Z               "line": 439
2026-06-13T10:36:10.8526099Z             },
2026-06-13T10:36:10.8526176Z             {
2026-06-13T10:36:10.8526290Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8526385Z               "line": 449
2026-06-13T10:36:10.8526467Z             },
2026-06-13T10:36:10.8526548Z             {
2026-06-13T10:36:10.8526661Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8526748Z               "line": 94
2026-06-13T10:36:10.8526830Z             },
2026-06-13T10:36:10.8526906Z             {
2026-06-13T10:36:10.8527024Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8527106Z               "line": 120
2026-06-13T10:36:10.8527182Z             },
2026-06-13T10:36:10.8527258Z             {
2026-06-13T10:36:10.8527377Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8527473Z               "line": 135
2026-06-13T10:36:10.8527548Z             },
2026-06-13T10:36:10.8527629Z             {
2026-06-13T10:36:10.8527740Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8527831Z               "line": 162
2026-06-13T10:36:10.8527911Z             },
2026-06-13T10:36:10.8527988Z             {
2026-06-13T10:36:10.8528103Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8528183Z               "line": 174
2026-06-13T10:36:10.8528263Z             },
2026-06-13T10:36:10.8528349Z             {
2026-06-13T10:36:10.8528463Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8528556Z               "line": 185
2026-06-13T10:36:10.8528632Z             },
2026-06-13T10:36:10.8528723Z             {
2026-06-13T10:36:10.8528833Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8528923Z               "line": 451
2026-06-13T10:36:10.8529081Z             },
2026-06-13T10:36:10.8529172Z             {
2026-06-13T10:36:10.8529285Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8529368Z               "line": 555
2026-06-13T10:36:10.8529443Z             },
2026-06-13T10:36:10.8529519Z             {
2026-06-13T10:36:10.8529639Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T10:36:10.8529730Z               "line": 171
2026-06-13T10:36:10.8529811Z             },
2026-06-13T10:36:10.8529891Z             {
2026-06-13T10:36:10.8530002Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T10:36:10.8530091Z               "line": 65
2026-06-13T10:36:10.8530167Z             },
2026-06-13T10:36:10.8530249Z             {
2026-06-13T10:36:10.8530364Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T10:36:10.8530444Z               "line": 71
2026-06-13T10:36:10.8530521Z             },
2026-06-13T10:36:10.8530589Z             {
2026-06-13T10:36:10.8530698Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T10:36:10.8530788Z               "line": 77
2026-06-13T10:36:10.8530869Z             },
2026-06-13T10:36:10.8530946Z             {
2026-06-13T10:36:10.8531040Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8531140Z               "line": 778
2026-06-13T10:36:10.8531216Z             },
2026-06-13T10:36:10.8531392Z             {
2026-06-13T10:36:10.8531497Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8531583Z               "line": 795
2026-06-13T10:36:10.8531669Z             },
2026-06-13T10:36:10.8531749Z             {
2026-06-13T10:36:10.8531850Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8531937Z               "line": 838
2026-06-13T10:36:10.8532013Z             },
2026-06-13T10:36:10.8532093Z             {
2026-06-13T10:36:10.8532194Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8532279Z               "line": 981
2026-06-13T10:36:10.8532360Z             },
2026-06-13T10:36:10.8532431Z             {
2026-06-13T10:36:10.8532665Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8532756Z               "line": 1131
2026-06-13T10:36:10.8532843Z             }
2026-06-13T10:36:10.8532923Z           ]
2026-06-13T10:36:10.8533004Z         },
2026-06-13T10:36:10.8533075Z         "int": {
2026-06-13T10:36:10.8533172Z           "complete": true,
2026-06-13T10:36:10.8533262Z           "evidence": [
2026-06-13T10:36:10.8533342Z             {
2026-06-13T10:36:10.8533465Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T10:36:10.8533551Z               "line": 569
2026-06-13T10:36:10.8533635Z             },
2026-06-13T10:36:10.8533711Z             {
2026-06-13T10:36:10.8533831Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-13T10:36:10.8533912Z               "line": 135
2026-06-13T10:36:10.8533993Z             }
2026-06-13T10:36:10.8534063Z           ]
2026-06-13T10:36:10.8534150Z         },
2026-06-13T10:36:10.8534231Z         "unit": {
2026-06-13T10:36:10.8534326Z           "complete": true,
2026-06-13T10:36:10.8534417Z           "evidence": [
2026-06-13T10:36:10.8534494Z             {
2026-06-13T10:36:10.8534612Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8534702Z               "line": 623
2026-06-13T10:36:10.8534780Z             },
2026-06-13T10:36:10.8534856Z             {
2026-06-13T10:36:10.8534974Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8535056Z               "line": 672
2026-06-13T10:36:10.8535137Z             },
2026-06-13T10:36:10.8535208Z             {
2026-06-13T10:36:10.8535327Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T10:36:10.8535415Z               "line": 696
2026-06-13T10:36:10.8535499Z             },
2026-06-13T10:36:10.8535575Z             {
2026-06-13T10:36:10.8535695Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8535781Z               "line": 513
2026-06-13T10:36:10.8535871Z             },
2026-06-13T10:36:10.8535957Z             {
2026-06-13T10:36:10.8536073Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8536157Z               "line": 638
2026-06-13T10:36:10.8536242Z             },
2026-06-13T10:36:10.8536323Z             {
2026-06-13T10:36:10.8536437Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8536531Z               "line": 675
2026-06-13T10:36:10.8536621Z             },
2026-06-13T10:36:10.8536703Z             {
2026-06-13T10:36:10.8536822Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8536911Z               "line": 894
2026-06-13T10:36:10.8536998Z             },
2026-06-13T10:36:10.8537080Z             {
2026-06-13T10:36:10.8537193Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8537284Z               "line": 916
2026-06-13T10:36:10.8537361Z             },
2026-06-13T10:36:10.8537441Z             {
2026-06-13T10:36:10.8537560Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8537657Z               "line": 933
2026-06-13T10:36:10.8537747Z             },
2026-06-13T10:36:10.8537828Z             {
2026-06-13T10:36:10.8537947Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8538033Z               "line": 948
2026-06-13T10:36:10.8538122Z             },
2026-06-13T10:36:10.8538282Z             {
2026-06-13T10:36:10.8538400Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8538491Z               "line": 974
2026-06-13T10:36:10.8538577Z             },
2026-06-13T10:36:10.8538663Z             {
2026-06-13T10:36:10.8538775Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T10:36:10.8538861Z               "line": 457
2026-06-13T10:36:10.8539041Z             },
2026-06-13T10:36:10.8539126Z             {
2026-06-13T10:36:10.8539259Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T10:36:10.8539346Z               "line": 338
2026-06-13T10:36:10.8539431Z             },
2026-06-13T10:36:10.8539618Z             {
2026-06-13T10:36:10.8539727Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8539812Z               "line": 8111
2026-06-13T10:36:10.8539899Z             },
2026-06-13T10:36:10.8539984Z             {
2026-06-13T10:36:10.8540088Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8540185Z               "line": 1260
2026-06-13T10:36:10.8540266Z             },
2026-06-13T10:36:10.8540351Z             {
2026-06-13T10:36:10.8540466Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-13T10:36:10.8540557Z               "line": 130
2026-06-13T10:36:10.8540642Z             }
2026-06-13T10:36:10.8540718Z           ]
2026-06-13T10:36:10.8540804Z         }
2026-06-13T10:36:10.8540886Z       }
2026-06-13T10:36:10.8540971Z     },
2026-06-13T10:36:10.8541047Z     {
2026-06-13T10:36:10.8541144Z       "id": "REQ-UPD-7",
2026-06-13T10:36:10.8543216Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-13T10:36:10.8543316Z       "requiredStages": [
2026-06-13T10:36:10.8543408Z         "impl",
2026-06-13T10:36:10.8543493Z         "unit"
2026-06-13T10:36:10.8543583Z       ],
2026-06-13T10:36:10.8543664Z       "stages": {
2026-06-13T10:36:10.8543747Z         "doc": {
2026-06-13T10:36:10.8543845Z           "complete": false,
2026-06-13T10:36:10.8543931Z           "evidence": []
2026-06-13T10:36:10.8544016Z         },
2026-06-13T10:36:10.8544111Z         "impl": {
2026-06-13T10:36:10.8544200Z           "complete": true,
2026-06-13T10:36:10.8544289Z           "evidence": [
2026-06-13T10:36:10.8544371Z             {
2026-06-13T10:36:10.8544477Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8544562Z               "line": 2010
2026-06-13T10:36:10.8544658Z             }
2026-06-13T10:36:10.8544739Z           ]
2026-06-13T10:36:10.8544820Z         },
2026-06-13T10:36:10.8544905Z         "int": {
2026-06-13T10:36:10.8544996Z           "complete": false,
2026-06-13T10:36:10.8545087Z           "evidence": []
2026-06-13T10:36:10.8545167Z         },
2026-06-13T10:36:10.8545257Z         "unit": {
2026-06-13T10:36:10.8545350Z           "complete": true,
2026-06-13T10:36:10.8545430Z           "evidence": [
2026-06-13T10:36:10.8545520Z             {
2026-06-13T10:36:10.8545621Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8545702Z               "line": 8087
2026-06-13T10:36:10.8545783Z             }
2026-06-13T10:36:10.8545873Z           ]
2026-06-13T10:36:10.8545955Z         }
2026-06-13T10:36:10.8546036Z       }
2026-06-13T10:36:10.8546121Z     },
2026-06-13T10:36:10.8546202Z     {
2026-06-13T10:36:10.8546299Z       "id": "REQ-UPD-8",
2026-06-13T10:36:10.8548832Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-13T10:36:10.8549113Z       "requiredStages": [
2026-06-13T10:36:10.8549223Z         "impl",
2026-06-13T10:36:10.8549308Z         "unit"
2026-06-13T10:36:10.8549388Z       ],
2026-06-13T10:36:10.8549474Z       "stages": {
2026-06-13T10:36:10.8549555Z         "doc": {
2026-06-13T10:36:10.8549653Z           "complete": false,
2026-06-13T10:36:10.8549733Z           "evidence": []
2026-06-13T10:36:10.8549824Z         },
2026-06-13T10:36:10.8549901Z         "impl": {
2026-06-13T10:36:10.8549996Z           "complete": true,
2026-06-13T10:36:10.8550077Z           "evidence": [
2026-06-13T10:36:10.8550159Z             {
2026-06-13T10:36:10.8550287Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8550377Z               "line": 77
2026-06-13T10:36:10.8550459Z             },
2026-06-13T10:36:10.8550535Z             {
2026-06-13T10:36:10.8550658Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8550750Z               "line": 49
2026-06-13T10:36:10.8550836Z             },
2026-06-13T10:36:10.8550921Z             {
2026-06-13T10:36:10.8551021Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8551108Z               "line": 152
2026-06-13T10:36:10.8551184Z             },
2026-06-13T10:36:10.8551269Z             {
2026-06-13T10:36:10.8551384Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8551475Z               "line": 215
2026-06-13T10:36:10.8551554Z             },
2026-06-13T10:36:10.8551626Z             {
2026-06-13T10:36:10.8551742Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8551827Z               "line": 230
2026-06-13T10:36:10.8551903Z             },
2026-06-13T10:36:10.8551985Z             {
2026-06-13T10:36:10.8552086Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8552170Z               "line": 247
2026-06-13T10:36:10.8552245Z             },
2026-06-13T10:36:10.8552331Z             {
2026-06-13T10:36:10.8552446Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8552532Z               "line": 269
2026-06-13T10:36:10.8552612Z             },
2026-06-13T10:36:10.8552689Z             {
2026-06-13T10:36:10.8552814Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8552893Z               "line": 66
2026-06-13T10:36:10.8552965Z             },
2026-06-13T10:36:10.8553048Z             {
2026-06-13T10:36:10.8553157Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T10:36:10.8553246Z               "line": 154
2026-06-13T10:36:10.8553324Z             },
2026-06-13T10:36:10.8553409Z             {
2026-06-13T10:36:10.8553509Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8553590Z               "line": 1884
2026-06-13T10:36:10.8553672Z             },
2026-06-13T10:36:10.8553757Z             {
2026-06-13T10:36:10.8553857Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8553944Z               "line": 1957
2026-06-13T10:36:10.8554025Z             },
2026-06-13T10:36:10.8554104Z             {
2026-06-13T10:36:10.8554210Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8554302Z               "line": 1967
2026-06-13T10:36:10.8554382Z             },
2026-06-13T10:36:10.8554590Z             {
2026-06-13T10:36:10.8554695Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8554784Z               "line": 1974
2026-06-13T10:36:10.8554864Z             },
2026-06-13T10:36:10.8554951Z             {
2026-06-13T10:36:10.8555047Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8555136Z               "line": 2011
2026-06-13T10:36:10.8555222Z             },
2026-06-13T10:36:10.8555304Z             {
2026-06-13T10:36:10.8555418Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8555507Z               "line": 480
2026-06-13T10:36:10.8555586Z             },
2026-06-13T10:36:10.8555765Z             {
2026-06-13T10:36:10.8555871Z               "path": "crates/xtask/src/main.rs",
2026-06-13T10:36:10.8555966Z               "line": 494
2026-06-13T10:36:10.8556047Z             }
2026-06-13T10:36:10.8556133Z           ]
2026-06-13T10:36:10.8556210Z         },
2026-06-13T10:36:10.8556295Z         "int": {
2026-06-13T10:36:10.8556395Z           "complete": false,
2026-06-13T10:36:10.8556481Z           "evidence": []
2026-06-13T10:36:10.8556568Z         },
2026-06-13T10:36:10.8556648Z         "unit": {
2026-06-13T10:36:10.8556738Z           "complete": true,
2026-06-13T10:36:10.8556825Z           "evidence": [
2026-06-13T10:36:10.8556911Z             {
2026-06-13T10:36:10.8557039Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T10:36:10.8557126Z               "line": 476
2026-06-13T10:36:10.8557212Z             },
2026-06-13T10:36:10.8557291Z             {
2026-06-13T10:36:10.8557414Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T10:36:10.8557505Z               "line": 580
2026-06-13T10:36:10.8557590Z             },
2026-06-13T10:36:10.8557675Z             {
2026-06-13T10:36:10.8557775Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8557866Z               "line": 8089
2026-06-13T10:36:10.8557947Z             },
2026-06-13T10:36:10.8558032Z             {
2026-06-13T10:36:10.8558138Z               "path": "crates/spt/src/cli.rs",
2026-06-13T10:36:10.8558228Z               "line": 8111
2026-06-13T10:36:10.8558308Z             }
2026-06-13T10:36:10.8558389Z           ]
2026-06-13T10:36:10.8558472Z         }
2026-06-13T10:36:10.8558548Z       }
2026-06-13T10:36:10.8558633Z     }
2026-06-13T10:36:10.8558714Z   ],
2026-06-13T10:36:10.8558805Z   "findings": []
2026-06-13T10:36:10.8558895Z }
2026-06-13T10:36:10.8600164Z ##[group]Run ./traceable-reqs lint || true
2026-06-13T10:36:10.8600359Z [36;1m./traceable-reqs lint || true[0m
2026-06-13T10:36:10.8616112Z shell: /usr/bin/bash -e {0}
2026-06-13T10:36:10.8616245Z ##[endgroup]
2026-06-13T10:36:10.8810001Z Requirement quality findings (92); 189 requirements queued for agent review:
2026-06-13T10:36:10.8810986Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8811531Z   [must] requirement_quality REQ-CLI-1 criterion=length — title is 47 words; want 3..=25
2026-06-13T10:36:10.8811990Z   [must] requirement_quality REQ-CLI-2 criterion=length — title is 37 words; want 3..=25
2026-06-13T10:36:10.8812423Z   [must] requirement_quality REQ-CLI-3 criterion=length — title is 37 words; want 3..=25
2026-06-13T10:36:10.8812786Z   [must] requirement_quality REQ-CONSENT-1 criterion=length — title is 41 words; want 3..=25
2026-06-13T10:36:10.8813249Z   [must] requirement_quality REQ-CONSENT-2 criterion=length — title is 37 words; want 3..=25
2026-06-13T10:36:10.8814008Z   [must] requirement_quality REQ-CONV-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8814365Z   [must] requirement_quality REQ-CONV-1 criterion=length — title is 73 words; want 3..=25
2026-06-13T10:36:10.8814772Z   [must] requirement_quality REQ-CONV-2 criterion=length — title is 47 words; want 3..=25
2026-06-13T10:36:10.8815295Z   [must] requirement_quality REQ-DAEMON-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8815653Z   [must] requirement_quality REQ-DAEMON-5 criterion=length — title is 64 words; want 3..=25
2026-06-13T10:36:10.8816158Z   [must] requirement_quality REQ-DAEMON-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8816511Z   [must] requirement_quality REQ-DAEMON-6 criterion=length — title is 84 words; want 3..=25
2026-06-13T10:36:10.8817012Z   [must] requirement_quality REQ-DAEMON-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8817364Z   [must] requirement_quality REQ-DAEMON-7 criterion=length — title is 62 words; want 3..=25
2026-06-13T10:36:10.8817989Z   [must] requirement_quality REQ-DAEMON-8 criterion=length — title is 44 words; want 3..=25
2026-06-13T10:36:10.8818478Z   [must] requirement_quality REQ-DAEMON-9 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8818829Z   [must] requirement_quality REQ-DAEMON-9 criterion=length — title is 114 words; want 3..=25
2026-06-13T10:36:10.8819406Z   [must] requirement_quality REQ-EP-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8819740Z   [must] requirement_quality REQ-EP-6 criterion=length — title is 66 words; want 3..=25
2026-06-13T10:36:10.8820074Z   [must] requirement_quality REQ-EP-7 criterion=length — title is 68 words; want 3..=25
2026-06-13T10:36:10.8820599Z   [must] requirement_quality REQ-HAZARD-BRAIN-RESPAWN-PATH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8820942Z   [must] requirement_quality REQ-HAZARD-BRAIN-RESPAWN-PATH criterion=length — title is 119 words; want 3..=25
2026-06-13T10:36:10.8821431Z   [must] requirement_quality REQ-HAZARD-BROKER-PROCESS-ISOLATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8821801Z   [must] requirement_quality REQ-HAZARD-BROKER-PROCESS-ISOLATION criterion=length — title is 114 words; want 3..=25
2026-06-13T10:36:10.8822145Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-13T10:36:10.8822503Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-13T10:36:10.8823075Z   [must] requirement_quality REQ-HAZARD-DETACHED-PIPE-INHERIT criterion=length — title is 52 words; want 3..=25
2026-06-13T10:36:10.8823531Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8823879Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=length — title is 58 words; want 3..=25
2026-06-13T10:36:10.8824319Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-CR-LINESAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8824659Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-CR-LINESAFE criterion=length — title is 73 words; want 3..=25
2026-06-13T10:36:10.8825102Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8825398Z   [must] requirement_quality REQ-HAZARD-EPOCH-RESET criterion=length — title is 60 words; want 3..=25
2026-06-13T10:36:10.8825822Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8826151Z   [must] requirement_quality REQ-HAZARD-INSTANT-UNDERFLOW criterion=length — title is 30 words; want 3..=25
2026-06-13T10:36:10.8826470Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-13T10:36:10.8826799Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-13T10:36:10.8827242Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8827686Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8828033Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-13T10:36:10.8828452Z   [must] requirement_quality REQ-HAZARD-PUMP-IPC-DEADLINE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8828777Z   [must] requirement_quality REQ-HAZARD-PUMP-IPC-DEADLINE criterion=length — title is 38 words; want 3..=25
2026-06-13T10:36:10.8829427Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8829756Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=length — title is 66 words; want 3..=25
2026-06-13T10:36:10.8830099Z   [must] requirement_quality REQ-HAZARD-ROLLBACK-STATE-COMPAT criterion=length — title is 72 words; want 3..=25
2026-06-13T10:36:10.8830414Z   [must] requirement_quality REQ-HAZARD-SUDO-SECURE-PATH criterion=length — title is 43 words; want 3..=25
2026-06-13T10:36:10.8830729Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-13T10:36:10.8830995Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-13T10:36:10.8831258Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-13T10:36:10.8831639Z   [must] requirement_quality REQ-INSTALL-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8831905Z   [must] requirement_quality REQ-INSTALL-6 criterion=length — title is 56 words; want 3..=25
2026-06-13T10:36:10.8832275Z   [must] requirement_quality REQ-INSTALL-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8832538Z   [must] requirement_quality REQ-INSTALL-7 criterion=length — title is 50 words; want 3..=25
2026-06-13T10:36:10.8832795Z   [must] requirement_quality REQ-INSTALL-8 criterion=length — title is 55 words; want 3..=25
2026-06-13T10:36:10.8833300Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8833577Z   [must] requirement_quality REQ-MANIFEST-3 criterion=length — title is 26 words; want 3..=25
2026-06-13T10:36:10.8833834Z   [must] requirement_quality REQ-MANIFEST-4 criterion=length — title is 31 words; want 3..=25
2026-06-13T10:36:10.8834101Z   [must] requirement_quality REQ-MESH-1 criterion=length — title is 86 words; want 3..=25
2026-06-13T10:36:10.8834454Z   [must] requirement_quality REQ-MESH-2 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8834705Z   [must] requirement_quality REQ-MESH-2 criterion=length — title is 120 words; want 3..=25
2026-06-13T10:36:10.8835053Z   [must] requirement_quality REQ-MESH-3 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8835291Z   [must] requirement_quality REQ-MESH-3 criterion=length — title is 86 words; want 3..=25
2026-06-13T10:36:10.8835653Z   [must] requirement_quality REQ-MESH-4 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8835901Z   [must] requirement_quality REQ-MESH-4 criterion=length — title is 99 words; want 3..=25
2026-06-13T10:36:10.8836250Z   [must] requirement_quality REQ-MESH-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8836507Z   [must] requirement_quality REQ-MESH-5 criterion=length — title is 72 words; want 3..=25
2026-06-13T10:36:10.8836846Z   [must] requirement_quality REQ-MESH-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8837093Z   [must] requirement_quality REQ-MESH-6 criterion=length — title is 56 words; want 3..=25
2026-06-13T10:36:10.8837454Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8837716Z   [must] requirement_quality REQ-MSG-4 criterion=length — title is 31 words; want 3..=25
2026-06-13T10:36:10.8837969Z   [must] requirement_quality REQ-MSG-5 criterion=length — title is 38 words; want 3..=25
2026-06-13T10:36:10.8838321Z   [must] requirement_quality REQ-PAIR-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8838693Z   [must] requirement_quality REQ-PAIR-8 criterion=length — title is 67 words; want 3..=25
2026-06-13T10:36:10.8839105Z   [must] requirement_quality REQ-PRES-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8839366Z   [must] requirement_quality REQ-PRES-1 criterion=length — title is 48 words; want 3..=25
2026-06-13T10:36:10.8839646Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-13T10:36:10.8839897Z   [must] requirement_quality REQ-SHELL-1 criterion=length — title is 36 words; want 3..=25
2026-06-13T10:36:10.8840150Z   [must] requirement_quality REQ-SHELL-2 criterion=length — title is 49 words; want 3..=25
2026-06-13T10:36:10.8840407Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-13T10:36:10.8840664Z   [must] requirement_quality REQ-SUBNET-5 criterion=length — title is 52 words; want 3..=25
2026-06-13T10:36:10.8841037Z   [must] requirement_quality REQ-SUBNET-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8841298Z   [must] requirement_quality REQ-SUBNET-6 criterion=length — title is 38 words; want 3..=25
2026-06-13T10:36:10.8841653Z   [must] requirement_quality REQ-SUBNET-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8841914Z   [must] requirement_quality REQ-SUBNET-7 criterion=length — title is 75 words; want 3..=25
2026-06-13T10:36:10.8842162Z   [must] requirement_quality REQ-SUBNET-8 criterion=length — title is 53 words; want 3..=25
2026-06-13T10:36:10.8842656Z   [must] requirement_quality REQ-UPD-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8842907Z   [must] requirement_quality REQ-UPD-6 criterion=length — title is 32 words; want 3..=25
2026-06-13T10:36:10.8843260Z   [must] requirement_quality REQ-UPD-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8843526Z   [must] requirement_quality REQ-UPD-7 criterion=length — title is 88 words; want 3..=25
2026-06-13T10:36:10.8843875Z   [must] requirement_quality REQ-UPD-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T10:36:10.8844127Z   [must] requirement_quality REQ-UPD-8 criterion=length — title is 115 words; want 3..=25
2026-06-13T10:36:10.8844165Z 
2026-06-13T10:36:10.8844276Z # Requirement quality review
2026-06-13T10:36:10.8844314Z 
2026-06-13T10:36:10.8844515Z You are reviewing 189 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-13T10:36:10.8844724Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-13T10:36:10.8844915Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-13T10:36:10.8845071Z this command's output. Your task is the rubric items below.
2026-06-13T10:36:10.8845108Z 
2026-06-13T10:36:10.8845204Z ## Rubric
2026-06-13T10:36:10.8845242Z 
2026-06-13T10:36:10.8845492Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-13T10:36:10.8845726Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-13T10:36:10.8845937Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-13T10:36:10.8846108Z - **active-voice** — clear subject and active verb.
2026-06-13T10:36:10.8846142Z 
2026-06-13T10:36:10.8846374Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-13T10:36:10.8846466Z clear concerns.
2026-06-13T10:36:10.8846495Z 
2026-06-13T10:36:10.8846594Z ## Requirements
2026-06-13T10:36:10.8846632Z 
2026-06-13T10:36:10.8846722Z ### REQ-ARCH-1
2026-06-13T10:36:10.8846847Z - Title: Many small acyclically-layered crates
2026-06-13T10:36:10.8846952Z - Required stages: impl
2026-06-13T10:36:10.8846985Z 
2026-06-13T10:36:10.8847199Z ### REQ-ARCH-2
2026-06-13T10:36:10.8847362Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-13T10:36:10.8847463Z - Required stages: impl
2026-06-13T10:36:10.8847496Z 
2026-06-13T10:36:10.8847591Z ### REQ-ARCH-3
2026-06-13T10:36:10.8847787Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-13T10:36:10.8847885Z - Required stages: impl, unit
2026-06-13T10:36:10.8847919Z 
2026-06-13T10:36:10.8848014Z ### REQ-ARCH-4
2026-06-13T10:36:10.8848177Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-13T10:36:10.8848295Z - Required stages: impl, unit
2026-06-13T10:36:10.8848333Z 
2026-06-13T10:36:10.8848444Z ### REQ-DAEMON-1
2026-06-13T10:36:10.8848614Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-13T10:36:10.8848716Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8848749Z 
2026-06-13T10:36:10.8848844Z ### REQ-DAEMON-2
2026-06-13T10:36:10.8849054Z - Title: Broker/brain split for seamless self-update
2026-06-13T10:36:10.8849173Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8849210Z 
2026-06-13T10:36:10.8849302Z ### REQ-DAEMON-3
2026-06-13T10:36:10.8849454Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-13T10:36:10.8849545Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8849573Z 
2026-06-13T10:36:10.8849665Z ### REQ-DAEMON-4
2026-06-13T10:36:10.8849783Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-13T10:36:10.8849883Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8849917Z 
2026-06-13T10:36:10.8850013Z ### REQ-STORE-1
2026-06-13T10:36:10.8850948Z - Title: spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)
2026-06-13T10:36:10.8851053Z - Required stages: impl, unit
2026-06-13T10:36:10.8851091Z 
2026-06-13T10:36:10.8851190Z ### REQ-MANIFEST-1
2026-06-13T10:36:10.8851368Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-13T10:36:10.8851467Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8851500Z 
2026-06-13T10:36:10.8851592Z ### REQ-MANIFEST-2
2026-06-13T10:36:10.8852083Z - Title: Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors
2026-06-13T10:36:10.8852193Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8852227Z 
2026-06-13T10:36:10.8852316Z ### REQ-MANIFEST-3
2026-06-13T10:36:10.8852928Z - Title: Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)
2026-06-13T10:36:10.8853031Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8853064Z 
2026-06-13T10:36:10.8853164Z ### REQ-MANIFEST-4
2026-06-13T10:36:10.8853859Z - Title: Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace
2026-06-13T10:36:10.8853959Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8853991Z 
2026-06-13T10:36:10.8854149Z ### REQ-SEAM-SPAWN
2026-06-13T10:36:10.8854254Z - Title: spawn-session seam
2026-06-13T10:36:10.8854358Z - Required stages: impl, unit
2026-06-13T10:36:10.8854392Z 
2026-06-13T10:36:10.8854493Z ### REQ-SEAM-POSTSPAWN
2026-06-13T10:36:10.8854617Z - Title: post-spawn / api bind seam with boot nonce
2026-06-13T10:36:10.8854721Z - Required stages: impl, unit
2026-06-13T10:36:10.8854750Z 
2026-06-13T10:36:10.8854851Z ### REQ-SEAM-PSYCHE
2026-06-13T10:36:10.8854992Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-13T10:36:10.8855099Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8855132Z 
2026-06-13T10:36:10.8855331Z ### REQ-SEAM-HISTORY
2026-06-13T10:36:10.8855532Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-13T10:36:10.8855631Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8855664Z 
2026-06-13T10:36:10.8855754Z ### REQ-SEAM-ACTIVITY
2026-06-13T10:36:10.8855924Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-13T10:36:10.8856019Z - Required stages: impl, unit
2026-06-13T10:36:10.8856053Z 
2026-06-13T10:36:10.8856154Z ### REQ-SEAM-INJECT
2026-06-13T10:36:10.8856310Z - Title: inject-input methods configurable per activity-state
2026-06-13T10:36:10.8856416Z - Required stages: impl, unit
2026-06-13T10:36:10.8856449Z 
2026-06-13T10:36:10.8856544Z ### REQ-SEAM-RESUME
2026-06-13T10:36:10.8856721Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-13T10:36:10.8856854Z - Required stages: impl, unit
2026-06-13T10:36:10.8856901Z 
2026-06-13T10:36:10.8857017Z ### REQ-SEAM-CAPABILITY
2026-06-13T10:36:10.8857164Z - Title: Hostable endpoint-types capability declaration
2026-06-13T10:36:10.8857273Z - Required stages: impl, unit
2026-06-13T10:36:10.8857307Z 
2026-06-13T10:36:10.8857408Z ### REQ-SEAM-UPDATE
2026-06-13T10:36:10.8857564Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-13T10:36:10.8857665Z - Required stages: impl, unit
2026-06-13T10:36:10.8857699Z 
2026-06-13T10:36:10.8857792Z ### REQ-API-1
2026-06-13T10:36:10.8857956Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-13T10:36:10.8858061Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8858093Z 
2026-06-13T10:36:10.8858189Z ### REQ-API-2
2026-06-13T10:36:10.8858380Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-13T10:36:10.8858574Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8858607Z 
2026-06-13T10:36:10.8858699Z ### REQ-API-3
2026-06-13T10:36:10.8858836Z - Title: commune/signoff are file-drops, not commands
2026-06-13T10:36:10.8859027Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8859066Z 
2026-06-13T10:36:10.8859160Z ### REQ-START-1
2026-06-13T10:36:10.8859361Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-13T10:36:10.8859465Z - Required stages: impl, unit
2026-06-13T10:36:10.8859494Z 
2026-06-13T10:36:10.8859591Z ### REQ-START-2
2026-06-13T10:36:10.8859723Z - Title: Harness-hosted startup: api seed then listen
2026-06-13T10:36:10.8859828Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8859857Z 
2026-06-13T10:36:10.8859957Z ### REQ-START-3
2026-06-13T10:36:10.8860114Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-13T10:36:10.8860220Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8860254Z 
2026-06-13T10:36:10.8860347Z ### REQ-START-4
2026-06-13T10:36:10.8860486Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-13T10:36:10.8860587Z - Required stages: impl, unit
2026-06-13T10:36:10.8860620Z 
2026-06-13T10:36:10.8860710Z ### REQ-EP-1
2026-06-13T10:36:10.8860838Z - Title: Day-one endpoint types; open type system
2026-06-13T10:36:10.8860942Z - Required stages: impl, unit
2026-06-13T10:36:10.8860975Z 
2026-06-13T10:36:10.8861074Z ### REQ-EP-2
2026-06-13T10:36:10.8861237Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-13T10:36:10.8861336Z - Required stages: impl, unit
2026-06-13T10:36:10.8861370Z 
2026-06-13T10:36:10.8861465Z ### REQ-EP-3
2026-06-13T10:36:10.8861641Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-13T10:36:10.8861750Z - Required stages: impl, unit
2026-06-13T10:36:10.8861785Z 
2026-06-13T10:36:10.8861876Z ### REQ-EP-4
2026-06-13T10:36:10.8862013Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-13T10:36:10.8862119Z - Required stages: impl, unit
2026-06-13T10:36:10.8862157Z 
2026-06-13T10:36:10.8862248Z ### REQ-EP-5
2026-06-13T10:36:10.8862886Z - Title: Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope
2026-06-13T10:36:10.8863116Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8863149Z 
2026-06-13T10:36:10.8863239Z ### REQ-EP-6
2026-06-13T10:36:10.8864952Z - Title: Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) = documented fail-closed residual, deferred past M9 (doyle G2 ruling 2026-06-13)
2026-06-13T10:36:10.8865062Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8865096Z 
2026-06-13T10:36:10.8865186Z ### REQ-EP-7
2026-06-13T10:36:10.8866789Z - Title: Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)
2026-06-13T10:36:10.8866928Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8866957Z 
2026-06-13T10:36:10.8867047Z ### REQ-INST-1
2026-06-13T10:36:10.8867208Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-13T10:36:10.8867296Z - Required stages: 
2026-06-13T10:36:10.8867433Z 
2026-06-13T10:36:10.8867533Z ### REQ-INST-2
2026-06-13T10:36:10.8867653Z - Title: Per-node files, synced Psyche mind
2026-06-13T10:36:10.8867757Z - Required stages: impl, unit
2026-06-13T10:36:10.8867790Z 
2026-06-13T10:36:10.8867887Z ### REQ-INST-3
2026-06-13T10:36:10.8868034Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-13T10:36:10.8868139Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8868167Z 
2026-06-13T10:36:10.8868264Z ### REQ-INST-4
2026-06-13T10:36:10.8868434Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-13T10:36:10.8868540Z - Required stages: impl, unit
2026-06-13T10:36:10.8868574Z 
2026-06-13T10:36:10.8868658Z ### REQ-INST-5
2026-06-13T10:36:10.8868836Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-13T10:36:10.8869015Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8869044Z 
2026-06-13T10:36:10.8869129Z ### REQ-INST-6
2026-06-13T10:36:10.8869311Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-13T10:36:10.8869434Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8869468Z 
2026-06-13T10:36:10.8869569Z ### REQ-INST-7
2026-06-13T10:36:10.8869716Z - Title: Subnet registry + bare-id resolution policy
2026-06-13T10:36:10.8869822Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8869855Z 
2026-06-13T10:36:10.8869946Z ### REQ-INST-8
2026-06-13T10:36:10.8870112Z - Title: Remote-control mode distinct from local operation
2026-06-13T10:36:10.8870221Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8870255Z 
2026-06-13T10:36:10.8870350Z ### REQ-INST-9
2026-06-13T10:36:10.8870536Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-13T10:36:10.8870641Z - Required stages: impl, unit
2026-06-13T10:36:10.8870674Z 
2026-06-13T10:36:10.8870761Z ### REQ-INST-10
2026-06-13T10:36:10.8870965Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-13T10:36:10.8871076Z - Required stages: impl, unit
2026-06-13T10:36:10.8871110Z 
2026-06-13T10:36:10.8871217Z ### REQ-INST-11
2026-06-13T10:36:10.8871417Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-13T10:36:10.8871516Z - Required stages: impl, unit
2026-06-13T10:36:10.8871691Z 
2026-06-13T10:36:10.8871787Z ### REQ-INST-12
2026-06-13T10:36:10.8872059Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-13T10:36:10.8872169Z - Required stages: impl, unit
2026-06-13T10:36:10.8872201Z 
2026-06-13T10:36:10.8872296Z ### REQ-INST-13
2026-06-13T10:36:10.8872469Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-13T10:36:10.8872573Z - Required stages: impl, unit
2026-06-13T10:36:10.8872607Z 
2026-06-13T10:36:10.8872689Z ### REQ-INST-14
2026-06-13T10:36:10.8873056Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-13T10:36:10.8873174Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8873208Z 
2026-06-13T10:36:10.8873294Z ### REQ-INST-15
2026-06-13T10:36:10.8873982Z - Title: Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)
2026-06-13T10:36:10.8874099Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8874137Z 
2026-06-13T10:36:10.8874222Z ### REQ-REACH-1
2026-06-13T10:36:10.8874365Z - Title: Off-node remote-drive detection + file transfer
2026-06-13T10:36:10.8874468Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8874501Z 
2026-06-13T10:36:10.8874587Z ### REQ-REACH-2
2026-06-13T10:36:10.8874731Z - Title: Remote command execution (deferred, consent-gated)
2026-06-13T10:36:10.8874820Z - Required stages: 
2026-06-13T10:36:10.8874853Z 
2026-06-13T10:36:10.8874946Z ### REQ-MSG-1
2026-06-13T10:36:10.8875464Z - Title: Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)
2026-06-13T10:36:10.8875570Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8875613Z 
2026-06-13T10:36:10.8875707Z ### REQ-MSG-2
2026-06-13T10:36:10.8875966Z - Title: spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes
2026-06-13T10:36:10.8876075Z - Required stages: impl, unit
2026-06-13T10:36:10.8876108Z 
2026-06-13T10:36:10.8876185Z ### REQ-MSG-3
2026-06-13T10:36:10.8876553Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-13T10:36:10.8876666Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8876699Z 
2026-06-13T10:36:10.8876779Z ### REQ-MSG-4
2026-06-13T10:36:10.8877588Z - Title: Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type="msg" from=…> otherwise, chunk oversized lines into EVENT-PART
2026-06-13T10:36:10.8877692Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8877735Z 
2026-06-13T10:36:10.8877827Z ### REQ-MSG-5
2026-06-13T10:36:10.8878532Z - Title: user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)
2026-06-13T10:36:10.8878637Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8878674Z 
2026-06-13T10:36:10.8878771Z ### REQ-NODE-IDENTITY
2026-06-13T10:36:10.8879057Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-13T10:36:10.8879167Z - Required stages: impl, unit
2026-06-13T10:36:10.8879200Z 
2026-06-13T10:36:10.8879299Z ### REQ-NET-1
2026-06-13T10:36:10.8879463Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-13T10:36:10.8879575Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8879608Z 
2026-06-13T10:36:10.8879694Z ### REQ-NET-2
2026-06-13T10:36:10.8879971Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-13T10:36:10.8880071Z - Required stages: impl
2026-06-13T10:36:10.8880096Z 
2026-06-13T10:36:10.8880191Z ### REQ-NET-3
2026-06-13T10:36:10.8880353Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-13T10:36:10.8880453Z - Required stages: impl, unit
2026-06-13T10:36:10.8880486Z 
2026-06-13T10:36:10.8880581Z ### REQ-PAIR-1
2026-06-13T10:36:10.8880691Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-13T10:36:10.8880796Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8880824Z 
2026-06-13T10:36:10.8880924Z ### REQ-PAIR-2
2026-06-13T10:36:10.8881059Z - Title: Local trust store with TOFU + warn-on-change
2026-06-13T10:36:10.8881158Z - Required stages: 
2026-06-13T10:36:10.8881201Z 
2026-06-13T10:36:10.8881297Z ### REQ-PAIR-3
2026-06-13T10:36:10.8881439Z - Title: Fetch current pairing code from any paired node
2026-06-13T10:36:10.8881549Z - Required stages: impl, unit
2026-06-13T10:36:10.8881583Z 
2026-06-13T10:36:10.8881684Z ### REQ-PAIR-4
2026-06-13T10:36:10.8881792Z - Title: Subnet naming on first pairing
2026-06-13T10:36:10.8881896Z - Required stages: impl, unit
2026-06-13T10:36:10.8881939Z 
2026-06-13T10:36:10.8882025Z ### REQ-PAIR-5
2026-06-13T10:36:10.8882919Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-13T10:36:10.8883034Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8883067Z 
2026-06-13T10:36:10.8883171Z ### REQ-PAIR-6
2026-06-13T10:36:10.8883434Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-13T10:36:10.8883549Z - Required stages: impl, unit
2026-06-13T10:36:10.8883597Z 
2026-06-13T10:36:10.8884030Z ### REQ-PAIR-7
2026-06-13T10:36:10.8884212Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-13T10:36:10.8884325Z - Required stages: 
2026-06-13T10:36:10.8884363Z 
2026-06-13T10:36:10.8884454Z ### REQ-SUBNET-1
2026-06-13T10:36:10.8884834Z - Title: spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted
2026-06-13T10:36:10.8884943Z - Required stages: impl, unit
2026-06-13T10:36:10.8884976Z 
2026-06-13T10:36:10.8885075Z ### REQ-SUBNET-2
2026-06-13T10:36:10.8885300Z - Title: Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder
2026-06-13T10:36:10.8885423Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8885452Z 
2026-06-13T10:36:10.8885558Z ### REQ-SUBNET-3
2026-06-13T10:36:10.8885825Z - Title: Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)
2026-06-13T10:36:10.8885934Z - Required stages: impl, unit
2026-06-13T10:36:10.8885963Z 
2026-06-13T10:36:10.8886067Z ### REQ-SUBNET-4
2026-06-13T10:36:10.8886339Z - Title: Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)
2026-06-13T10:36:10.8886450Z - Required stages: impl, unit
2026-06-13T10:36:10.8886479Z 
2026-06-13T10:36:10.8886587Z ### REQ-DOCS-6
2026-06-13T10:36:10.8886902Z - Title: spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)
2026-06-13T10:36:10.8887016Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8887041Z 
2026-06-13T10:36:10.8887141Z ### REQ-SEC-1
2026-06-13T10:36:10.8887520Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-13T10:36:10.8887632Z - Required stages: impl, unit
2026-06-13T10:36:10.8887666Z 
2026-06-13T10:36:10.8887752Z ### REQ-NOTIF-1
2026-06-13T10:36:10.8888106Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-13T10:36:10.8888206Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8888243Z 
2026-06-13T10:36:10.8888324Z ### REQ-NOTIF-2
2026-06-13T10:36:10.8888581Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-13T10:36:10.8888783Z - Required stages: doc, impl, unit, int
2026-06-13T10:36:10.8888820Z 
2026-06-13T10:36:10.8888915Z ### REQ-UPD-1
2026-06-13T10:36:10.8889135Z - Title: Peer-propagated update over P2P
2026-06-13T10:36:10.8889239Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8889278Z 
2026-06-13T10:36:10.8889384Z ### REQ-UPD-2
2026-06-13T10:36:10.8889526Z - Title: All binaries signature-verified before handoff
2026-06-13T10:36:10.8889627Z - Required stages: impl, unit
2026-06-13T10:36:10.8889661Z 
2026-06-13T10:36:10.8889741Z ### REQ-UPD-3
2026-06-13T10:36:10.8889913Z - Title: No endpoint process terminates/suspends during self-update
2026-06-13T10:36:10.8890023Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8890051Z 
2026-06-13T10:36:10.8890145Z ### REQ-UPD-4
2026-06-13T10:36:10.8890331Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-13T10:36:10.8890436Z - Required stages: impl, unit
2026-06-13T10:36:10.8890473Z 
2026-06-13T10:36:10.8890568Z ### REQ-UPD-5
2026-06-13T10:36:10.8890712Z - Title: spt-core ripple-updates registered adapters
2026-06-13T10:36:10.8890802Z - Required stages: impl, unit
2026-06-13T10:36:10.8890836Z 
2026-06-13T10:36:10.8890937Z ### REQ-UPD-6
2026-06-13T10:36:10.8891728Z - Title: Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)
2026-06-13T10:36:10.8891833Z - Required stages: doc, impl, unit, int
2026-06-13T10:36:10.8891867Z 
2026-06-13T10:36:10.8891967Z ### REQ-UPD-7
2026-06-13T10:36:10.8894119Z - Title: Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.
2026-06-13T10:36:10.8894242Z - Required stages: impl, unit
2026-06-13T10:36:10.8894276Z 
2026-06-13T10:36:10.8894380Z ### REQ-UPD-8
2026-06-13T10:36:10.8896899Z - Title: Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.
2026-06-13T10:36:10.8897010Z - Required stages: impl, unit
2026-06-13T10:36:10.8897039Z 
2026-06-13T10:36:10.8897138Z ### REQ-TERM-1
2026-06-13T10:36:10.8897305Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-13T10:36:10.8897410Z - Required stages: impl, unit
2026-06-13T10:36:10.8897443Z 
2026-06-13T10:36:10.8897543Z ### REQ-TERM-2
2026-06-13T10:36:10.8897715Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-13T10:36:10.8897824Z - Required stages: impl, unit
2026-06-13T10:36:10.8897852Z 
2026-06-13T10:36:10.8897942Z ### REQ-TERM-3
2026-06-13T10:36:10.8898274Z - Title: Byte-stream remote terminal streaming for v1
2026-06-13T10:36:10.8898394Z - Required stages: impl, unit
2026-06-13T10:36:10.8898427Z 
2026-06-13T10:36:10.8898516Z ### REQ-TERM-4
2026-06-13T10:36:10.8898870Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-13T10:36:10.8899037Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8899061Z 
2026-06-13T10:36:10.8899174Z ### REQ-FRONT-1
2026-06-13T10:36:10.8899347Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-13T10:36:10.8899442Z - Required stages: 
2026-06-13T10:36:10.8899475Z 
2026-06-13T10:36:10.8899577Z ### REQ-INSTALL-1
2026-06-13T10:36:10.8899771Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-13T10:36:10.8899887Z - Required stages: doc, impl, int
2026-06-13T10:36:10.8899920Z 
2026-06-13T10:36:10.8900015Z ### REQ-INSTALL-2
2026-06-13T10:36:10.8900148Z - Title: Marketplace-repackaging-friendly install
2026-06-13T10:36:10.8900264Z - Required stages: doc
2026-06-13T10:36:10.8900296Z 
2026-06-13T10:36:10.8900391Z ### REQ-INSTALL-3
2026-06-13T10:36:10.8900531Z - Title: Idempotent + interactive-optional first run
2026-06-13T10:36:10.8900639Z - Required stages: impl, int
2026-06-13T10:36:10.8900677Z 
2026-06-13T10:36:10.8900766Z ### REQ-INSTALL-4
2026-06-13T10:36:10.8901381Z - Title: Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over
2026-06-13T10:36:10.8901488Z - Required stages: impl, unit
2026-06-13T10:36:10.8901521Z 
2026-06-13T10:36:10.8901744Z ### REQ-MIGRATE-1
2026-06-13T10:36:10.8901916Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-13T10:36:10.8902011Z - Required stages: 
2026-06-13T10:36:10.8902044Z 
2026-06-13T10:36:10.8902141Z ### REQ-INFRA-1
2026-06-13T10:36:10.8902317Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-13T10:36:10.8902427Z - Required stages: 
2026-06-13T10:36:10.8902460Z 
2026-06-13T10:36:10.8902560Z ### REQ-INSTALL-5
2026-06-13T10:36:10.8903021Z - Title: Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration
2026-06-13T10:36:10.8903136Z - Required stages: impl, int
2026-06-13T10:36:10.8903164Z 
2026-06-13T10:36:10.8903252Z ### REQ-REL-1
2026-06-13T10:36:10.8903624Z - Title: spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)
2026-06-13T10:36:10.8903748Z - Required stages: doc, impl
2026-06-13T10:36:10.8903783Z 
2026-06-13T10:36:10.8903854Z ### REQ-REL-2
2026-06-13T10:36:10.8904335Z - Title: Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline
2026-06-13T10:36:10.8904445Z - Required stages: impl, int
2026-06-13T10:36:10.8904478Z 
2026-06-13T10:36:10.8904568Z ### REQ-REL-3
2026-06-13T10:36:10.8905008Z - Title: Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)
2026-06-13T10:36:10.8905107Z - Required stages: impl, unit
2026-06-13T10:36:10.8905136Z 
2026-06-13T10:36:10.8905260Z ### REQ-DOCS-1
2026-06-13T10:36:10.8905445Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-13T10:36:10.8905560Z - Required stages: doc, impl
2026-06-13T10:36:10.8905589Z 
2026-06-13T10:36:10.8905705Z ### REQ-DOCS-2
2026-06-13T10:36:10.8905883Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-13T10:36:10.8905998Z - Required stages: doc, int
2026-06-13T10:36:10.8906031Z 
2026-06-13T10:36:10.8906124Z ### REQ-DOCS-3
2026-06-13T10:36:10.8906335Z - Title: Diátaxis structure; one canonical way to do X
2026-06-13T10:36:10.8906678Z - Required stages: doc
2026-06-13T10:36:10.8906711Z 
2026-06-13T10:36:10.8906806Z ### REQ-DOCS-4
2026-06-13T10:36:10.8906997Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-13T10:36:10.8907102Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8907135Z 
2026-06-13T10:36:10.8907231Z ### REQ-DOCS-5
2026-06-13T10:36:10.8907421Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-13T10:36:10.8907521Z - Required stages: impl, int
2026-06-13T10:36:10.8907555Z 
2026-06-13T10:36:10.8907669Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-13T10:36:10.8907851Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-13T10:36:10.8907975Z - Required stages: impl, unit
2026-06-13T10:36:10.8908003Z 
2026-06-13T10:36:10.8908127Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-13T10:36:10.8908275Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-13T10:36:10.8908389Z - Required stages: impl, unit
2026-06-13T10:36:10.8908426Z 
2026-06-13T10:36:10.8908536Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-13T10:36:10.8908668Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-13T10:36:10.8908771Z - Required stages: impl, unit
2026-06-13T10:36:10.8908810Z 
2026-06-13T10:36:10.8908911Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-13T10:36:10.8909153Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-13T10:36:10.8909250Z - Required stages: impl, unit
2026-06-13T10:36:10.8909283Z 
2026-06-13T10:36:10.8909396Z ### REQ-HAZARD-WORKER-PATH
2026-06-13T10:36:10.8909564Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-13T10:36:10.8909678Z - Required stages: impl, unit
2026-06-13T10:36:10.8909822Z 
2026-06-13T10:36:10.8909945Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-13T10:36:10.8910122Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-13T10:36:10.8910227Z - Required stages: 
2026-06-13T10:36:10.8910265Z 
2026-06-13T10:36:10.8910369Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-13T10:36:10.8910509Z - Title: Stdin session_id precedence over env (2.2)
2026-06-13T10:36:10.8910603Z - Required stages: 
2026-06-13T10:36:10.8910637Z 
2026-06-13T10:36:10.8910752Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-13T10:36:10.8910913Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-13T10:36:10.8911013Z - Required stages: impl, unit
2026-06-13T10:36:10.8911043Z 
2026-06-13T10:36:10.8911153Z ### REQ-HAZARD-GEN-START-NOW
2026-06-13T10:36:10.8911298Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-13T10:36:10.8911398Z - Required stages: impl, int
2026-06-13T10:36:10.8911432Z 
2026-06-13T10:36:10.8911547Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-13T10:36:10.8911718Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-13T10:36:10.8911833Z - Required stages: impl, unit
2026-06-13T10:36:10.8911867Z 
2026-06-13T10:36:10.8911984Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-13T10:36:10.8912148Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-13T10:36:10.8912261Z - Required stages: impl, unit
2026-06-13T10:36:10.8912294Z 
2026-06-13T10:36:10.8912400Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-13T10:36:10.8912585Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-13T10:36:10.8912706Z - Required stages: impl, unit
2026-06-13T10:36:10.8912739Z 
2026-06-13T10:36:10.8912848Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-13T10:36:10.8913002Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-13T10:36:10.8913106Z - Required stages: impl, unit
2026-06-13T10:36:10.8913139Z 
2026-06-13T10:36:10.8913253Z ### REQ-HAZARD-ENVELOPE-CR-LINESAFE
2026-06-13T10:36:10.8915043Z - Title: Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\n`→`<br>`) BEFORE framing, so a body carrying `\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).
2026-06-13T10:36:10.8915277Z - Required stages: impl, unit
2026-06-13T10:36:10.8915311Z 
2026-06-13T10:36:10.8915429Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-13T10:36:10.8915602Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-13T10:36:10.8915696Z - Required stages: impl, unit
2026-06-13T10:36:10.8915724Z 
2026-06-13T10:36:10.8915844Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-13T10:36:10.8916058Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-13T10:36:10.8916169Z - Required stages: impl, unit
2026-06-13T10:36:10.8916203Z 
2026-06-13T10:36:10.8916316Z ### REQ-HAZARD-ID-CHARSET
2026-06-13T10:36:10.8916548Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-13T10:36:10.8916666Z - Required stages: impl, unit
2026-06-13T10:36:10.8916699Z 
2026-06-13T10:36:10.8916808Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-13T10:36:10.8916995Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-13T10:36:10.8917113Z - Required stages: impl, unit
2026-06-13T10:36:10.8917147Z 
2026-06-13T10:36:10.8917243Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-13T10:36:10.8917491Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-13T10:36:10.8917586Z - Required stages: impl, unit
2026-06-13T10:36:10.8917615Z 
2026-06-13T10:36:10.8917825Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-13T10:36:10.8918248Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-13T10:36:10.8918363Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8918401Z 
2026-06-13T10:36:10.8918521Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-13T10:36:10.8919024Z - Title: Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)
2026-06-13T10:36:10.8919139Z - Required stages: impl, unit
2026-06-13T10:36:10.8919167Z 
2026-06-13T10:36:10.8919294Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-13T10:36:10.8919423Z - Title: Deferred rows survive poll drain (4.4)
2026-06-13T10:36:10.8919533Z - Required stages: impl, unit
2026-06-13T10:36:10.8919566Z 
2026-06-13T10:36:10.8919670Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-13T10:36:10.8919800Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-13T10:36:10.8919904Z - Required stages: impl, unit
2026-06-13T10:36:10.8919947Z 
2026-06-13T10:36:10.8920053Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-13T10:36:10.8920219Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-13T10:36:10.8920319Z - Required stages: impl, unit
2026-06-13T10:36:10.8920358Z 
2026-06-13T10:36:10.8920458Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-13T10:36:10.8920629Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-13T10:36:10.8920725Z - Required stages: impl, unit
2026-06-13T10:36:10.8920758Z 
2026-06-13T10:36:10.8920873Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-13T10:36:10.8921012Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-13T10:36:10.8921120Z - Required stages: impl, unit
2026-06-13T10:36:10.8921153Z 
2026-06-13T10:36:10.8921263Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-13T10:36:10.8921398Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-13T10:36:10.8921501Z - Required stages: impl, unit
2026-06-13T10:36:10.8921531Z 
2026-06-13T10:36:10.8921651Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-13T10:36:10.8921835Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-13T10:36:10.8921934Z - Required stages: impl, unit
2026-06-13T10:36:10.8921978Z 
2026-06-13T10:36:10.8922084Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-13T10:36:10.8922402Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-13T10:36:10.8922502Z - Required stages: impl, unit
2026-06-13T10:36:10.8922535Z 
2026-06-13T10:36:10.8922646Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-13T10:36:10.8922807Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-13T10:36:10.8922922Z - Required stages: impl, unit
2026-06-13T10:36:10.8922951Z 
2026-06-13T10:36:10.8923084Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-13T10:36:10.8923217Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-13T10:36:10.8923313Z - Required stages: impl, unit
2026-06-13T10:36:10.8923342Z 
2026-06-13T10:36:10.8923456Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-13T10:36:10.8923662Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-13T10:36:10.8923771Z - Required stages: impl, unit
2026-06-13T10:36:10.8923803Z 
2026-06-13T10:36:10.8923919Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-13T10:36:10.8924473Z - Title: A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)
2026-06-13T10:36:10.8924573Z - Required stages: impl, unit
2026-06-13T10:36:10.8924616Z 
2026-06-13T10:36:10.8924725Z ### REQ-HAZARD-DETACHED-PIPE-INHERIT
2026-06-13T10:36:10.8925918Z - Title: Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)
2026-06-13T10:36:10.8926017Z - Required stages: impl, unit
2026-06-13T10:36:10.8926051Z 
2026-06-13T10:36:10.8926162Z ### REQ-HAZARD-CONPTY-DSR
2026-06-13T10:36:10.8926380Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-13T10:36:10.8926491Z - Required stages: impl, unit
2026-06-13T10:36:10.8926520Z 
2026-06-13T10:36:10.8926642Z ### REQ-HAZARD-CHILD-CONSOLE-FLASH
2026-06-13T10:36:10.8927056Z - Title: Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)
2026-06-13T10:36:10.8927170Z - Required stages: impl, unit
2026-06-13T10:36:10.8927203Z 
2026-06-13T10:36:10.8927325Z ### REQ-HAZARD-INSTANT-UNDERFLOW
2026-06-13T10:36:10.8927902Z - Title: Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)
2026-06-13T10:36:10.8928012Z - Required stages: impl, unit
2026-06-13T10:36:10.8928046Z 
2026-06-13T10:36:10.8928165Z ### REQ-HAZARD-PUMP-IPC-DEADLINE
2026-06-13T10:36:10.8929029Z - Title: The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump
2026-06-13T10:36:10.8929161Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8929190Z 
2026-06-13T10:36:10.8929301Z ### REQ-HAZARD-SUDO-SECURE-PATH
2026-06-13T10:36:10.8930159Z - Title: Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)
2026-06-13T10:36:10.8930264Z - Required stages: impl, unit
2026-06-13T10:36:10.8930308Z 
2026-06-13T10:36:10.8930413Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-13T10:36:10.8930623Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-13T10:36:10.8930722Z - Required stages: impl, unit
2026-06-13T10:36:10.8930884Z 
2026-06-13T10:36:10.8930994Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-13T10:36:10.8931247Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-13T10:36:10.8931352Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8931385Z 
2026-06-13T10:36:10.8931499Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-13T10:36:10.8931752Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-13T10:36:10.8931853Z - Required stages: impl, unit
2026-06-13T10:36:10.8931882Z 
2026-06-13T10:36:10.8932004Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-13T10:36:10.8932409Z - Title: Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)
2026-06-13T10:36:10.8932523Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8932557Z 
2026-06-13T10:36:10.8932676Z ### REQ-HAZARD-BROKER-PROCESS-ISOLATION
2026-06-13T10:36:10.8935519Z - Title: Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).
2026-06-13T10:36:10.8935647Z - Required stages: doc, impl, unit, int
2026-06-13T10:36:10.8935681Z 
2026-06-13T10:36:10.8935802Z ### REQ-HAZARD-ROLLBACK-STATE-COMPAT
2026-06-13T10:36:10.8945650Z - Title: A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.
2026-06-13T10:36:10.8945864Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8945898Z 
2026-06-13T10:36:10.8946052Z ### REQ-HAZARD-BRAIN-RESPAWN-PATH
2026-06-13T10:36:10.8948585Z - Title: The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.
2026-06-13T10:36:10.8948713Z - Required stages: doc, impl, unit, int
2026-06-13T10:36:10.8948746Z 
2026-06-13T10:36:10.8948871Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-13T10:36:10.8949723Z - Title: Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)
2026-06-13T10:36:10.8950000Z - Required stages: impl, unit
2026-06-13T10:36:10.8950038Z 
2026-06-13T10:36:10.8950163Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-13T10:36:10.8950786Z - Title: Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)
2026-06-13T10:36:10.8950903Z - Required stages: impl, unit
2026-06-13T10:36:10.8950931Z 
2026-06-13T10:36:10.8951055Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-13T10:36:10.8951719Z - Title: Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)
2026-06-13T10:36:10.8951833Z - Required stages: impl, unit
2026-06-13T10:36:10.8951871Z 
2026-06-13T10:36:10.8951980Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-13T10:36:10.8952495Z - Title: Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)
2026-06-13T10:36:10.8952619Z - Required stages: impl, unit
2026-06-13T10:36:10.8952653Z 
2026-06-13T10:36:10.8952758Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-13T10:36:10.8953610Z - Title: Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)
2026-06-13T10:36:10.8953711Z - Required stages: impl, unit
2026-06-13T10:36:10.8953745Z 
2026-06-13T10:36:10.8953958Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-13T10:36:10.8954750Z - Title: WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)
2026-06-13T10:36:10.8954864Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8954888Z 
2026-06-13T10:36:10.8954979Z ### REQ-CONSENT-1
2026-06-13T10:36:10.8955855Z - Title: Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)
2026-06-13T10:36:10.8955955Z - Required stages: impl, unit
2026-06-13T10:36:10.8955997Z 
2026-06-13T10:36:10.8956082Z ### REQ-CONSENT-2
2026-06-13T10:36:10.8956893Z - Title: Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)
2026-06-13T10:36:10.8957002Z - Required stages: impl, unit
2026-06-13T10:36:10.8957030Z 
2026-06-13T10:36:10.8957126Z ### REQ-PRES-1
2026-06-13T10:36:10.8958443Z - Title: Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)
2026-06-13T10:36:10.8958552Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8958585Z 
2026-06-13T10:36:10.8958688Z ### REQ-SHELL-1
2026-06-13T10:36:10.8959659Z - Title: Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)
2026-06-13T10:36:10.8959903Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8959940Z 
2026-06-13T10:36:10.8960031Z ### REQ-SHELL-2
2026-06-13T10:36:10.8961459Z - Title: Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)
2026-06-13T10:36:10.8961568Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8961600Z 
2026-06-13T10:36:10.8961721Z ### REQ-HAZARD-ELEVATED-DAEMON-SPAWN
2026-06-13T10:36:10.8962985Z - Title: The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)
2026-06-13T10:36:10.8963094Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8963122Z 
2026-06-13T10:36:10.8963228Z ### REQ-HAZARD-REGISTRY-GHOST-ROWS
2026-06-13T10:36:10.8964590Z - Title: A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)
2026-06-13T10:36:10.8964709Z - Required stages: doc, impl, unit
2026-06-13T10:36:10.8964742Z 
2026-06-13T10:36:10.8964833Z ### REQ-CLI-1
2026-06-13T10:36:10.8965836Z - Title: spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)
2026-06-13T10:36:10.8965944Z - Required stages: impl, unit
2026-06-13T10:36:10.8965977Z 
2026-06-13T10:36:10.8966078Z ### REQ-CLI-2
2026-06-13T10:36:10.8966761Z - Title: spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)
2026-06-13T10:36:10.8966867Z - Required stages: impl, unit
2026-06-13T10:36:10.8966905Z 
2026-06-13T10:36:10.8966994Z ### REQ-CLI-3
2026-06-13T10:36:10.8967686Z - Title: Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)
2026-06-13T10:36:10.8967791Z - Required stages: impl, unit
2026-06-13T10:36:10.8967825Z 
2026-06-13T10:36:10.8967915Z ### REQ-SUBNET-5
2026-06-13T10:36:10.8969117Z - Title: Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)
2026-06-13T10:36:10.8969230Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8969382Z 
2026-06-13T10:36:10.8969471Z ### REQ-SUBNET-6
2026-06-13T10:36:10.8970148Z - Title: Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)
2026-06-13T10:36:10.8970248Z - Required stages: impl, unit
2026-06-13T10:36:10.8970277Z 
2026-06-13T10:36:10.8970363Z ### REQ-SUBNET-7
2026-06-13T10:36:10.8971963Z - Title: Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)
2026-06-13T10:36:10.8972075Z - Required stages: impl, unit
2026-06-13T10:36:10.8972104Z 
2026-06-13T10:36:10.8972190Z ### REQ-SUBNET-8
2026-06-13T10:36:10.8973268Z - Title: Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)
2026-06-13T10:36:10.8973372Z - Required stages: impl, unit
2026-06-13T10:36:10.8973406Z 
2026-06-13T10:36:10.8973492Z ### REQ-INSTALL-6
2026-06-13T10:36:10.8974745Z - Title: Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)
2026-06-13T10:36:10.8974865Z - Required stages: impl, unit
2026-06-13T10:36:10.8974893Z 
2026-06-13T10:36:10.8974978Z ### REQ-INSTALL-7
2026-06-13T10:36:10.8976066Z - Title: Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)
2026-06-13T10:36:10.8976170Z - Required stages: impl
2026-06-13T10:36:10.8976209Z 
2026-06-13T10:36:10.8976308Z ### REQ-INSTALL-8
2026-06-13T10:36:10.8977412Z - Title: OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)
2026-06-13T10:36:10.8977521Z - Required stages: impl
2026-06-13T10:36:10.8977554Z 
2026-06-13T10:36:10.8977650Z ### REQ-CONV-1
2026-06-13T10:36:10.8979166Z - Title: Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)
2026-06-13T10:36:10.8979630Z - Required stages: impl, unit
2026-06-13T10:36:10.8979667Z 
2026-06-13T10:36:10.8979794Z ### REQ-CONV-2
2026-06-13T10:36:10.8981195Z - Title: Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)
2026-06-13T10:36:10.8981572Z - Required stages: impl, unit
2026-06-13T10:36:10.8981609Z 
2026-06-13T10:36:10.8981723Z ### REQ-PAIR-8
2026-06-13T10:36:10.8983256Z - Title: NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)
2026-06-13T10:36:10.8983379Z - Required stages: impl, unit
2026-06-13T10:36:10.8983409Z 
2026-06-13T10:36:10.8983537Z ### REQ-DAEMON-5
2026-06-13T10:36:10.8985139Z - Title: Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)
2026-06-13T10:36:10.8985257Z - Required stages: impl, unit
2026-06-13T10:36:10.8985290Z 
2026-06-13T10:36:10.8985401Z ### REQ-DAEMON-6
2026-06-13T10:36:10.8988034Z - Title: Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.
2026-06-13T10:36:10.8988172Z - Required stages: impl, unit
2026-06-13T10:36:10.8988210Z 
2026-06-13T10:36:10.8988344Z ### REQ-DAEMON-7
2026-06-13T10:36:10.8990218Z - Title: `daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).
2026-06-13T10:36:10.8990331Z - Required stages: impl, unit
2026-06-13T10:36:10.8990364Z 
2026-06-13T10:36:10.8990502Z ### REQ-DAEMON-8
2026-06-13T10:36:10.8991779Z - Title: Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.
2026-06-13T10:36:10.8991883Z - Required stages: impl, unit
2026-06-13T10:36:10.8991916Z 
2026-06-13T10:36:10.8992021Z ### REQ-DAEMON-9
2026-06-13T10:36:10.8994402Z - Title: Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.
2026-06-13T10:36:10.8994656Z - Required stages: impl, unit
2026-06-13T10:36:10.8994689Z 
2026-06-13T10:36:10.8994807Z ### REQ-HAZARD-EPOCH-RESET
2026-06-13T10:36:10.8996146Z - Title: Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)
2026-06-13T10:36:10.8996242Z - Required stages: 
2026-06-13T10:36:10.8996276Z 
2026-06-13T10:36:10.8996557Z ### REQ-MESH-1
2026-06-13T10:36:10.8998689Z - Title: Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).
2026-06-13T10:36:10.8998918Z - Required stages: impl, unit, int
2026-06-13T10:36:10.8999046Z 
2026-06-13T10:36:10.8999171Z ### REQ-MESH-2
2026-06-13T10:36:10.9001809Z - Title: Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).
2026-06-13T10:36:10.9001962Z - Required stages: impl, unit, int
2026-06-13T10:36:10.9001996Z 
2026-06-13T10:36:10.9002095Z ### REQ-MESH-3
2026-06-13T10:36:10.9003761Z - Title: Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.
2026-06-13T10:36:10.9003889Z - Required stages: impl, unit, int
2026-06-13T10:36:10.9003913Z 
2026-06-13T10:36:10.9004005Z ### REQ-MESH-4
2026-06-13T10:36:10.9006189Z - Title: Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.
2026-06-13T10:36:10.9006420Z - Required stages: impl, unit, int
2026-06-13T10:36:10.9006454Z 
2026-06-13T10:36:10.9006545Z ### REQ-MESH-5
2026-06-13T10:36:10.9007908Z - Title: Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.
2026-06-13T10:36:10.9008028Z - Required stages: impl, unit
2026-06-13T10:36:10.9008061Z 
2026-06-13T10:36:10.9008142Z ### REQ-MESH-6
2026-06-13T10:36:10.9009440Z - Title: Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)
2026-06-13T10:36:10.9009540Z - Required stages: impl, unit
2026-06-13T10:36:10.9009573Z 
2026-06-13T10:36:10.9009670Z ## How to report back
2026-06-13T10:36:10.9009703Z 
2026-06-13T10:36:10.9009989Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-13T10:36:10.9010027Z 
2026-06-13T10:36:10.9010118Z     {
2026-06-13T10:36:10.9010226Z       "code": "requirement_quality",
2026-06-13T10:36:10.9010323Z       "requirementId": "REQ-...",
2026-06-13T10:36:10.9010489Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-13T10:36:10.9010595Z       "message": "<short reason>",
2026-06-13T10:36:10.9010727Z       "suggestedRevision": "<optional rewrite>"
2026-06-13T10:36:10.9010808Z     }
2026-06-13T10:36:10.9010842Z 
2026-06-13T10:36:10.9011023Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-13T10:36:10.9011161Z deterministic findings above don't need to be repeated.
2026-06-13T10:36:10.9110687Z Post job cleanup.
2026-06-13T10:36:10.9862514Z [command]/usr/bin/git version
2026-06-13T10:36:10.9897318Z git version 2.43.0
2026-06-13T10:36:10.9928831Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/a6eaa624-1dbe-4a7b-ad34-b7c9ae0d5bb8' before making global git config changes
2026-06-13T10:36:10.9932432Z Adding repository directory to the temporary git global config as a safe directory
2026-06-13T10:36:10.9933035Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-13T10:36:10.9963822Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-13T10:36:10.9988858Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2026-06-13T10:36:11.0174647Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-13T10:36:11.0194069Z http.https://github.com/.extraheader
2026-06-13T10:36:11.0201038Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-13T10:36:11.0223876Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2026-06-13T10:36:11.0410610Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-13T10:36:11.0433883Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-13T10:36:11.0728875Z Cleaning up orphan processes
