﻿2026-06-07T23:26:16.0077391Z Current runner version: '2.334.0'
2026-06-07T23:26:16.0082571Z Runner name: 'kitsubito'
2026-06-07T23:26:16.0083249Z Runner group name: 'Default'
2026-06-07T23:26:16.0083984Z Machine name: 'KITSUBITO'
2026-06-07T23:26:16.0086325Z ##[group]GITHUB_TOKEN Permissions
2026-06-07T23:26:16.0088294Z Contents: read
2026-06-07T23:26:16.0088833Z Metadata: read
2026-06-07T23:26:16.0089646Z Packages: read
2026-06-07T23:26:16.0090303Z ##[endgroup]
2026-06-07T23:26:16.0092717Z Secret source: Actions
2026-06-07T23:26:16.0093576Z Prepare workflow directory
2026-06-07T23:26:16.0770559Z Prepare all required actions
2026-06-07T23:26:16.0799113Z Getting action download info
2026-06-07T23:26:16.5092622Z Download action repository 'actions/checkout@v5' (SHA:93cb6efe18208431cddfb8368fd83d5badbf9bfd)
2026-06-07T23:26:17.3220903Z Complete job name: traceability
2026-06-07T23:26:17.4158593Z ##[group]Run actions/checkout@v5
2026-06-07T23:26:17.4159691Z with:
2026-06-07T23:26:17.4160330Z   repository: SaberMage/spt-core
2026-06-07T23:26:17.4168476Z   token: ***
2026-06-07T23:26:17.4169135Z   ssh-strict: true
2026-06-07T23:26:17.4169798Z   ssh-user: git
2026-06-07T23:26:17.4170466Z   persist-credentials: true
2026-06-07T23:26:17.4171242Z   clean: true
2026-06-07T23:26:17.4171925Z   sparse-checkout-cone-mode: true
2026-06-07T23:26:17.4172742Z   fetch-depth: 1
2026-06-07T23:26:17.4173405Z   fetch-tags: false
2026-06-07T23:26:17.4174086Z   show-progress: true
2026-06-07T23:26:17.4174819Z   lfs: false
2026-06-07T23:26:17.4175449Z   submodules: false
2026-06-07T23:26:17.4176126Z   set-safe-directory: true
2026-06-07T23:26:17.4177186Z ##[endgroup]
2026-06-07T23:26:17.4987743Z Syncing repository: SaberMage/spt-core
2026-06-07T23:26:17.4989906Z ##[group]Getting Git version info
2026-06-07T23:26:17.4991186Z Working directory is '/home/reavus/actions-runner/_work/spt-core/spt-core'
2026-06-07T23:26:17.4992910Z [command]/usr/bin/git version
2026-06-07T23:26:17.4993691Z git version 2.43.0
2026-06-07T23:26:17.5004051Z ##[endgroup]
2026-06-07T23:26:17.5015948Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/85514ee5-a11e-4817-80e7-afbe206ac3ae' before making global git config changes
2026-06-07T23:26:17.5018476Z Adding repository directory to the temporary git global config as a safe directory
2026-06-07T23:26:17.5020473Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-07T23:26:17.5051204Z [command]/usr/bin/git config --local --get remote.origin.url
2026-06-07T23:26:17.5069296Z https://github.com/SaberMage/spt-core
2026-06-07T23:26:17.5079260Z ##[group]Removing previously created refs, to avoid conflicts
2026-06-07T23:26:17.5081188Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2026-06-07T23:26:17.5109138Z refs/heads/dev-freeform
2026-06-07T23:26:17.5115379Z [command]/usr/bin/git checkout --detach
2026-06-07T23:26:17.5202136Z HEAD is now at 7278c95 test(rig): re-run two-host ladder after notif epoch fix [twohost]
2026-06-07T23:26:17.5235916Z [command]/usr/bin/git branch --delete --force dev-freeform
2026-06-07T23:26:17.5267169Z Deleted branch dev-freeform (was 7278c95).
2026-06-07T23:26:17.5299419Z ##[endgroup]
2026-06-07T23:26:17.5300297Z [command]/usr/bin/git submodule status
2026-06-07T23:26:17.5484058Z ##[group]Cleaning the repository
2026-06-07T23:26:17.5486360Z [command]/usr/bin/git clean -ffdx
2026-06-07T23:26:20.3059995Z Removing .adapter-notify/
2026-06-07T23:26:20.3061125Z Removing target/
2026-06-07T23:26:20.3069473Z [command]/usr/bin/git reset --hard HEAD
2026-06-07T23:26:20.3153308Z HEAD is now at 7278c95 test(rig): re-run two-host ladder after notif epoch fix [twohost]
2026-06-07T23:26:20.3158213Z ##[endgroup]
2026-06-07T23:26:20.3159754Z ##[group]Disabling automatic garbage collection
2026-06-07T23:26:20.3163373Z [command]/usr/bin/git config --local gc.auto 0
2026-06-07T23:26:20.3186287Z ##[endgroup]
2026-06-07T23:26:20.3186692Z ##[group]Setting up auth
2026-06-07T23:26:20.3191530Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-07T23:26:20.3215969Z [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-07T23:26:20.3402313Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-07T23:26:20.3426674Z [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-07T23:26:20.3607633Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-07T23:26:20.3632812Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-07T23:26:20.3818482Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-07T23:26:20.3848454Z ##[endgroup]
2026-06-07T23:26:20.3848865Z ##[group]Fetching the repository
2026-06-07T23:26:20.3854442Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +7278c95ce6c31b0dde6ec446975903e9128e5147:refs/remotes/origin/dev-freeform
2026-06-07T23:26:20.8052712Z ##[endgroup]
2026-06-07T23:26:20.8055231Z ##[group]Determining the checkout info
2026-06-07T23:26:20.8056308Z ##[endgroup]
2026-06-07T23:26:20.8069150Z [command]/usr/bin/git sparse-checkout disable
2026-06-07T23:26:20.8107785Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-07T23:26:20.8129719Z ##[group]Checking out the ref
2026-06-07T23:26:20.8132426Z [command]/usr/bin/git checkout --progress --force -B dev-freeform refs/remotes/origin/dev-freeform
2026-06-07T23:26:20.8168430Z Switched to a new branch 'dev-freeform'
2026-06-07T23:26:20.8168854Z branch 'dev-freeform' set up to track 'origin/dev-freeform'.
2026-06-07T23:26:20.8172957Z ##[endgroup]
2026-06-07T23:26:20.8203174Z [command]/usr/bin/git log -1 --format=%H
2026-06-07T23:26:20.8223802Z 7278c95ce6c31b0dde6ec446975903e9128e5147
2026-06-07T23:26:20.8411922Z ##[group]Run WANT=0.1.2
2026-06-07T23:26:20.8412204Z [36;1mWANT=0.1.2[0m
2026-06-07T23:26:20.8412463Z [36;1mBIN="$HOME/.local/bin/traceable-reqs"[0m
2026-06-07T23:26:20.8412780Z [36;1mif [ -x "$BIN" ] && "$BIN" --version | grep -q " $WANT\$"; then[0m
2026-06-07T23:26:20.8413088Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-07T23:26:20.8413316Z [36;1melse[0m
2026-06-07T23:26:20.8413578Z [36;1m  # Build OUTSIDE the checkout: a clone inside it gets adopted by[0m
2026-06-07T23:26:20.8413931Z [36;1m  # the spt-core cargo workspace and refuses to build.[0m
2026-06-07T23:26:20.8414208Z [36;1m  SRC="$RUNNER_TEMP/tr-src"[0m
2026-06-07T23:26:20.8414446Z [36;1m  rm -rf "$SRC"[0m
2026-06-07T23:26:20.8414677Z [36;1m  git clone --depth 1 --branch "v$WANT" \[0m
2026-06-07T23:26:20.8415081Z [36;1m    "https://x-access-token:${GH_TOKEN}@github.com/BigscreenVR/traceable-reqs" "$SRC"[0m
2026-06-07T23:26:20.8415553Z [36;1m  cargo build --release --manifest-path "$SRC/rust/Cargo.toml"[0m
2026-06-07T23:26:20.8415859Z [36;1m  mkdir -p "$HOME/.local/bin"[0m
2026-06-07T23:26:20.8416136Z [36;1m  cp "$SRC/rust/target/release/traceable-reqs" "$BIN"[0m
2026-06-07T23:26:20.8416441Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-07T23:26:20.8416665Z [36;1mfi[0m
2026-06-07T23:26:20.8416851Z [36;1m./traceable-reqs --version[0m
2026-06-07T23:26:20.8434599Z shell: /usr/bin/bash -e {0}
2026-06-07T23:26:20.8434833Z env:
2026-06-07T23:26:20.8435351Z   GH_TOKEN: ***
2026-06-07T23:26:20.8435548Z ##[endgroup]
2026-06-07T23:26:20.8534154Z traceable-reqs 0.1.2
2026-06-07T23:26:20.8563806Z ##[group]Run ./traceable-reqs check --json
2026-06-07T23:26:20.8564107Z [36;1m./traceable-reqs check --json[0m
2026-06-07T23:26:20.8576413Z shell: /usr/bin/bash -e {0}
2026-06-07T23:26:20.8576642Z ##[endgroup]
2026-06-07T23:26:20.8794864Z {
2026-06-07T23:26:20.8795429Z   "schemaVersion": 1,
2026-06-07T23:26:20.8795770Z   "summary": {
2026-06-07T23:26:20.8796148Z     "requirementCount": 166,
2026-06-07T23:26:20.8796548Z     "completeCount": 166,
2026-06-07T23:26:20.8796915Z     "incompleteCount": 0,
2026-06-07T23:26:20.8797383Z     "findingCount": 0
2026-06-07T23:26:20.8797717Z   },
2026-06-07T23:26:20.8798030Z   "requirements": [
2026-06-07T23:26:20.8798342Z     {
2026-06-07T23:26:20.8798671Z       "id": "REQ-API-1",
2026-06-07T23:26:20.8799167Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-07T23:26:20.8799721Z       "requiredStages": [
2026-06-07T23:26:20.8800077Z         "impl",
2026-06-07T23:26:20.8800378Z         "unit",
2026-06-07T23:26:20.8800749Z         "int"
2026-06-07T23:26:20.8801045Z       ],
2026-06-07T23:26:20.8801336Z       "stages": {
2026-06-07T23:26:20.8801650Z         "doc": {
2026-06-07T23:26:20.8801979Z           "complete": false,
2026-06-07T23:26:20.8802336Z           "evidence": []
2026-06-07T23:26:20.8802680Z         },
2026-06-07T23:26:20.8802970Z         "impl": {
2026-06-07T23:26:20.8803607Z           "complete": true,
2026-06-07T23:26:20.8804156Z           "evidence": [
2026-06-07T23:26:20.8804688Z             {
2026-06-07T23:26:20.8805208Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T23:26:20.8805895Z               "line": 15
2026-06-07T23:26:20.8806555Z             }
2026-06-07T23:26:20.8807132Z           ]
2026-06-07T23:26:20.8807560Z         },
2026-06-07T23:26:20.8822676Z         "int": {
2026-06-07T23:26:20.8823009Z           "complete": true,
2026-06-07T23:26:20.8823329Z           "evidence": [
2026-06-07T23:26:20.8823620Z             {
2026-06-07T23:26:20.8823930Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T23:26:20.8824297Z               "line": 13
2026-06-07T23:26:20.8824572Z             }
2026-06-07T23:26:20.8824812Z           ]
2026-06-07T23:26:20.8825052Z         },
2026-06-07T23:26:20.8825285Z         "unit": {
2026-06-07T23:26:20.8825562Z           "complete": true,
2026-06-07T23:26:20.8825858Z           "evidence": [
2026-06-07T23:26:20.8826119Z             {
2026-06-07T23:26:20.8826414Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T23:26:20.8826772Z               "line": 442
2026-06-07T23:26:20.8827143Z             },
2026-06-07T23:26:20.8827388Z             {
2026-06-07T23:26:20.8827670Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T23:26:20.8828008Z               "line": 448
2026-06-07T23:26:20.8828275Z             },
2026-06-07T23:26:20.8828514Z             {
2026-06-07T23:26:20.8828792Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T23:26:20.8829149Z               "line": 515
2026-06-07T23:26:20.8829417Z             }
2026-06-07T23:26:20.8829662Z           ]
2026-06-07T23:26:20.8829908Z         }
2026-06-07T23:26:20.8830147Z       }
2026-06-07T23:26:20.8830385Z     },
2026-06-07T23:26:20.8830623Z     {
2026-06-07T23:26:20.8830871Z       "id": "REQ-API-2",
2026-06-07T23:26:20.8831325Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-07T23:26:20.8831834Z       "requiredStages": [
2026-06-07T23:26:20.8832129Z         "impl",
2026-06-07T23:26:20.8832392Z         "unit",
2026-06-07T23:26:20.8832640Z         "int"
2026-06-07T23:26:20.8832882Z       ],
2026-06-07T23:26:20.8833125Z       "stages": {
2026-06-07T23:26:20.8833379Z         "doc": {
2026-06-07T23:26:20.8833645Z           "complete": false,
2026-06-07T23:26:20.8833946Z           "evidence": []
2026-06-07T23:26:20.8834237Z         },
2026-06-07T23:26:20.8834490Z         "impl": {
2026-06-07T23:26:20.8834761Z           "complete": true,
2026-06-07T23:26:20.8835036Z           "evidence": [
2026-06-07T23:26:20.8835563Z             {
2026-06-07T23:26:20.8835883Z               "path": "crates/spt-store/src/history.rs",
2026-06-07T23:26:20.8836255Z               "line": 15
2026-06-07T23:26:20.8836531Z             },
2026-06-07T23:26:20.8836771Z             {
2026-06-07T23:26:20.8837212Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:20.8837737Z               "line": 20
2026-06-07T23:26:20.8838011Z             },
2026-06-07T23:26:20.8838263Z             {
2026-06-07T23:26:20.8838554Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:20.8838921Z               "line": 139
2026-06-07T23:26:20.8839202Z             },
2026-06-07T23:26:20.8839446Z             {
2026-06-07T23:26:20.8839741Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.8840118Z               "line": 21
2026-06-07T23:26:20.8840387Z             },
2026-06-07T23:26:20.8840640Z             {
2026-06-07T23:26:20.8840921Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.8841293Z               "line": 38
2026-06-07T23:26:20.8841580Z             },
2026-06-07T23:26:20.8841822Z             {
2026-06-07T23:26:20.8842108Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.8842485Z               "line": 190
2026-06-07T23:26:20.8842786Z             },
2026-06-07T23:26:20.8843041Z             {
2026-06-07T23:26:20.8843328Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.8843713Z               "line": 232
2026-06-07T23:26:20.8844009Z             },
2026-06-07T23:26:20.8844191Z             {
2026-06-07T23:26:20.8844473Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.8844854Z               "line": 262
2026-06-07T23:26:20.8845126Z             },
2026-06-07T23:26:20.8845365Z             {
2026-06-07T23:26:20.8845711Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T23:26:20.8846415Z               "line": 17
2026-06-07T23:26:20.8846687Z             },
2026-06-07T23:26:20.8847001Z             {
2026-06-07T23:26:20.8847297Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T23:26:20.8847655Z               "line": 30
2026-06-07T23:26:20.8847932Z             },
2026-06-07T23:26:20.8848187Z             {
2026-06-07T23:26:20.8848466Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T23:26:20.8848823Z               "line": 63
2026-06-07T23:26:20.8849100Z             },
2026-06-07T23:26:20.8849348Z             {
2026-06-07T23:26:20.8849644Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T23:26:20.8850010Z               "line": 76
2026-06-07T23:26:20.8850283Z             }
2026-06-07T23:26:20.8850537Z           ]
2026-06-07T23:26:20.8850777Z         },
2026-06-07T23:26:20.8851028Z         "int": {
2026-06-07T23:26:20.8851304Z           "complete": true,
2026-06-07T23:26:20.8851543Z           "evidence": [
2026-06-07T23:26:20.8851738Z             {
2026-06-07T23:26:20.8851948Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T23:26:20.8852201Z               "line": 14
2026-06-07T23:26:20.8852382Z             },
2026-06-07T23:26:20.8852549Z             {
2026-06-07T23:26:20.8852750Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T23:26:20.8852993Z               "line": 183
2026-06-07T23:26:20.8853187Z             }
2026-06-07T23:26:20.8853356Z           ]
2026-06-07T23:26:20.8853516Z         },
2026-06-07T23:26:20.8853668Z         "unit": {
2026-06-07T23:26:20.8853850Z           "complete": true,
2026-06-07T23:26:20.8854046Z           "evidence": [
2026-06-07T23:26:20.8854236Z             {
2026-06-07T23:26:20.8854437Z               "path": "crates/spt-store/src/history.rs",
2026-06-07T23:26:20.8854676Z               "line": 42
2026-06-07T23:26:20.8854860Z             },
2026-06-07T23:26:20.8855033Z             {
2026-06-07T23:26:20.8855227Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:20.8855475Z               "line": 254
2026-06-07T23:26:20.8855658Z             },
2026-06-07T23:26:20.8856063Z             {
2026-06-07T23:26:20.8856295Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.8856554Z               "line": 438
2026-06-07T23:26:20.8856751Z             },
2026-06-07T23:26:20.8856923Z             {
2026-06-07T23:26:20.8857228Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.8857609Z               "line": 449
2026-06-07T23:26:20.8857809Z             },
2026-06-07T23:26:20.8857981Z             {
2026-06-07T23:26:20.8858172Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.8858467Z               "line": 581
2026-06-07T23:26:20.8858704Z             },
2026-06-07T23:26:20.8858876Z             {
2026-06-07T23:26:20.8859078Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.8859331Z               "line": 593
2026-06-07T23:26:20.8859528Z             },
2026-06-07T23:26:20.8859703Z             {
2026-06-07T23:26:20.8859898Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T23:26:20.8860152Z               "line": 141
2026-06-07T23:26:20.8860342Z             },
2026-06-07T23:26:20.8860514Z             {
2026-06-07T23:26:20.8860714Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T23:26:20.8860952Z               "line": 185
2026-06-07T23:26:20.8861144Z             }
2026-06-07T23:26:20.8861313Z           ]
2026-06-07T23:26:20.8861480Z         }
2026-06-07T23:26:20.8861645Z       }
2026-06-07T23:26:20.8861809Z     },
2026-06-07T23:26:20.8861973Z     {
2026-06-07T23:26:20.8862147Z       "id": "REQ-API-3",
2026-06-07T23:26:20.8862395Z       "title": "commune/signoff are file-drops, not commands",
2026-06-07T23:26:20.8862671Z       "requiredStages": [
2026-06-07T23:26:20.8862880Z         "impl",
2026-06-07T23:26:20.8863062Z         "unit",
2026-06-07T23:26:20.8863238Z         "int"
2026-06-07T23:26:20.8863495Z       ],
2026-06-07T23:26:20.8863743Z       "stages": {
2026-06-07T23:26:20.8864002Z         "doc": {
2026-06-07T23:26:20.8864272Z           "complete": false,
2026-06-07T23:26:20.8864577Z           "evidence": []
2026-06-07T23:26:20.8864838Z         },
2026-06-07T23:26:20.8865073Z         "impl": {
2026-06-07T23:26:20.8865354Z           "complete": true,
2026-06-07T23:26:20.8865659Z           "evidence": [
2026-06-07T23:26:20.8865946Z             {
2026-06-07T23:26:20.8866161Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T23:26:20.8866408Z               "line": 27
2026-06-07T23:26:20.8866599Z             },
2026-06-07T23:26:20.8866769Z             {
2026-06-07T23:26:20.8867057Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.8867545Z               "line": 372
2026-06-07T23:26:20.8867735Z             }
2026-06-07T23:26:20.8867888Z           ]
2026-06-07T23:26:20.8868059Z         },
2026-06-07T23:26:20.8868221Z         "int": {
2026-06-07T23:26:20.8868407Z           "complete": true,
2026-06-07T23:26:20.8868608Z           "evidence": [
2026-06-07T23:26:20.8868789Z             {
2026-06-07T23:26:20.8868993Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T23:26:20.8869236Z               "line": 257
2026-06-07T23:26:20.8869417Z             }
2026-06-07T23:26:20.8869581Z           ]
2026-06-07T23:26:20.8869749Z         },
2026-06-07T23:26:20.8869905Z         "unit": {
2026-06-07T23:26:20.8870102Z           "complete": true,
2026-06-07T23:26:20.8870301Z           "evidence": [
2026-06-07T23:26:20.8870488Z             {
2026-06-07T23:26:20.8881559Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T23:26:20.8881839Z               "line": 242
2026-06-07T23:26:20.8882054Z             },
2026-06-07T23:26:20.8882231Z             {
2026-06-07T23:26:20.8882448Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.8882713Z               "line": 622
2026-06-07T23:26:20.8882914Z             }
2026-06-07T23:26:20.8883090Z           ]
2026-06-07T23:26:20.8883257Z         }
2026-06-07T23:26:20.8883428Z       }
2026-06-07T23:26:20.8883590Z     },
2026-06-07T23:26:20.8883747Z     {
2026-06-07T23:26:20.8884092Z       "id": "REQ-ARCH-1",
2026-06-07T23:26:20.8884334Z       "title": "Many small acyclically-layered crates",
2026-06-07T23:26:20.8884601Z       "requiredStages": [
2026-06-07T23:26:20.8884803Z         "impl"
2026-06-07T23:26:20.8884973Z       ],
2026-06-07T23:26:20.8885254Z       "stages": {
2026-06-07T23:26:20.8885431Z         "doc": {
2026-06-07T23:26:20.8885616Z           "complete": false,
2026-06-07T23:26:20.8885822Z           "evidence": []
2026-06-07T23:26:20.8886017Z         },
2026-06-07T23:26:20.8886188Z         "impl": {
2026-06-07T23:26:20.8886370Z           "complete": true,
2026-06-07T23:26:20.8886569Z           "evidence": [
2026-06-07T23:26:20.8886751Z             {
2026-06-07T23:26:20.8887043Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-07T23:26:20.8887291Z               "line": 16
2026-06-07T23:26:20.8887484Z             },
2026-06-07T23:26:20.8887649Z             {
2026-06-07T23:26:20.8887846Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-07T23:26:20.8888111Z               "line": 12
2026-06-07T23:26:20.8888298Z             },
2026-06-07T23:26:20.8888469Z             {
2026-06-07T23:26:20.8888660Z               "path": "crates/spt-store/src/lib.rs",
2026-06-07T23:26:20.8888893Z               "line": 12
2026-06-07T23:26:20.8889089Z             }
2026-06-07T23:26:20.8889257Z           ]
2026-06-07T23:26:20.8889427Z         },
2026-06-07T23:26:20.8889600Z         "int": {
2026-06-07T23:26:20.8889780Z           "complete": false,
2026-06-07T23:26:20.8889980Z           "evidence": []
2026-06-07T23:26:20.8890167Z         },
2026-06-07T23:26:20.8890337Z         "unit": {
2026-06-07T23:26:20.8890518Z           "complete": false,
2026-06-07T23:26:20.8890725Z           "evidence": []
2026-06-07T23:26:20.8890913Z         }
2026-06-07T23:26:20.8891082Z       }
2026-06-07T23:26:20.8891260Z     },
2026-06-07T23:26:20.8891422Z     {
2026-06-07T23:26:20.8891598Z       "id": "REQ-ARCH-2",
2026-06-07T23:26:20.8891875Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-07T23:26:20.8892166Z       "requiredStages": [
2026-06-07T23:26:20.8892356Z         "impl"
2026-06-07T23:26:20.8892524Z       ],
2026-06-07T23:26:20.8892690Z       "stages": {
2026-06-07T23:26:20.8892862Z         "doc": {
2026-06-07T23:26:20.8893061Z           "complete": false,
2026-06-07T23:26:20.8893259Z           "evidence": []
2026-06-07T23:26:20.8893451Z         },
2026-06-07T23:26:20.8893616Z         "impl": {
2026-06-07T23:26:20.8893798Z           "complete": true,
2026-06-07T23:26:20.8893993Z           "evidence": [
2026-06-07T23:26:20.8894175Z             {
2026-06-07T23:26:20.8894371Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-07T23:26:20.8894613Z               "line": 18
2026-06-07T23:26:20.8894794Z             }
2026-06-07T23:26:20.8894962Z           ]
2026-06-07T23:26:20.8895123Z         },
2026-06-07T23:26:20.8895291Z         "int": {
2026-06-07T23:26:20.8895470Z           "complete": false,
2026-06-07T23:26:20.8895673Z           "evidence": []
2026-06-07T23:26:20.8895856Z         },
2026-06-07T23:26:20.8896019Z         "unit": {
2026-06-07T23:26:20.8896209Z           "complete": false,
2026-06-07T23:26:20.8896406Z           "evidence": []
2026-06-07T23:26:20.8896586Z         }
2026-06-07T23:26:20.8896758Z       }
2026-06-07T23:26:20.8896916Z     },
2026-06-07T23:26:20.8897144Z     {
2026-06-07T23:26:20.8913601Z       "id": "REQ-ARCH-3",
2026-06-07T23:26:20.8913977Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-07T23:26:20.8914336Z       "requiredStages": [
2026-06-07T23:26:20.8914537Z         "impl",
2026-06-07T23:26:20.8914713Z         "unit"
2026-06-07T23:26:20.8914881Z       ],
2026-06-07T23:26:20.8915042Z       "stages": {
2026-06-07T23:26:20.8915219Z         "doc": {
2026-06-07T23:26:20.8915394Z           "complete": false,
2026-06-07T23:26:20.8915595Z           "evidence": []
2026-06-07T23:26:20.8915777Z         },
2026-06-07T23:26:20.8915942Z         "impl": {
2026-06-07T23:26:20.8916281Z           "complete": true,
2026-06-07T23:26:20.8916483Z           "evidence": [
2026-06-07T23:26:20.8916653Z             {
2026-06-07T23:26:20.8916859Z               "path": "crates/spt-proto/src/version.rs",
2026-06-07T23:26:20.8917177Z               "line": 34
2026-06-07T23:26:20.8917469Z             },
2026-06-07T23:26:20.8917629Z             {
2026-06-07T23:26:20.8917821Z               "path": "crates/spt-proto/src/version.rs",
2026-06-07T23:26:20.8918065Z               "line": 41
2026-06-07T23:26:20.8918240Z             }
2026-06-07T23:26:20.8918399Z           ]
2026-06-07T23:26:20.8918550Z         },
2026-06-07T23:26:20.8918709Z         "int": {
2026-06-07T23:26:20.8918888Z           "complete": false,
2026-06-07T23:26:20.8919090Z           "evidence": []
2026-06-07T23:26:20.8919271Z         },
2026-06-07T23:26:20.8919432Z         "unit": {
2026-06-07T23:26:20.8919613Z           "complete": true,
2026-06-07T23:26:20.8919810Z           "evidence": [
2026-06-07T23:26:20.8919993Z             {
2026-06-07T23:26:20.8920201Z               "path": "crates/spt-proto/src/version.rs",
2026-06-07T23:26:20.8920435Z               "line": 51
2026-06-07T23:26:20.8920622Z             },
2026-06-07T23:26:20.8920792Z             {
2026-06-07T23:26:20.8920989Z               "path": "crates/spt-proto/src/version.rs",
2026-06-07T23:26:20.8921232Z               "line": 71
2026-06-07T23:26:20.8921417Z             },
2026-06-07T23:26:20.8921590Z             {
2026-06-07T23:26:20.8921785Z               "path": "crates/spt-proto/src/version.rs",
2026-06-07T23:26:20.8922032Z               "line": 83
2026-06-07T23:26:20.8922222Z             }
2026-06-07T23:26:20.8922396Z           ]
2026-06-07T23:26:20.8922554Z         }
2026-06-07T23:26:20.8922716Z       }
2026-06-07T23:26:20.8922874Z     },
2026-06-07T23:26:20.8923030Z     {
2026-06-07T23:26:20.8923198Z       "id": "REQ-ARCH-4",
2026-06-07T23:26:20.8923475Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-07T23:26:20.8923780Z       "requiredStages": [
2026-06-07T23:26:20.8923974Z         "impl",
2026-06-07T23:26:20.8924157Z         "unit"
2026-06-07T23:26:20.8924323Z       ],
2026-06-07T23:26:20.8924486Z       "stages": {
2026-06-07T23:26:20.8924669Z         "doc": {
2026-06-07T23:26:20.8924850Z           "complete": false,
2026-06-07T23:26:20.8925058Z           "evidence": []
2026-06-07T23:26:20.8925239Z         },
2026-06-07T23:26:20.8925407Z         "impl": {
2026-06-07T23:26:20.8925592Z           "complete": true,
2026-06-07T23:26:20.8925788Z           "evidence": [
2026-06-07T23:26:20.8925969Z             {
2026-06-07T23:26:20.8926165Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8926408Z               "line": 82
2026-06-07T23:26:20.8926588Z             },
2026-06-07T23:26:20.8926752Z             {
2026-06-07T23:26:20.8927071Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8927315Z               "line": 96
2026-06-07T23:26:20.8927499Z             },
2026-06-07T23:26:20.8927671Z             {
2026-06-07T23:26:20.8927861Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8928091Z               "line": 116
2026-06-07T23:26:20.8928277Z             },
2026-06-07T23:26:20.8928438Z             {
2026-06-07T23:26:20.8928630Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8928872Z               "line": 131
2026-06-07T23:26:20.8929057Z             },
2026-06-07T23:26:20.8929226Z             {
2026-06-07T23:26:20.8929411Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8929645Z               "line": 181
2026-06-07T23:26:20.8929826Z             }
2026-06-07T23:26:20.8929997Z           ]
2026-06-07T23:26:20.8930158Z         },
2026-06-07T23:26:20.8930324Z         "int": {
2026-06-07T23:26:20.8930509Z           "complete": false,
2026-06-07T23:26:20.8930709Z           "evidence": []
2026-06-07T23:26:20.8930891Z         },
2026-06-07T23:26:20.8931052Z         "unit": {
2026-06-07T23:26:20.8931329Z           "complete": true,
2026-06-07T23:26:20.8931530Z           "evidence": [
2026-06-07T23:26:20.8931706Z             {
2026-06-07T23:26:20.8931896Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8932131Z               "line": 242
2026-06-07T23:26:20.8932320Z             },
2026-06-07T23:26:20.8932577Z             {
2026-06-07T23:26:20.8932773Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8932999Z               "line": 252
2026-06-07T23:26:20.8933176Z             },
2026-06-07T23:26:20.8933342Z             {
2026-06-07T23:26:20.8933525Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8933758Z               "line": 263
2026-06-07T23:26:20.8933938Z             },
2026-06-07T23:26:20.8934106Z             {
2026-06-07T23:26:20.8934301Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8934534Z               "line": 274
2026-06-07T23:26:20.8934717Z             },
2026-06-07T23:26:20.8934878Z             {
2026-06-07T23:26:20.8935074Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8935306Z               "line": 286
2026-06-07T23:26:20.8935490Z             },
2026-06-07T23:26:20.8935657Z             {
2026-06-07T23:26:20.8935833Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8936072Z               "line": 299
2026-06-07T23:26:20.8936272Z             },
2026-06-07T23:26:20.8936439Z             {
2026-06-07T23:26:20.8936625Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8936858Z               "line": 310
2026-06-07T23:26:20.8937121Z             },
2026-06-07T23:26:20.8937288Z             {
2026-06-07T23:26:20.8937478Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8937711Z               "line": 327
2026-06-07T23:26:20.8937895Z             },
2026-06-07T23:26:20.8938059Z             {
2026-06-07T23:26:20.8938255Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.8938483Z               "line": 358
2026-06-07T23:26:20.8938674Z             }
2026-06-07T23:26:20.8938842Z           ]
2026-06-07T23:26:20.8939008Z         }
2026-06-07T23:26:20.8939166Z       }
2026-06-07T23:26:20.8939327Z     },
2026-06-07T23:26:20.8939486Z     {
2026-06-07T23:26:20.8939656Z       "id": "REQ-CLI-1",
2026-06-07T23:26:20.8940790Z       "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-07T23:26:20.8941970Z       "requiredStages": [
2026-06-07T23:26:20.8942166Z         "impl",
2026-06-07T23:26:20.8942338Z         "unit"
2026-06-07T23:26:20.8942509Z       ],
2026-06-07T23:26:20.8942672Z       "stages": {
2026-06-07T23:26:20.8942848Z         "doc": {
2026-06-07T23:26:20.8943035Z           "complete": false,
2026-06-07T23:26:20.8943242Z           "evidence": []
2026-06-07T23:26:20.8943436Z         },
2026-06-07T23:26:20.8943602Z         "impl": {
2026-06-07T23:26:20.8943788Z           "complete": true,
2026-06-07T23:26:20.8943985Z           "evidence": [
2026-06-07T23:26:20.8944179Z             {
2026-06-07T23:26:20.8944365Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.8944605Z               "line": 193
2026-06-07T23:26:20.8944789Z             },
2026-06-07T23:26:20.8944953Z             {
2026-06-07T23:26:20.8945142Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.8945371Z               "line": 740
2026-06-07T23:26:20.8945558Z             },
2026-06-07T23:26:20.8945723Z             {
2026-06-07T23:26:20.8945905Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.8946145Z               "line": 1040
2026-06-07T23:26:20.8946341Z             },
2026-06-07T23:26:20.8946507Z             {
2026-06-07T23:26:20.8946813Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.8947133Z               "line": 1816
2026-06-07T23:26:20.8947318Z             }
2026-06-07T23:26:20.8947486Z           ]
2026-06-07T23:26:20.8947652Z         },
2026-06-07T23:26:20.8947816Z         "int": {
2026-06-07T23:26:20.8948101Z           "complete": false,
2026-06-07T23:26:20.8948314Z           "evidence": []
2026-06-07T23:26:20.8948501Z         },
2026-06-07T23:26:20.8948666Z         "unit": {
2026-06-07T23:26:20.8948863Z           "complete": true,
2026-06-07T23:26:20.8949067Z           "evidence": [
2026-06-07T23:26:20.8949253Z             {
2026-06-07T23:26:20.8949444Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.8949678Z               "line": 4618
2026-06-07T23:26:20.8949869Z             }
2026-06-07T23:26:20.8950036Z           ]
2026-06-07T23:26:20.8950202Z         }
2026-06-07T23:26:20.8950375Z       }
2026-06-07T23:26:20.8950536Z     },
2026-06-07T23:26:20.8950694Z     {
2026-06-07T23:26:20.8950869Z       "id": "REQ-CLI-2",
2026-06-07T23:26:20.8951639Z       "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-07T23:26:20.8952440Z       "requiredStages": [
2026-06-07T23:26:20.8952641Z         "impl",
2026-06-07T23:26:20.8952816Z         "unit"
2026-06-07T23:26:20.8952989Z       ],
2026-06-07T23:26:20.8953155Z       "stages": {
2026-06-07T23:26:20.8953332Z         "doc": {
2026-06-07T23:26:20.8953508Z           "complete": false,
2026-06-07T23:26:20.8953712Z           "evidence": []
2026-06-07T23:26:20.8953907Z         },
2026-06-07T23:26:20.8954076Z         "impl": {
2026-06-07T23:26:20.8954268Z           "complete": true,
2026-06-07T23:26:20.8954467Z           "evidence": [
2026-06-07T23:26:20.8954654Z             {
2026-06-07T23:26:20.8954869Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:20.8955121Z               "line": 260
2026-06-07T23:26:20.8955303Z             },
2026-06-07T23:26:20.8955474Z             {
2026-06-07T23:26:20.8955669Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-07T23:26:20.8955921Z               "line": 65
2026-06-07T23:26:20.8956104Z             },
2026-06-07T23:26:20.8956269Z             {
2026-06-07T23:26:20.8956460Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T23:26:20.8956695Z               "line": 239
2026-06-07T23:26:20.8956878Z             },
2026-06-07T23:26:20.8957183Z             {
2026-06-07T23:26:20.8957359Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.8957592Z               "line": 337
2026-06-07T23:26:20.8957779Z             },
2026-06-07T23:26:20.8957935Z             {
2026-06-07T23:26:20.8958117Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.8958337Z               "line": 782
2026-06-07T23:26:20.8958527Z             },
2026-06-07T23:26:20.8958690Z             {
2026-06-07T23:26:20.8958869Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.8959095Z               "line": 1224
2026-06-07T23:26:20.8959289Z             },
2026-06-07T23:26:20.8959456Z             {
2026-06-07T23:26:20.8959642Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.8959874Z               "line": 1239
2026-06-07T23:26:20.8960067Z             },
2026-06-07T23:26:20.8960238Z             {
2026-06-07T23:26:20.8960424Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.8960648Z               "line": 1261
2026-06-07T23:26:20.8960838Z             }
2026-06-07T23:26:20.8961001Z           ]
2026-06-07T23:26:20.8961162Z         },
2026-06-07T23:26:20.8961325Z         "int": {
2026-06-07T23:26:20.8961507Z           "complete": false,
2026-06-07T23:26:20.8961710Z           "evidence": []
2026-06-07T23:26:20.8961896Z         },
2026-06-07T23:26:20.8962056Z         "unit": {
2026-06-07T23:26:20.8962243Z           "complete": true,
2026-06-07T23:26:20.8962566Z           "evidence": [
2026-06-07T23:26:20.8962761Z             {
2026-06-07T23:26:20.8962957Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T23:26:20.8963201Z               "line": 309
2026-06-07T23:26:20.8963386Z             },
2026-06-07T23:26:20.8963658Z             {
2026-06-07T23:26:20.8963850Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.8964088Z               "line": 4756
2026-06-07T23:26:20.8964282Z             }
2026-06-07T23:26:20.8964448Z           ]
2026-06-07T23:26:20.8964608Z         }
2026-06-07T23:26:20.8964766Z       }
2026-06-07T23:26:20.8964923Z     },
2026-06-07T23:26:20.8965328Z     {
2026-06-07T23:26:20.8965504Z       "id": "REQ-CLI-3",
2026-06-07T23:26:20.8966310Z       "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-07T23:26:20.8967208Z       "requiredStages": [
2026-06-07T23:26:20.8967405Z         "impl",
2026-06-07T23:26:20.8967579Z         "unit"
2026-06-07T23:26:20.8967748Z       ],
2026-06-07T23:26:20.8967919Z       "stages": {
2026-06-07T23:26:20.8968105Z         "doc": {
2026-06-07T23:26:20.8968282Z           "complete": false,
2026-06-07T23:26:20.8968486Z           "evidence": []
2026-06-07T23:26:20.8968668Z         },
2026-06-07T23:26:20.8968839Z         "impl": {
2026-06-07T23:26:20.8969025Z           "complete": true,
2026-06-07T23:26:20.8969221Z           "evidence": [
2026-06-07T23:26:20.8969406Z             {
2026-06-07T23:26:20.8969594Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.8969824Z               "line": 734
2026-06-07T23:26:20.8970006Z             }
2026-06-07T23:26:20.8970173Z           ]
2026-06-07T23:26:20.8970345Z         },
2026-06-07T23:26:20.8970512Z         "int": {
2026-06-07T23:26:20.8970688Z           "complete": false,
2026-06-07T23:26:20.8970898Z           "evidence": []
2026-06-07T23:26:20.8971083Z         },
2026-06-07T23:26:20.8971246Z         "unit": {
2026-06-07T23:26:20.8971427Z           "complete": true,
2026-06-07T23:26:20.8971627Z           "evidence": [
2026-06-07T23:26:20.8971820Z             {
2026-06-07T23:26:20.8972009Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.8972242Z               "line": 4583
2026-06-07T23:26:20.8972427Z             }
2026-06-07T23:26:20.8972592Z           ]
2026-06-07T23:26:20.8972764Z         }
2026-06-07T23:26:20.8972930Z       }
2026-06-07T23:26:20.8973093Z     },
2026-06-07T23:26:20.8973250Z     {
2026-06-07T23:26:20.8973437Z       "id": "REQ-CONSENT-1",
2026-06-07T23:26:20.8974400Z       "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-07T23:26:20.8975360Z       "requiredStages": [
2026-06-07T23:26:20.8975558Z         "impl",
2026-06-07T23:26:20.8975736Z         "unit"
2026-06-07T23:26:20.8975912Z       ],
2026-06-07T23:26:20.8976089Z       "stages": {
2026-06-07T23:26:20.8976261Z         "doc": {
2026-06-07T23:26:20.8976451Z           "complete": false,
2026-06-07T23:26:20.8976652Z           "evidence": []
2026-06-07T23:26:20.8976842Z         },
2026-06-07T23:26:20.8977065Z         "impl": {
2026-06-07T23:26:20.8977243Z           "complete": true,
2026-06-07T23:26:20.8977437Z           "evidence": [
2026-06-07T23:26:20.8977627Z             {
2026-06-07T23:26:20.8977830Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.8978087Z               "line": 27
2026-06-07T23:26:20.8978269Z             },
2026-06-07T23:26:20.8978440Z             {
2026-06-07T23:26:20.8978641Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.8978999Z               "line": 75
2026-06-07T23:26:20.8979191Z             },
2026-06-07T23:26:20.8979356Z             {
2026-06-07T23:26:20.8979548Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.8979796Z               "line": 98
2026-06-07T23:26:20.8980072Z             },
2026-06-07T23:26:20.8980238Z             {
2026-06-07T23:26:20.8980437Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T23:26:20.8980680Z               "line": 82
2026-06-07T23:26:20.8980872Z             },
2026-06-07T23:26:20.8981038Z             {
2026-06-07T23:26:20.8981229Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T23:26:20.8981472Z               "line": 109
2026-06-07T23:26:20.8981668Z             },
2026-06-07T23:26:20.8981835Z             {
2026-06-07T23:26:20.8982026Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T23:26:20.8982269Z               "line": 127
2026-06-07T23:26:20.8982445Z             },
2026-06-07T23:26:20.8982612Z             {
2026-06-07T23:26:20.8982802Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T23:26:20.8983040Z               "line": 142
2026-06-07T23:26:20.8983237Z             },
2026-06-07T23:26:20.8983405Z             {
2026-06-07T23:26:20.9028631Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9028965Z               "line": 4319
2026-06-07T23:26:20.9029170Z             }
2026-06-07T23:26:20.9029342Z           ]
2026-06-07T23:26:20.9029504Z         },
2026-06-07T23:26:20.9029671Z         "int": {
2026-06-07T23:26:20.9029852Z           "complete": false,
2026-06-07T23:26:20.9030064Z           "evidence": []
2026-06-07T23:26:20.9030251Z         },
2026-06-07T23:26:20.9030418Z         "unit": {
2026-06-07T23:26:20.9030602Z           "complete": true,
2026-06-07T23:26:20.9030798Z           "evidence": [
2026-06-07T23:26:20.9030979Z             {
2026-06-07T23:26:20.9031189Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.9031446Z               "line": 334
2026-06-07T23:26:20.9031643Z             },
2026-06-07T23:26:20.9031809Z             {
2026-06-07T23:26:20.9032005Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.9032258Z               "line": 380
2026-06-07T23:26:20.9032442Z             },
2026-06-07T23:26:20.9032616Z             {
2026-06-07T23:26:20.9032810Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.9033052Z               "line": 391
2026-06-07T23:26:20.9033238Z             },
2026-06-07T23:26:20.9033410Z             {
2026-06-07T23:26:20.9033611Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T23:26:20.9033848Z               "line": 165
2026-06-07T23:26:20.9034030Z             },
2026-06-07T23:26:20.9034198Z             {
2026-06-07T23:26:20.9034392Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T23:26:20.9034631Z               "line": 184
2026-06-07T23:26:20.9034817Z             },
2026-06-07T23:26:20.9034983Z             {
2026-06-07T23:26:20.9035180Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T23:26:20.9035413Z               "line": 204
2026-06-07T23:26:20.9035593Z             },
2026-06-07T23:26:20.9035749Z             {
2026-06-07T23:26:20.9035934Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9036168Z               "line": 4909
2026-06-07T23:26:20.9036352Z             }
2026-06-07T23:26:20.9036511Z           ]
2026-06-07T23:26:20.9036672Z         }
2026-06-07T23:26:20.9036831Z       }
2026-06-07T23:26:20.9037060Z     },
2026-06-07T23:26:20.9037222Z     {
2026-06-07T23:26:20.9037389Z       "id": "REQ-CONSENT-2",
2026-06-07T23:26:20.9038287Z       "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-07T23:26:20.9039420Z       "requiredStages": [
2026-06-07T23:26:20.9039626Z         "impl",
2026-06-07T23:26:20.9039797Z         "unit"
2026-06-07T23:26:20.9039965Z       ],
2026-06-07T23:26:20.9040126Z       "stages": {
2026-06-07T23:26:20.9040299Z         "doc": {
2026-06-07T23:26:20.9040484Z           "complete": false,
2026-06-07T23:26:20.9040807Z           "evidence": []
2026-06-07T23:26:20.9040992Z         },
2026-06-07T23:26:20.9041166Z         "impl": {
2026-06-07T23:26:20.9041344Z           "complete": true,
2026-06-07T23:26:20.9041548Z           "evidence": [
2026-06-07T23:26:20.9041729Z             {
2026-06-07T23:26:20.9041926Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.9042178Z               "line": 140
2026-06-07T23:26:20.9042369Z             },
2026-06-07T23:26:20.9042532Z             {
2026-06-07T23:26:20.9042731Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.9042979Z               "line": 165
2026-06-07T23:26:20.9043157Z             },
2026-06-07T23:26:20.9043331Z             {
2026-06-07T23:26:20.9043528Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.9043764Z               "line": 199
2026-06-07T23:26:20.9043946Z             },
2026-06-07T23:26:20.9044108Z             {
2026-06-07T23:26:20.9044308Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.9044547Z               "line": 241
2026-06-07T23:26:20.9044728Z             },
2026-06-07T23:26:20.9044895Z             {
2026-06-07T23:26:20.9045334Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.9045582Z               "line": 269
2026-06-07T23:26:20.9045773Z             },
2026-06-07T23:26:20.9045930Z             {
2026-06-07T23:26:20.9046121Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.9046353Z               "line": 300
2026-06-07T23:26:20.9046532Z             },
2026-06-07T23:26:20.9046699Z             {
2026-06-07T23:26:20.9046884Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9047194Z               "line": 4184
2026-06-07T23:26:20.9047386Z             },
2026-06-07T23:26:20.9047552Z             {
2026-06-07T23:26:20.9047738Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9047968Z               "line": 4242
2026-06-07T23:26:20.9048158Z             }
2026-06-07T23:26:20.9048321Z           ]
2026-06-07T23:26:20.9048482Z         },
2026-06-07T23:26:20.9048641Z         "int": {
2026-06-07T23:26:20.9048829Z           "complete": false,
2026-06-07T23:26:20.9049028Z           "evidence": []
2026-06-07T23:26:20.9049208Z         },
2026-06-07T23:26:20.9049380Z         "unit": {
2026-06-07T23:26:20.9049556Z           "complete": true,
2026-06-07T23:26:20.9049756Z           "evidence": [
2026-06-07T23:26:20.9049939Z             {
2026-06-07T23:26:20.9050133Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.9050372Z               "line": 419
2026-06-07T23:26:20.9050554Z             },
2026-06-07T23:26:20.9050719Z             {
2026-06-07T23:26:20.9050916Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.9051150Z               "line": 436
2026-06-07T23:26:20.9051344Z             },
2026-06-07T23:26:20.9051501Z             {
2026-06-07T23:26:20.9051699Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.9051946Z               "line": 472
2026-06-07T23:26:20.9052123Z             },
2026-06-07T23:26:20.9052289Z             {
2026-06-07T23:26:20.9052481Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:20.9052714Z               "line": 516
2026-06-07T23:26:20.9052901Z             },
2026-06-07T23:26:20.9053068Z             {
2026-06-07T23:26:20.9053253Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9053478Z               "line": 5804
2026-06-07T23:26:20.9053663Z             },
2026-06-07T23:26:20.9053829Z             {
2026-06-07T23:26:20.9054017Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9054239Z               "line": 5886
2026-06-07T23:26:20.9054535Z             }
2026-06-07T23:26:20.9054712Z           ]
2026-06-07T23:26:20.9054873Z         }
2026-06-07T23:26:20.9055031Z       }
2026-06-07T23:26:20.9055188Z     },
2026-06-07T23:26:20.9055346Z     {
2026-06-07T23:26:20.9055536Z       "id": "REQ-CONV-1",
2026-06-07T23:26:20.9057383Z       "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-07T23:26:20.9058675Z       "requiredStages": [
2026-06-07T23:26:20.9058867Z         "impl",
2026-06-07T23:26:20.9059042Z         "unit"
2026-06-07T23:26:20.9059210Z       ],
2026-06-07T23:26:20.9059384Z       "stages": {
2026-06-07T23:26:20.9059561Z         "doc": {
2026-06-07T23:26:20.9059739Z           "complete": false,
2026-06-07T23:26:20.9059940Z           "evidence": []
2026-06-07T23:26:20.9060126Z         },
2026-06-07T23:26:20.9060302Z         "impl": {
2026-06-07T23:26:20.9060480Z           "complete": true,
2026-06-07T23:26:20.9060684Z           "evidence": [
2026-06-07T23:26:20.9060865Z             {
2026-06-07T23:26:20.9061071Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:20.9061318Z               "line": 576
2026-06-07T23:26:20.9061504Z             },
2026-06-07T23:26:20.9061671Z             {
2026-06-07T23:26:20.9061870Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:20.9062118Z               "line": 97
2026-06-07T23:26:20.9062296Z             },
2026-06-07T23:26:20.9062460Z             {
2026-06-07T23:26:20.9062655Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:20.9062897Z               "line": 324
2026-06-07T23:26:20.9063084Z             },
2026-06-07T23:26:20.9063255Z             {
2026-06-07T23:26:20.9063451Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:20.9063690Z               "line": 365
2026-06-07T23:26:20.9063875Z             },
2026-06-07T23:26:20.9064047Z             {
2026-06-07T23:26:20.9064243Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:20.9064485Z               "line": 444
2026-06-07T23:26:20.9064667Z             },
2026-06-07T23:26:20.9064841Z             {
2026-06-07T23:26:20.9065047Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9065296Z               "line": 556
2026-06-07T23:26:20.9065490Z             },
2026-06-07T23:26:20.9065658Z             {
2026-06-07T23:26:20.9065858Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9066101Z               "line": 582
2026-06-07T23:26:20.9066287Z             },
2026-06-07T23:26:20.9066458Z             {
2026-06-07T23:26:20.9066673Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9066922Z               "line": 333
2026-06-07T23:26:20.9067180Z             },
2026-06-07T23:26:20.9067345Z             {
2026-06-07T23:26:20.9067549Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-07T23:26:20.9067805Z               "line": 19
2026-06-07T23:26:20.9068000Z             }
2026-06-07T23:26:20.9068262Z           ]
2026-06-07T23:26:20.9068530Z         },
2026-06-07T23:26:20.9068873Z         "int": {
2026-06-07T23:26:20.9069159Z           "complete": false,
2026-06-07T23:26:20.9069488Z           "evidence": []
2026-06-07T23:26:20.9069766Z         },
2026-06-07T23:26:20.9070026Z         "unit": {
2026-06-07T23:26:20.9070333Z           "complete": true,
2026-06-07T23:26:20.9070633Z           "evidence": [
2026-06-07T23:26:20.9070957Z             {
2026-06-07T23:26:20.9071268Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9071592Z               "line": 845
2026-06-07T23:26:20.9072018Z             },
2026-06-07T23:26:20.9072284Z             {
2026-06-07T23:26:20.9072563Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-07T23:26:20.9072963Z               "line": 108
2026-06-07T23:26:20.9073229Z             },
2026-06-07T23:26:20.9073563Z             {
2026-06-07T23:26:20.9073949Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-07T23:26:20.9074278Z               "line": 134
2026-06-07T23:26:20.9074607Z             },
2026-06-07T23:26:20.9074866Z             {
2026-06-07T23:26:20.9075185Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-07T23:26:20.9075532Z               "line": 144
2026-06-07T23:26:20.9075808Z             }
2026-06-07T23:26:20.9076123Z           ]
2026-06-07T23:26:20.9076384Z         }
2026-06-07T23:26:20.9076651Z       }
2026-06-07T23:26:20.9076904Z     },
2026-06-07T23:26:20.9077324Z     {
2026-06-07T23:26:20.9077620Z       "id": "REQ-CONV-2",
2026-06-07T23:26:20.9078941Z       "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-07T23:26:20.9080153Z       "requiredStages": [
2026-06-07T23:26:20.9080452Z         "impl",
2026-06-07T23:26:20.9080722Z         "unit"
2026-06-07T23:26:20.9081017Z       ],
2026-06-07T23:26:20.9081280Z       "stages": {
2026-06-07T23:26:20.9081522Z         "doc": {
2026-06-07T23:26:20.9081837Z           "complete": false,
2026-06-07T23:26:20.9082172Z           "evidence": []
2026-06-07T23:26:20.9082481Z         },
2026-06-07T23:26:20.9082748Z         "impl": {
2026-06-07T23:26:20.9082995Z           "complete": true,
2026-06-07T23:26:20.9083341Z           "evidence": [
2026-06-07T23:26:20.9083609Z             {
2026-06-07T23:26:20.9083942Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9084337Z               "line": 316
2026-06-07T23:26:20.9084596Z             },
2026-06-07T23:26:20.9084909Z             {
2026-06-07T23:26:20.9085195Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9085543Z               "line": 292
2026-06-07T23:26:20.9085848Z             },
2026-06-07T23:26:20.9086096Z             {
2026-06-07T23:26:20.9086435Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9086812Z               "line": 643
2026-06-07T23:26:20.9087226Z             },
2026-06-07T23:26:20.9087497Z             {
2026-06-07T23:26:20.9087798Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9088194Z               "line": 654
2026-06-07T23:26:20.9088465Z             },
2026-06-07T23:26:20.9088716Z             {
2026-06-07T23:26:20.9089162Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9089511Z               "line": 334
2026-06-07T23:26:20.9089821Z             },
2026-06-07T23:26:20.9090074Z             {
2026-06-07T23:26:20.9090355Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9090727Z               "line": 1771
2026-06-07T23:26:20.9091013Z             },
2026-06-07T23:26:20.9091287Z             {
2026-06-07T23:26:20.9091634Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9091935Z               "line": 1787
2026-06-07T23:26:20.9092269Z             },
2026-06-07T23:26:20.9092541Z             {
2026-06-07T23:26:20.9092832Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9093180Z               "line": 1844
2026-06-07T23:26:20.9093452Z             }
2026-06-07T23:26:20.9093736Z           ]
2026-06-07T23:26:20.9094030Z         },
2026-06-07T23:26:20.9094301Z         "int": {
2026-06-07T23:26:20.9094592Z           "complete": false,
2026-06-07T23:26:20.9094878Z           "evidence": []
2026-06-07T23:26:20.9095184Z         },
2026-06-07T23:26:20.9095445Z         "unit": {
2026-06-07T23:26:20.9095803Z           "complete": true,
2026-06-07T23:26:20.9096199Z           "evidence": [
2026-06-07T23:26:20.9096470Z             {
2026-06-07T23:26:20.9096818Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9097248Z               "line": 926
2026-06-07T23:26:20.9097625Z             }
2026-06-07T23:26:20.9097930Z           ]
2026-06-07T23:26:20.9098178Z         }
2026-06-07T23:26:20.9098463Z       }
2026-06-07T23:26:20.9098745Z     },
2026-06-07T23:26:20.9098991Z     {
2026-06-07T23:26:20.9099299Z       "id": "REQ-DAEMON-1",
2026-06-07T23:26:20.9099675Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-07T23:26:20.9100081Z       "requiredStages": [
2026-06-07T23:26:20.9100435Z         "impl",
2026-06-07T23:26:20.9100701Z         "unit",
2026-06-07T23:26:20.9100992Z         "int"
2026-06-07T23:26:20.9101292Z       ],
2026-06-07T23:26:20.9101568Z       "stages": {
2026-06-07T23:26:20.9101851Z         "doc": {
2026-06-07T23:26:20.9102124Z           "complete": false,
2026-06-07T23:26:20.9102443Z           "evidence": []
2026-06-07T23:26:20.9102729Z         },
2026-06-07T23:26:20.9102963Z         "impl": {
2026-06-07T23:26:20.9103406Z           "complete": true,
2026-06-07T23:26:20.9103716Z           "evidence": [
2026-06-07T23:26:20.9104036Z             {
2026-06-07T23:26:20.9104334Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T23:26:20.9104648Z               "line": 12
2026-06-07T23:26:20.9104981Z             },
2026-06-07T23:26:20.9105234Z             {
2026-06-07T23:26:20.9105544Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9105916Z               "line": 16
2026-06-07T23:26:20.9106198Z             },
2026-06-07T23:26:20.9106508Z             {
2026-06-07T23:26:20.9106788Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-07T23:26:20.9107240Z               "line": 15
2026-06-07T23:26:20.9107608Z             },
2026-06-07T23:26:20.9107903Z             {
2026-06-07T23:26:20.9108199Z               "path": "crates/spt/src/api/live.rs",
2026-06-07T23:26:20.9108589Z               "line": 13
2026-06-07T23:26:20.9108966Z             }
2026-06-07T23:26:20.9109228Z           ]
2026-06-07T23:26:20.9109514Z         },
2026-06-07T23:26:20.9110017Z         "int": {
2026-06-07T23:26:20.9110302Z           "complete": true,
2026-06-07T23:26:20.9110626Z           "evidence": [
2026-06-07T23:26:20.9110898Z             {
2026-06-07T23:26:20.9111256Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-07T23:26:20.9111610Z               "line": 32
2026-06-07T23:26:20.9111890Z             }
2026-06-07T23:26:20.9112180Z           ]
2026-06-07T23:26:20.9112440Z         },
2026-06-07T23:26:20.9112675Z         "unit": {
2026-06-07T23:26:20.9112984Z           "complete": true,
2026-06-07T23:26:20.9113280Z           "evidence": [
2026-06-07T23:26:20.9113618Z             {
2026-06-07T23:26:20.9113914Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T23:26:20.9114239Z               "line": 285
2026-06-07T23:26:20.9114567Z             },
2026-06-07T23:26:20.9114833Z             {
2026-06-07T23:26:20.9115135Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T23:26:20.9115494Z               "line": 293
2026-06-07T23:26:20.9115770Z             },
2026-06-07T23:26:20.9122307Z             {
2026-06-07T23:26:20.9122552Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T23:26:20.9122821Z               "line": 309
2026-06-07T23:26:20.9123024Z             },
2026-06-07T23:26:20.9123196Z             {
2026-06-07T23:26:20.9123405Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T23:26:20.9123653Z               "line": 317
2026-06-07T23:26:20.9123836Z             },
2026-06-07T23:26:20.9124006Z             {
2026-06-07T23:26:20.9124216Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9124465Z               "line": 565
2026-06-07T23:26:20.9124655Z             },
2026-06-07T23:26:20.9124827Z             {
2026-06-07T23:26:20.9125184Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9125445Z               "line": 635
2026-06-07T23:26:20.9125633Z             },
2026-06-07T23:26:20.9125797Z             {
2026-06-07T23:26:20.9126001Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-07T23:26:20.9126330Z               "line": 104
2026-06-07T23:26:20.9126516Z             },
2026-06-07T23:26:20.9126689Z             {
2026-06-07T23:26:20.9126883Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-07T23:26:20.9127221Z               "line": 129
2026-06-07T23:26:20.9127408Z             }
2026-06-07T23:26:20.9127574Z           ]
2026-06-07T23:26:20.9127737Z         }
2026-06-07T23:26:20.9127894Z       }
2026-06-07T23:26:20.9128057Z     },
2026-06-07T23:26:20.9128212Z     {
2026-06-07T23:26:20.9128389Z       "id": "REQ-DAEMON-2",
2026-06-07T23:26:20.9128642Z       "title": "Broker/brain split for seamless self-update",
2026-06-07T23:26:20.9128919Z       "requiredStages": [
2026-06-07T23:26:20.9129118Z         "impl",
2026-06-07T23:26:20.9129296Z         "unit",
2026-06-07T23:26:20.9129461Z         "int"
2026-06-07T23:26:20.9129629Z       ],
2026-06-07T23:26:20.9129800Z       "stages": {
2026-06-07T23:26:20.9129892Z         "doc": {
2026-06-07T23:26:20.9130010Z           "complete": false,
2026-06-07T23:26:20.9130095Z           "evidence": []
2026-06-07T23:26:20.9130188Z         },
2026-06-07T23:26:20.9130278Z         "impl": {
2026-06-07T23:26:20.9130381Z           "complete": true,
2026-06-07T23:26:20.9130459Z           "evidence": [
2026-06-07T23:26:20.9130550Z             {
2026-06-07T23:26:20.9130672Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T23:26:20.9130762Z               "line": 23
2026-06-07T23:26:20.9130853Z             },
2026-06-07T23:26:20.9130929Z             {
2026-06-07T23:26:20.9131041Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T23:26:20.9131127Z               "line": 531
2026-06-07T23:26:20.9131223Z             },
2026-06-07T23:26:20.9131309Z             {
2026-06-07T23:26:20.9131422Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T23:26:20.9131538Z               "line": 684
2026-06-07T23:26:20.9131619Z             },
2026-06-07T23:26:20.9131708Z             {
2026-06-07T23:26:20.9131829Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T23:26:20.9131928Z               "line": 32
2026-06-07T23:26:20.9132013Z             },
2026-06-07T23:26:20.9132101Z             {
2026-06-07T23:26:20.9132219Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T23:26:20.9132309Z               "line": 191
2026-06-07T23:26:20.9132400Z             },
2026-06-07T23:26:20.9132483Z             {
2026-06-07T23:26:20.9132606Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T23:26:20.9132701Z               "line": 546
2026-06-07T23:26:20.9132783Z             },
2026-06-07T23:26:20.9132872Z             {
2026-06-07T23:26:20.9132996Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T23:26:20.9133093Z               "line": 788
2026-06-07T23:26:20.9133178Z             },
2026-06-07T23:26:20.9133262Z             {
2026-06-07T23:26:20.9133382Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-07T23:26:20.9133477Z               "line": 11
2026-06-07T23:26:20.9133570Z             },
2026-06-07T23:26:20.9133650Z             {
2026-06-07T23:26:20.9133775Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:20.9133866Z               "line": 146
2026-06-07T23:26:20.9133956Z             },
2026-06-07T23:26:20.9134047Z             {
2026-06-07T23:26:20.9134162Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T23:26:20.9134251Z               "line": 13
2026-06-07T23:26:20.9134343Z             },
2026-06-07T23:26:20.9134424Z             {
2026-06-07T23:26:20.9134533Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:20.9134618Z               "line": 27
2026-06-07T23:26:20.9134711Z             },
2026-06-07T23:26:20.9134910Z             {
2026-06-07T23:26:20.9135035Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:20.9135124Z               "line": 94
2026-06-07T23:26:20.9135210Z             },
2026-06-07T23:26:20.9135297Z             {
2026-06-07T23:26:20.9135505Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:20.9135597Z               "line": 415
2026-06-07T23:26:20.9135679Z             },
2026-06-07T23:26:20.9135767Z             {
2026-06-07T23:26:20.9135881Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:20.9135977Z               "line": 535
2026-06-07T23:26:20.9136066Z             },
2026-06-07T23:26:20.9136151Z             {
2026-06-07T23:26:20.9136270Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:20.9136357Z               "line": 595
2026-06-07T23:26:20.9136446Z             },
2026-06-07T23:26:20.9136527Z             {
2026-06-07T23:26:20.9136652Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:20.9136747Z               "line": 644
2026-06-07T23:26:20.9136832Z             },
2026-06-07T23:26:20.9136919Z             {
2026-06-07T23:26:20.9137405Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:20.9137500Z               "line": 692
2026-06-07T23:26:20.9137592Z             },
2026-06-07T23:26:20.9137677Z             {
2026-06-07T23:26:20.9137805Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-07T23:26:20.9137893Z               "line": 10
2026-06-07T23:26:20.9137982Z             }
2026-06-07T23:26:20.9138068Z           ]
2026-06-07T23:26:20.9138159Z         },
2026-06-07T23:26:20.9138245Z         "int": {
2026-06-07T23:26:20.9138344Z           "complete": true,
2026-06-07T23:26:20.9138439Z           "evidence": [
2026-06-07T23:26:20.9138527Z             {
2026-06-07T23:26:20.9138649Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-07T23:26:20.9138738Z               "line": 17
2026-06-07T23:26:20.9138839Z             },
2026-06-07T23:26:20.9138921Z             {
2026-06-07T23:26:20.9139053Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-07T23:26:20.9139144Z               "line": 33
2026-06-07T23:26:20.9139231Z             },
2026-06-07T23:26:20.9139325Z             {
2026-06-07T23:26:20.9139449Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-07T23:26:20.9139545Z               "line": 19
2026-06-07T23:26:20.9139626Z             },
2026-06-07T23:26:20.9139716Z             {
2026-06-07T23:26:20.9139841Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-07T23:26:20.9139931Z               "line": 70
2026-06-07T23:26:20.9140021Z             },
2026-06-07T23:26:20.9140108Z             {
2026-06-07T23:26:20.9140232Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-07T23:26:20.9140327Z               "line": 90
2026-06-07T23:26:20.9140413Z             },
2026-06-07T23:26:20.9140504Z             {
2026-06-07T23:26:20.9140623Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-07T23:26:20.9140718Z               "line": 166
2026-06-07T23:26:20.9140800Z             },
2026-06-07T23:26:20.9140894Z             {
2026-06-07T23:26:20.9141014Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-07T23:26:20.9141110Z               "line": 208
2026-06-07T23:26:20.9141194Z             },
2026-06-07T23:26:20.9141279Z             {
2026-06-07T23:26:20.9141408Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-07T23:26:20.9141493Z               "line": 127
2026-06-07T23:26:20.9141587Z             }
2026-06-07T23:26:20.9141672Z           ]
2026-06-07T23:26:20.9141755Z         },
2026-06-07T23:26:20.9141850Z         "unit": {
2026-06-07T23:26:20.9141944Z           "complete": true,
2026-06-07T23:26:20.9142041Z           "evidence": [
2026-06-07T23:26:20.9142126Z             {
2026-06-07T23:26:20.9142244Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-07T23:26:20.9142437Z               "line": 62
2026-06-07T23:26:20.9142522Z             },
2026-06-07T23:26:20.9142607Z             {
2026-06-07T23:26:20.9142723Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-07T23:26:20.9142818Z               "line": 76
2026-06-07T23:26:20.9142903Z             },
2026-06-07T23:26:20.9143075Z             {
2026-06-07T23:26:20.9143189Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-07T23:26:20.9143275Z               "line": 88
2026-06-07T23:26:20.9143367Z             },
2026-06-07T23:26:20.9143446Z             {
2026-06-07T23:26:20.9143566Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-07T23:26:20.9143653Z               "line": 294
2026-06-07T23:26:20.9143738Z             },
2026-06-07T23:26:20.9143822Z             {
2026-06-07T23:26:20.9143937Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T23:26:20.9144032Z               "line": 583
2026-06-07T23:26:20.9144116Z             },
2026-06-07T23:26:20.9144201Z             {
2026-06-07T23:26:20.9144322Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T23:26:20.9144412Z               "line": 591
2026-06-07T23:26:20.9144502Z             },
2026-06-07T23:26:20.9144583Z             {
2026-06-07T23:26:20.9144698Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T23:26:20.9144787Z               "line": 608
2026-06-07T23:26:20.9144878Z             },
2026-06-07T23:26:20.9144961Z             {
2026-06-07T23:26:20.9145070Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T23:26:20.9145165Z               "line": 662
2026-06-07T23:26:20.9145247Z             },
2026-06-07T23:26:20.9145341Z             {
2026-06-07T23:26:20.9145455Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:20.9145547Z               "line": 762
2026-06-07T23:26:20.9145633Z             },
2026-06-07T23:26:20.9145718Z             {
2026-06-07T23:26:20.9145837Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:20.9145929Z               "line": 774
2026-06-07T23:26:20.9146018Z             },
2026-06-07T23:26:20.9146104Z             {
2026-06-07T23:26:20.9146225Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-07T23:26:20.9146318Z               "line": 110
2026-06-07T23:26:20.9146399Z             }
2026-06-07T23:26:20.9146499Z           ]
2026-06-07T23:26:20.9146584Z         }
2026-06-07T23:26:20.9146673Z       }
2026-06-07T23:26:20.9146758Z     },
2026-06-07T23:26:20.9146849Z     {
2026-06-07T23:26:20.9147045Z       "id": "REQ-DAEMON-3",
2026-06-07T23:26:20.9147203Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-07T23:26:20.9147302Z       "requiredStages": [
2026-06-07T23:26:20.9147388Z         "impl",
2026-06-07T23:26:20.9147479Z         "unit",
2026-06-07T23:26:20.9147560Z         "int"
2026-06-07T23:26:20.9147650Z       ],
2026-06-07T23:26:20.9147736Z       "stages": {
2026-06-07T23:26:20.9147828Z         "doc": {
2026-06-07T23:26:20.9147922Z           "complete": false,
2026-06-07T23:26:20.9148022Z           "evidence": []
2026-06-07T23:26:20.9148109Z         },
2026-06-07T23:26:20.9148194Z         "impl": {
2026-06-07T23:26:20.9148294Z           "complete": true,
2026-06-07T23:26:20.9148380Z           "evidence": [
2026-06-07T23:26:20.9148467Z             {
2026-06-07T23:26:20.9148589Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:20.9148680Z               "line": 14
2026-06-07T23:26:20.9148767Z             },
2026-06-07T23:26:20.9148848Z             {
2026-06-07T23:26:20.9148971Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-07T23:26:20.9149063Z               "line": 11
2026-06-07T23:26:20.9149148Z             },
2026-06-07T23:26:20.9149233Z             {
2026-06-07T23:26:20.9149342Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T23:26:20.9149433Z               "line": 247
2026-06-07T23:26:20.9149514Z             },
2026-06-07T23:26:20.9149600Z             {
2026-06-07T23:26:20.9149810Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9149905Z               "line": 1223
2026-06-07T23:26:20.9149995Z             },
2026-06-07T23:26:20.9150077Z             {
2026-06-07T23:26:20.9150186Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9150276Z               "line": 2598
2026-06-07T23:26:20.9150453Z             },
2026-06-07T23:26:20.9150539Z             {
2026-06-07T23:26:20.9150639Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9150730Z               "line": 2619
2026-06-07T23:26:20.9150815Z             }
2026-06-07T23:26:20.9150901Z           ]
2026-06-07T23:26:20.9150983Z         },
2026-06-07T23:26:20.9151078Z         "int": {
2026-06-07T23:26:20.9151178Z           "complete": true,
2026-06-07T23:26:20.9151269Z           "evidence": [
2026-06-07T23:26:20.9151355Z             {
2026-06-07T23:26:20.9151469Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T23:26:20.9151559Z               "line": 46
2026-06-07T23:26:20.9151642Z             },
2026-06-07T23:26:20.9151741Z             {
2026-06-07T23:26:20.9151858Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T23:26:20.9151949Z               "line": 435
2026-06-07T23:26:20.9152035Z             }
2026-06-07T23:26:20.9152114Z           ]
2026-06-07T23:26:20.9152199Z         },
2026-06-07T23:26:20.9152291Z         "unit": {
2026-06-07T23:26:20.9152381Z           "complete": true,
2026-06-07T23:26:20.9152476Z           "evidence": [
2026-06-07T23:26:20.9152557Z             {
2026-06-07T23:26:20.9152672Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:20.9152763Z               "line": 562
2026-06-07T23:26:20.9152853Z             },
2026-06-07T23:26:20.9152935Z             {
2026-06-07T23:26:20.9153043Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9153134Z               "line": 6591
2026-06-07T23:26:20.9153221Z             }
2026-06-07T23:26:20.9153306Z           ]
2026-06-07T23:26:20.9153397Z         }
2026-06-07T23:26:20.9153482Z       }
2026-06-07T23:26:20.9153569Z     },
2026-06-07T23:26:20.9153659Z     {
2026-06-07T23:26:20.9153754Z       "id": "REQ-DAEMON-4",
2026-06-07T23:26:20.9153875Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-07T23:26:20.9153969Z       "requiredStages": [
2026-06-07T23:26:20.9154065Z         "impl",
2026-06-07T23:26:20.9154150Z         "unit",
2026-06-07T23:26:20.9154232Z         "int"
2026-06-07T23:26:20.9154317Z       ],
2026-06-07T23:26:20.9154406Z       "stages": {
2026-06-07T23:26:20.9154497Z         "doc": {
2026-06-07T23:26:20.9154587Z           "complete": false,
2026-06-07T23:26:20.9154681Z           "evidence": []
2026-06-07T23:26:20.9154771Z         },
2026-06-07T23:26:20.9154857Z         "impl": {
2026-06-07T23:26:20.9154958Z           "complete": true,
2026-06-07T23:26:20.9155052Z           "evidence": [
2026-06-07T23:26:20.9155134Z             {
2026-06-07T23:26:20.9155267Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9155361Z               "line": 371
2026-06-07T23:26:20.9155453Z             },
2026-06-07T23:26:20.9155535Z             {
2026-06-07T23:26:20.9155663Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9155753Z               "line": 436
2026-06-07T23:26:20.9156146Z             },
2026-06-07T23:26:20.9156258Z             {
2026-06-07T23:26:20.9156383Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9156512Z               "line": 458
2026-06-07T23:26:20.9156597Z             }
2026-06-07T23:26:20.9156674Z           ]
2026-06-07T23:26:20.9156760Z         },
2026-06-07T23:26:20.9156846Z         "int": {
2026-06-07T23:26:20.9156930Z           "complete": true,
2026-06-07T23:26:20.9157102Z           "evidence": [
2026-06-07T23:26:20.9157191Z             {
2026-06-07T23:26:20.9157318Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-07T23:26:20.9157409Z               "line": 34
2026-06-07T23:26:20.9157506Z             }
2026-06-07T23:26:20.9157585Z           ]
2026-06-07T23:26:20.9157796Z         },
2026-06-07T23:26:20.9157962Z         "unit": {
2026-06-07T23:26:20.9158059Z           "complete": true,
2026-06-07T23:26:20.9158144Z           "evidence": [
2026-06-07T23:26:20.9158234Z             {
2026-06-07T23:26:20.9158354Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T23:26:20.9158548Z               "line": 428
2026-06-07T23:26:20.9158635Z             },
2026-06-07T23:26:20.9158722Z             {
2026-06-07T23:26:20.9158845Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9158930Z               "line": 784
2026-06-07T23:26:20.9159022Z             },
2026-06-07T23:26:20.9159111Z             {
2026-06-07T23:26:20.9159226Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9159323Z               "line": 854
2026-06-07T23:26:20.9159403Z             },
2026-06-07T23:26:20.9159492Z             {
2026-06-07T23:26:20.9159609Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9159708Z               "line": 884
2026-06-07T23:26:20.9159797Z             },
2026-06-07T23:26:20.9159878Z             {
2026-06-07T23:26:20.9159998Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9160084Z               "line": 917
2026-06-07T23:26:20.9160183Z             }
2026-06-07T23:26:20.9160264Z           ]
2026-06-07T23:26:20.9160351Z         }
2026-06-07T23:26:20.9160441Z       }
2026-06-07T23:26:20.9160521Z     },
2026-06-07T23:26:20.9160609Z     {
2026-06-07T23:26:20.9160699Z       "id": "REQ-DAEMON-5",
2026-06-07T23:26:20.9162005Z       "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-07T23:26:20.9162119Z       "requiredStages": [
2026-06-07T23:26:20.9162207Z         "impl",
2026-06-07T23:26:20.9162296Z         "unit"
2026-06-07T23:26:20.9162386Z       ],
2026-06-07T23:26:20.9162476Z       "stages": {
2026-06-07T23:26:20.9162562Z         "doc": {
2026-06-07T23:26:20.9162669Z           "complete": false,
2026-06-07T23:26:20.9162764Z           "evidence": []
2026-06-07T23:26:20.9162851Z         },
2026-06-07T23:26:20.9162941Z         "impl": {
2026-06-07T23:26:20.9163032Z           "complete": true,
2026-06-07T23:26:20.9163127Z           "evidence": [
2026-06-07T23:26:20.9163208Z             {
2026-06-07T23:26:20.9163341Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9163437Z               "line": 282
2026-06-07T23:26:20.9163519Z             },
2026-06-07T23:26:20.9163608Z             {
2026-06-07T23:26:20.9163727Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9163824Z               "line": 651
2026-06-07T23:26:20.9163923Z             },
2026-06-07T23:26:20.9164009Z             {
2026-06-07T23:26:20.9164125Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9164219Z               "line": 664
2026-06-07T23:26:20.9164305Z             },
2026-06-07T23:26:20.9164386Z             {
2026-06-07T23:26:20.9164515Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9164605Z               "line": 682
2026-06-07T23:26:20.9164691Z             },
2026-06-07T23:26:20.9164778Z             {
2026-06-07T23:26:20.9164891Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9164985Z               "line": 723
2026-06-07T23:26:20.9165072Z             }
2026-06-07T23:26:20.9165157Z           ]
2026-06-07T23:26:20.9165417Z         },
2026-06-07T23:26:20.9165508Z         "int": {
2026-06-07T23:26:20.9165602Z           "complete": false,
2026-06-07T23:26:20.9165689Z           "evidence": []
2026-06-07T23:26:20.9165771Z         },
2026-06-07T23:26:20.9165955Z         "unit": {
2026-06-07T23:26:20.9166052Z           "complete": true,
2026-06-07T23:26:20.9166146Z           "evidence": [
2026-06-07T23:26:20.9166228Z             {
2026-06-07T23:26:20.9166357Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9166447Z               "line": 771
2026-06-07T23:26:20.9166609Z             },
2026-06-07T23:26:20.9166691Z             {
2026-06-07T23:26:20.9166818Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9166914Z               "line": 795
2026-06-07T23:26:20.9167091Z             },
2026-06-07T23:26:20.9167182Z             {
2026-06-07T23:26:20.9167302Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9167392Z               "line": 821
2026-06-07T23:26:20.9167481Z             }
2026-06-07T23:26:20.9167571Z           ]
2026-06-07T23:26:20.9167657Z         }
2026-06-07T23:26:20.9167742Z       }
2026-06-07T23:26:20.9167826Z     },
2026-06-07T23:26:20.9167907Z     {
2026-06-07T23:26:20.9168013Z       "id": "REQ-DOCS-1",
2026-06-07T23:26:20.9168208Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-07T23:26:20.9168309Z       "requiredStages": [
2026-06-07T23:26:20.9168400Z         "doc",
2026-06-07T23:26:20.9168484Z         "impl"
2026-06-07T23:26:20.9168580Z       ],
2026-06-07T23:26:20.9168666Z       "stages": {
2026-06-07T23:26:20.9168752Z         "doc": {
2026-06-07T23:26:20.9168842Z           "complete": true,
2026-06-07T23:26:20.9168934Z           "evidence": [
2026-06-07T23:26:20.9169018Z             {
2026-06-07T23:26:20.9169128Z               "path": "docs-site/src/index.md",
2026-06-07T23:26:20.9169220Z               "line": 50
2026-06-07T23:26:20.9169301Z             }
2026-06-07T23:26:20.9169390Z           ]
2026-06-07T23:26:20.9169471Z         },
2026-06-07T23:26:20.9169563Z         "impl": {
2026-06-07T23:26:20.9169653Z           "complete": true,
2026-06-07T23:26:20.9169743Z           "evidence": [
2026-06-07T23:26:20.9169839Z             {
2026-06-07T23:26:20.9169968Z               "path": ".github/workflows/docs-publish.yml",
2026-06-07T23:26:20.9170062Z               "line": 12
2026-06-07T23:26:20.9170149Z             },
2026-06-07T23:26:20.9170236Z             {
2026-06-07T23:26:20.9170348Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:20.9170442Z               "line": 14
2026-06-07T23:26:20.9170534Z             }
2026-06-07T23:26:20.9170615Z           ]
2026-06-07T23:26:20.9170705Z         },
2026-06-07T23:26:20.9170786Z         "int": {
2026-06-07T23:26:20.9170887Z           "complete": false,
2026-06-07T23:26:20.9170982Z           "evidence": []
2026-06-07T23:26:20.9171067Z         },
2026-06-07T23:26:20.9171159Z         "unit": {
2026-06-07T23:26:20.9171254Z           "complete": false,
2026-06-07T23:26:20.9171354Z           "evidence": []
2026-06-07T23:26:20.9171440Z         }
2026-06-07T23:26:20.9171536Z       }
2026-06-07T23:26:20.9171621Z     },
2026-06-07T23:26:20.9171702Z     {
2026-06-07T23:26:20.9171813Z       "id": "REQ-DOCS-2",
2026-06-07T23:26:20.9171969Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-07T23:26:20.9172069Z       "requiredStages": [
2026-06-07T23:26:20.9172161Z         "doc",
2026-06-07T23:26:20.9172255Z         "int"
2026-06-07T23:26:20.9172351Z       ],
2026-06-07T23:26:20.9172438Z       "stages": {
2026-06-07T23:26:20.9172527Z         "doc": {
2026-06-07T23:26:20.9172622Z           "complete": true,
2026-06-07T23:26:20.9172714Z           "evidence": [
2026-06-07T23:26:20.9172800Z             {
2026-06-07T23:26:20.9172936Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-07T23:26:20.9173031Z               "line": 3
2026-06-07T23:26:20.9173117Z             },
2026-06-07T23:26:20.9173211Z             {
2026-06-07T23:26:20.9173338Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-07T23:26:20.9173435Z               "line": 3
2026-06-07T23:26:20.9173516Z             }
2026-06-07T23:26:20.9173606Z           ]
2026-06-07T23:26:20.9173797Z         },
2026-06-07T23:26:20.9173887Z         "impl": {
2026-06-07T23:26:20.9173987Z           "complete": false,
2026-06-07T23:26:20.9174079Z           "evidence": []
2026-06-07T23:26:20.9174164Z         },
2026-06-07T23:26:20.9174250Z         "int": {
2026-06-07T23:26:20.9174436Z           "complete": true,
2026-06-07T23:26:20.9174531Z           "evidence": [
2026-06-07T23:26:20.9174617Z             {
2026-06-07T23:26:20.9174741Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-07T23:26:20.9174831Z               "line": 14
2026-06-07T23:26:20.9174917Z             }
2026-06-07T23:26:20.9175000Z           ]
2026-06-07T23:26:20.9175098Z         },
2026-06-07T23:26:20.9175180Z         "unit": {
2026-06-07T23:26:20.9175276Z           "complete": false,
2026-06-07T23:26:20.9175371Z           "evidence": []
2026-06-07T23:26:20.9175446Z         }
2026-06-07T23:26:20.9175536Z       }
2026-06-07T23:26:20.9175632Z     },
2026-06-07T23:26:20.9175758Z     {
2026-06-07T23:26:20.9175862Z       "id": "REQ-DOCS-3",
2026-06-07T23:26:20.9176078Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-07T23:26:20.9176167Z       "requiredStages": [
2026-06-07T23:26:20.9176254Z         "doc"
2026-06-07T23:26:20.9176340Z       ],
2026-06-07T23:26:20.9176440Z       "stages": {
2026-06-07T23:26:20.9176525Z         "doc": {
2026-06-07T23:26:20.9176626Z           "complete": true,
2026-06-07T23:26:20.9176711Z           "evidence": [
2026-06-07T23:26:20.9176802Z             {
2026-06-07T23:26:20.9176913Z               "path": "docs-site/src/index.md",
2026-06-07T23:26:20.9177093Z               "line": 42
2026-06-07T23:26:20.9177179Z             }
2026-06-07T23:26:20.9177266Z           ]
2026-06-07T23:26:20.9177355Z         },
2026-06-07T23:26:20.9177441Z         "impl": {
2026-06-07T23:26:20.9177537Z           "complete": false,
2026-06-07T23:26:20.9177633Z           "evidence": []
2026-06-07T23:26:20.9177717Z         },
2026-06-07T23:26:20.9177803Z         "int": {
2026-06-07T23:26:20.9177914Z           "complete": false,
2026-06-07T23:26:20.9178004Z           "evidence": []
2026-06-07T23:26:20.9178093Z         },
2026-06-07T23:26:20.9178179Z         "unit": {
2026-06-07T23:26:20.9178274Z           "complete": false,
2026-06-07T23:26:20.9178367Z           "evidence": []
2026-06-07T23:26:20.9178453Z         }
2026-06-07T23:26:20.9178549Z       }
2026-06-07T23:26:20.9178631Z     },
2026-06-07T23:26:20.9178720Z     {
2026-06-07T23:26:20.9178816Z       "id": "REQ-DOCS-4",
2026-06-07T23:26:20.9179011Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-07T23:26:20.9179106Z       "requiredStages": [
2026-06-07T23:26:20.9179193Z         "doc",
2026-06-07T23:26:20.9179288Z         "impl",
2026-06-07T23:26:20.9179373Z         "unit"
2026-06-07T23:26:20.9179460Z       ],
2026-06-07T23:26:20.9179546Z       "stages": {
2026-06-07T23:26:20.9179632Z         "doc": {
2026-06-07T23:26:20.9179731Z           "complete": true,
2026-06-07T23:26:20.9179823Z           "evidence": [
2026-06-07T23:26:20.9179917Z             {
2026-06-07T23:26:20.9180027Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-07T23:26:20.9180123Z               "line": 35
2026-06-07T23:26:20.9180213Z             }
2026-06-07T23:26:20.9180299Z           ]
2026-06-07T23:26:20.9180394Z         },
2026-06-07T23:26:20.9180486Z         "impl": {
2026-06-07T23:26:20.9180579Z           "complete": true,
2026-06-07T23:26:20.9180675Z           "evidence": [
2026-06-07T23:26:20.9180767Z             {
2026-06-07T23:26:20.9180899Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9180989Z               "line": 522
2026-06-07T23:26:20.9181079Z             },
2026-06-07T23:26:20.9181171Z             {
2026-06-07T23:26:20.9181284Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:20.9181371Z               "line": 15
2026-06-07T23:26:20.9181466Z             }
2026-06-07T23:26:20.9181552Z           ]
2026-06-07T23:26:20.9181637Z         },
2026-06-07T23:26:20.9181829Z         "int": {
2026-06-07T23:26:20.9181923Z           "complete": false,
2026-06-07T23:26:20.9182019Z           "evidence": []
2026-06-07T23:26:20.9182105Z         },
2026-06-07T23:26:20.9182195Z         "unit": {
2026-06-07T23:26:20.9182295Z           "complete": true,
2026-06-07T23:26:20.9182472Z           "evidence": [
2026-06-07T23:26:20.9182562Z             {
2026-06-07T23:26:20.9182683Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9182777Z               "line": 978
2026-06-07T23:26:20.9182858Z             }
2026-06-07T23:26:20.9182949Z           ]
2026-06-07T23:26:20.9183041Z         }
2026-06-07T23:26:20.9183125Z       }
2026-06-07T23:26:20.9183211Z     },
2026-06-07T23:26:20.9183293Z     {
2026-06-07T23:26:20.9183388Z       "id": "REQ-DOCS-5",
2026-06-07T23:26:20.9183581Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-07T23:26:20.9183687Z       "requiredStages": [
2026-06-07T23:26:20.9183775Z         "impl",
2026-06-07T23:26:20.9183865Z         "int"
2026-06-07T23:26:20.9183961Z       ],
2026-06-07T23:26:20.9184047Z       "stages": {
2026-06-07T23:26:20.9184137Z         "doc": {
2026-06-07T23:26:20.9184228Z           "complete": false,
2026-06-07T23:26:20.9184324Z           "evidence": []
2026-06-07T23:26:20.9184423Z         },
2026-06-07T23:26:20.9184509Z         "impl": {
2026-06-07T23:26:20.9184606Z           "complete": true,
2026-06-07T23:26:20.9184695Z           "evidence": [
2026-06-07T23:26:20.9184786Z             {
2026-06-07T23:26:20.9184906Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9185001Z               "line": 523
2026-06-07T23:26:20.9185086Z             },
2026-06-07T23:26:20.9185353Z             {
2026-06-07T23:26:20.9185468Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:20.9185550Z               "line": 113
2026-06-07T23:26:20.9185630Z             }
2026-06-07T23:26:20.9185716Z           ]
2026-06-07T23:26:20.9185841Z         },
2026-06-07T23:26:20.9185955Z         "int": {
2026-06-07T23:26:20.9186044Z           "complete": true,
2026-06-07T23:26:20.9186124Z           "evidence": [
2026-06-07T23:26:20.9186201Z             {
2026-06-07T23:26:20.9186318Z               "path": ".github/workflows/ci.yml",
2026-06-07T23:26:20.9186427Z               "line": 86
2026-06-07T23:26:20.9186514Z             },
2026-06-07T23:26:20.9186600Z             {
2026-06-07T23:26:20.9186723Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9186819Z               "line": 1015
2026-06-07T23:26:20.9186900Z             }
2026-06-07T23:26:20.9187080Z           ]
2026-06-07T23:26:20.9187163Z         },
2026-06-07T23:26:20.9187253Z         "unit": {
2026-06-07T23:26:20.9187348Z           "complete": false,
2026-06-07T23:26:20.9187434Z           "evidence": []
2026-06-07T23:26:20.9187520Z         }
2026-06-07T23:26:20.9187605Z       }
2026-06-07T23:26:20.9187691Z     },
2026-06-07T23:26:20.9187773Z     {
2026-06-07T23:26:20.9187873Z       "id": "REQ-DOCS-6",
2026-06-07T23:26:20.9188197Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-07T23:26:20.9188292Z       "requiredStages": [
2026-06-07T23:26:20.9188383Z         "impl",
2026-06-07T23:26:20.9188474Z         "unit",
2026-06-07T23:26:20.9188559Z         "int"
2026-06-07T23:26:20.9188653Z       ],
2026-06-07T23:26:20.9188739Z       "stages": {
2026-06-07T23:26:20.9188825Z         "doc": {
2026-06-07T23:26:20.9191163Z           "complete": true,
2026-06-07T23:26:20.9191289Z           "evidence": [
2026-06-07T23:26:20.9191375Z             {
2026-06-07T23:26:20.9191525Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-07T23:26:20.9191621Z               "line": 4
2026-06-07T23:26:20.9191712Z             }
2026-06-07T23:26:20.9191802Z           ]
2026-06-07T23:26:20.9191882Z         },
2026-06-07T23:26:20.9191969Z         "impl": {
2026-06-07T23:26:20.9192065Z           "complete": true,
2026-06-07T23:26:20.9192313Z           "evidence": [
2026-06-07T23:26:20.9192404Z             {
2026-06-07T23:26:20.9192517Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9192609Z               "line": 3270
2026-06-07T23:26:20.9192693Z             }
2026-06-07T23:26:20.9192865Z           ]
2026-06-07T23:26:20.9192952Z         },
2026-06-07T23:26:20.9193037Z         "int": {
2026-06-07T23:26:20.9193132Z           "complete": true,
2026-06-07T23:26:20.9193224Z           "evidence": [
2026-06-07T23:26:20.9193309Z             {
2026-06-07T23:26:20.9193437Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-07T23:26:20.9193524Z               "line": 34
2026-06-07T23:26:20.9193610Z             }
2026-06-07T23:26:20.9193694Z           ]
2026-06-07T23:26:20.9193776Z         },
2026-06-07T23:26:20.9193863Z         "unit": {
2026-06-07T23:26:20.9193958Z           "complete": true,
2026-06-07T23:26:20.9194042Z           "evidence": [
2026-06-07T23:26:20.9194127Z             {
2026-06-07T23:26:20.9194238Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9194335Z               "line": 6618
2026-06-07T23:26:20.9194421Z             }
2026-06-07T23:26:20.9194507Z           ]
2026-06-07T23:26:20.9194589Z         }
2026-06-07T23:26:20.9194678Z       }
2026-06-07T23:26:20.9194773Z     },
2026-06-07T23:26:20.9194856Z     {
2026-06-07T23:26:20.9194951Z       "id": "REQ-EP-1",
2026-06-07T23:26:20.9195083Z       "title": "Day-one endpoint types; open type system",
2026-06-07T23:26:20.9195180Z       "requiredStages": [
2026-06-07T23:26:20.9195270Z         "impl",
2026-06-07T23:26:20.9195355Z         "unit"
2026-06-07T23:26:20.9195442Z       ],
2026-06-07T23:26:20.9195528Z       "stages": {
2026-06-07T23:26:20.9195614Z         "doc": {
2026-06-07T23:26:20.9195709Z           "complete": false,
2026-06-07T23:26:20.9195800Z           "evidence": []
2026-06-07T23:26:20.9195889Z         },
2026-06-07T23:26:20.9195976Z         "impl": {
2026-06-07T23:26:20.9196071Z           "complete": true,
2026-06-07T23:26:20.9196162Z           "evidence": [
2026-06-07T23:26:20.9196252Z             {
2026-06-07T23:26:20.9196381Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T23:26:20.9196473Z               "line": 77
2026-06-07T23:26:20.9196557Z             },
2026-06-07T23:26:20.9196646Z             {
2026-06-07T23:26:20.9196766Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T23:26:20.9196851Z               "line": 94
2026-06-07T23:26:20.9196936Z             }
2026-06-07T23:26:20.9197151Z           ]
2026-06-07T23:26:20.9197245Z         },
2026-06-07T23:26:20.9197335Z         "int": {
2026-06-07T23:26:20.9197427Z           "complete": false,
2026-06-07T23:26:20.9197517Z           "evidence": []
2026-06-07T23:26:20.9197598Z         },
2026-06-07T23:26:20.9197689Z         "unit": {
2026-06-07T23:26:20.9197780Z           "complete": true,
2026-06-07T23:26:20.9197870Z           "evidence": [
2026-06-07T23:26:20.9197955Z             {
2026-06-07T23:26:20.9198075Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T23:26:20.9198170Z               "line": 161
2026-06-07T23:26:20.9198251Z             },
2026-06-07T23:26:20.9198338Z             {
2026-06-07T23:26:20.9198452Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T23:26:20.9198547Z               "line": 178
2026-06-07T23:26:20.9198633Z             }
2026-06-07T23:26:20.9198715Z           ]
2026-06-07T23:26:20.9198804Z         }
2026-06-07T23:26:20.9198886Z       }
2026-06-07T23:26:20.9198982Z     },
2026-06-07T23:26:20.9199086Z     {
2026-06-07T23:26:20.9199189Z       "id": "REQ-EP-2",
2026-06-07T23:26:20.9199351Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-07T23:26:20.9199445Z       "requiredStages": [
2026-06-07T23:26:20.9199535Z         "impl",
2026-06-07T23:26:20.9199621Z         "unit"
2026-06-07T23:26:20.9199708Z       ],
2026-06-07T23:26:20.9199798Z       "stages": {
2026-06-07T23:26:20.9199883Z         "doc": {
2026-06-07T23:26:20.9200075Z           "complete": false,
2026-06-07T23:26:20.9200174Z           "evidence": []
2026-06-07T23:26:20.9200255Z         },
2026-06-07T23:26:20.9200342Z         "impl": {
2026-06-07T23:26:20.9200437Z           "complete": true,
2026-06-07T23:26:20.9200527Z           "evidence": [
2026-06-07T23:26:20.9200704Z             {
2026-06-07T23:26:20.9200822Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T23:26:20.9200915Z               "line": 114
2026-06-07T23:26:20.9201005Z             },
2026-06-07T23:26:20.9201085Z             {
2026-06-07T23:26:20.9201205Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T23:26:20.9201291Z               "line": 131
2026-06-07T23:26:20.9201380Z             },
2026-06-07T23:26:20.9201466Z             {
2026-06-07T23:26:20.9201577Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T23:26:20.9201671Z               "line": 138
2026-06-07T23:26:20.9201752Z             }
2026-06-07T23:26:20.9201844Z           ]
2026-06-07T23:26:20.9201930Z         },
2026-06-07T23:26:20.9202019Z         "int": {
2026-06-07T23:26:20.9202109Z           "complete": false,
2026-06-07T23:26:20.9202205Z           "evidence": []
2026-06-07T23:26:20.9202286Z         },
2026-06-07T23:26:20.9202376Z         "unit": {
2026-06-07T23:26:20.9202476Z           "complete": true,
2026-06-07T23:26:20.9202568Z           "evidence": [
2026-06-07T23:26:20.9202654Z             {
2026-06-07T23:26:20.9202772Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T23:26:20.9202864Z               "line": 190
2026-06-07T23:26:20.9202949Z             },
2026-06-07T23:26:20.9203034Z             {
2026-06-07T23:26:20.9203154Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T23:26:20.9203244Z               "line": 208
2026-06-07T23:26:20.9203330Z             },
2026-06-07T23:26:20.9203411Z             {
2026-06-07T23:26:20.9203526Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T23:26:20.9203615Z               "line": 221
2026-06-07T23:26:20.9203702Z             }
2026-06-07T23:26:20.9203793Z           ]
2026-06-07T23:26:20.9203879Z         }
2026-06-07T23:26:20.9203959Z       }
2026-06-07T23:26:20.9204045Z     },
2026-06-07T23:26:20.9204127Z     {
2026-06-07T23:26:20.9204222Z       "id": "REQ-EP-3",
2026-06-07T23:26:20.9204404Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-07T23:26:20.9204495Z       "requiredStages": [
2026-06-07T23:26:20.9204583Z         "impl",
2026-06-07T23:26:20.9204669Z         "unit"
2026-06-07T23:26:20.9204759Z       ],
2026-06-07T23:26:20.9204845Z       "stages": {
2026-06-07T23:26:20.9204933Z         "doc": {
2026-06-07T23:26:20.9205014Z           "complete": false,
2026-06-07T23:26:20.9205106Z           "evidence": []
2026-06-07T23:26:20.9205187Z         },
2026-06-07T23:26:20.9205272Z         "impl": {
2026-06-07T23:26:20.9205363Z           "complete": true,
2026-06-07T23:26:20.9205454Z           "evidence": [
2026-06-07T23:26:20.9205530Z             {
2026-06-07T23:26:20.9205648Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T23:26:20.9205745Z               "line": 31
2026-06-07T23:26:20.9205835Z             },
2026-06-07T23:26:20.9205910Z             {
2026-06-07T23:26:20.9206021Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T23:26:20.9206107Z               "line": 49
2026-06-07T23:26:20.9206197Z             }
2026-06-07T23:26:20.9206273Z           ]
2026-06-07T23:26:20.9206365Z         },
2026-06-07T23:26:20.9206464Z         "int": {
2026-06-07T23:26:20.9206569Z           "complete": false,
2026-06-07T23:26:20.9206656Z           "evidence": []
2026-06-07T23:26:20.9206741Z         },
2026-06-07T23:26:20.9206826Z         "unit": {
2026-06-07T23:26:20.9206917Z           "complete": true,
2026-06-07T23:26:20.9207093Z           "evidence": [
2026-06-07T23:26:20.9207179Z             {
2026-06-07T23:26:20.9207297Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T23:26:20.9207392Z               "line": 156
2026-06-07T23:26:20.9207576Z             },
2026-06-07T23:26:20.9207668Z             {
2026-06-07T23:26:20.9207781Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T23:26:20.9207871Z               "line": 164
2026-06-07T23:26:20.9207963Z             },
2026-06-07T23:26:20.9208124Z             {
2026-06-07T23:26:20.9208239Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T23:26:20.9208330Z               "line": 177
2026-06-07T23:26:20.9208416Z             },
2026-06-07T23:26:20.9208497Z             {
2026-06-07T23:26:20.9208617Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T23:26:20.9208697Z               "line": 200
2026-06-07T23:26:20.9208778Z             },
2026-06-07T23:26:20.9208864Z             {
2026-06-07T23:26:20.9208969Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T23:26:20.9209083Z               "line": 216
2026-06-07T23:26:20.9209169Z             },
2026-06-07T23:26:20.9209252Z             {
2026-06-07T23:26:20.9209374Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T23:26:20.9209465Z               "line": 233
2026-06-07T23:26:20.9209552Z             }
2026-06-07T23:26:20.9209623Z           ]
2026-06-07T23:26:20.9209707Z         }
2026-06-07T23:26:20.9209778Z       }
2026-06-07T23:26:20.9209874Z     },
2026-06-07T23:26:20.9209959Z     {
2026-06-07T23:26:20.9210048Z       "id": "REQ-EP-4",
2026-06-07T23:26:20.9210196Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-07T23:26:20.9210292Z       "requiredStages": [
2026-06-07T23:26:20.9210382Z         "impl",
2026-06-07T23:26:20.9210462Z         "unit"
2026-06-07T23:26:20.9210554Z       ],
2026-06-07T23:26:20.9210645Z       "stages": {
2026-06-07T23:26:20.9210729Z         "doc": {
2026-06-07T23:26:20.9210820Z           "complete": false,
2026-06-07T23:26:20.9210916Z           "evidence": []
2026-06-07T23:26:20.9211006Z         },
2026-06-07T23:26:20.9211092Z         "impl": {
2026-06-07T23:26:20.9211188Z           "complete": true,
2026-06-07T23:26:20.9211287Z           "evidence": [
2026-06-07T23:26:20.9211368Z             {
2026-06-07T23:26:20.9211489Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T23:26:20.9211574Z               "line": 461
2026-06-07T23:26:20.9211660Z             },
2026-06-07T23:26:20.9211751Z             {
2026-06-07T23:26:20.9211865Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T23:26:20.9211954Z               "line": 706
2026-06-07T23:26:20.9212036Z             },
2026-06-07T23:26:20.9212123Z             {
2026-06-07T23:26:20.9212236Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T23:26:20.9212332Z               "line": 805
2026-06-07T23:26:20.9212414Z             },
2026-06-07T23:26:20.9212500Z             {
2026-06-07T23:26:20.9212612Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T23:26:20.9212702Z               "line": 83
2026-06-07T23:26:20.9212784Z             },
2026-06-07T23:26:20.9212870Z             {
2026-06-07T23:26:20.9212988Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T23:26:20.9213075Z               "line": 460
2026-06-07T23:26:20.9213166Z             },
2026-06-07T23:26:20.9213251Z             {
2026-06-07T23:26:20.9213355Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T23:26:20.9213452Z               "line": 546
2026-06-07T23:26:20.9213538Z             },
2026-06-07T23:26:20.9213622Z             {
2026-06-07T23:26:20.9213733Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:20.9213823Z               "line": 181
2026-06-07T23:26:20.9213914Z             },
2026-06-07T23:26:20.9213995Z             {
2026-06-07T23:26:20.9214115Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:20.9214210Z               "line": 317
2026-06-07T23:26:20.9214300Z             },
2026-06-07T23:26:20.9214382Z             {
2026-06-07T23:26:20.9214500Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:20.9214591Z               "line": 727
2026-06-07T23:26:20.9214750Z             }
2026-06-07T23:26:20.9214838Z           ]
2026-06-07T23:26:20.9214925Z         },
2026-06-07T23:26:20.9215012Z         "int": {
2026-06-07T23:26:20.9215102Z           "complete": false,
2026-06-07T23:26:20.9215196Z           "evidence": []
2026-06-07T23:26:20.9215583Z         },
2026-06-07T23:26:20.9215671Z         "unit": {
2026-06-07T23:26:20.9215766Z           "complete": true,
2026-06-07T23:26:20.9215856Z           "evidence": [
2026-06-07T23:26:20.9215942Z             {
2026-06-07T23:26:20.9216061Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T23:26:20.9216175Z               "line": 637
2026-06-07T23:26:20.9216257Z             },
2026-06-07T23:26:20.9216343Z             {
2026-06-07T23:26:20.9216475Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-07T23:26:20.9216562Z               "line": 75
2026-06-07T23:26:20.9216653Z             },
2026-06-07T23:26:20.9216734Z             {
2026-06-07T23:26:20.9216872Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-07T23:26:20.9217047Z               "line": 146
2026-06-07T23:26:20.9217134Z             }
2026-06-07T23:26:20.9217221Z           ]
2026-06-07T23:26:20.9217302Z         }
2026-06-07T23:26:20.9217386Z       }
2026-06-07T23:26:20.9217477Z     },
2026-06-07T23:26:20.9217559Z     {
2026-06-07T23:26:20.9217654Z       "id": "REQ-EP-5",
2026-06-07T23:26:20.9218280Z       "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-07T23:26:20.9218375Z       "requiredStages": [
2026-06-07T23:26:20.9218465Z         "impl",
2026-06-07T23:26:20.9218548Z         "unit",
2026-06-07T23:26:20.9218633Z         "int"
2026-06-07T23:26:20.9218718Z       ],
2026-06-07T23:26:20.9218814Z       "stages": {
2026-06-07T23:26:20.9218895Z         "doc": {
2026-06-07T23:26:20.9218999Z           "complete": false,
2026-06-07T23:26:20.9219090Z           "evidence": []
2026-06-07T23:26:20.9219177Z         },
2026-06-07T23:26:20.9219267Z         "impl": {
2026-06-07T23:26:20.9219352Z           "complete": true,
2026-06-07T23:26:20.9219444Z           "evidence": [
2026-06-07T23:26:20.9219525Z             {
2026-06-07T23:26:20.9219657Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9219743Z               "line": 298
2026-06-07T23:26:20.9219840Z             },
2026-06-07T23:26:20.9219924Z             {
2026-06-07T23:26:20.9220044Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T23:26:20.9220136Z               "line": 18
2026-06-07T23:26:20.9220216Z             },
2026-06-07T23:26:20.9220305Z             {
2026-06-07T23:26:20.9220419Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T23:26:20.9220514Z               "line": 63
2026-06-07T23:26:20.9220599Z             },
2026-06-07T23:26:20.9220684Z             {
2026-06-07T23:26:20.9220804Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T23:26:20.9220894Z               "line": 92
2026-06-07T23:26:20.9220979Z             },
2026-06-07T23:26:20.9221061Z             {
2026-06-07T23:26:20.9221176Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T23:26:20.9221271Z               "line": 167
2026-06-07T23:26:20.9221352Z             },
2026-06-07T23:26:20.9221438Z             {
2026-06-07T23:26:20.9221557Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T23:26:20.9221647Z               "line": 179
2026-06-07T23:26:20.9221734Z             },
2026-06-07T23:26:20.9221819Z             {
2026-06-07T23:26:20.9221938Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9222025Z               "line": 114
2026-06-07T23:26:20.9222115Z             },
2026-06-07T23:26:20.9222200Z             {
2026-06-07T23:26:20.9222330Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T23:26:20.9222544Z               "line": 22
2026-06-07T23:26:20.9222630Z             },
2026-06-07T23:26:20.9222716Z             {
2026-06-07T23:26:20.9222839Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T23:26:20.9222930Z               "line": 129
2026-06-07T23:26:20.9223102Z             },
2026-06-07T23:26:20.9223191Z             {
2026-06-07T23:26:20.9223311Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T23:26:20.9223402Z               "line": 156
2026-06-07T23:26:20.9223492Z             },
2026-06-07T23:26:20.9223582Z             {
2026-06-07T23:26:20.9223703Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T23:26:20.9223788Z               "line": 178
2026-06-07T23:26:20.9223882Z             },
2026-06-07T23:26:20.9223969Z             {
2026-06-07T23:26:20.9224089Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T23:26:20.9224182Z               "line": 203
2026-06-07T23:26:20.9224270Z             },
2026-06-07T23:26:20.9224360Z             {
2026-06-07T23:26:20.9224479Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T23:26:20.9224569Z               "line": 229
2026-06-07T23:26:20.9224661Z             },
2026-06-07T23:26:20.9224745Z             {
2026-06-07T23:26:20.9224865Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T23:26:20.9224961Z               "line": 252
2026-06-07T23:26:20.9225046Z             },
2026-06-07T23:26:20.9225122Z             {
2026-06-07T23:26:20.9225238Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9225314Z               "line": 81
2026-06-07T23:26:20.9225393Z             },
2026-06-07T23:26:20.9225480Z             {
2026-06-07T23:26:20.9225586Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9225685Z               "line": 3575
2026-06-07T23:26:20.9225774Z             },
2026-06-07T23:26:20.9225884Z             {
2026-06-07T23:26:20.9226016Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9226111Z               "line": 3698
2026-06-07T23:26:20.9226197Z             },
2026-06-07T23:26:20.9226278Z             {
2026-06-07T23:26:20.9226387Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9226478Z               "line": 3859
2026-06-07T23:26:20.9226565Z             },
2026-06-07T23:26:20.9226660Z             {
2026-06-07T23:26:20.9226759Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9226860Z               "line": 4241
2026-06-07T23:26:20.9227045Z             }
2026-06-07T23:26:20.9227137Z           ]
2026-06-07T23:26:20.9227223Z         },
2026-06-07T23:26:20.9227308Z         "int": {
2026-06-07T23:26:20.9227408Z           "complete": true,
2026-06-07T23:26:20.9227500Z           "evidence": [
2026-06-07T23:26:20.9227584Z             {
2026-06-07T23:26:20.9227713Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-07T23:26:20.9227805Z               "line": 16
2026-06-07T23:26:20.9227890Z             },
2026-06-07T23:26:20.9227976Z             {
2026-06-07T23:26:20.9228101Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-07T23:26:20.9228191Z               "line": 15
2026-06-07T23:26:20.9228279Z             }
2026-06-07T23:26:20.9228365Z           ]
2026-06-07T23:26:20.9228451Z         },
2026-06-07T23:26:20.9228536Z         "unit": {
2026-06-07T23:26:20.9228639Z           "complete": true,
2026-06-07T23:26:20.9228730Z           "evidence": [
2026-06-07T23:26:20.9228816Z             {
2026-06-07T23:26:20.9228930Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T23:26:20.9229020Z               "line": 246
2026-06-07T23:26:20.9229108Z             },
2026-06-07T23:26:20.9229198Z             {
2026-06-07T23:26:20.9229316Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T23:26:20.9229408Z               "line": 306
2026-06-07T23:26:20.9229493Z             },
2026-06-07T23:26:20.9229578Z             {
2026-06-07T23:26:20.9229689Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T23:26:20.9229893Z               "line": 362
2026-06-07T23:26:20.9229989Z             },
2026-06-07T23:26:20.9230076Z             {
2026-06-07T23:26:20.9230199Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T23:26:20.9230289Z               "line": 268
2026-06-07T23:26:20.9230465Z             },
2026-06-07T23:26:20.9230546Z             {
2026-06-07T23:26:20.9230667Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T23:26:20.9230757Z               "line": 291
2026-06-07T23:26:20.9230851Z             },
2026-06-07T23:26:20.9230936Z             {
2026-06-07T23:26:20.9231056Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9231149Z               "line": 491
2026-06-07T23:26:20.9231239Z             },
2026-06-07T23:26:20.9231330Z             {
2026-06-07T23:26:20.9231436Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9231526Z               "line": 5023
2026-06-07T23:26:20.9231616Z             },
2026-06-07T23:26:20.9231702Z             {
2026-06-07T23:26:20.9231816Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9231907Z               "line": 5147
2026-06-07T23:26:20.9231994Z             },
2026-06-07T23:26:20.9232079Z             {
2026-06-07T23:26:20.9232179Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9232280Z               "line": 5734
2026-06-07T23:26:20.9232360Z             },
2026-06-07T23:26:20.9232451Z             {
2026-06-07T23:26:20.9232556Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9232647Z               "line": 5799
2026-06-07T23:26:20.9232737Z             }
2026-06-07T23:26:20.9232818Z           ]
2026-06-07T23:26:20.9232905Z         }
2026-06-07T23:26:20.9232985Z       }
2026-06-07T23:26:20.9233075Z     },
2026-06-07T23:26:20.9233166Z     {
2026-06-07T23:26:20.9233267Z       "id": "REQ-FRONT-1",
2026-06-07T23:26:20.9233442Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-07T23:26:20.9233534Z       "requiredStages": [],
2026-06-07T23:26:20.9233629Z       "stages": {
2026-06-07T23:26:20.9233718Z         "doc": {
2026-06-07T23:26:20.9233818Z           "complete": false,
2026-06-07T23:26:20.9233904Z           "evidence": []
2026-06-07T23:26:20.9233995Z         },
2026-06-07T23:26:20.9234089Z         "impl": {
2026-06-07T23:26:20.9234185Z           "complete": false,
2026-06-07T23:26:20.9234281Z           "evidence": []
2026-06-07T23:26:20.9234371Z         },
2026-06-07T23:26:20.9234457Z         "int": {
2026-06-07T23:26:20.9234548Z           "complete": false,
2026-06-07T23:26:20.9234644Z           "evidence": []
2026-06-07T23:26:20.9234729Z         },
2026-06-07T23:26:20.9234815Z         "unit": {
2026-06-07T23:26:20.9234906Z           "complete": false,
2026-06-07T23:26:20.9234996Z           "evidence": []
2026-06-07T23:26:20.9235086Z         }
2026-06-07T23:26:20.9235169Z       }
2026-06-07T23:26:20.9235254Z     },
2026-06-07T23:26:20.9235339Z     {
2026-06-07T23:26:20.9235454Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-07T23:26:20.9235629Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-07T23:26:20.9235721Z       "requiredStages": [
2026-06-07T23:26:20.9235812Z         "impl",
2026-06-07T23:26:20.9235898Z         "unit"
2026-06-07T23:26:20.9235987Z       ],
2026-06-07T23:26:20.9236079Z       "stages": {
2026-06-07T23:26:20.9236165Z         "doc": {
2026-06-07T23:26:20.9236264Z           "complete": false,
2026-06-07T23:26:20.9236354Z           "evidence": []
2026-06-07T23:26:20.9236440Z         },
2026-06-07T23:26:20.9236525Z         "impl": {
2026-06-07T23:26:20.9236623Z           "complete": true,
2026-06-07T23:26:20.9236713Z           "evidence": [
2026-06-07T23:26:20.9236801Z             {
2026-06-07T23:26:20.9236929Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9237572Z               "line": 149
2026-06-07T23:26:20.9237667Z             },
2026-06-07T23:26:20.9237754Z             {
2026-06-07T23:26:20.9237968Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T23:26:20.9238069Z               "line": 18
2026-06-07T23:26:20.9238149Z             },
2026-06-07T23:26:20.9238239Z             {
2026-06-07T23:26:20.9238351Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T23:26:20.9238441Z               "line": 98
2026-06-07T23:26:20.9238617Z             }
2026-06-07T23:26:20.9238704Z           ]
2026-06-07T23:26:20.9238788Z         },
2026-06-07T23:26:20.9238873Z         "int": {
2026-06-07T23:26:20.9238978Z           "complete": false,
2026-06-07T23:26:20.9239068Z           "evidence": []
2026-06-07T23:26:20.9239152Z         },
2026-06-07T23:26:20.9239242Z         "unit": {
2026-06-07T23:26:20.9239333Z           "complete": true,
2026-06-07T23:26:20.9239429Z           "evidence": [
2026-06-07T23:26:20.9239519Z             {
2026-06-07T23:26:20.9239638Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9239729Z               "line": 565
2026-06-07T23:26:20.9239819Z             },
2026-06-07T23:26:20.9239910Z             {
2026-06-07T23:26:20.9240025Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T23:26:20.9240120Z               "line": 159
2026-06-07T23:26:20.9240206Z             },
2026-06-07T23:26:20.9240292Z             {
2026-06-07T23:26:20.9240401Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T23:26:20.9240501Z               "line": 231
2026-06-07T23:26:20.9240583Z             }
2026-06-07T23:26:20.9240660Z           ]
2026-06-07T23:26:20.9240749Z         }
2026-06-07T23:26:20.9240830Z       }
2026-06-07T23:26:20.9240917Z     },
2026-06-07T23:26:20.9241002Z     {
2026-06-07T23:26:20.9241140Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-07T23:26:20.9241540Z       "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-07T23:26:20.9241639Z       "requiredStages": [
2026-06-07T23:26:20.9241733Z         "impl",
2026-06-07T23:26:20.9241823Z         "unit"
2026-06-07T23:26:20.9241915Z       ],
2026-06-07T23:26:20.9242000Z       "stages": {
2026-06-07T23:26:20.9242095Z         "doc": {
2026-06-07T23:26:20.9242186Z           "complete": true,
2026-06-07T23:26:20.9242282Z           "evidence": [
2026-06-07T23:26:20.9242371Z             {
2026-06-07T23:26:20.9242482Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T23:26:20.9242572Z               "line": 217
2026-06-07T23:26:20.9242658Z             }
2026-06-07T23:26:20.9242748Z           ]
2026-06-07T23:26:20.9242830Z         },
2026-06-07T23:26:20.9242920Z         "impl": {
2026-06-07T23:26:20.9243011Z           "complete": true,
2026-06-07T23:26:20.9243101Z           "evidence": [
2026-06-07T23:26:20.9243193Z             {
2026-06-07T23:26:20.9243316Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:20.9243406Z               "line": 302
2026-06-07T23:26:20.9243494Z             },
2026-06-07T23:26:20.9243583Z             {
2026-06-07T23:26:20.9243712Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:20.9243799Z               "line": 257
2026-06-07T23:26:20.9243889Z             },
2026-06-07T23:26:20.9243973Z             {
2026-06-07T23:26:20.9244094Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:20.9244189Z               "line": 405
2026-06-07T23:26:20.9244274Z             },
2026-06-07T23:26:20.9244363Z             {
2026-06-07T23:26:20.9244474Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T23:26:20.9244569Z               "line": 77
2026-06-07T23:26:20.9244654Z             }
2026-06-07T23:26:20.9244741Z           ]
2026-06-07T23:26:20.9244832Z         },
2026-06-07T23:26:20.9244912Z         "int": {
2026-06-07T23:26:20.9245012Z           "complete": false,
2026-06-07T23:26:20.9245099Z           "evidence": []
2026-06-07T23:26:20.9245185Z         },
2026-06-07T23:26:20.9245270Z         "unit": {
2026-06-07T23:26:20.9245365Z           "complete": true,
2026-06-07T23:26:20.9245532Z           "evidence": [
2026-06-07T23:26:20.9245618Z             {
2026-06-07T23:26:20.9245738Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:20.9245828Z               "line": 478
2026-06-07T23:26:20.9245914Z             },
2026-06-07T23:26:20.9246000Z             {
2026-06-07T23:26:20.9246204Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:20.9246295Z               "line": 516
2026-06-07T23:26:20.9246377Z             },
2026-06-07T23:26:20.9246467Z             {
2026-06-07T23:26:20.9246581Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T23:26:20.9246668Z               "line": 166
2026-06-07T23:26:20.9246754Z             }
2026-06-07T23:26:20.9246838Z           ]
2026-06-07T23:26:20.9246923Z         }
2026-06-07T23:26:20.9247085Z       }
2026-06-07T23:26:20.9247169Z     },
2026-06-07T23:26:20.9247254Z     {
2026-06-07T23:26:20.9247375Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-07T23:26:20.9247922Z       "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-07T23:26:20.9248038Z       "requiredStages": [
2026-06-07T23:26:20.9248128Z         "impl",
2026-06-07T23:26:20.9248213Z         "unit"
2026-06-07T23:26:20.9248305Z       ],
2026-06-07T23:26:20.9248390Z       "stages": {
2026-06-07T23:26:20.9248523Z         "doc": {
2026-06-07T23:26:20.9248615Z           "complete": false,
2026-06-07T23:26:20.9248709Z           "evidence": []
2026-06-07T23:26:20.9248804Z         },
2026-06-07T23:26:20.9248886Z         "impl": {
2026-06-07T23:26:20.9248987Z           "complete": true,
2026-06-07T23:26:20.9249081Z           "evidence": [
2026-06-07T23:26:20.9249216Z             {
2026-06-07T23:26:20.9249344Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-07T23:26:20.9249443Z               "line": 22
2026-06-07T23:26:20.9249538Z             },
2026-06-07T23:26:20.9249623Z             {
2026-06-07T23:26:20.9249745Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T23:26:20.9249840Z               "line": 476
2026-06-07T23:26:20.9249928Z             },
2026-06-07T23:26:20.9250008Z             {
2026-06-07T23:26:20.9250131Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-07T23:26:20.9250223Z               "line": 17
2026-06-07T23:26:20.9250303Z             },
2026-06-07T23:26:20.9250388Z             {
2026-06-07T23:26:20.9250504Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-07T23:26:20.9250599Z               "line": 140
2026-06-07T23:26:20.9250685Z             },
2026-06-07T23:26:20.9250771Z             {
2026-06-07T23:26:20.9250891Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9250981Z               "line": 194
2026-06-07T23:26:20.9251066Z             },
2026-06-07T23:26:20.9251148Z             {
2026-06-07T23:26:20.9251276Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9251366Z               "line": 219
2026-06-07T23:26:20.9251448Z             },
2026-06-07T23:26:20.9251539Z             {
2026-06-07T23:26:20.9251658Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9251748Z               "line": 245
2026-06-07T23:26:20.9251835Z             },
2026-06-07T23:26:20.9251919Z             {
2026-06-07T23:26:20.9252037Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T23:26:20.9252128Z               "line": 124
2026-06-07T23:26:20.9252218Z             },
2026-06-07T23:26:20.9252298Z             {
2026-06-07T23:26:20.9252417Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T23:26:20.9252508Z               "line": 224
2026-06-07T23:26:20.9252593Z             }
2026-06-07T23:26:20.9252683Z           ]
2026-06-07T23:26:20.9252765Z         },
2026-06-07T23:26:20.9252851Z         "int": {
2026-06-07T23:26:20.9252941Z           "complete": false,
2026-06-07T23:26:20.9253137Z           "evidence": []
2026-06-07T23:26:20.9253223Z         },
2026-06-07T23:26:20.9253313Z         "unit": {
2026-06-07T23:26:20.9253405Z           "complete": true,
2026-06-07T23:26:20.9253494Z           "evidence": [
2026-06-07T23:26:20.9253580Z             {
2026-06-07T23:26:20.9253791Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-07T23:26:20.9253881Z               "line": 62
2026-06-07T23:26:20.9253962Z             },
2026-06-07T23:26:20.9254049Z             {
2026-06-07T23:26:20.9254166Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-07T23:26:20.9254253Z               "line": 72
2026-06-07T23:26:20.9254339Z             },
2026-06-07T23:26:20.9254420Z             {
2026-06-07T23:26:20.9254538Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-07T23:26:20.9254625Z               "line": 84
2026-06-07T23:26:20.9254717Z             },
2026-06-07T23:26:20.9254805Z             {
2026-06-07T23:26:20.9254923Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-07T23:26:20.9255015Z               "line": 337
2026-06-07T23:26:20.9255101Z             },
2026-06-07T23:26:20.9255196Z             {
2026-06-07T23:26:20.9255310Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-07T23:26:20.9255401Z               "line": 274
2026-06-07T23:26:20.9255491Z             },
2026-06-07T23:26:20.9255572Z             {
2026-06-07T23:26:20.9255692Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-07T23:26:20.9255778Z               "line": 315
2026-06-07T23:26:20.9255868Z             },
2026-06-07T23:26:20.9255950Z             {
2026-06-07T23:26:20.9256069Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-07T23:26:20.9256164Z               "line": 353
2026-06-07T23:26:20.9256250Z             },
2026-06-07T23:26:20.9256341Z             {
2026-06-07T23:26:20.9256459Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9258616Z               "line": 656
2026-06-07T23:26:20.9258730Z             },
2026-06-07T23:26:20.9258817Z             {
2026-06-07T23:26:20.9258964Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T23:26:20.9259059Z               "line": 397
2026-06-07T23:26:20.9259146Z             },
2026-06-07T23:26:20.9259227Z             {
2026-06-07T23:26:20.9259365Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T23:26:20.9259451Z               "line": 440
2026-06-07T23:26:20.9259542Z             }
2026-06-07T23:26:20.9259622Z           ]
2026-06-07T23:26:20.9259703Z         }
2026-06-07T23:26:20.9259791Z       }
2026-06-07T23:26:20.9259871Z     },
2026-06-07T23:26:20.9259955Z     {
2026-06-07T23:26:20.9260069Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-07T23:26:20.9260282Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-07T23:26:20.9260377Z       "requiredStages": [
2026-06-07T23:26:20.9260463Z         "impl",
2026-06-07T23:26:20.9260549Z         "unit"
2026-06-07T23:26:20.9260634Z       ],
2026-06-07T23:26:20.9260730Z       "stages": {
2026-06-07T23:26:20.9260816Z         "doc": {
2026-06-07T23:26:20.9260911Z           "complete": false,
2026-06-07T23:26:20.9261001Z           "evidence": []
2026-06-07T23:26:20.9261088Z         },
2026-06-07T23:26:20.9261183Z         "impl": {
2026-06-07T23:26:20.9261278Z           "complete": true,
2026-06-07T23:26:20.9261369Z           "evidence": [
2026-06-07T23:26:20.9261451Z             {
2026-06-07T23:26:20.9261574Z               "path": "crates/spt-term/src/reader.rs",
2026-06-07T23:26:20.9261664Z               "line": 169
2026-06-07T23:26:20.9261747Z             }
2026-06-07T23:26:20.9261831Z           ]
2026-06-07T23:26:20.9261912Z         },
2026-06-07T23:26:20.9261998Z         "int": {
2026-06-07T23:26:20.9262090Z           "complete": true,
2026-06-07T23:26:20.9262183Z           "evidence": [
2026-06-07T23:26:20.9262265Z             {
2026-06-07T23:26:20.9262376Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-07T23:26:20.9262588Z               "line": 44
2026-06-07T23:26:20.9262679Z             },
2026-06-07T23:26:20.9262764Z             {
2026-06-07T23:26:20.9262877Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-07T23:26:20.9262962Z               "line": 66
2026-06-07T23:26:20.9263049Z             }
2026-06-07T23:26:20.9263220Z           ]
2026-06-07T23:26:20.9263306Z         },
2026-06-07T23:26:20.9263387Z         "unit": {
2026-06-07T23:26:20.9263487Z           "complete": true,
2026-06-07T23:26:20.9263577Z           "evidence": [
2026-06-07T23:26:20.9263660Z             {
2026-06-07T23:26:20.9263769Z               "path": "crates/spt-term/src/reader.rs",
2026-06-07T23:26:20.9263854Z               "line": 186
2026-06-07T23:26:20.9263941Z             },
2026-06-07T23:26:20.9264022Z             {
2026-06-07T23:26:20.9264131Z               "path": "crates/spt-term/src/reader.rs",
2026-06-07T23:26:20.9264221Z               "line": 238
2026-06-07T23:26:20.9264309Z             },
2026-06-07T23:26:20.9264388Z             {
2026-06-07T23:26:20.9264508Z               "path": "crates/spt-term/src/reader.rs",
2026-06-07T23:26:20.9264599Z               "line": 266
2026-06-07T23:26:20.9264680Z             }
2026-06-07T23:26:20.9264765Z           ]
2026-06-07T23:26:20.9264851Z         }
2026-06-07T23:26:20.9264938Z       }
2026-06-07T23:26:20.9265027Z     },
2026-06-07T23:26:20.9265108Z     {
2026-06-07T23:26:20.9265229Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-07T23:26:20.9265633Z       "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-07T23:26:20.9265727Z       "requiredStages": [
2026-06-07T23:26:20.9265812Z         "impl",
2026-06-07T23:26:20.9265900Z         "unit",
2026-06-07T23:26:20.9265981Z         "int"
2026-06-07T23:26:20.9266070Z       ],
2026-06-07T23:26:20.9266156Z       "stages": {
2026-06-07T23:26:20.9266238Z         "doc": {
2026-06-07T23:26:20.9266333Z           "complete": false,
2026-06-07T23:26:20.9266433Z           "evidence": []
2026-06-07T23:26:20.9266515Z         },
2026-06-07T23:26:20.9266605Z         "impl": {
2026-06-07T23:26:20.9266695Z           "complete": true,
2026-06-07T23:26:20.9266786Z           "evidence": [
2026-06-07T23:26:20.9266873Z             {
2026-06-07T23:26:20.9267100Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9267192Z               "line": 150
2026-06-07T23:26:20.9267277Z             },
2026-06-07T23:26:20.9267358Z             {
2026-06-07T23:26:20.9267479Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9267573Z               "line": 174
2026-06-07T23:26:20.9267658Z             },
2026-06-07T23:26:20.9267745Z             {
2026-06-07T23:26:20.9267855Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9267939Z               "line": 79
2026-06-07T23:26:20.9268029Z             },
2026-06-07T23:26:20.9268110Z             {
2026-06-07T23:26:20.9268224Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T23:26:20.9268313Z               "line": 51
2026-06-07T23:26:20.9268399Z             },
2026-06-07T23:26:20.9268481Z             {
2026-06-07T23:26:20.9268590Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9268679Z               "line": 154
2026-06-07T23:26:20.9268762Z             },
2026-06-07T23:26:20.9268853Z             {
2026-06-07T23:26:20.9268971Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T23:26:20.9269057Z               "line": 27
2026-06-07T23:26:20.9269148Z             },
2026-06-07T23:26:20.9269229Z             {
2026-06-07T23:26:20.9269343Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T23:26:20.9269430Z               "line": 79
2026-06-07T23:26:20.9269520Z             },
2026-06-07T23:26:20.9269586Z             {
2026-06-07T23:26:20.9269696Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T23:26:20.9269792Z               "line": 102
2026-06-07T23:26:20.9269972Z             },
2026-06-07T23:26:20.9270059Z             {
2026-06-07T23:26:20.9270177Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9270263Z               "line": 116
2026-06-07T23:26:20.9270351Z             }
2026-06-07T23:26:20.9270431Z           ]
2026-06-07T23:26:20.9270605Z         },
2026-06-07T23:26:20.9270687Z         "int": {
2026-06-07T23:26:20.9270781Z           "complete": true,
2026-06-07T23:26:20.9270870Z           "evidence": [
2026-06-07T23:26:20.9270956Z             {
2026-06-07T23:26:20.9271085Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-07T23:26:20.9271176Z               "line": 35
2026-06-07T23:26:20.9271261Z             }
2026-06-07T23:26:20.9271338Z           ]
2026-06-07T23:26:20.9271424Z         },
2026-06-07T23:26:20.9271505Z         "unit": {
2026-06-07T23:26:20.9271600Z           "complete": true,
2026-06-07T23:26:20.9271687Z           "evidence": [
2026-06-07T23:26:20.9271772Z             {
2026-06-07T23:26:20.9271900Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9271987Z               "line": 584
2026-06-07T23:26:20.9272072Z             },
2026-06-07T23:26:20.9272153Z             {
2026-06-07T23:26:20.9272264Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9272363Z               "line": 351
2026-06-07T23:26:20.9272444Z             },
2026-06-07T23:26:20.9272530Z             {
2026-06-07T23:26:20.9272640Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T23:26:20.9272734Z               "line": 124
2026-06-07T23:26:20.9272815Z             },
2026-06-07T23:26:20.9272903Z             {
2026-06-07T23:26:20.9273017Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T23:26:20.9273106Z               "line": 143
2026-06-07T23:26:20.9273186Z             },
2026-06-07T23:26:20.9273268Z             {
2026-06-07T23:26:20.9273385Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T23:26:20.9273470Z               "line": 160
2026-06-07T23:26:20.9273556Z             },
2026-06-07T23:26:20.9273643Z             {
2026-06-07T23:26:20.9273751Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T23:26:20.9273842Z               "line": 187
2026-06-07T23:26:20.9273925Z             },
2026-06-07T23:26:20.9274015Z             {
2026-06-07T23:26:20.9274123Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T23:26:20.9274215Z               "line": 206
2026-06-07T23:26:20.9274300Z             },
2026-06-07T23:26:20.9274381Z             {
2026-06-07T23:26:20.9274491Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9274577Z               "line": 229
2026-06-07T23:26:20.9274658Z             }
2026-06-07T23:26:20.9274738Z           ]
2026-06-07T23:26:20.9274826Z         }
2026-06-07T23:26:20.9274911Z       }
2026-06-07T23:26:20.9274996Z     },
2026-06-07T23:26:20.9275077Z     {
2026-06-07T23:26:20.9275198Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-07T23:26:20.9275803Z       "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-07T23:26:20.9275902Z       "requiredStages": [
2026-06-07T23:26:20.9275987Z         "impl",
2026-06-07T23:26:20.9276072Z         "unit"
2026-06-07T23:26:20.9276155Z       ],
2026-06-07T23:26:20.9276245Z       "stages": {
2026-06-07T23:26:20.9276325Z         "doc": {
2026-06-07T23:26:20.9276417Z           "complete": false,
2026-06-07T23:26:20.9276507Z           "evidence": []
2026-06-07T23:26:20.9276588Z         },
2026-06-07T23:26:20.9276678Z         "impl": {
2026-06-07T23:26:20.9276765Z           "complete": true,
2026-06-07T23:26:20.9276855Z           "evidence": [
2026-06-07T23:26:20.9276935Z             {
2026-06-07T23:26:20.9277146Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T23:26:20.9277336Z               "line": 222
2026-06-07T23:26:20.9277419Z             },
2026-06-07T23:26:20.9277508Z             {
2026-06-07T23:26:20.9277623Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T23:26:20.9277709Z               "line": 389
2026-06-07T23:26:20.9277790Z             }
2026-06-07T23:26:20.9277975Z           ]
2026-06-07T23:26:20.9278058Z         },
2026-06-07T23:26:20.9278142Z         "int": {
2026-06-07T23:26:20.9278232Z           "complete": false,
2026-06-07T23:26:20.9278320Z           "evidence": []
2026-06-07T23:26:20.9278406Z         },
2026-06-07T23:26:20.9278485Z         "unit": {
2026-06-07T23:26:20.9278580Z           "complete": true,
2026-06-07T23:26:20.9278665Z           "evidence": [
2026-06-07T23:26:20.9278746Z             {
2026-06-07T23:26:20.9278868Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-07T23:26:20.9278954Z               "line": 161
2026-06-07T23:26:20.9279036Z             }
2026-06-07T23:26:20.9279117Z           ]
2026-06-07T23:26:20.9279207Z         }
2026-06-07T23:26:20.9279293Z       }
2026-06-07T23:26:20.9279374Z     },
2026-06-07T23:26:20.9279456Z     {
2026-06-07T23:26:20.9279564Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-07T23:26:20.9279741Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-07T23:26:20.9279836Z       "requiredStages": [
2026-06-07T23:26:20.9279923Z         "impl",
2026-06-07T23:26:20.9280009Z         "unit"
2026-06-07T23:26:20.9280085Z       ],
2026-06-07T23:26:20.9280175Z       "stages": {
2026-06-07T23:26:20.9280256Z         "doc": {
2026-06-07T23:26:20.9280347Z           "complete": false,
2026-06-07T23:26:20.9280437Z           "evidence": []
2026-06-07T23:26:20.9280518Z         },
2026-06-07T23:26:20.9280606Z         "impl": {
2026-06-07T23:26:20.9280690Z           "complete": true,
2026-06-07T23:26:20.9280781Z           "evidence": [
2026-06-07T23:26:20.9280862Z             {
2026-06-07T23:26:20.9280972Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9281061Z               "line": 40
2026-06-07T23:26:20.9281146Z             },
2026-06-07T23:26:20.9281233Z             {
2026-06-07T23:26:20.9281341Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9281430Z               "line": 100
2026-06-07T23:26:20.9281516Z             },
2026-06-07T23:26:20.9281598Z             {
2026-06-07T23:26:20.9281702Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9281797Z               "line": 215
2026-06-07T23:26:20.9281879Z             },
2026-06-07T23:26:20.9281960Z             {
2026-06-07T23:26:20.9282069Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9282155Z               "line": 314
2026-06-07T23:26:20.9282242Z             }
2026-06-07T23:26:20.9282322Z           ]
2026-06-07T23:26:20.9282403Z         },
2026-06-07T23:26:20.9282494Z         "int": {
2026-06-07T23:26:20.9282580Z           "complete": false,
2026-06-07T23:26:20.9282671Z           "evidence": []
2026-06-07T23:26:20.9282756Z         },
2026-06-07T23:26:20.9282843Z         "unit": {
2026-06-07T23:26:20.9282933Z           "complete": true,
2026-06-07T23:26:20.9283023Z           "evidence": [
2026-06-07T23:26:20.9283104Z             {
2026-06-07T23:26:20.9283210Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9283309Z               "line": 352
2026-06-07T23:26:20.9283385Z             },
2026-06-07T23:26:20.9283468Z             {
2026-06-07T23:26:20.9283577Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9283666Z               "line": 409
2026-06-07T23:26:20.9283746Z             },
2026-06-07T23:26:20.9283828Z             {
2026-06-07T23:26:20.9283936Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9284021Z               "line": 458
2026-06-07T23:26:20.9284102Z             },
2026-06-07T23:26:20.9284184Z             {
2026-06-07T23:26:20.9284293Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9284450Z               "line": 479
2026-06-07T23:26:20.9284536Z             }
2026-06-07T23:26:20.9284617Z           ]
2026-06-07T23:26:20.9284703Z         }
2026-06-07T23:26:20.9284785Z       }
2026-06-07T23:26:20.9284865Z     },
2026-06-07T23:26:20.9284946Z     {
2026-06-07T23:26:20.9285066Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-07T23:26:20.9285256Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-07T23:26:20.9285351Z       "requiredStages": [
2026-06-07T23:26:20.9285434Z         "impl",
2026-06-07T23:26:20.9285523Z         "unit"
2026-06-07T23:26:20.9285604Z       ],
2026-06-07T23:26:20.9285691Z       "stages": {
2026-06-07T23:26:20.9285781Z         "doc": {
2026-06-07T23:26:20.9285870Z           "complete": false,
2026-06-07T23:26:20.9285957Z           "evidence": []
2026-06-07T23:26:20.9286039Z         },
2026-06-07T23:26:20.9286125Z         "impl": {
2026-06-07T23:26:20.9286213Z           "complete": true,
2026-06-07T23:26:20.9286301Z           "evidence": [
2026-06-07T23:26:20.9286392Z             {
2026-06-07T23:26:20.9286500Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9286590Z               "line": 113
2026-06-07T23:26:20.9286671Z             },
2026-06-07T23:26:20.9286758Z             {
2026-06-07T23:26:20.9286861Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9287049Z               "line": 208
2026-06-07T23:26:20.9287139Z             }
2026-06-07T23:26:20.9287219Z           ]
2026-06-07T23:26:20.9287301Z         },
2026-06-07T23:26:20.9287387Z         "int": {
2026-06-07T23:26:20.9287482Z           "complete": false,
2026-06-07T23:26:20.9287567Z           "evidence": []
2026-06-07T23:26:20.9287650Z         },
2026-06-07T23:26:20.9287734Z         "unit": {
2026-06-07T23:26:20.9287820Z           "complete": true,
2026-06-07T23:26:20.9287911Z           "evidence": [
2026-06-07T23:26:20.9287993Z             {
2026-06-07T23:26:20.9288101Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9288192Z               "line": 373
2026-06-07T23:26:20.9288274Z             },
2026-06-07T23:26:20.9288359Z             {
2026-06-07T23:26:20.9288468Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9288555Z               "line": 436
2026-06-07T23:26:20.9288642Z             }
2026-06-07T23:26:20.9288730Z           ]
2026-06-07T23:26:20.9288812Z         }
2026-06-07T23:26:20.9288894Z       }
2026-06-07T23:26:20.9288975Z     },
2026-06-07T23:26:20.9289054Z     {
2026-06-07T23:26:20.9289178Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-07T23:26:20.9290273Z       "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-07T23:26:20.9290363Z       "requiredStages": [
2026-06-07T23:26:20.9290444Z         "impl",
2026-06-07T23:26:20.9290522Z         "unit"
2026-06-07T23:26:20.9290607Z       ],
2026-06-07T23:26:20.9290692Z       "stages": {
2026-06-07T23:26:20.9290778Z         "doc": {
2026-06-07T23:26:20.9290870Z           "complete": true,
2026-06-07T23:26:20.9290959Z           "evidence": [
2026-06-07T23:26:20.9291055Z             {
2026-06-07T23:26:20.9291166Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T23:26:20.9291259Z               "line": 203
2026-06-07T23:26:20.9291346Z             }
2026-06-07T23:26:20.9291432Z           ]
2026-06-07T23:26:20.9291514Z         },
2026-06-07T23:26:20.9291607Z         "impl": {
2026-06-07T23:26:20.9291697Z           "complete": true,
2026-06-07T23:26:20.9291788Z           "evidence": [
2026-06-07T23:26:20.9291868Z             {
2026-06-07T23:26:20.9291986Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:20.9292076Z               "line": 399
2026-06-07T23:26:20.9292158Z             },
2026-06-07T23:26:20.9292343Z             {
2026-06-07T23:26:20.9292463Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:20.9292549Z               "line": 491
2026-06-07T23:26:20.9292634Z             },
2026-06-07T23:26:20.9292720Z             {
2026-06-07T23:26:20.9292840Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:20.9293015Z               "line": 183
2026-06-07T23:26:20.9293098Z             }
2026-06-07T23:26:20.9293183Z           ]
2026-06-07T23:26:20.9293264Z         },
2026-06-07T23:26:20.9293350Z         "int": {
2026-06-07T23:26:20.9293436Z           "complete": false,
2026-06-07T23:26:20.9293535Z           "evidence": []
2026-06-07T23:26:20.9293621Z         },
2026-06-07T23:26:20.9293703Z         "unit": {
2026-06-07T23:26:20.9293803Z           "complete": true,
2026-06-07T23:26:20.9293888Z           "evidence": [
2026-06-07T23:26:20.9293979Z             {
2026-06-07T23:26:20.9294089Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:20.9294188Z               "line": 529
2026-06-07T23:26:20.9294273Z             },
2026-06-07T23:26:20.9294355Z             {
2026-06-07T23:26:20.9294477Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-07T23:26:20.9294561Z               "line": 44
2026-06-07T23:26:20.9294647Z             },
2026-06-07T23:26:20.9294735Z             {
2026-06-07T23:26:20.9294843Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-07T23:26:20.9294938Z               "line": 54
2026-06-07T23:26:20.9295020Z             },
2026-06-07T23:26:20.9295106Z             {
2026-06-07T23:26:20.9295234Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-07T23:26:20.9295321Z               "line": 51
2026-06-07T23:26:20.9295407Z             }
2026-06-07T23:26:20.9295487Z           ]
2026-06-07T23:26:20.9295573Z         }
2026-06-07T23:26:20.9295659Z       }
2026-06-07T23:26:20.9295740Z     },
2026-06-07T23:26:20.9295826Z     {
2026-06-07T23:26:20.9295951Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-07T23:26:20.9296159Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-07T23:26:20.9296266Z       "requiredStages": [
2026-06-07T23:26:20.9296356Z         "impl",
2026-06-07T23:26:20.9296435Z         "unit"
2026-06-07T23:26:20.9296527Z       ],
2026-06-07T23:26:20.9296609Z       "stages": {
2026-06-07T23:26:20.9296699Z         "doc": {
2026-06-07T23:26:20.9296788Z           "complete": false,
2026-06-07T23:26:20.9296880Z           "evidence": []
2026-06-07T23:26:20.9297055Z         },
2026-06-07T23:26:20.9297136Z         "impl": {
2026-06-07T23:26:20.9297232Z           "complete": true,
2026-06-07T23:26:20.9297318Z           "evidence": [
2026-06-07T23:26:20.9297403Z             {
2026-06-07T23:26:20.9297522Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T23:26:20.9297609Z               "line": 26
2026-06-07T23:26:20.9297699Z             },
2026-06-07T23:26:20.9297779Z             {
2026-06-07T23:26:20.9297905Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T23:26:20.9297995Z               "line": 135
2026-06-07T23:26:20.9298079Z             },
2026-06-07T23:26:20.9298161Z             {
2026-06-07T23:26:20.9298290Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-07T23:26:20.9298385Z               "line": 26
2026-06-07T23:26:20.9298466Z             },
2026-06-07T23:26:20.9298548Z             {
2026-06-07T23:26:20.9298666Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-07T23:26:20.9298762Z               "line": 237
2026-06-07T23:26:20.9298849Z             }
2026-06-07T23:26:20.9298934Z           ]
2026-06-07T23:26:20.9299015Z         },
2026-06-07T23:26:20.9299100Z         "int": {
2026-06-07T23:26:20.9299197Z           "complete": false,
2026-06-07T23:26:20.9299281Z           "evidence": []
2026-06-07T23:26:20.9299372Z         },
2026-06-07T23:26:20.9299459Z         "unit": {
2026-06-07T23:26:20.9299559Z           "complete": true,
2026-06-07T23:26:20.9299752Z           "evidence": [
2026-06-07T23:26:20.9299839Z             {
2026-06-07T23:26:20.9299950Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T23:26:20.9300041Z               "line": 161
2026-06-07T23:26:20.9300127Z             },
2026-06-07T23:26:20.9300208Z             {
2026-06-07T23:26:20.9300418Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T23:26:20.9300509Z               "line": 170
2026-06-07T23:26:20.9300594Z             },
2026-06-07T23:26:20.9300680Z             {
2026-06-07T23:26:20.9300786Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T23:26:20.9300876Z               "line": 179
2026-06-07T23:26:20.9300961Z             },
2026-06-07T23:26:20.9301043Z             {
2026-06-07T23:26:20.9301152Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T23:26:20.9301238Z               "line": 190
2026-06-07T23:26:20.9301324Z             },
2026-06-07T23:26:20.9301406Z             {
2026-06-07T23:26:20.9301524Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T23:26:20.9301615Z               "line": 199
2026-06-07T23:26:20.9301697Z             },
2026-06-07T23:26:20.9301787Z             {
2026-06-07T23:26:20.9301896Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T23:26:20.9301982Z               "line": 216
2026-06-07T23:26:20.9302074Z             },
2026-06-07T23:26:20.9302158Z             {
2026-06-07T23:26:20.9302271Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T23:26:20.9302362Z               "line": 242
2026-06-07T23:26:20.9302452Z             },
2026-06-07T23:26:20.9302541Z             {
2026-06-07T23:26:20.9302660Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T23:26:20.9302747Z               "line": 257
2026-06-07T23:26:20.9302836Z             },
2026-06-07T23:26:20.9302922Z             {
2026-06-07T23:26:20.9303033Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T23:26:20.9303123Z               "line": 244
2026-06-07T23:26:20.9303203Z             },
2026-06-07T23:26:20.9303294Z             {
2026-06-07T23:26:20.9303414Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-07T23:26:20.9303499Z               "line": 265
2026-06-07T23:26:20.9303590Z             },
2026-06-07T23:26:20.9303667Z             {
2026-06-07T23:26:20.9303791Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-07T23:26:20.9303880Z               "line": 293
2026-06-07T23:26:20.9303963Z             },
2026-06-07T23:26:20.9304048Z             {
2026-06-07T23:26:20.9304167Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-07T23:26:20.9304253Z               "line": 317
2026-06-07T23:26:20.9304335Z             },
2026-06-07T23:26:20.9304424Z             {
2026-06-07T23:26:20.9304539Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-07T23:26:20.9304631Z               "line": 327
2026-06-07T23:26:20.9304711Z             },
2026-06-07T23:26:20.9304795Z             {
2026-06-07T23:26:20.9304929Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T23:26:20.9305014Z               "line": 540
2026-06-07T23:26:20.9305103Z             }
2026-06-07T23:26:20.9305184Z           ]
2026-06-07T23:26:20.9305265Z         }
2026-06-07T23:26:20.9305347Z       }
2026-06-07T23:26:20.9305432Z     },
2026-06-07T23:26:20.9305518Z     {
2026-06-07T23:26:20.9305638Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-07T23:26:20.9305775Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-07T23:26:20.9305856Z       "requiredStages": [
2026-06-07T23:26:20.9305943Z         "impl",
2026-06-07T23:26:20.9306024Z         "unit"
2026-06-07T23:26:20.9306108Z       ],
2026-06-07T23:26:20.9306196Z       "stages": {
2026-06-07T23:26:20.9306295Z         "doc": {
2026-06-07T23:26:20.9306419Z           "complete": false,
2026-06-07T23:26:20.9306506Z           "evidence": []
2026-06-07T23:26:20.9306592Z         },
2026-06-07T23:26:20.9306676Z         "impl": {
2026-06-07T23:26:20.9306762Z           "complete": true,
2026-06-07T23:26:20.9306935Z           "evidence": [
2026-06-07T23:26:20.9307106Z             {
2026-06-07T23:26:20.9307226Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T23:26:20.9307310Z               "line": 25
2026-06-07T23:26:20.9307396Z             },
2026-06-07T23:26:20.9307569Z             {
2026-06-07T23:26:20.9307686Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T23:26:20.9307777Z               "line": 26
2026-06-07T23:26:20.9307859Z             },
2026-06-07T23:26:20.9307944Z             {
2026-06-07T23:26:20.9308053Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T23:26:20.9308145Z               "line": 159
2026-06-07T23:26:20.9308226Z             }
2026-06-07T23:26:20.9308311Z           ]
2026-06-07T23:26:20.9308396Z         },
2026-06-07T23:26:20.9308479Z         "int": {
2026-06-07T23:26:20.9308574Z           "complete": false,
2026-06-07T23:26:20.9308659Z           "evidence": []
2026-06-07T23:26:20.9308746Z         },
2026-06-07T23:26:20.9308836Z         "unit": {
2026-06-07T23:26:20.9308931Z           "complete": true,
2026-06-07T23:26:20.9309026Z           "evidence": [
2026-06-07T23:26:20.9309108Z             {
2026-06-07T23:26:20.9309216Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T23:26:20.9309312Z               "line": 184
2026-06-07T23:26:20.9309404Z             },
2026-06-07T23:26:20.9309485Z             {
2026-06-07T23:26:20.9309594Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T23:26:20.9309680Z               "line": 236
2026-06-07T23:26:20.9309757Z             },
2026-06-07T23:26:20.9309841Z             {
2026-06-07T23:26:20.9309951Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T23:26:20.9310077Z               "line": 186
2026-06-07T23:26:20.9310156Z             }
2026-06-07T23:26:20.9310241Z           ]
2026-06-07T23:26:20.9310327Z         }
2026-06-07T23:26:20.9310408Z       }
2026-06-07T23:26:20.9310497Z     },
2026-06-07T23:26:20.9310577Z     {
2026-06-07T23:26:20.9310687Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-07T23:26:20.9310849Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-07T23:26:20.9310949Z       "requiredStages": [
2026-06-07T23:26:20.9311032Z         "impl",
2026-06-07T23:26:20.9311112Z         "unit"
2026-06-07T23:26:20.9311201Z       ],
2026-06-07T23:26:20.9311283Z       "stages": {
2026-06-07T23:26:20.9311365Z         "doc": {
2026-06-07T23:26:20.9311455Z           "complete": false,
2026-06-07T23:26:20.9311540Z           "evidence": []
2026-06-07T23:26:20.9311622Z         },
2026-06-07T23:26:20.9311708Z         "impl": {
2026-06-07T23:26:20.9311798Z           "complete": true,
2026-06-07T23:26:20.9311884Z           "evidence": [
2026-06-07T23:26:20.9311971Z             {
2026-06-07T23:26:20.9312084Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T23:26:20.9312170Z               "line": 48
2026-06-07T23:26:20.9312257Z             },
2026-06-07T23:26:20.9312343Z             {
2026-06-07T23:26:20.9312461Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T23:26:20.9312552Z               "line": 55
2026-06-07T23:26:20.9312634Z             },
2026-06-07T23:26:20.9312718Z             {
2026-06-07T23:26:20.9312827Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T23:26:20.9312922Z               "line": 74
2026-06-07T23:26:20.9313003Z             },
2026-06-07T23:26:20.9313092Z             {
2026-06-07T23:26:20.9313196Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T23:26:20.9313288Z               "line": 91
2026-06-07T23:26:20.9313368Z             }
2026-06-07T23:26:20.9313454Z           ]
2026-06-07T23:26:20.9313540Z         },
2026-06-07T23:26:20.9313626Z         "int": {
2026-06-07T23:26:20.9313721Z           "complete": false,
2026-06-07T23:26:20.9313806Z           "evidence": []
2026-06-07T23:26:20.9313894Z         },
2026-06-07T23:26:20.9313974Z         "unit": {
2026-06-07T23:26:20.9314069Z           "complete": true,
2026-06-07T23:26:20.9314256Z           "evidence": [
2026-06-07T23:26:20.9314341Z             {
2026-06-07T23:26:20.9314460Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T23:26:20.9314547Z               "line": 149
2026-06-07T23:26:20.9314632Z             },
2026-06-07T23:26:20.9314718Z             {
2026-06-07T23:26:20.9314895Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T23:26:20.9315032Z               "line": 166
2026-06-07T23:26:20.9315119Z             },
2026-06-07T23:26:20.9315200Z             {
2026-06-07T23:26:20.9315313Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T23:26:20.9315408Z               "line": 176
2026-06-07T23:26:20.9315499Z             },
2026-06-07T23:26:20.9315602Z             {
2026-06-07T23:26:20.9315715Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T23:26:20.9315802Z               "line": 194
2026-06-07T23:26:20.9315884Z             },
2026-06-07T23:26:20.9315959Z             {
2026-06-07T23:26:20.9316068Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T23:26:20.9316160Z               "line": 207
2026-06-07T23:26:20.9316264Z             }
2026-06-07T23:26:20.9316340Z           ]
2026-06-07T23:26:20.9316421Z         }
2026-06-07T23:26:20.9316508Z       }
2026-06-07T23:26:20.9316589Z     },
2026-06-07T23:26:20.9316678Z     {
2026-06-07T23:26:20.9316794Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-07T23:26:20.9317056Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-07T23:26:20.9317142Z       "requiredStages": [
2026-06-07T23:26:20.9317222Z         "impl",
2026-06-07T23:26:20.9317308Z         "unit"
2026-06-07T23:26:20.9317390Z       ],
2026-06-07T23:26:20.9317476Z       "stages": {
2026-06-07T23:26:20.9317560Z         "doc": {
2026-06-07T23:26:20.9317651Z           "complete": false,
2026-06-07T23:26:20.9317743Z           "evidence": []
2026-06-07T23:26:20.9317824Z         },
2026-06-07T23:26:20.9317913Z         "impl": {
2026-06-07T23:26:20.9318015Z           "complete": true,
2026-06-07T23:26:20.9318105Z           "evidence": [
2026-06-07T23:26:20.9318190Z             {
2026-06-07T23:26:20.9318313Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9318400Z               "line": 373
2026-06-07T23:26:20.9318490Z             },
2026-06-07T23:26:20.9318575Z             {
2026-06-07T23:26:20.9318690Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T23:26:20.9318781Z               "line": 26
2026-06-07T23:26:20.9318866Z             }
2026-06-07T23:26:20.9318952Z           ]
2026-06-07T23:26:20.9319039Z         },
2026-06-07T23:26:20.9319120Z         "int": {
2026-06-07T23:26:20.9319209Z           "complete": false,
2026-06-07T23:26:20.9319301Z           "evidence": []
2026-06-07T23:26:20.9319378Z         },
2026-06-07T23:26:20.9319468Z         "unit": {
2026-06-07T23:26:20.9319557Z           "complete": true,
2026-06-07T23:26:20.9319644Z           "evidence": [
2026-06-07T23:26:20.9319725Z             {
2026-06-07T23:26:20.9319848Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T23:26:20.9319935Z               "line": 150
2026-06-07T23:26:20.9320021Z             },
2026-06-07T23:26:20.9320105Z             {
2026-06-07T23:26:20.9320216Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T23:26:20.9320307Z               "line": 208
2026-06-07T23:26:20.9320393Z             }
2026-06-07T23:26:20.9320478Z           ]
2026-06-07T23:26:20.9320555Z         }
2026-06-07T23:26:20.9320642Z       }
2026-06-07T23:26:20.9320730Z     },
2026-06-07T23:26:20.9320811Z     {
2026-06-07T23:26:20.9320935Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-07T23:26:20.9322405Z       "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-07T23:26:20.9322516Z       "requiredStages": [
2026-06-07T23:26:20.9322606Z         "doc",
2026-06-07T23:26:20.9322688Z         "impl",
2026-06-07T23:26:20.9322769Z         "unit"
2026-06-07T23:26:20.9322940Z       ],
2026-06-07T23:26:20.9323030Z       "stages": {
2026-06-07T23:26:20.9323112Z         "doc": {
2026-06-07T23:26:20.9323213Z           "complete": true,
2026-06-07T23:26:20.9323306Z           "evidence": [
2026-06-07T23:26:20.9323392Z             {
2026-06-07T23:26:20.9323502Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T23:26:20.9325474Z               "line": 211
2026-06-07T23:26:20.9325583Z             }
2026-06-07T23:26:20.9325669Z           ]
2026-06-07T23:26:20.9325756Z         },
2026-06-07T23:26:20.9325849Z         "impl": {
2026-06-07T23:26:20.9325944Z           "complete": true,
2026-06-07T23:26:20.9326035Z           "evidence": [
2026-06-07T23:26:20.9326120Z             {
2026-06-07T23:26:20.9326261Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:20.9326352Z               "line": 54
2026-06-07T23:26:20.9326734Z             },
2026-06-07T23:26:20.9326815Z             {
2026-06-07T23:26:20.9326933Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:20.9327120Z               "line": 317
2026-06-07T23:26:20.9327201Z             },
2026-06-07T23:26:20.9327287Z             {
2026-06-07T23:26:20.9327411Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T23:26:20.9327501Z               "line": 36
2026-06-07T23:26:20.9327592Z             },
2026-06-07T23:26:20.9327674Z             {
2026-06-07T23:26:20.9327801Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T23:26:20.9327887Z               "line": 59
2026-06-07T23:26:20.9327975Z             },
2026-06-07T23:26:20.9328059Z             {
2026-06-07T23:26:20.9328183Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T23:26:20.9328275Z               "line": 87
2026-06-07T23:26:20.9328360Z             },
2026-06-07T23:26:20.9328440Z             {
2026-06-07T23:26:20.9328546Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T23:26:20.9328632Z               "line": 106
2026-06-07T23:26:20.9328721Z             },
2026-06-07T23:26:20.9328806Z             {
2026-06-07T23:26:20.9328921Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T23:26:20.9329012Z               "line": 331
2026-06-07T23:26:20.9329098Z             },
2026-06-07T23:26:20.9329178Z             {
2026-06-07T23:26:20.9329299Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T23:26:20.9329389Z               "line": 473
2026-06-07T23:26:20.9329478Z             },
2026-06-07T23:26:20.9329566Z             {
2026-06-07T23:26:20.9329680Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T23:26:20.9329769Z               "line": 519
2026-06-07T23:26:20.9329851Z             },
2026-06-07T23:26:20.9329942Z             {
2026-06-07T23:26:20.9330051Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T23:26:20.9330142Z               "line": 145
2026-06-07T23:26:20.9330223Z             },
2026-06-07T23:26:20.9330309Z             {
2026-06-07T23:26:20.9330413Z               "path": "crates/spt/src/main.rs",
2026-06-07T23:26:20.9330505Z               "line": 29
2026-06-07T23:26:20.9330596Z             }
2026-06-07T23:26:20.9330680Z           ]
2026-06-07T23:26:20.9330762Z         },
2026-06-07T23:26:20.9330849Z         "int": {
2026-06-07T23:26:20.9330939Z           "complete": false,
2026-06-07T23:26:20.9331033Z           "evidence": []
2026-06-07T23:26:20.9331115Z         },
2026-06-07T23:26:20.9331202Z         "unit": {
2026-06-07T23:26:20.9331290Z           "complete": true,
2026-06-07T23:26:20.9331380Z           "evidence": [
2026-06-07T23:26:20.9331466Z             {
2026-06-07T23:26:20.9331585Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T23:26:20.9331807Z               "line": 661
2026-06-07T23:26:20.9331893Z             },
2026-06-07T23:26:20.9331979Z             {
2026-06-07T23:26:20.9332098Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T23:26:20.9332185Z               "line": 707
2026-06-07T23:26:20.9332270Z             }
2026-06-07T23:26:20.9332447Z           ]
2026-06-07T23:26:20.9332532Z         }
2026-06-07T23:26:20.9332613Z       }
2026-06-07T23:26:20.9332699Z     },
2026-06-07T23:26:20.9332776Z     {
2026-06-07T23:26:20.9332900Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-07T23:26:20.9333057Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-07T23:26:20.9333153Z       "requiredStages": [
2026-06-07T23:26:20.9333243Z         "impl",
2026-06-07T23:26:20.9333329Z         "unit"
2026-06-07T23:26:20.9333410Z       ],
2026-06-07T23:26:20.9333496Z       "stages": {
2026-06-07T23:26:20.9333581Z         "doc": {
2026-06-07T23:26:20.9333672Z           "complete": false,
2026-06-07T23:26:20.9333764Z           "evidence": []
2026-06-07T23:26:20.9333857Z         },
2026-06-07T23:26:20.9333942Z         "impl": {
2026-06-07T23:26:20.9334033Z           "complete": true,
2026-06-07T23:26:20.9334128Z           "evidence": [
2026-06-07T23:26:20.9334207Z             {
2026-06-07T23:26:20.9334341Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T23:26:20.9334427Z               "line": 36
2026-06-07T23:26:20.9334512Z             },
2026-06-07T23:26:20.9334598Z             {
2026-06-07T23:26:20.9334714Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T23:26:20.9334809Z               "line": 68
2026-06-07T23:26:20.9334888Z             }
2026-06-07T23:26:20.9334975Z           ]
2026-06-07T23:26:20.9335203Z         },
2026-06-07T23:26:20.9335300Z         "int": {
2026-06-07T23:26:20.9335395Z           "complete": false,
2026-06-07T23:26:20.9335485Z           "evidence": []
2026-06-07T23:26:20.9335566Z         },
2026-06-07T23:26:20.9335648Z         "unit": {
2026-06-07T23:26:20.9335737Z           "complete": true,
2026-06-07T23:26:20.9335819Z           "evidence": [
2026-06-07T23:26:20.9335900Z             {
2026-06-07T23:26:20.9336020Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T23:26:20.9336109Z               "line": 143
2026-06-07T23:26:20.9336219Z             },
2026-06-07T23:26:20.9336316Z             {
2026-06-07T23:26:20.9336433Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T23:26:20.9336523Z               "line": 160
2026-06-07T23:26:20.9336609Z             },
2026-06-07T23:26:20.9336689Z             {
2026-06-07T23:26:20.9336807Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T23:26:20.9336898Z               "line": 168
2026-06-07T23:26:20.9337069Z             }
2026-06-07T23:26:20.9337159Z           ]
2026-06-07T23:26:20.9337241Z         }
2026-06-07T23:26:20.9337327Z       }
2026-06-07T23:26:20.9337408Z     },
2026-06-07T23:26:20.9337488Z     {
2026-06-07T23:26:20.9337623Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-07T23:26:20.9337803Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-07T23:26:20.9337900Z       "requiredStages": [
2026-06-07T23:26:20.9337990Z         "impl",
2026-06-07T23:26:20.9338075Z         "unit"
2026-06-07T23:26:20.9338162Z       ],
2026-06-07T23:26:20.9338252Z       "stages": {
2026-06-07T23:26:20.9338338Z         "doc": {
2026-06-07T23:26:20.9338428Z           "complete": false,
2026-06-07T23:26:20.9338520Z           "evidence": []
2026-06-07T23:26:20.9338605Z         },
2026-06-07T23:26:20.9338690Z         "impl": {
2026-06-07T23:26:20.9338776Z           "complete": true,
2026-06-07T23:26:20.9338873Z           "evidence": [
2026-06-07T23:26:20.9338957Z             {
2026-06-07T23:26:20.9339082Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T23:26:20.9339164Z               "line": 107
2026-06-07T23:26:20.9339249Z             }
2026-06-07T23:26:20.9339334Z           ]
2026-06-07T23:26:20.9339419Z         },
2026-06-07T23:26:20.9339634Z         "int": {
2026-06-07T23:26:20.9339728Z           "complete": false,
2026-06-07T23:26:20.9339820Z           "evidence": []
2026-06-07T23:26:20.9339901Z         },
2026-06-07T23:26:20.9339987Z         "unit": {
2026-06-07T23:26:20.9340082Z           "complete": true,
2026-06-07T23:26:20.9340254Z           "evidence": [
2026-06-07T23:26:20.9340344Z             {
2026-06-07T23:26:20.9340464Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T23:26:20.9340554Z               "line": 184
2026-06-07T23:26:20.9340640Z             },
2026-06-07T23:26:20.9340726Z             {
2026-06-07T23:26:20.9340836Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T23:26:20.9340926Z               "line": 193
2026-06-07T23:26:20.9341012Z             },
2026-06-07T23:26:20.9341094Z             {
2026-06-07T23:26:20.9341212Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T23:26:20.9341302Z               "line": 201
2026-06-07T23:26:20.9341385Z             },
2026-06-07T23:26:20.9341475Z             {
2026-06-07T23:26:20.9341588Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T23:26:20.9341680Z               "line": 211
2026-06-07T23:26:20.9341766Z             },
2026-06-07T23:26:20.9341846Z             {
2026-06-07T23:26:20.9341964Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T23:26:20.9342055Z               "line": 221
2026-06-07T23:26:20.9342140Z             }
2026-06-07T23:26:20.9342224Z           ]
2026-06-07T23:26:20.9342310Z         }
2026-06-07T23:26:20.9342397Z       }
2026-06-07T23:26:20.9342478Z     },
2026-06-07T23:26:20.9342562Z     {
2026-06-07T23:26:20.9342673Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-07T23:26:20.9342830Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-07T23:26:20.9342925Z       "requiredStages": [
2026-06-07T23:26:20.9343012Z         "impl",
2026-06-07T23:26:20.9343097Z         "unit"
2026-06-07T23:26:20.9343178Z       ],
2026-06-07T23:26:20.9343273Z       "stages": {
2026-06-07T23:26:20.9343355Z         "doc": {
2026-06-07T23:26:20.9343450Z           "complete": false,
2026-06-07T23:26:20.9343535Z           "evidence": []
2026-06-07T23:26:20.9343627Z         },
2026-06-07T23:26:20.9343717Z         "impl": {
2026-06-07T23:26:20.9343808Z           "complete": true,
2026-06-07T23:26:20.9343898Z           "evidence": [
2026-06-07T23:26:20.9343980Z             {
2026-06-07T23:26:20.9344088Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T23:26:20.9344179Z               "line": 14
2026-06-07T23:26:20.9344262Z             },
2026-06-07T23:26:20.9344347Z             {
2026-06-07T23:26:20.9344455Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T23:26:20.9344549Z               "line": 62
2026-06-07T23:26:20.9344636Z             }
2026-06-07T23:26:20.9344720Z           ]
2026-06-07T23:26:20.9344805Z         },
2026-06-07T23:26:20.9345025Z         "int": {
2026-06-07T23:26:20.9345129Z           "complete": false,
2026-06-07T23:26:20.9345221Z           "evidence": []
2026-06-07T23:26:20.9345307Z         },
2026-06-07T23:26:20.9345392Z         "unit": {
2026-06-07T23:26:20.9345482Z           "complete": true,
2026-06-07T23:26:20.9345564Z           "evidence": [
2026-06-07T23:26:20.9345649Z             {
2026-06-07T23:26:20.9345768Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T23:26:20.9345879Z               "line": 160
2026-06-07T23:26:20.9345969Z             },
2026-06-07T23:26:20.9346041Z             {
2026-06-07T23:26:20.9346140Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T23:26:20.9346228Z               "line": 197
2026-06-07T23:26:20.9346312Z             },
2026-06-07T23:26:20.9346398Z             {
2026-06-07T23:26:20.9346504Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T23:26:20.9346599Z               "line": 219
2026-06-07T23:26:20.9346679Z             }
2026-06-07T23:26:20.9346761Z           ]
2026-06-07T23:26:20.9346847Z         }
2026-06-07T23:26:20.9346932Z       }
2026-06-07T23:26:20.9347208Z     },
2026-06-07T23:26:20.9347291Z     {
2026-06-07T23:26:20.9347400Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-07T23:26:20.9348727Z       "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-07T23:26:20.9348926Z       "requiredStages": [],
2026-06-07T23:26:20.9349017Z       "stages": {
2026-06-07T23:26:20.9349104Z         "doc": {
2026-06-07T23:26:20.9349193Z           "complete": true,
2026-06-07T23:26:20.9349284Z           "evidence": [
2026-06-07T23:26:20.9349371Z             {
2026-06-07T23:26:20.9349475Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T23:26:20.9349574Z               "line": 162
2026-06-07T23:26:20.9349661Z             }
2026-06-07T23:26:20.9349744Z           ]
2026-06-07T23:26:20.9349827Z         },
2026-06-07T23:26:20.9349913Z         "impl": {
2026-06-07T23:26:20.9350008Z           "complete": false,
2026-06-07T23:26:20.9350095Z           "evidence": []
2026-06-07T23:26:20.9350189Z         },
2026-06-07T23:26:20.9350274Z         "int": {
2026-06-07T23:26:20.9350366Z           "complete": false,
2026-06-07T23:26:20.9350457Z           "evidence": []
2026-06-07T23:26:20.9350537Z         },
2026-06-07T23:26:20.9350628Z         "unit": {
2026-06-07T23:26:20.9350714Z           "complete": false,
2026-06-07T23:26:20.9350805Z           "evidence": []
2026-06-07T23:26:20.9350895Z         }
2026-06-07T23:26:20.9350981Z       }
2026-06-07T23:26:20.9351062Z     },
2026-06-07T23:26:20.9351143Z     {
2026-06-07T23:26:20.9351262Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-07T23:26:20.9351471Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-07T23:26:20.9351572Z       "requiredStages": [
2026-06-07T23:26:20.9351664Z         "impl",
2026-06-07T23:26:20.9351748Z         "unit"
2026-06-07T23:26:20.9351834Z       ],
2026-06-07T23:26:20.9351916Z       "stages": {
2026-06-07T23:26:20.9352007Z         "doc": {
2026-06-07T23:26:20.9352101Z           "complete": false,
2026-06-07T23:26:20.9352192Z           "evidence": []
2026-06-07T23:26:20.9352279Z         },
2026-06-07T23:26:20.9352369Z         "impl": {
2026-06-07T23:26:20.9352463Z           "complete": true,
2026-06-07T23:26:20.9352553Z           "evidence": [
2026-06-07T23:26:20.9352634Z             {
2026-06-07T23:26:20.9352751Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T23:26:20.9352846Z               "line": 76
2026-06-07T23:26:20.9352928Z             },
2026-06-07T23:26:20.9353009Z             {
2026-06-07T23:26:20.9353123Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T23:26:20.9353209Z               "line": 167
2026-06-07T23:26:20.9353300Z             },
2026-06-07T23:26:20.9353381Z             {
2026-06-07T23:26:20.9353490Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T23:26:20.9353581Z               "line": 233
2026-06-07T23:26:20.9353662Z             },
2026-06-07T23:26:20.9353752Z             {
2026-06-07T23:26:20.9353863Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T23:26:20.9353953Z               "line": 272
2026-06-07T23:26:20.9354043Z             }
2026-06-07T23:26:20.9354129Z           ]
2026-06-07T23:26:20.9354211Z         },
2026-06-07T23:26:20.9354296Z         "int": {
2026-06-07T23:26:20.9354387Z           "complete": false,
2026-06-07T23:26:20.9354477Z           "evidence": []
2026-06-07T23:26:20.9354564Z         },
2026-06-07T23:26:20.9354649Z         "unit": {
2026-06-07T23:26:20.9354744Z           "complete": true,
2026-06-07T23:26:20.9354836Z           "evidence": [
2026-06-07T23:26:20.9354917Z             {
2026-06-07T23:26:20.9355100Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T23:26:20.9355191Z               "line": 321
2026-06-07T23:26:20.9355276Z             },
2026-06-07T23:26:20.9355360Z             {
2026-06-07T23:26:20.9355471Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T23:26:20.9355561Z               "line": 329
2026-06-07T23:26:20.9355708Z             },
2026-06-07T23:26:20.9355795Z             {
2026-06-07T23:26:20.9355900Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T23:26:20.9355990Z               "line": 356
2026-06-07T23:26:20.9356071Z             },
2026-06-07T23:26:20.9356158Z             {
2026-06-07T23:26:20.9356267Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T23:26:20.9356352Z               "line": 395
2026-06-07T23:26:20.9356434Z             },
2026-06-07T23:26:20.9356520Z             {
2026-06-07T23:26:20.9356629Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T23:26:20.9356720Z               "line": 406
2026-06-07T23:26:20.9356802Z             },
2026-06-07T23:26:20.9356891Z             {
2026-06-07T23:26:20.9357093Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T23:26:20.9357182Z               "line": 418
2026-06-07T23:26:20.9357268Z             },
2026-06-07T23:26:20.9357349Z             {
2026-06-07T23:26:20.9357470Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T23:26:20.9357553Z               "line": 442
2026-06-07T23:26:20.9357643Z             }
2026-06-07T23:26:20.9357725Z           ]
2026-06-07T23:26:20.9357810Z         }
2026-06-07T23:26:20.9357889Z       }
2026-06-07T23:26:20.9357974Z     },
2026-06-07T23:26:20.9358061Z     {
2026-06-07T23:26:20.9358167Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-07T23:26:20.9358308Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-07T23:26:20.9358405Z       "requiredStages": [
2026-06-07T23:26:20.9358491Z         "impl",
2026-06-07T23:26:20.9358575Z         "int"
2026-06-07T23:26:20.9358667Z       ],
2026-06-07T23:26:20.9358767Z       "stages": {
2026-06-07T23:26:20.9358857Z         "doc": {
2026-06-07T23:26:20.9358952Z           "complete": false,
2026-06-07T23:26:20.9359044Z           "evidence": []
2026-06-07T23:26:20.9359124Z         },
2026-06-07T23:26:20.9359210Z         "impl": {
2026-06-07T23:26:20.9359311Z           "complete": true,
2026-06-07T23:26:20.9359401Z           "evidence": [
2026-06-07T23:26:20.9359487Z             {
2026-06-07T23:26:20.9359607Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T23:26:20.9359693Z               "line": 22
2026-06-07T23:26:20.9359787Z             }
2026-06-07T23:26:20.9359868Z           ]
2026-06-07T23:26:20.9359950Z         },
2026-06-07T23:26:20.9360040Z         "int": {
2026-06-07T23:26:20.9360130Z           "complete": true,
2026-06-07T23:26:20.9360216Z           "evidence": [
2026-06-07T23:26:20.9360299Z             {
2026-06-07T23:26:20.9360425Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-07T23:26:20.9360510Z               "line": 18
2026-06-07T23:26:20.9360601Z             }
2026-06-07T23:26:20.9360683Z           ]
2026-06-07T23:26:20.9360768Z         },
2026-06-07T23:26:20.9360858Z         "unit": {
2026-06-07T23:26:20.9360950Z           "complete": false,
2026-06-07T23:26:20.9361045Z           "evidence": []
2026-06-07T23:26:20.9361131Z         }
2026-06-07T23:26:20.9361217Z       }
2026-06-07T23:26:20.9361298Z     },
2026-06-07T23:26:20.9361379Z     {
2026-06-07T23:26:20.9361497Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-07T23:26:20.9361674Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-07T23:26:20.9361774Z       "requiredStages": [
2026-06-07T23:26:20.9361856Z         "impl",
2026-06-07T23:26:20.9361942Z         "unit"
2026-06-07T23:26:20.9362027Z       ],
2026-06-07T23:26:20.9362113Z       "stages": {
2026-06-07T23:26:20.9362200Z         "doc": {
2026-06-07T23:26:20.9362290Z           "complete": false,
2026-06-07T23:26:20.9362380Z           "evidence": []
2026-06-07T23:26:20.9362562Z         },
2026-06-07T23:26:20.9362656Z         "impl": {
2026-06-07T23:26:20.9362747Z           "complete": true,
2026-06-07T23:26:20.9362834Z           "evidence": [
2026-06-07T23:26:20.9362920Z             {
2026-06-07T23:26:20.9363042Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9363241Z               "line": 372
2026-06-07T23:26:20.9363331Z             },
2026-06-07T23:26:20.9363415Z             {
2026-06-07T23:26:20.9363536Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T23:26:20.9363622Z               "line": 27
2026-06-07T23:26:20.9363706Z             }
2026-06-07T23:26:20.9363793Z           ]
2026-06-07T23:26:20.9363879Z         },
2026-06-07T23:26:20.9363960Z         "int": {
2026-06-07T23:26:20.9364055Z           "complete": false,
2026-06-07T23:26:20.9364146Z           "evidence": []
2026-06-07T23:26:20.9364227Z         },
2026-06-07T23:26:20.9364317Z         "unit": {
2026-06-07T23:26:20.9364403Z           "complete": true,
2026-06-07T23:26:20.9364499Z           "evidence": [
2026-06-07T23:26:20.9364585Z             {
2026-06-07T23:26:20.9364704Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9364795Z               "line": 817
2026-06-07T23:26:20.9364880Z             },
2026-06-07T23:26:20.9364966Z             {
2026-06-07T23:26:20.9365082Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T23:26:20.9365171Z               "line": 181
2026-06-07T23:26:20.9365252Z             }
2026-06-07T23:26:20.9365338Z           ]
2026-06-07T23:26:20.9365425Z         }
2026-06-07T23:26:20.9365509Z       }
2026-06-07T23:26:20.9365599Z     },
2026-06-07T23:26:20.9365684Z     {
2026-06-07T23:26:20.9365799Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-07T23:26:20.9365954Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-07T23:26:20.9366059Z       "requiredStages": [
2026-06-07T23:26:20.9366150Z         "impl",
2026-06-07T23:26:20.9366235Z         "unit"
2026-06-07T23:26:20.9366321Z       ],
2026-06-07T23:26:20.9366408Z       "stages": {
2026-06-07T23:26:20.9366494Z         "doc": {
2026-06-07T23:26:20.9366588Z           "complete": false,
2026-06-07T23:26:20.9366680Z           "evidence": []
2026-06-07T23:26:20.9366765Z         },
2026-06-07T23:26:20.9366855Z         "impl": {
2026-06-07T23:26:20.9367042Z           "complete": true,
2026-06-07T23:26:20.9367132Z           "evidence": [
2026-06-07T23:26:20.9367222Z             {
2026-06-07T23:26:20.9367333Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T23:26:20.9367423Z               "line": 20
2026-06-07T23:26:20.9367509Z             },
2026-06-07T23:26:20.9367590Z             {
2026-06-07T23:26:20.9367705Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T23:26:20.9367789Z               "line": 100
2026-06-07T23:26:20.9367876Z             },
2026-06-07T23:26:20.9367963Z             {
2026-06-07T23:26:20.9368085Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-07T23:26:20.9368180Z               "line": 68
2026-06-07T23:26:20.9368266Z             },
2026-06-07T23:26:20.9368351Z             {
2026-06-07T23:26:20.9368464Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-07T23:26:20.9368559Z               "line": 80
2026-06-07T23:26:20.9368646Z             }
2026-06-07T23:26:20.9368736Z           ]
2026-06-07T23:26:20.9368821Z         },
2026-06-07T23:26:20.9368908Z         "int": {
2026-06-07T23:26:20.9369003Z           "complete": false,
2026-06-07T23:26:20.9369093Z           "evidence": []
2026-06-07T23:26:20.9369174Z         },
2026-06-07T23:26:20.9369266Z         "unit": {
2026-06-07T23:26:20.9369360Z           "complete": true,
2026-06-07T23:26:20.9369450Z           "evidence": [
2026-06-07T23:26:20.9369532Z             {
2026-06-07T23:26:20.9369651Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T23:26:20.9369741Z               "line": 152
2026-06-07T23:26:20.9369827Z             },
2026-06-07T23:26:20.9369910Z             {
2026-06-07T23:26:20.9370596Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T23:26:20.9370690Z               "line": 175
2026-06-07T23:26:20.9370772Z             },
2026-06-07T23:26:20.9370859Z             {
2026-06-07T23:26:20.9370971Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T23:26:20.9371157Z               "line": 186
2026-06-07T23:26:20.9371239Z             },
2026-06-07T23:26:20.9371324Z             {
2026-06-07T23:26:20.9371443Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T23:26:20.9371534Z               "line": 202
2026-06-07T23:26:20.9371620Z             },
2026-06-07T23:26:20.9371705Z             {
2026-06-07T23:26:20.9371826Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T23:26:20.9371916Z               "line": 216
2026-06-07T23:26:20.9372000Z             },
2026-06-07T23:26:20.9372082Z             {
2026-06-07T23:26:20.9372201Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-07T23:26:20.9372301Z               "line": 137
2026-06-07T23:26:20.9372387Z             }
2026-06-07T23:26:20.9372474Z           ]
2026-06-07T23:26:20.9372559Z         }
2026-06-07T23:26:20.9372644Z       }
2026-06-07T23:26:20.9372731Z     },
2026-06-07T23:26:20.9372812Z     {
2026-06-07T23:26:20.9372916Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-07T23:26:20.9373169Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-07T23:26:20.9373264Z       "requiredStages": [
2026-06-07T23:26:20.9373366Z         "impl",
2026-06-07T23:26:20.9373447Z         "unit"
2026-06-07T23:26:20.9373530Z       ],
2026-06-07T23:26:20.9373616Z       "stages": {
2026-06-07T23:26:20.9373706Z         "doc": {
2026-06-07T23:26:20.9373797Z           "complete": true,
2026-06-07T23:26:20.9373886Z           "evidence": [
2026-06-07T23:26:20.9373970Z             {
2026-06-07T23:26:20.9374082Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T23:26:20.9374177Z               "line": 131
2026-06-07T23:26:20.9374267Z             }
2026-06-07T23:26:20.9374353Z           ]
2026-06-07T23:26:20.9374434Z         },
2026-06-07T23:26:20.9374525Z         "impl": {
2026-06-07T23:26:20.9374615Z           "complete": true,
2026-06-07T23:26:20.9374707Z           "evidence": [
2026-06-07T23:26:20.9374797Z             {
2026-06-07T23:26:20.9374906Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T23:26:20.9374998Z               "line": 65
2026-06-07T23:26:20.9375078Z             },
2026-06-07T23:26:20.9375168Z             {
2026-06-07T23:26:20.9375449Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T23:26:20.9375536Z               "line": 17
2026-06-07T23:26:20.9375617Z             },
2026-06-07T23:26:20.9375689Z             {
2026-06-07T23:26:20.9375802Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:20.9375883Z               "line": 217
2026-06-07T23:26:20.9375961Z             },
2026-06-07T23:26:20.9376046Z             {
2026-06-07T23:26:20.9376164Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:20.9376254Z               "line": 317
2026-06-07T23:26:20.9376349Z             },
2026-06-07T23:26:20.9376457Z             {
2026-06-07T23:26:20.9376581Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T23:26:20.9376687Z               "line": 32
2026-06-07T23:26:20.9376772Z             },
2026-06-07T23:26:20.9376857Z             {
2026-06-07T23:26:20.9377054Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9377143Z               "line": 3666
2026-06-07T23:26:20.9377230Z             },
2026-06-07T23:26:20.9377311Z             {
2026-06-07T23:26:20.9377420Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9377511Z               "line": 3934
2026-06-07T23:26:20.9377597Z             }
2026-06-07T23:26:20.9377678Z           ]
2026-06-07T23:26:20.9377764Z         },
2026-06-07T23:26:20.9377850Z         "int": {
2026-06-07T23:26:20.9377941Z           "complete": false,
2026-06-07T23:26:20.9378150Z           "evidence": []
2026-06-07T23:26:20.9378241Z         },
2026-06-07T23:26:20.9378326Z         "unit": {
2026-06-07T23:26:20.9378421Z           "complete": true,
2026-06-07T23:26:20.9378509Z           "evidence": [
2026-06-07T23:26:20.9378594Z             {
2026-06-07T23:26:20.9378702Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T23:26:20.9378878Z               "line": 94
2026-06-07T23:26:20.9378963Z             },
2026-06-07T23:26:20.9379047Z             {
2026-06-07T23:26:20.9379158Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T23:26:20.9379244Z               "line": 111
2026-06-07T23:26:20.9379334Z             },
2026-06-07T23:26:20.9379415Z             {
2026-06-07T23:26:20.9379526Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T23:26:20.9379616Z               "line": 124
2026-06-07T23:26:20.9379695Z             },
2026-06-07T23:26:20.9379787Z             {
2026-06-07T23:26:20.9379892Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T23:26:20.9379977Z               "line": 134
2026-06-07T23:26:20.9380059Z             },
2026-06-07T23:26:20.9380140Z             {
2026-06-07T23:26:20.9380249Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T23:26:20.9380359Z               "line": 144
2026-06-07T23:26:20.9380460Z             },
2026-06-07T23:26:20.9380540Z             {
2026-06-07T23:26:20.9380649Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T23:26:20.9380737Z               "line": 156
2026-06-07T23:26:20.9380822Z             },
2026-06-07T23:26:20.9380907Z             {
2026-06-07T23:26:20.9381036Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9381128Z               "line": 714
2026-06-07T23:26:20.9381212Z             }
2026-06-07T23:26:20.9381298Z           ]
2026-06-07T23:26:20.9381381Z         }
2026-06-07T23:26:20.9381466Z       }
2026-06-07T23:26:20.9381550Z     },
2026-06-07T23:26:20.9381636Z     {
2026-06-07T23:26:20.9381741Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-07T23:26:20.9381879Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-07T23:26:20.9381978Z       "requiredStages": [
2026-06-07T23:26:20.9382066Z         "impl",
2026-06-07T23:26:20.9382152Z         "unit"
2026-06-07T23:26:20.9382236Z       ],
2026-06-07T23:26:20.9382327Z       "stages": {
2026-06-07T23:26:20.9382414Z         "doc": {
2026-06-07T23:26:20.9382509Z           "complete": false,
2026-06-07T23:26:20.9382604Z           "evidence": []
2026-06-07T23:26:20.9382686Z         },
2026-06-07T23:26:20.9382775Z         "impl": {
2026-06-07T23:26:20.9382865Z           "complete": true,
2026-06-07T23:26:20.9382957Z           "evidence": [
2026-06-07T23:26:20.9383081Z             {
2026-06-07T23:26:20.9383204Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9383310Z               "line": 128
2026-06-07T23:26:20.9383391Z             }
2026-06-07T23:26:20.9383481Z           ]
2026-06-07T23:26:20.9383572Z         },
2026-06-07T23:26:20.9383654Z         "int": {
2026-06-07T23:26:20.9383753Z           "complete": false,
2026-06-07T23:26:20.9383848Z           "evidence": []
2026-06-07T23:26:20.9383935Z         },
2026-06-07T23:26:20.9384007Z         "unit": {
2026-06-07T23:26:20.9384090Z           "complete": true,
2026-06-07T23:26:20.9384176Z           "evidence": [
2026-06-07T23:26:20.9384262Z             {
2026-06-07T23:26:20.9384375Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9384465Z               "line": 205
2026-06-07T23:26:20.9384550Z             }
2026-06-07T23:26:20.9384632Z           ]
2026-06-07T23:26:20.9384723Z         }
2026-06-07T23:26:20.9384808Z       }
2026-06-07T23:26:20.9384889Z     },
2026-06-07T23:26:20.9384975Z     {
2026-06-07T23:26:20.9385089Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-07T23:26:20.9385238Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-07T23:26:20.9385333Z       "requiredStages": [
2026-06-07T23:26:20.9385423Z         "impl",
2026-06-07T23:26:20.9385509Z         "unit"
2026-06-07T23:26:20.9385666Z       ],
2026-06-07T23:26:20.9385757Z       "stages": {
2026-06-07T23:26:20.9385843Z         "doc": {
2026-06-07T23:26:20.9385934Z           "complete": false,
2026-06-07T23:26:20.9386024Z           "evidence": []
2026-06-07T23:26:20.9386110Z         },
2026-06-07T23:26:20.9386263Z         "impl": {
2026-06-07T23:26:20.9386353Z           "complete": true,
2026-06-07T23:26:20.9386443Z           "evidence": [
2026-06-07T23:26:20.9386531Z             {
2026-06-07T23:26:20.9386648Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9386733Z               "line": 246
2026-06-07T23:26:20.9386824Z             },
2026-06-07T23:26:20.9386909Z             {
2026-06-07T23:26:20.9387127Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9387218Z               "line": 257
2026-06-07T23:26:20.9387303Z             },
2026-06-07T23:26:20.9387388Z             {
2026-06-07T23:26:20.9387495Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9387585Z               "line": 275
2026-06-07T23:26:20.9387670Z             }
2026-06-07T23:26:20.9387752Z           ]
2026-06-07T23:26:20.9387843Z         },
2026-06-07T23:26:20.9387923Z         "int": {
2026-06-07T23:26:20.9388018Z           "complete": false,
2026-06-07T23:26:20.9388110Z           "evidence": []
2026-06-07T23:26:20.9388200Z         },
2026-06-07T23:26:20.9388286Z         "unit": {
2026-06-07T23:26:20.9388376Z           "complete": true,
2026-06-07T23:26:20.9388468Z           "evidence": [
2026-06-07T23:26:20.9388553Z             {
2026-06-07T23:26:20.9388667Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9388754Z               "line": 299
2026-06-07T23:26:20.9388839Z             },
2026-06-07T23:26:20.9388924Z             {
2026-06-07T23:26:20.9389035Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9389130Z               "line": 320
2026-06-07T23:26:20.9389215Z             },
2026-06-07T23:26:20.9389300Z             {
2026-06-07T23:26:20.9389405Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9389499Z               "line": 547
2026-06-07T23:26:20.9389584Z             },
2026-06-07T23:26:20.9389665Z             {
2026-06-07T23:26:20.9389776Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9389866Z               "line": 558
2026-06-07T23:26:20.9389951Z             },
2026-06-07T23:26:20.9390032Z             {
2026-06-07T23:26:20.9390142Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9390232Z               "line": 571
2026-06-07T23:26:20.9390318Z             }
2026-06-07T23:26:20.9392430Z           ]
2026-06-07T23:26:20.9392534Z         }
2026-06-07T23:26:20.9392621Z       }
2026-06-07T23:26:20.9392707Z     },
2026-06-07T23:26:20.9392791Z     {
2026-06-07T23:26:20.9392912Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-07T23:26:20.9397189Z       "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-07T23:26:20.9397307Z       "requiredStages": [
2026-06-07T23:26:20.9397394Z         "impl",
2026-06-07T23:26:20.9397488Z         "unit"
2026-06-07T23:26:20.9397592Z       ],
2026-06-07T23:26:20.9397677Z       "stages": {
2026-06-07T23:26:20.9397764Z         "doc": {
2026-06-07T23:26:20.9397863Z           "complete": false,
2026-06-07T23:26:20.9397958Z           "evidence": []
2026-06-07T23:26:20.9398040Z         },
2026-06-07T23:26:20.9398131Z         "impl": {
2026-06-07T23:26:20.9398226Z           "complete": true,
2026-06-07T23:26:20.9398317Z           "evidence": [
2026-06-07T23:26:20.9398398Z             {
2026-06-07T23:26:20.9398535Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9398626Z               "line": 641
2026-06-07T23:26:20.9398708Z             }
2026-06-07T23:26:20.9398793Z           ]
2026-06-07T23:26:20.9398879Z         },
2026-06-07T23:26:20.9399132Z         "int": {
2026-06-07T23:26:20.9399236Z           "complete": false,
2026-06-07T23:26:20.9399324Z           "evidence": []
2026-06-07T23:26:20.9399413Z         },
2026-06-07T23:26:20.9399499Z         "unit": {
2026-06-07T23:26:20.9399590Z           "complete": true,
2026-06-07T23:26:20.9399766Z           "evidence": [
2026-06-07T23:26:20.9399851Z             {
2026-06-07T23:26:20.9399975Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9400064Z               "line": 755
2026-06-07T23:26:20.9400149Z             }
2026-06-07T23:26:20.9400230Z           ]
2026-06-07T23:26:20.9400321Z         }
2026-06-07T23:26:20.9400407Z       }
2026-06-07T23:26:20.9400487Z     },
2026-06-07T23:26:20.9400568Z     {
2026-06-07T23:26:20.9400679Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-07T23:26:20.9400902Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-07T23:26:20.9400998Z       "requiredStages": [
2026-06-07T23:26:20.9401093Z         "impl",
2026-06-07T23:26:20.9401183Z         "unit"
2026-06-07T23:26:20.9401265Z       ],
2026-06-07T23:26:20.9401351Z       "stages": {
2026-06-07T23:26:20.9401431Z         "doc": {
2026-06-07T23:26:20.9401532Z           "complete": false,
2026-06-07T23:26:20.9401628Z           "evidence": []
2026-06-07T23:26:20.9401712Z         },
2026-06-07T23:26:20.9401803Z         "impl": {
2026-06-07T23:26:20.9401895Z           "complete": true,
2026-06-07T23:26:20.9401990Z           "evidence": [
2026-06-07T23:26:20.9402071Z             {
2026-06-07T23:26:20.9402191Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T23:26:20.9402276Z               "line": 14
2026-06-07T23:26:20.9402360Z             },
2026-06-07T23:26:20.9402442Z             {
2026-06-07T23:26:20.9402553Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T23:26:20.9402642Z               "line": 411
2026-06-07T23:26:20.9402722Z             }
2026-06-07T23:26:20.9402808Z           ]
2026-06-07T23:26:20.9402895Z         },
2026-06-07T23:26:20.9402981Z         "int": {
2026-06-07T23:26:20.9403075Z           "complete": false,
2026-06-07T23:26:20.9403162Z           "evidence": []
2026-06-07T23:26:20.9403247Z         },
2026-06-07T23:26:20.9403333Z         "unit": {
2026-06-07T23:26:20.9403428Z           "complete": true,
2026-06-07T23:26:20.9403520Z           "evidence": [
2026-06-07T23:26:20.9403606Z             {
2026-06-07T23:26:20.9403719Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T23:26:20.9403806Z               "line": 130
2026-06-07T23:26:20.9403891Z             },
2026-06-07T23:26:20.9403972Z             {
2026-06-07T23:26:20.9404077Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T23:26:20.9404168Z               "line": 138
2026-06-07T23:26:20.9404253Z             },
2026-06-07T23:26:20.9404334Z             {
2026-06-07T23:26:20.9404440Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T23:26:20.9404530Z               "line": 146
2026-06-07T23:26:20.9404621Z             },
2026-06-07T23:26:20.9404711Z             {
2026-06-07T23:26:20.9404817Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T23:26:20.9404892Z               "line": 154
2026-06-07T23:26:20.9404978Z             },
2026-06-07T23:26:20.9405056Z             {
2026-06-07T23:26:20.9405383Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T23:26:20.9405477Z               "line": 162
2026-06-07T23:26:20.9405566Z             },
2026-06-07T23:26:20.9405647Z             {
2026-06-07T23:26:20.9405748Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T23:26:20.9405829Z               "line": 170
2026-06-07T23:26:20.9405909Z             }
2026-06-07T23:26:20.9406000Z           ]
2026-06-07T23:26:20.9406082Z         }
2026-06-07T23:26:20.9406168Z       }
2026-06-07T23:26:20.9406242Z     },
2026-06-07T23:26:20.9406329Z     {
2026-06-07T23:26:20.9406462Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-07T23:26:20.9407651Z       "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-07T23:26:20.9407759Z       "requiredStages": [
2026-06-07T23:26:20.9407935Z         "impl",
2026-06-07T23:26:20.9408025Z         "unit"
2026-06-07T23:26:20.9408109Z       ],
2026-06-07T23:26:20.9408194Z       "stages": {
2026-06-07T23:26:20.9408280Z         "doc": {
2026-06-07T23:26:20.9408372Z           "complete": false,
2026-06-07T23:26:20.9408466Z           "evidence": []
2026-06-07T23:26:20.9408547Z         },
2026-06-07T23:26:20.9408639Z         "impl": {
2026-06-07T23:26:20.9408734Z           "complete": true,
2026-06-07T23:26:20.9408824Z           "evidence": [
2026-06-07T23:26:20.9408910Z             {
2026-06-07T23:26:20.9409067Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T23:26:20.9409162Z               "line": 34
2026-06-07T23:26:20.9409254Z             }
2026-06-07T23:26:20.9409339Z           ]
2026-06-07T23:26:20.9409425Z         },
2026-06-07T23:26:20.9409506Z         "int": {
2026-06-07T23:26:20.9409607Z           "complete": false,
2026-06-07T23:26:20.9409687Z           "evidence": []
2026-06-07T23:26:20.9409778Z         },
2026-06-07T23:26:20.9409864Z         "unit": {
2026-06-07T23:26:20.9409950Z           "complete": true,
2026-06-07T23:26:20.9410030Z           "evidence": [
2026-06-07T23:26:20.9410112Z             {
2026-06-07T23:26:20.9410251Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T23:26:20.9410359Z               "line": 188
2026-06-07T23:26:20.9410449Z             },
2026-06-07T23:26:20.9410530Z             {
2026-06-07T23:26:20.9410666Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T23:26:20.9410761Z               "line": 200
2026-06-07T23:26:20.9410843Z             },
2026-06-07T23:26:20.9410929Z             {
2026-06-07T23:26:20.9411061Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T23:26:20.9411157Z               "line": 211
2026-06-07T23:26:20.9411239Z             },
2026-06-07T23:26:20.9411324Z             {
2026-06-07T23:26:20.9411457Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T23:26:20.9411549Z               "line": 253
2026-06-07T23:26:20.9411634Z             },
2026-06-07T23:26:20.9411714Z             {
2026-06-07T23:26:20.9411844Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T23:26:20.9411934Z               "line": 277
2026-06-07T23:26:20.9412020Z             },
2026-06-07T23:26:20.9412107Z             {
2026-06-07T23:26:20.9412235Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T23:26:20.9412326Z               "line": 300
2026-06-07T23:26:20.9412407Z             },
2026-06-07T23:26:20.9412493Z             {
2026-06-07T23:26:20.9412631Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T23:26:20.9412722Z               "line": 316
2026-06-07T23:26:20.9412808Z             }
2026-06-07T23:26:20.9412893Z           ]
2026-06-07T23:26:20.9412979Z         }
2026-06-07T23:26:20.9413061Z       }
2026-06-07T23:26:20.9413142Z     },
2026-06-07T23:26:20.9413231Z     {
2026-06-07T23:26:20.9413345Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-07T23:26:20.9413846Z       "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-07T23:26:20.9413940Z       "requiredStages": [
2026-06-07T23:26:20.9414032Z         "impl",
2026-06-07T23:26:20.9414113Z         "unit"
2026-06-07T23:26:20.9414203Z       ],
2026-06-07T23:26:20.9414288Z       "stages": {
2026-06-07T23:26:20.9414371Z         "doc": {
2026-06-07T23:26:20.9414465Z           "complete": false,
2026-06-07T23:26:20.9414556Z           "evidence": []
2026-06-07T23:26:20.9414714Z         },
2026-06-07T23:26:20.9414803Z         "impl": {
2026-06-07T23:26:20.9414894Z           "complete": true,
2026-06-07T23:26:20.9414991Z           "evidence": [
2026-06-07T23:26:20.9415072Z             {
2026-06-07T23:26:20.9415195Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9415548Z               "line": 29
2026-06-07T23:26:20.9415640Z             },
2026-06-07T23:26:20.9415716Z             {
2026-06-07T23:26:20.9415823Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9415913Z               "line": 154
2026-06-07T23:26:20.9416000Z             },
2026-06-07T23:26:20.9416089Z             {
2026-06-07T23:26:20.9416202Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9416288Z               "line": 173
2026-06-07T23:26:20.9416374Z             },
2026-06-07T23:26:20.9416450Z             {
2026-06-07T23:26:20.9416575Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9416689Z               "line": 200
2026-06-07T23:26:20.9416770Z             }
2026-06-07T23:26:20.9416860Z           ]
2026-06-07T23:26:20.9417032Z         },
2026-06-07T23:26:20.9417122Z         "int": {
2026-06-07T23:26:20.9417219Z           "complete": false,
2026-06-07T23:26:20.9417314Z           "evidence": []
2026-06-07T23:26:20.9417400Z         },
2026-06-07T23:26:20.9417490Z         "unit": {
2026-06-07T23:26:20.9417582Z           "complete": true,
2026-06-07T23:26:20.9417671Z           "evidence": [
2026-06-07T23:26:20.9417752Z             {
2026-06-07T23:26:20.9417867Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9417962Z               "line": 276
2026-06-07T23:26:20.9418043Z             },
2026-06-07T23:26:20.9418129Z             {
2026-06-07T23:26:20.9418240Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9418328Z               "line": 291
2026-06-07T23:26:20.9418414Z             },
2026-06-07T23:26:20.9418495Z             {
2026-06-07T23:26:20.9418613Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9418698Z               "line": 310
2026-06-07T23:26:20.9418787Z             },
2026-06-07T23:26:20.9418870Z             {
2026-06-07T23:26:20.9418979Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9419074Z               "line": 326
2026-06-07T23:26:20.9419155Z             },
2026-06-07T23:26:20.9419241Z             {
2026-06-07T23:26:20.9419350Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9419446Z               "line": 385
2026-06-07T23:26:20.9419528Z             },
2026-06-07T23:26:20.9419614Z             {
2026-06-07T23:26:20.9419727Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9419814Z               "line": 399
2026-06-07T23:26:20.9419894Z             },
2026-06-07T23:26:20.9419966Z             {
2026-06-07T23:26:20.9420076Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9420162Z               "line": 410
2026-06-07T23:26:20.9420242Z             },
2026-06-07T23:26:20.9420319Z             {
2026-06-07T23:26:20.9420424Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9420510Z               "line": 421
2026-06-07T23:26:20.9420614Z             }
2026-06-07T23:26:20.9420715Z           ]
2026-06-07T23:26:20.9420797Z         }
2026-06-07T23:26:20.9420881Z       }
2026-06-07T23:26:20.9420961Z     },
2026-06-07T23:26:20.9421042Z     {
2026-06-07T23:26:20.9421165Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-07T23:26:20.9421813Z       "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-07T23:26:20.9421913Z       "requiredStages": [
2026-06-07T23:26:20.9421999Z         "impl",
2026-06-07T23:26:20.9422085Z         "unit"
2026-06-07T23:26:20.9422166Z       ],
2026-06-07T23:26:20.9422251Z       "stages": {
2026-06-07T23:26:20.9422452Z         "doc": {
2026-06-07T23:26:20.9422547Z           "complete": false,
2026-06-07T23:26:20.9422638Z           "evidence": []
2026-06-07T23:26:20.9422724Z         },
2026-06-07T23:26:20.9422809Z         "impl": {
2026-06-07T23:26:20.9422900Z           "complete": true,
2026-06-07T23:26:20.9423105Z           "evidence": [
2026-06-07T23:26:20.9423191Z             {
2026-06-07T23:26:20.9423321Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9423411Z               "line": 27
2026-06-07T23:26:20.9423504Z             },
2026-06-07T23:26:20.9423592Z             {
2026-06-07T23:26:20.9423716Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9423810Z               "line": 110
2026-06-07T23:26:20.9423895Z             },
2026-06-07T23:26:20.9423977Z             {
2026-06-07T23:26:20.9424105Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9424190Z               "line": 153
2026-06-07T23:26:20.9424282Z             },
2026-06-07T23:26:20.9424363Z             {
2026-06-07T23:26:20.9424482Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9424572Z               "line": 182
2026-06-07T23:26:20.9424654Z             },
2026-06-07T23:26:20.9424749Z             {
2026-06-07T23:26:20.9424887Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T23:26:20.9424974Z               "line": 31
2026-06-07T23:26:20.9425059Z             },
2026-06-07T23:26:20.9425144Z             {
2026-06-07T23:26:20.9425464Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T23:26:20.9425556Z               "line": 113
2026-06-07T23:26:20.9425637Z             },
2026-06-07T23:26:20.9425711Z             {
2026-06-07T23:26:20.9425851Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T23:26:20.9425942Z               "line": 138
2026-06-07T23:26:20.9426022Z             }
2026-06-07T23:26:20.9426103Z           ]
2026-06-07T23:26:20.9426195Z         },
2026-06-07T23:26:20.9426322Z         "int": {
2026-06-07T23:26:20.9426412Z           "complete": false,
2026-06-07T23:26:20.9426498Z           "evidence": []
2026-06-07T23:26:20.9426579Z         },
2026-06-07T23:26:20.9426649Z         "unit": {
2026-06-07T23:26:20.9426738Z           "complete": true,
2026-06-07T23:26:20.9426825Z           "evidence": [
2026-06-07T23:26:20.9426911Z             {
2026-06-07T23:26:20.9427110Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9427193Z               "line": 261
2026-06-07T23:26:20.9427283Z             },
2026-06-07T23:26:20.9427377Z             {
2026-06-07T23:26:20.9427502Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9427582Z               "line": 276
2026-06-07T23:26:20.9427668Z             },
2026-06-07T23:26:20.9427749Z             {
2026-06-07T23:26:20.9427860Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9427950Z               "line": 293
2026-06-07T23:26:20.9428026Z             },
2026-06-07T23:26:20.9428146Z             {
2026-06-07T23:26:20.9428274Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9428365Z               "line": 310
2026-06-07T23:26:20.9428456Z             },
2026-06-07T23:26:20.9428537Z             {
2026-06-07T23:26:20.9428665Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9428752Z               "line": 327
2026-06-07T23:26:20.9428838Z             },
2026-06-07T23:26:20.9428926Z             {
2026-06-07T23:26:20.9429045Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9429169Z               "line": 366
2026-06-07T23:26:20.9429253Z             },
2026-06-07T23:26:20.9429338Z             {
2026-06-07T23:26:20.9429473Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T23:26:20.9429572Z               "line": 179
2026-06-07T23:26:20.9429906Z             },
2026-06-07T23:26:20.9429987Z             {
2026-06-07T23:26:20.9430126Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T23:26:20.9430216Z               "line": 194
2026-06-07T23:26:20.9430301Z             },
2026-06-07T23:26:20.9430379Z             {
2026-06-07T23:26:20.9430602Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T23:26:20.9430699Z               "line": 204
2026-06-07T23:26:20.9430802Z             },
2026-06-07T23:26:20.9430931Z             {
2026-06-07T23:26:20.9431066Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T23:26:20.9431160Z               "line": 259
2026-06-07T23:26:20.9431237Z             },
2026-06-07T23:26:20.9431328Z             {
2026-06-07T23:26:20.9431464Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T23:26:20.9431545Z               "line": 269
2026-06-07T23:26:20.9431636Z             },
2026-06-07T23:26:20.9431721Z             {
2026-06-07T23:26:20.9431858Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T23:26:20.9431953Z               "line": 283
2026-06-07T23:26:20.9432035Z             }
2026-06-07T23:26:20.9432120Z           ]
2026-06-07T23:26:20.9432200Z         }
2026-06-07T23:26:20.9432292Z       }
2026-06-07T23:26:20.9432373Z     },
2026-06-07T23:26:20.9432449Z     {
2026-06-07T23:26:20.9432569Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-07T23:26:20.9432754Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-07T23:26:20.9432854Z       "requiredStages": [],
2026-06-07T23:26:20.9432937Z       "stages": {
2026-06-07T23:26:20.9433021Z         "doc": {
2026-06-07T23:26:20.9433116Z           "complete": false,
2026-06-07T23:26:20.9433208Z           "evidence": []
2026-06-07T23:26:20.9433298Z         },
2026-06-07T23:26:20.9433383Z         "impl": {
2026-06-07T23:26:20.9433474Z           "complete": false,
2026-06-07T23:26:20.9433566Z           "evidence": []
2026-06-07T23:26:20.9433656Z         },
2026-06-07T23:26:20.9433741Z         "int": {
2026-06-07T23:26:20.9433837Z           "complete": false,
2026-06-07T23:26:20.9433937Z           "evidence": []
2026-06-07T23:26:20.9434022Z         },
2026-06-07T23:26:20.9434113Z         "unit": {
2026-06-07T23:26:20.9434205Z           "complete": false,
2026-06-07T23:26:20.9434300Z           "evidence": []
2026-06-07T23:26:20.9434384Z         }
2026-06-07T23:26:20.9434474Z       }
2026-06-07T23:26:20.9434556Z     },
2026-06-07T23:26:20.9434637Z     {
2026-06-07T23:26:20.9434769Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-07T23:26:20.9435605Z       "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-07T23:26:20.9435713Z       "requiredStages": [
2026-06-07T23:26:20.9435806Z         "impl",
2026-06-07T23:26:20.9435891Z         "unit"
2026-06-07T23:26:20.9435981Z       ],
2026-06-07T23:26:20.9436067Z       "stages": {
2026-06-07T23:26:20.9436154Z         "doc": {
2026-06-07T23:26:20.9436243Z           "complete": false,
2026-06-07T23:26:20.9436334Z           "evidence": []
2026-06-07T23:26:20.9436416Z         },
2026-06-07T23:26:20.9436502Z         "impl": {
2026-06-07T23:26:20.9436596Z           "complete": true,
2026-06-07T23:26:20.9436677Z           "evidence": [
2026-06-07T23:26:20.9436765Z             {
2026-06-07T23:26:20.9436896Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T23:26:20.9437063Z               "line": 26
2026-06-07T23:26:20.9437139Z             },
2026-06-07T23:26:20.9437223Z             {
2026-06-07T23:26:20.9437375Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T23:26:20.9437467Z               "line": 95
2026-06-07T23:26:20.9437557Z             },
2026-06-07T23:26:20.9437641Z             {
2026-06-07T23:26:20.9437862Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T23:26:20.9437961Z               "line": 166
2026-06-07T23:26:20.9438048Z             },
2026-06-07T23:26:20.9438134Z             {
2026-06-07T23:26:20.9438256Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T23:26:20.9438429Z               "line": 19
2026-06-07T23:26:20.9438515Z             },
2026-06-07T23:26:20.9438610Z             {
2026-06-07T23:26:20.9438726Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T23:26:20.9438814Z               "line": 50
2026-06-07T23:26:20.9438905Z             },
2026-06-07T23:26:20.9438988Z             {
2026-06-07T23:26:20.9439106Z               "path": "crates/spt-live/src/turn.rs",
2026-06-07T23:26:20.9439192Z               "line": 18
2026-06-07T23:26:20.9439288Z             },
2026-06-07T23:26:20.9439374Z             {
2026-06-07T23:26:20.9439481Z               "path": "crates/spt-live/src/turn.rs",
2026-06-07T23:26:20.9439581Z               "line": 71
2026-06-07T23:26:20.9439677Z             },
2026-06-07T23:26:20.9439761Z             {
2026-06-07T23:26:20.9439875Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.9439965Z               "line": 70
2026-06-07T23:26:20.9440061Z             }
2026-06-07T23:26:20.9440146Z           ]
2026-06-07T23:26:20.9440242Z         },
2026-06-07T23:26:20.9440329Z         "int": {
2026-06-07T23:26:20.9440424Z           "complete": false,
2026-06-07T23:26:20.9440514Z           "evidence": []
2026-06-07T23:26:20.9440610Z         },
2026-06-07T23:26:20.9440704Z         "unit": {
2026-06-07T23:26:20.9440795Z           "complete": true,
2026-06-07T23:26:20.9440886Z           "evidence": [
2026-06-07T23:26:20.9440973Z             {
2026-06-07T23:26:20.9441096Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T23:26:20.9441181Z               "line": 289
2026-06-07T23:26:20.9441278Z             },
2026-06-07T23:26:20.9441362Z             {
2026-06-07T23:26:20.9441482Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T23:26:20.9441578Z               "line": 308
2026-06-07T23:26:20.9441663Z             },
2026-06-07T23:26:20.9441749Z             {
2026-06-07T23:26:20.9441864Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T23:26:20.9441955Z               "line": 336
2026-06-07T23:26:20.9442053Z             },
2026-06-07T23:26:20.9442133Z             {
2026-06-07T23:26:20.9442253Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T23:26:20.9442341Z               "line": 399
2026-06-07T23:26:20.9442432Z             },
2026-06-07T23:26:20.9442513Z             {
2026-06-07T23:26:20.9442638Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T23:26:20.9442732Z               "line": 410
2026-06-07T23:26:20.9442819Z             },
2026-06-07T23:26:20.9442904Z             {
2026-06-07T23:26:20.9443018Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T23:26:20.9443114Z               "line": 441
2026-06-07T23:26:20.9443201Z             },
2026-06-07T23:26:20.9443291Z             {
2026-06-07T23:26:20.9443409Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T23:26:20.9443506Z               "line": 452
2026-06-07T23:26:20.9443596Z             },
2026-06-07T23:26:20.9443681Z             {
2026-06-07T23:26:20.9443802Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T23:26:20.9443891Z               "line": 77
2026-06-07T23:26:20.9443977Z             },
2026-06-07T23:26:20.9444063Z             {
2026-06-07T23:26:20.9444178Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T23:26:20.9444272Z               "line": 97
2026-06-07T23:26:20.9444354Z             },
2026-06-07T23:26:20.9444441Z             {
2026-06-07T23:26:20.9444563Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T23:26:20.9444649Z               "line": 112
2026-06-07T23:26:20.9444741Z             },
2026-06-07T23:26:20.9444826Z             {
2026-06-07T23:26:20.9445020Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T23:26:20.9445116Z               "line": 123
2026-06-07T23:26:20.9445202Z             },
2026-06-07T23:26:20.9445287Z             {
2026-06-07T23:26:20.9445402Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T23:26:20.9445488Z               "line": 130
2026-06-07T23:26:20.9445649Z             },
2026-06-07T23:26:20.9445755Z             {
2026-06-07T23:26:20.9445865Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T23:26:20.9445959Z               "line": 145
2026-06-07T23:26:20.9446047Z             },
2026-06-07T23:26:20.9446127Z             {
2026-06-07T23:26:20.9446236Z               "path": "crates/spt-live/src/turn.rs",
2026-06-07T23:26:20.9446318Z               "line": 115
2026-06-07T23:26:20.9446437Z             },
2026-06-07T23:26:20.9446522Z             {
2026-06-07T23:26:20.9446627Z               "path": "crates/spt-live/src/turn.rs",
2026-06-07T23:26:20.9446719Z               "line": 130
2026-06-07T23:26:20.9446803Z             },
2026-06-07T23:26:20.9446894Z             {
2026-06-07T23:26:20.9447104Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T23:26:20.9447204Z               "line": 336
2026-06-07T23:26:20.9447286Z             }
2026-06-07T23:26:20.9447377Z           ]
2026-06-07T23:26:20.9447475Z         }
2026-06-07T23:26:20.9447565Z       }
2026-06-07T23:26:20.9447656Z     },
2026-06-07T23:26:20.9447741Z     {
2026-06-07T23:26:20.9447868Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-07T23:26:20.9448121Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-07T23:26:20.9448221Z       "requiredStages": [
2026-06-07T23:26:20.9448313Z         "impl",
2026-06-07T23:26:20.9448403Z         "unit"
2026-06-07T23:26:20.9448492Z       ],
2026-06-07T23:26:20.9448584Z       "stages": {
2026-06-07T23:26:20.9448675Z         "doc": {
2026-06-07T23:26:20.9448770Z           "complete": true,
2026-06-07T23:26:20.9448865Z           "evidence": [
2026-06-07T23:26:20.9448961Z             {
2026-06-07T23:26:20.9449070Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T23:26:20.9449160Z               "line": 137
2026-06-07T23:26:20.9449243Z             }
2026-06-07T23:26:20.9449337Z           ]
2026-06-07T23:26:20.9449419Z         },
2026-06-07T23:26:20.9449514Z         "impl": {
2026-06-07T23:26:20.9449615Z           "complete": true,
2026-06-07T23:26:20.9449704Z           "evidence": [
2026-06-07T23:26:20.9449780Z             {
2026-06-07T23:26:20.9449887Z               "path": "crates/spt-store/src/db.rs",
2026-06-07T23:26:20.9449981Z               "line": 29
2026-06-07T23:26:20.9450070Z             },
2026-06-07T23:26:20.9450160Z             {
2026-06-07T23:26:20.9450299Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9450387Z               "line": 101
2026-06-07T23:26:20.9450477Z             },
2026-06-07T23:26:20.9450560Z             {
2026-06-07T23:26:20.9450688Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9450787Z               "line": 30
2026-06-07T23:26:20.9450880Z             },
2026-06-07T23:26:20.9450965Z             {
2026-06-07T23:26:20.9451074Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9451165Z               "line": 48
2026-06-07T23:26:20.9451255Z             }
2026-06-07T23:26:20.9451341Z           ]
2026-06-07T23:26:20.9451427Z         },
2026-06-07T23:26:20.9451518Z         "int": {
2026-06-07T23:26:20.9451618Z           "complete": false,
2026-06-07T23:26:20.9451708Z           "evidence": []
2026-06-07T23:26:20.9451804Z         },
2026-06-07T23:26:20.9451894Z         "unit": {
2026-06-07T23:26:20.9451989Z           "complete": true,
2026-06-07T23:26:20.9452080Z           "evidence": [
2026-06-07T23:26:20.9452167Z             {
2026-06-07T23:26:20.9452290Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9452376Z               "line": 162
2026-06-07T23:26:20.9452463Z             }
2026-06-07T23:26:20.9452552Z           ]
2026-06-07T23:26:20.9452751Z         }
2026-06-07T23:26:20.9452842Z       }
2026-06-07T23:26:20.9452930Z     },
2026-06-07T23:26:20.9453020Z     {
2026-06-07T23:26:20.9453136Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-07T23:26:20.9453518Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-07T23:26:20.9453727Z       "requiredStages": [
2026-06-07T23:26:20.9453822Z         "doc",
2026-06-07T23:26:20.9453917Z         "impl",
2026-06-07T23:26:20.9454003Z         "unit"
2026-06-07T23:26:20.9454095Z       ],
2026-06-07T23:26:20.9454180Z       "stages": {
2026-06-07T23:26:20.9454270Z         "doc": {
2026-06-07T23:26:20.9454362Z           "complete": true,
2026-06-07T23:26:20.9454456Z           "evidence": [
2026-06-07T23:26:20.9454546Z             {
2026-06-07T23:26:20.9454653Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T23:26:20.9454748Z               "line": 149
2026-06-07T23:26:20.9454828Z             }
2026-06-07T23:26:20.9454924Z           ]
2026-06-07T23:26:20.9455175Z         },
2026-06-07T23:26:20.9455272Z         "impl": {
2026-06-07T23:26:20.9455364Z           "complete": true,
2026-06-07T23:26:20.9455452Z           "evidence": [
2026-06-07T23:26:20.9455537Z             {
2026-06-07T23:26:20.9455672Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9455767Z               "line": 22
2026-06-07T23:26:20.9455852Z             }
2026-06-07T23:26:20.9455929Z           ]
2026-06-07T23:26:20.9456015Z         },
2026-06-07T23:26:20.9456105Z         "int": {
2026-06-07T23:26:20.9456204Z           "complete": false,
2026-06-07T23:26:20.9456297Z           "evidence": []
2026-06-07T23:26:20.9456387Z         },
2026-06-07T23:26:20.9456472Z         "unit": {
2026-06-07T23:26:20.9456563Z           "complete": true,
2026-06-07T23:26:20.9456649Z           "evidence": [
2026-06-07T23:26:20.9456744Z             {
2026-06-07T23:26:20.9456926Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9457097Z               "line": 298
2026-06-07T23:26:20.9457187Z             }
2026-06-07T23:26:20.9457274Z           ]
2026-06-07T23:26:20.9457359Z         }
2026-06-07T23:26:20.9457445Z       }
2026-06-07T23:26:20.9457536Z     },
2026-06-07T23:26:20.9457632Z     {
2026-06-07T23:26:20.9457754Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-07T23:26:20.9458197Z       "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-07T23:26:20.9458292Z       "requiredStages": [
2026-06-07T23:26:20.9458386Z         "impl",
2026-06-07T23:26:20.9458476Z         "unit"
2026-06-07T23:26:20.9458558Z       ],
2026-06-07T23:26:20.9458653Z       "stages": {
2026-06-07T23:26:20.9458742Z         "doc": {
2026-06-07T23:26:20.9458844Z           "complete": true,
2026-06-07T23:26:20.9458930Z           "evidence": [
2026-06-07T23:26:20.9459024Z             {
2026-06-07T23:26:20.9459144Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T23:26:20.9459235Z               "line": 143
2026-06-07T23:26:20.9459320Z             }
2026-06-07T23:26:20.9459406Z           ]
2026-06-07T23:26:20.9459493Z         },
2026-06-07T23:26:20.9459578Z         "impl": {
2026-06-07T23:26:20.9459682Z           "complete": true,
2026-06-07T23:26:20.9459778Z           "evidence": [
2026-06-07T23:26:20.9459864Z             {
2026-06-07T23:26:20.9459993Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9460079Z               "line": 486
2026-06-07T23:26:20.9460160Z             },
2026-06-07T23:26:20.9460245Z             {
2026-06-07T23:26:20.9460379Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9460470Z               "line": 178
2026-06-07T23:26:20.9460555Z             },
2026-06-07T23:26:20.9460640Z             {
2026-06-07T23:26:20.9460760Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9460854Z               "line": 209
2026-06-07T23:26:20.9461047Z             },
2026-06-07T23:26:20.9461139Z             {
2026-06-07T23:26:20.9461257Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-07T23:26:20.9461348Z               "line": 15
2026-06-07T23:26:20.9461440Z             }
2026-06-07T23:26:20.9461609Z           ]
2026-06-07T23:26:20.9461706Z         },
2026-06-07T23:26:20.9461792Z         "int": {
2026-06-07T23:26:20.9461887Z           "complete": false,
2026-06-07T23:26:20.9461977Z           "evidence": []
2026-06-07T23:26:20.9462064Z         },
2026-06-07T23:26:20.9462154Z         "unit": {
2026-06-07T23:26:20.9462244Z           "complete": true,
2026-06-07T23:26:20.9462341Z           "evidence": [
2026-06-07T23:26:20.9462427Z             {
2026-06-07T23:26:20.9462559Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9462655Z               "line": 724
2026-06-07T23:26:20.9462742Z             },
2026-06-07T23:26:20.9462830Z             {
2026-06-07T23:26:20.9462960Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-07T23:26:20.9463061Z               "line": 87
2026-06-07T23:26:20.9463145Z             },
2026-06-07T23:26:20.9463235Z             {
2026-06-07T23:26:20.9463354Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9463453Z               "line": 729
2026-06-07T23:26:20.9463543Z             },
2026-06-07T23:26:20.9463629Z             {
2026-06-07T23:26:20.9463754Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9463843Z               "line": 748
2026-06-07T23:26:20.9463934Z             },
2026-06-07T23:26:20.9464020Z             {
2026-06-07T23:26:20.9464143Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T23:26:20.9464239Z               "line": 167
2026-06-07T23:26:20.9464321Z             },
2026-06-07T23:26:20.9464406Z             {
2026-06-07T23:26:20.9467133Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-07T23:26:20.9467261Z               "line": 77
2026-06-07T23:26:20.9467366Z             },
2026-06-07T23:26:20.9467452Z             {
2026-06-07T23:26:20.9467585Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-07T23:26:20.9467676Z               "line": 94
2026-06-07T23:26:20.9467767Z             },
2026-06-07T23:26:20.9467858Z             {
2026-06-07T23:26:20.9467981Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-07T23:26:20.9468072Z               "line": 114
2026-06-07T23:26:20.9468159Z             }
2026-06-07T23:26:20.9468248Z           ]
2026-06-07T23:26:20.9468334Z         }
2026-06-07T23:26:20.9468421Z       }
2026-06-07T23:26:20.9468506Z     },
2026-06-07T23:26:20.9468595Z     {
2026-06-07T23:26:20.9468714Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-07T23:26:20.9470034Z       "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-07T23:26:20.9470138Z       "requiredStages": [
2026-06-07T23:26:20.9470228Z         "doc",
2026-06-07T23:26:20.9470315Z         "impl",
2026-06-07T23:26:20.9470406Z         "unit"
2026-06-07T23:26:20.9470486Z       ],
2026-06-07T23:26:20.9470577Z       "stages": {
2026-06-07T23:26:20.9470663Z         "doc": {
2026-06-07T23:26:20.9470772Z           "complete": true,
2026-06-07T23:26:20.9470868Z           "evidence": [
2026-06-07T23:26:20.9470954Z             {
2026-06-07T23:26:20.9471068Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T23:26:20.9471158Z               "line": 155
2026-06-07T23:26:20.9471247Z             }
2026-06-07T23:26:20.9471329Z           ]
2026-06-07T23:26:20.9471419Z         },
2026-06-07T23:26:20.9471508Z         "impl": {
2026-06-07T23:26:20.9471728Z           "complete": true,
2026-06-07T23:26:20.9471832Z           "evidence": [
2026-06-07T23:26:20.9471913Z             {
2026-06-07T23:26:20.9472047Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9472137Z               "line": 345
2026-06-07T23:26:20.9472228Z             },
2026-06-07T23:26:20.9472399Z             {
2026-06-07T23:26:20.9472533Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9472624Z               "line": 409
2026-06-07T23:26:20.9472709Z             },
2026-06-07T23:26:20.9472795Z             {
2026-06-07T23:26:20.9472920Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9473005Z               "line": 416
2026-06-07T23:26:20.9473091Z             },
2026-06-07T23:26:20.9473177Z             {
2026-06-07T23:26:20.9473302Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9473390Z               "line": 191
2026-06-07T23:26:20.9473477Z             }
2026-06-07T23:26:20.9473564Z           ]
2026-06-07T23:26:20.9473654Z         },
2026-06-07T23:26:20.9473738Z         "int": {
2026-06-07T23:26:20.9473833Z           "complete": false,
2026-06-07T23:26:20.9473929Z           "evidence": []
2026-06-07T23:26:20.9474013Z         },
2026-06-07T23:26:20.9474103Z         "unit": {
2026-06-07T23:26:20.9474199Z           "complete": true,
2026-06-07T23:26:20.9474290Z           "evidence": [
2026-06-07T23:26:20.9474379Z             {
2026-06-07T23:26:20.9474509Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9474604Z               "line": 1240
2026-06-07T23:26:20.9474685Z             },
2026-06-07T23:26:20.9474770Z             {
2026-06-07T23:26:20.9474895Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9474991Z               "line": 1298
2026-06-07T23:26:20.9475080Z             },
2026-06-07T23:26:20.9475162Z             {
2026-06-07T23:26:20.9475285Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9475375Z               "line": 761
2026-06-07T23:26:20.9475463Z             }
2026-06-07T23:26:20.9475549Z           ]
2026-06-07T23:26:20.9475643Z         }
2026-06-07T23:26:20.9475729Z       }
2026-06-07T23:26:20.9475811Z     },
2026-06-07T23:26:20.9475901Z     {
2026-06-07T23:26:20.9476019Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-07T23:26:20.9476206Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-07T23:26:20.9476300Z       "requiredStages": [
2026-06-07T23:26:20.9476397Z         "impl",
2026-06-07T23:26:20.9476484Z         "unit"
2026-06-07T23:26:20.9476572Z       ],
2026-06-07T23:26:20.9476662Z       "stages": {
2026-06-07T23:26:20.9476748Z         "doc": {
2026-06-07T23:26:20.9476849Z           "complete": false,
2026-06-07T23:26:20.9476939Z           "evidence": []
2026-06-07T23:26:20.9477121Z         },
2026-06-07T23:26:20.9477207Z         "impl": {
2026-06-07T23:26:20.9477301Z           "complete": true,
2026-06-07T23:26:20.9477397Z           "evidence": [
2026-06-07T23:26:20.9477483Z             {
2026-06-07T23:26:20.9477601Z               "path": "crates/spt-store/src/proc.rs",
2026-06-07T23:26:20.9477698Z               "line": 15
2026-06-07T23:26:20.9477784Z             },
2026-06-07T23:26:20.9477874Z             {
2026-06-07T23:26:20.9477998Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9478089Z               "line": 55
2026-06-07T23:26:20.9478174Z             },
2026-06-07T23:26:20.9478255Z             {
2026-06-07T23:26:20.9478376Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9478465Z               "line": 66
2026-06-07T23:26:20.9478550Z             },
2026-06-07T23:26:20.9478637Z             {
2026-06-07T23:26:20.9478756Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9478850Z               "line": 115
2026-06-07T23:26:20.9478937Z             },
2026-06-07T23:26:20.9479024Z             {
2026-06-07T23:26:20.9479240Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9479332Z               "line": 138
2026-06-07T23:26:20.9479416Z             }
2026-06-07T23:26:20.9479501Z           ]
2026-06-07T23:26:20.9479586Z         },
2026-06-07T23:26:20.9479673Z         "int": {
2026-06-07T23:26:20.9479854Z           "complete": false,
2026-06-07T23:26:20.9479949Z           "evidence": []
2026-06-07T23:26:20.9480040Z         },
2026-06-07T23:26:20.9480121Z         "unit": {
2026-06-07T23:26:20.9480216Z           "complete": true,
2026-06-07T23:26:20.9480308Z           "evidence": [
2026-06-07T23:26:20.9480398Z             {
2026-06-07T23:26:20.9480507Z               "path": "crates/spt-store/src/proc.rs",
2026-06-07T23:26:20.9480599Z               "line": 149
2026-06-07T23:26:20.9480689Z             },
2026-06-07T23:26:20.9480769Z             {
2026-06-07T23:26:20.9480879Z               "path": "crates/spt-store/src/proc.rs",
2026-06-07T23:26:20.9480970Z               "line": 155
2026-06-07T23:26:20.9481055Z             },
2026-06-07T23:26:20.9481151Z             {
2026-06-07T23:26:20.9481262Z               "path": "crates/spt-store/src/proc.rs",
2026-06-07T23:26:20.9481351Z               "line": 169
2026-06-07T23:26:20.9481432Z             },
2026-06-07T23:26:20.9481519Z             {
2026-06-07T23:26:20.9481633Z               "path": "crates/spt-store/src/proc.rs",
2026-06-07T23:26:20.9481722Z               "line": 178
2026-06-07T23:26:20.9481812Z             },
2026-06-07T23:26:20.9481894Z             {
2026-06-07T23:26:20.9482015Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9482110Z               "line": 195
2026-06-07T23:26:20.9482197Z             },
2026-06-07T23:26:20.9482283Z             {
2026-06-07T23:26:20.9482397Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9482487Z               "line": 208
2026-06-07T23:26:20.9482569Z             },
2026-06-07T23:26:20.9482655Z             {
2026-06-07T23:26:20.9482768Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9482865Z               "line": 271
2026-06-07T23:26:20.9482950Z             },
2026-06-07T23:26:20.9483040Z             {
2026-06-07T23:26:20.9483156Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9483246Z               "line": 290
2026-06-07T23:26:20.9483336Z             },
2026-06-07T23:26:20.9483417Z             {
2026-06-07T23:26:20.9483532Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9483622Z               "line": 319
2026-06-07T23:26:20.9483708Z             }
2026-06-07T23:26:20.9483800Z           ]
2026-06-07T23:26:20.9483880Z         }
2026-06-07T23:26:20.9483970Z       }
2026-06-07T23:26:20.9484051Z     },
2026-06-07T23:26:20.9484138Z     {
2026-06-07T23:26:20.9484251Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-07T23:26:20.9484522Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-07T23:26:20.9484625Z       "requiredStages": [
2026-06-07T23:26:20.9484715Z         "impl",
2026-06-07T23:26:20.9484807Z         "unit",
2026-06-07T23:26:20.9484893Z         "int"
2026-06-07T23:26:20.9484977Z       ],
2026-06-07T23:26:20.9485069Z       "stages": {
2026-06-07T23:26:20.9485183Z         "doc": {
2026-06-07T23:26:20.9485335Z           "complete": false,
2026-06-07T23:26:20.9485470Z           "evidence": []
2026-06-07T23:26:20.9485574Z         },
2026-06-07T23:26:20.9485664Z         "impl": {
2026-06-07T23:26:20.9485756Z           "complete": true,
2026-06-07T23:26:20.9485845Z           "evidence": [
2026-06-07T23:26:20.9485940Z             {
2026-06-07T23:26:20.9486061Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T23:26:20.9486151Z               "line": 269
2026-06-07T23:26:20.9486236Z             },
2026-06-07T23:26:20.9486318Z             {
2026-06-07T23:26:20.9486443Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T23:26:20.9486527Z               "line": 578
2026-06-07T23:26:20.9486618Z             },
2026-06-07T23:26:20.9486804Z             {
2026-06-07T23:26:20.9486914Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T23:26:20.9487105Z               "line": 601
2026-06-07T23:26:20.9487198Z             },
2026-06-07T23:26:20.9487284Z             {
2026-06-07T23:26:20.9487551Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T23:26:20.9487647Z               "line": 625
2026-06-07T23:26:20.9487733Z             },
2026-06-07T23:26:20.9487809Z             {
2026-06-07T23:26:20.9487933Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T23:26:20.9488024Z               "line": 492
2026-06-07T23:26:20.9488110Z             },
2026-06-07T23:26:20.9488195Z             {
2026-06-07T23:26:20.9488306Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T23:26:20.9488400Z               "line": 580
2026-06-07T23:26:20.9488486Z             },
2026-06-07T23:26:20.9488601Z             {
2026-06-07T23:26:20.9488710Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T23:26:20.9488796Z               "line": 690
2026-06-07T23:26:20.9488887Z             },
2026-06-07T23:26:20.9488974Z             {
2026-06-07T23:26:20.9489087Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T23:26:20.9489173Z               "line": 738
2026-06-07T23:26:20.9489260Z             },
2026-06-07T23:26:20.9489344Z             {
2026-06-07T23:26:20.9489473Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-07T23:26:20.9489580Z               "line": 46
2026-06-07T23:26:20.9489664Z             },
2026-06-07T23:26:20.9489749Z             {
2026-06-07T23:26:20.9489858Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-07T23:26:20.9489949Z               "line": 167
2026-06-07T23:26:20.9490023Z             },
2026-06-07T23:26:20.9490104Z             {
2026-06-07T23:26:20.9490214Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-07T23:26:20.9490300Z               "line": 71
2026-06-07T23:26:20.9490395Z             },
2026-06-07T23:26:20.9490509Z             {
2026-06-07T23:26:20.9490624Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9490714Z               "line": 134
2026-06-07T23:26:20.9490805Z             },
2026-06-07T23:26:20.9490887Z             {
2026-06-07T23:26:20.9491000Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9491095Z               "line": 180
2026-06-07T23:26:20.9491183Z             }
2026-06-07T23:26:20.9491277Z           ]
2026-06-07T23:26:20.9491358Z         },
2026-06-07T23:26:20.9491444Z         "int": {
2026-06-07T23:26:20.9491540Z           "complete": true,
2026-06-07T23:26:20.9491630Z           "evidence": [
2026-06-07T23:26:20.9491716Z             {
2026-06-07T23:26:20.9491841Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-07T23:26:20.9491930Z               "line": 27
2026-06-07T23:26:20.9492016Z             },
2026-06-07T23:26:20.9492108Z             {
2026-06-07T23:26:20.9492240Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-07T23:26:20.9492329Z               "line": 128
2026-06-07T23:26:20.9492420Z             },
2026-06-07T23:26:20.9492510Z             {
2026-06-07T23:26:20.9492628Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-07T23:26:20.9492718Z               "line": 199
2026-06-07T23:26:20.9492810Z             }
2026-06-07T23:26:20.9492890Z           ]
2026-06-07T23:26:20.9492980Z         },
2026-06-07T23:26:20.9493066Z         "unit": {
2026-06-07T23:26:20.9493162Z           "complete": true,
2026-06-07T23:26:20.9493252Z           "evidence": [
2026-06-07T23:26:20.9493333Z             {
2026-06-07T23:26:20.9493458Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-07T23:26:20.9493553Z               "line": 313
2026-06-07T23:26:20.9493643Z             },
2026-06-07T23:26:20.9493726Z             {
2026-06-07T23:26:20.9493844Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-07T23:26:20.9493934Z               "line": 345
2026-06-07T23:26:20.9494116Z             },
2026-06-07T23:26:20.9494206Z             {
2026-06-07T23:26:20.9494321Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-07T23:26:20.9494412Z               "line": 366
2026-06-07T23:26:20.9494502Z             },
2026-06-07T23:26:20.9494583Z             {
2026-06-07T23:26:20.9494769Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-07T23:26:20.9494863Z               "line": 253
2026-06-07T23:26:20.9494944Z             },
2026-06-07T23:26:20.9495030Z             {
2026-06-07T23:26:20.9495147Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-07T23:26:20.9495242Z               "line": 238
2026-06-07T23:26:20.9495324Z             },
2026-06-07T23:26:20.9495415Z             {
2026-06-07T23:26:20.9495518Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-07T23:26:20.9495604Z               "line": 229
2026-06-07T23:26:20.9495691Z             },
2026-06-07T23:26:20.9495772Z             {
2026-06-07T23:26:20.9495890Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9495982Z               "line": 488
2026-06-07T23:26:20.9496067Z             },
2026-06-07T23:26:20.9496158Z             {
2026-06-07T23:26:20.9496273Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9496368Z               "line": 518
2026-06-07T23:26:20.9496458Z             }
2026-06-07T23:26:20.9496544Z           ]
2026-06-07T23:26:20.9496626Z         }
2026-06-07T23:26:20.9496716Z       }
2026-06-07T23:26:20.9496801Z     },
2026-06-07T23:26:20.9496888Z     {
2026-06-07T23:26:20.9497102Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-07T23:26:20.9497289Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-07T23:26:20.9497387Z       "requiredStages": [
2026-06-07T23:26:20.9497474Z         "impl",
2026-06-07T23:26:20.9497566Z         "unit"
2026-06-07T23:26:20.9497651Z       ],
2026-06-07T23:26:20.9497735Z       "stages": {
2026-06-07T23:26:20.9497830Z         "doc": {
2026-06-07T23:26:20.9497912Z           "complete": false,
2026-06-07T23:26:20.9498003Z           "evidence": []
2026-06-07T23:26:20.9498087Z         },
2026-06-07T23:26:20.9498174Z         "impl": {
2026-06-07T23:26:20.9498270Z           "complete": true,
2026-06-07T23:26:20.9498360Z           "evidence": [
2026-06-07T23:26:20.9498450Z             {
2026-06-07T23:26:20.9498575Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9498666Z               "line": 56
2026-06-07T23:26:20.9498750Z             },
2026-06-07T23:26:20.9498842Z             {
2026-06-07T23:26:20.9498975Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9499060Z               "line": 65
2026-06-07T23:26:20.9499147Z             },
2026-06-07T23:26:20.9499233Z             {
2026-06-07T23:26:20.9499356Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9499442Z               "line": 72
2026-06-07T23:26:20.9499534Z             },
2026-06-07T23:26:20.9499623Z             {
2026-06-07T23:26:20.9499733Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9499825Z               "line": 33
2026-06-07T23:26:20.9499909Z             },
2026-06-07T23:26:20.9499995Z             {
2026-06-07T23:26:20.9500106Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9500206Z               "line": 65
2026-06-07T23:26:20.9500290Z             },
2026-06-07T23:26:20.9500370Z             {
2026-06-07T23:26:20.9500485Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9500574Z               "line": 74
2026-06-07T23:26:20.9500664Z             },
2026-06-07T23:26:20.9500745Z             {
2026-06-07T23:26:20.9500865Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9500955Z               "line": 83
2026-06-07T23:26:20.9501041Z             },
2026-06-07T23:26:20.9501137Z             {
2026-06-07T23:26:20.9501241Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9501438Z               "line": 92
2026-06-07T23:26:20.9501527Z             },
2026-06-07T23:26:20.9501613Z             {
2026-06-07T23:26:20.9501728Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9501818Z               "line": 101
2026-06-07T23:26:20.9501990Z             },
2026-06-07T23:26:20.9502077Z             {
2026-06-07T23:26:20.9502185Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9502281Z               "line": 109
2026-06-07T23:26:20.9502363Z             },
2026-06-07T23:26:20.9502448Z             {
2026-06-07T23:26:20.9502557Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9502649Z               "line": 118
2026-06-07T23:26:20.9502735Z             },
2026-06-07T23:26:20.9502823Z             {
2026-06-07T23:26:20.9502937Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9503024Z               "line": 127
2026-06-07T23:26:20.9503113Z             },
2026-06-07T23:26:20.9503197Z             {
2026-06-07T23:26:20.9503312Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9503403Z               "line": 134
2026-06-07T23:26:20.9503493Z             },
2026-06-07T23:26:20.9503583Z             {
2026-06-07T23:26:20.9503698Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9503798Z               "line": 141
2026-06-07T23:26:20.9503883Z             },
2026-06-07T23:26:20.9503966Z             {
2026-06-07T23:26:20.9504080Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9504180Z               "line": 149
2026-06-07T23:26:20.9504266Z             },
2026-06-07T23:26:20.9504347Z             {
2026-06-07T23:26:20.9504461Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9504552Z               "line": 158
2026-06-07T23:26:20.9504638Z             },
2026-06-07T23:26:20.9504719Z             {
2026-06-07T23:26:20.9504828Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9504925Z               "line": 167
2026-06-07T23:26:20.9505014Z             },
2026-06-07T23:26:20.9505100Z             {
2026-06-07T23:26:20.9505206Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9505296Z               "line": 176
2026-06-07T23:26:20.9505381Z             },
2026-06-07T23:26:20.9505475Z             {
2026-06-07T23:26:20.9505586Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9505674Z               "line": 188
2026-06-07T23:26:20.9505764Z             },
2026-06-07T23:26:20.9505850Z             {
2026-06-07T23:26:20.9505965Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9506050Z               "line": 195
2026-06-07T23:26:20.9506140Z             },
2026-06-07T23:26:20.9506227Z             {
2026-06-07T23:26:20.9506332Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9506426Z               "line": 204
2026-06-07T23:26:20.9506518Z             },
2026-06-07T23:26:20.9506604Z             {
2026-06-07T23:26:20.9506713Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9506808Z               "line": 211
2026-06-07T23:26:20.9506895Z             },
2026-06-07T23:26:20.9507080Z             {
2026-06-07T23:26:20.9507191Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9507285Z               "line": 278
2026-06-07T23:26:20.9507376Z             },
2026-06-07T23:26:20.9507463Z             {
2026-06-07T23:26:20.9507577Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9507667Z               "line": 290
2026-06-07T23:26:20.9507753Z             },
2026-06-07T23:26:20.9507844Z             {
2026-06-07T23:26:20.9507952Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9508043Z               "line": 377
2026-06-07T23:26:20.9508131Z             }
2026-06-07T23:26:20.9508225Z           ]
2026-06-07T23:26:20.9508318Z         },
2026-06-07T23:26:20.9508399Z         "int": {
2026-06-07T23:26:20.9508497Z           "complete": false,
2026-06-07T23:26:20.9508685Z           "evidence": []
2026-06-07T23:26:20.9508777Z         },
2026-06-07T23:26:20.9508863Z         "unit": {
2026-06-07T23:26:20.9508957Z           "complete": true,
2026-06-07T23:26:20.9509048Z           "evidence": [
2026-06-07T23:26:20.9509145Z             {
2026-06-07T23:26:20.9509358Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9509445Z               "line": 459
2026-06-07T23:26:20.9509540Z             },
2026-06-07T23:26:20.9509630Z             {
2026-06-07T23:26:20.9509736Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9509835Z               "line": 500
2026-06-07T23:26:20.9509916Z             },
2026-06-07T23:26:20.9510012Z             {
2026-06-07T23:26:20.9510122Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9510212Z               "line": 513
2026-06-07T23:26:20.9510303Z             },
2026-06-07T23:26:20.9510389Z             {
2026-06-07T23:26:20.9510507Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9510598Z               "line": 599
2026-06-07T23:26:20.9510685Z             }
2026-06-07T23:26:20.9510771Z           ]
2026-06-07T23:26:20.9510859Z         }
2026-06-07T23:26:20.9510949Z       }
2026-06-07T23:26:20.9511031Z     },
2026-06-07T23:26:20.9511125Z     {
2026-06-07T23:26:20.9511234Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-07T23:26:20.9511425Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-07T23:26:20.9511519Z       "requiredStages": [
2026-06-07T23:26:20.9511616Z         "impl",
2026-06-07T23:26:20.9511706Z         "unit"
2026-06-07T23:26:20.9511792Z       ],
2026-06-07T23:26:20.9511887Z       "stages": {
2026-06-07T23:26:20.9511974Z         "doc": {
2026-06-07T23:26:20.9512073Z           "complete": false,
2026-06-07T23:26:20.9512163Z           "evidence": []
2026-06-07T23:26:20.9512250Z         },
2026-06-07T23:26:20.9512341Z         "impl": {
2026-06-07T23:26:20.9512445Z           "complete": true,
2026-06-07T23:26:20.9512535Z           "evidence": [
2026-06-07T23:26:20.9512623Z             {
2026-06-07T23:26:20.9512745Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T23:26:20.9512831Z               "line": 143
2026-06-07T23:26:20.9512918Z             },
2026-06-07T23:26:20.9513012Z             {
2026-06-07T23:26:20.9513131Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9513223Z               "line": 148
2026-06-07T23:26:20.9513304Z             }
2026-06-07T23:26:20.9513393Z           ]
2026-06-07T23:26:20.9513478Z         },
2026-06-07T23:26:20.9513569Z         "int": {
2026-06-07T23:26:20.9513663Z           "complete": false,
2026-06-07T23:26:20.9513753Z           "evidence": []
2026-06-07T23:26:20.9513843Z         },
2026-06-07T23:26:20.9513930Z         "unit": {
2026-06-07T23:26:20.9514025Z           "complete": true,
2026-06-07T23:26:20.9514119Z           "evidence": [
2026-06-07T23:26:20.9514211Z             {
2026-06-07T23:26:20.9514335Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T23:26:20.9514425Z               "line": 264
2026-06-07T23:26:20.9514511Z             },
2026-06-07T23:26:20.9514597Z             {
2026-06-07T23:26:20.9514720Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9514817Z               "line": 544
2026-06-07T23:26:20.9514907Z             },
2026-06-07T23:26:20.9514997Z             {
2026-06-07T23:26:20.9515112Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9515208Z               "line": 557
2026-06-07T23:26:20.9515293Z             }
2026-06-07T23:26:20.9515379Z           ]
2026-06-07T23:26:20.9515465Z         }
2026-06-07T23:26:20.9515551Z       }
2026-06-07T23:26:20.9515641Z     },
2026-06-07T23:26:20.9515722Z     {
2026-06-07T23:26:20.9515842Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-07T23:26:20.9515979Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-07T23:26:20.9516083Z       "requiredStages": [
2026-06-07T23:26:20.9516253Z         "impl",
2026-06-07T23:26:20.9516620Z         "unit"
2026-06-07T23:26:20.9516710Z       ],
2026-06-07T23:26:20.9516797Z       "stages": {
2026-06-07T23:26:20.9516920Z         "doc": {
2026-06-07T23:26:20.9517116Z           "complete": false,
2026-06-07T23:26:20.9517330Z           "evidence": []
2026-06-07T23:26:20.9517413Z         },
2026-06-07T23:26:20.9517502Z         "impl": {
2026-06-07T23:26:20.9517588Z           "complete": true,
2026-06-07T23:26:20.9517679Z           "evidence": [
2026-06-07T23:26:20.9517765Z             {
2026-06-07T23:26:20.9517922Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:20.9518008Z               "line": 114
2026-06-07T23:26:20.9518089Z             },
2026-06-07T23:26:20.9518174Z             {
2026-06-07T23:26:20.9518298Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:20.9518390Z               "line": 481
2026-06-07T23:26:20.9518503Z             }
2026-06-07T23:26:20.9518589Z           ]
2026-06-07T23:26:20.9518681Z         },
2026-06-07T23:26:20.9518761Z         "int": {
2026-06-07T23:26:20.9518855Z           "complete": false,
2026-06-07T23:26:20.9518955Z           "evidence": []
2026-06-07T23:26:20.9519042Z         },
2026-06-07T23:26:20.9519137Z         "unit": {
2026-06-07T23:26:20.9519231Z           "complete": true,
2026-06-07T23:26:20.9519328Z           "evidence": [
2026-06-07T23:26:20.9519414Z             {
2026-06-07T23:26:20.9519546Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:20.9519643Z               "line": 515
2026-06-07T23:26:20.9519729Z             }
2026-06-07T23:26:20.9519814Z           ]
2026-06-07T23:26:20.9519899Z         }
2026-06-07T23:26:20.9519986Z       }
2026-06-07T23:26:20.9520067Z     },
2026-06-07T23:26:20.9520162Z     {
2026-06-07T23:26:20.9520282Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-07T23:26:20.9520448Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-07T23:26:20.9520553Z       "requiredStages": [
2026-06-07T23:26:20.9520640Z         "impl",
2026-06-07T23:26:20.9520729Z         "unit"
2026-06-07T23:26:20.9520815Z       ],
2026-06-07T23:26:20.9520907Z       "stages": {
2026-06-07T23:26:20.9520997Z         "doc": {
2026-06-07T23:26:20.9521090Z           "complete": false,
2026-06-07T23:26:20.9521192Z           "evidence": []
2026-06-07T23:26:20.9521279Z         },
2026-06-07T23:26:20.9521372Z         "impl": {
2026-06-07T23:26:20.9521462Z           "complete": true,
2026-06-07T23:26:20.9521558Z           "evidence": [
2026-06-07T23:26:20.9521648Z             {
2026-06-07T23:26:20.9521770Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9521866Z               "line": 459
2026-06-07T23:26:20.9521956Z             },
2026-06-07T23:26:20.9522037Z             {
2026-06-07T23:26:20.9522156Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T23:26:20.9522248Z               "line": 28
2026-06-07T23:26:20.9522338Z             }
2026-06-07T23:26:20.9522428Z           ]
2026-06-07T23:26:20.9522515Z         },
2026-06-07T23:26:20.9522605Z         "int": {
2026-06-07T23:26:20.9522700Z           "complete": false,
2026-06-07T23:26:20.9522790Z           "evidence": []
2026-06-07T23:26:20.9522882Z         },
2026-06-07T23:26:20.9522972Z         "unit": {
2026-06-07T23:26:20.9523062Z           "complete": true,
2026-06-07T23:26:20.9523158Z           "evidence": [
2026-06-07T23:26:20.9523244Z             {
2026-06-07T23:26:20.9523367Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T23:26:20.9523464Z               "line": 229
2026-06-07T23:26:20.9523554Z             }
2026-06-07T23:26:20.9523639Z           ]
2026-06-07T23:26:20.9523730Z         }
2026-06-07T23:26:20.9523827Z       }
2026-06-07T23:26:20.9523911Z     },
2026-06-07T23:26:20.9523996Z     {
2026-06-07T23:26:20.9524110Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-07T23:26:20.9524242Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-07T23:26:20.9524451Z       "requiredStages": [],
2026-06-07T23:26:20.9524542Z       "stages": {
2026-06-07T23:26:20.9524632Z         "doc": {
2026-06-07T23:26:20.9524728Z           "complete": false,
2026-06-07T23:26:20.9524823Z           "evidence": []
2026-06-07T23:26:20.9524904Z         },
2026-06-07T23:26:20.9525096Z         "impl": {
2026-06-07T23:26:20.9525190Z           "complete": false,
2026-06-07T23:26:20.9525276Z           "evidence": []
2026-06-07T23:26:20.9525362Z         },
2026-06-07T23:26:20.9525449Z         "int": {
2026-06-07T23:26:20.9525544Z           "complete": false,
2026-06-07T23:26:20.9525634Z           "evidence": []
2026-06-07T23:26:20.9525730Z         },
2026-06-07T23:26:20.9525824Z         "unit": {
2026-06-07T23:26:20.9525915Z           "complete": false,
2026-06-07T23:26:20.9526011Z           "evidence": []
2026-06-07T23:26:20.9526097Z         }
2026-06-07T23:26:20.9526191Z       }
2026-06-07T23:26:20.9526273Z     },
2026-06-07T23:26:20.9526360Z     {
2026-06-07T23:26:20.9526482Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-07T23:26:20.9526629Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-07T23:26:20.9526725Z       "requiredStages": [
2026-06-07T23:26:20.9526808Z         "impl",
2026-06-07T23:26:20.9526898Z         "unit"
2026-06-07T23:26:20.9527066Z       ],
2026-06-07T23:26:20.9527156Z       "stages": {
2026-06-07T23:26:20.9527251Z         "doc": {
2026-06-07T23:26:20.9527338Z           "complete": false,
2026-06-07T23:26:20.9527443Z           "evidence": []
2026-06-07T23:26:20.9527532Z         },
2026-06-07T23:26:20.9527623Z         "impl": {
2026-06-07T23:26:20.9527714Z           "complete": true,
2026-06-07T23:26:20.9527809Z           "evidence": [
2026-06-07T23:26:20.9527900Z             {
2026-06-07T23:26:20.9528015Z               "path": "crates/spt-live/src/turn.rs",
2026-06-07T23:26:20.9528105Z               "line": 19
2026-06-07T23:26:20.9528195Z             },
2026-06-07T23:26:20.9528287Z             {
2026-06-07T23:26:20.9528410Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:20.9528506Z               "line": 347
2026-06-07T23:26:20.9528592Z             },
2026-06-07T23:26:20.9528683Z             {
2026-06-07T23:26:20.9528806Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:20.9528897Z               "line": 383
2026-06-07T23:26:20.9528988Z             },
2026-06-07T23:26:20.9529072Z             {
2026-06-07T23:26:20.9529193Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T23:26:20.9529270Z               "line": 15
2026-06-07T23:26:20.9529349Z             },
2026-06-07T23:26:20.9529439Z             {
2026-06-07T23:26:20.9529549Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T23:26:20.9529640Z               "line": 48
2026-06-07T23:26:20.9529726Z             },
2026-06-07T23:26:20.9529815Z             {
2026-06-07T23:26:20.9529931Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T23:26:20.9530017Z               "line": 119
2026-06-07T23:26:20.9530111Z             },
2026-06-07T23:26:20.9530198Z             {
2026-06-07T23:26:20.9530303Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9530393Z               "line": 2428
2026-06-07T23:26:20.9530488Z             }
2026-06-07T23:26:20.9530580Z           ]
2026-06-07T23:26:20.9530670Z         },
2026-06-07T23:26:20.9530764Z         "int": {
2026-06-07T23:26:20.9530861Z           "complete": false,
2026-06-07T23:26:20.9530960Z           "evidence": []
2026-06-07T23:26:20.9531046Z         },
2026-06-07T23:26:20.9531132Z         "unit": {
2026-06-07T23:26:20.9531228Z           "complete": true,
2026-06-07T23:26:20.9531317Z           "evidence": [
2026-06-07T23:26:20.9531408Z             {
2026-06-07T23:26:20.9531524Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:20.9531623Z               "line": 496
2026-06-07T23:26:20.9531704Z             },
2026-06-07T23:26:20.9531796Z             {
2026-06-07T23:26:20.9531914Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T23:26:20.9532104Z               "line": 165
2026-06-07T23:26:20.9532194Z             },
2026-06-07T23:26:20.9532278Z             {
2026-06-07T23:26:20.9532396Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T23:26:20.9532489Z               "line": 175
2026-06-07T23:26:20.9532668Z             }
2026-06-07T23:26:20.9532755Z           ]
2026-06-07T23:26:20.9532846Z         }
2026-06-07T23:26:20.9534992Z       }
2026-06-07T23:26:20.9535093Z     },
2026-06-07T23:26:20.9535182Z     {
2026-06-07T23:26:20.9535303Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-07T23:26:20.9536203Z       "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-07T23:26:20.9536305Z       "requiredStages": [
2026-06-07T23:26:20.9536394Z         "impl",
2026-06-07T23:26:20.9536494Z         "unit"
2026-06-07T23:26:20.9536581Z       ],
2026-06-07T23:26:20.9536667Z       "stages": {
2026-06-07T23:26:20.9536756Z         "doc": {
2026-06-07T23:26:20.9536847Z           "complete": false,
2026-06-07T23:26:20.9537037Z           "evidence": []
2026-06-07T23:26:20.9537151Z         },
2026-06-07T23:26:20.9537242Z         "impl": {
2026-06-07T23:26:20.9537331Z           "complete": true,
2026-06-07T23:26:20.9537426Z           "evidence": [
2026-06-07T23:26:20.9537511Z             {
2026-06-07T23:26:20.9537622Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9537711Z               "line": 2186
2026-06-07T23:26:20.9537797Z             },
2026-06-07T23:26:20.9537883Z             {
2026-06-07T23:26:20.9537994Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T23:26:20.9538088Z               "line": 103
2026-06-07T23:26:20.9538179Z             },
2026-06-07T23:26:20.9538260Z             {
2026-06-07T23:26:20.9538383Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T23:26:20.9538474Z               "line": 135
2026-06-07T23:26:20.9538561Z             }
2026-06-07T23:26:20.9538641Z           ]
2026-06-07T23:26:20.9538727Z         },
2026-06-07T23:26:20.9538814Z         "int": {
2026-06-07T23:26:20.9538909Z           "complete": false,
2026-06-07T23:26:20.9539003Z           "evidence": []
2026-06-07T23:26:20.9539089Z         },
2026-06-07T23:26:20.9539177Z         "unit": {
2026-06-07T23:26:20.9539266Z           "complete": true,
2026-06-07T23:26:20.9539356Z           "evidence": [
2026-06-07T23:26:20.9539443Z             {
2026-06-07T23:26:20.9539552Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T23:26:20.9539647Z               "line": 258
2026-06-07T23:26:20.9539733Z             },
2026-06-07T23:26:20.9539816Z             {
2026-06-07T23:26:20.9539923Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T23:26:20.9540018Z               "line": 283
2026-06-07T23:26:20.9540104Z             },
2026-06-07T23:26:20.9540191Z             {
2026-06-07T23:26:20.9540300Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T23:26:20.9540380Z               "line": 296
2026-06-07T23:26:20.9540472Z             },
2026-06-07T23:26:20.9540553Z             {
2026-06-07T23:26:20.9540657Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T23:26:20.9540758Z               "line": 308
2026-06-07T23:26:20.9540834Z             }
2026-06-07T23:26:20.9540920Z           ]
2026-06-07T23:26:20.9541005Z         }
2026-06-07T23:26:20.9541088Z       }
2026-06-07T23:26:20.9541172Z     },
2026-06-07T23:26:20.9541253Z     {
2026-06-07T23:26:20.9541368Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-07T23:26:20.9541521Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-07T23:26:20.9541620Z       "requiredStages": [
2026-06-07T23:26:20.9541707Z         "impl",
2026-06-07T23:26:20.9541793Z         "unit"
2026-06-07T23:26:20.9541877Z       ],
2026-06-07T23:26:20.9541973Z       "stages": {
2026-06-07T23:26:20.9542202Z         "doc": {
2026-06-07T23:26:20.9542303Z           "complete": false,
2026-06-07T23:26:20.9542394Z           "evidence": []
2026-06-07T23:26:20.9542478Z         },
2026-06-07T23:26:20.9542568Z         "impl": {
2026-06-07T23:26:20.9542659Z           "complete": true,
2026-06-07T23:26:20.9542866Z           "evidence": [
2026-06-07T23:26:20.9542952Z             {
2026-06-07T23:26:20.9543072Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T23:26:20.9543167Z               "line": 35
2026-06-07T23:26:20.9543252Z             }
2026-06-07T23:26:20.9543339Z           ]
2026-06-07T23:26:20.9543424Z         },
2026-06-07T23:26:20.9543510Z         "int": {
2026-06-07T23:26:20.9543605Z           "complete": false,
2026-06-07T23:26:20.9543697Z           "evidence": []
2026-06-07T23:26:20.9543787Z         },
2026-06-07T23:26:20.9543872Z         "unit": {
2026-06-07T23:26:20.9543969Z           "complete": true,
2026-06-07T23:26:20.9544059Z           "evidence": [
2026-06-07T23:26:20.9544149Z             {
2026-06-07T23:26:20.9544264Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T23:26:20.9544355Z               "line": 220
2026-06-07T23:26:20.9544440Z             }
2026-06-07T23:26:20.9544521Z           ]
2026-06-07T23:26:20.9544608Z         }
2026-06-07T23:26:20.9544698Z       }
2026-06-07T23:26:20.9544784Z     },
2026-06-07T23:26:20.9544874Z     {
2026-06-07T23:26:20.9544980Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-07T23:26:20.9545245Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-07T23:26:20.9545344Z       "requiredStages": [
2026-06-07T23:26:20.9545433Z         "impl",
2026-06-07T23:26:20.9545518Z         "unit"
2026-06-07T23:26:20.9545611Z       ],
2026-06-07T23:26:20.9545696Z       "stages": {
2026-06-07T23:26:20.9545781Z         "doc": {
2026-06-07T23:26:20.9545872Z           "complete": false,
2026-06-07T23:26:20.9545963Z           "evidence": []
2026-06-07T23:26:20.9546053Z         },
2026-06-07T23:26:20.9546139Z         "impl": {
2026-06-07T23:26:20.9546240Z           "complete": true,
2026-06-07T23:26:20.9546330Z           "evidence": [
2026-06-07T23:26:20.9546415Z             {
2026-06-07T23:26:20.9546734Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:20.9546840Z               "line": 397
2026-06-07T23:26:20.9546921Z             },
2026-06-07T23:26:20.9547088Z             {
2026-06-07T23:26:20.9547222Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:20.9547311Z               "line": 396
2026-06-07T23:26:20.9547388Z             },
2026-06-07T23:26:20.9547475Z             {
2026-06-07T23:26:20.9547616Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T23:26:20.9547707Z               "line": 156
2026-06-07T23:26:20.9547778Z             }
2026-06-07T23:26:20.9547864Z           ]
2026-06-07T23:26:20.9547952Z         },
2026-06-07T23:26:20.9548038Z         "int": {
2026-06-07T23:26:20.9548133Z           "complete": false,
2026-06-07T23:26:20.9548225Z           "evidence": []
2026-06-07T23:26:20.9548314Z         },
2026-06-07T23:26:20.9548400Z         "unit": {
2026-06-07T23:26:20.9548492Z           "complete": true,
2026-06-07T23:26:20.9548582Z           "evidence": [
2026-06-07T23:26:20.9548667Z             {
2026-06-07T23:26:20.9548793Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:20.9548882Z               "line": 797
2026-06-07T23:26:20.9548967Z             },
2026-06-07T23:26:20.9549049Z             {
2026-06-07T23:26:20.9549168Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:20.9549258Z               "line": 811
2026-06-07T23:26:20.9549344Z             },
2026-06-07T23:26:20.9549432Z             {
2026-06-07T23:26:20.9549544Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:20.9549635Z               "line": 830
2026-06-07T23:26:20.9549722Z             },
2026-06-07T23:26:20.9549807Z             {
2026-06-07T23:26:20.9550032Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:20.9550127Z               "line": 847
2026-06-07T23:26:20.9550212Z             },
2026-06-07T23:26:20.9550298Z             {
2026-06-07T23:26:20.9550428Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-07T23:26:20.9550611Z               "line": 430
2026-06-07T23:26:20.9550693Z             }
2026-06-07T23:26:20.9550765Z           ]
2026-06-07T23:26:20.9550850Z         }
2026-06-07T23:26:20.9550935Z       }
2026-06-07T23:26:20.9551023Z     },
2026-06-07T23:26:20.9551109Z     {
2026-06-07T23:26:20.9551217Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-07T23:26:20.9552000Z       "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-07T23:26:20.9552099Z       "requiredStages": [
2026-06-07T23:26:20.9552190Z         "doc",
2026-06-07T23:26:20.9552277Z         "impl",
2026-06-07T23:26:20.9552362Z         "unit"
2026-06-07T23:26:20.9552447Z       ],
2026-06-07T23:26:20.9552533Z       "stages": {
2026-06-07T23:26:20.9552621Z         "doc": {
2026-06-07T23:26:20.9552715Z           "complete": true,
2026-06-07T23:26:20.9552810Z           "evidence": [
2026-06-07T23:26:20.9552907Z             {
2026-06-07T23:26:20.9553016Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T23:26:20.9553105Z               "line": 311
2026-06-07T23:26:20.9553195Z             }
2026-06-07T23:26:20.9553276Z           ]
2026-06-07T23:26:20.9553365Z         },
2026-06-07T23:26:20.9553454Z         "impl": {
2026-06-07T23:26:20.9553546Z           "complete": true,
2026-06-07T23:26:20.9553637Z           "evidence": [
2026-06-07T23:26:20.9553722Z             {
2026-06-07T23:26:20.9553841Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T23:26:20.9553932Z               "line": 85
2026-06-07T23:26:20.9554027Z             },
2026-06-07T23:26:20.9554112Z             {
2026-06-07T23:26:20.9554228Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-07T23:26:20.9554314Z               "line": 99
2026-06-07T23:26:20.9554409Z             },
2026-06-07T23:26:20.9554500Z             {
2026-06-07T23:26:20.9554619Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T23:26:20.9554709Z               "line": 55
2026-06-07T23:26:20.9554795Z             },
2026-06-07T23:26:20.9554882Z             {
2026-06-07T23:26:20.9555000Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T23:26:20.9555095Z               "line": 31
2026-06-07T23:26:20.9555177Z             },
2026-06-07T23:26:20.9555262Z             {
2026-06-07T23:26:20.9555372Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T23:26:20.9555459Z               "line": 187
2026-06-07T23:26:20.9555545Z             },
2026-06-07T23:26:20.9555638Z             {
2026-06-07T23:26:20.9555786Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T23:26:20.9555881Z               "line": 92
2026-06-07T23:26:20.9555956Z             },
2026-06-07T23:26:20.9556036Z             {
2026-06-07T23:26:20.9556156Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:20.9556251Z               "line": 29
2026-06-07T23:26:20.9556331Z             },
2026-06-07T23:26:20.9556418Z             {
2026-06-07T23:26:20.9556528Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:20.9556618Z               "line": 104
2026-06-07T23:26:20.9556718Z             },
2026-06-07T23:26:20.9556800Z             {
2026-06-07T23:26:20.9556933Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9557119Z               "line": 186
2026-06-07T23:26:20.9557209Z             },
2026-06-07T23:26:20.9557309Z             {
2026-06-07T23:26:20.9557439Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-07T23:26:20.9557537Z               "line": 28
2026-06-07T23:26:20.9557720Z             },
2026-06-07T23:26:20.9557811Z             {
2026-06-07T23:26:20.9557924Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-07T23:26:20.9558016Z               "line": 74
2026-06-07T23:26:20.9558102Z             },
2026-06-07T23:26:20.9558271Z             {
2026-06-07T23:26:20.9558386Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T23:26:20.9558475Z               "line": 40
2026-06-07T23:26:20.9558564Z             },
2026-06-07T23:26:20.9558650Z             {
2026-06-07T23:26:20.9558761Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T23:26:20.9558850Z               "line": 181
2026-06-07T23:26:20.9558932Z             },
2026-06-07T23:26:20.9559018Z             {
2026-06-07T23:26:20.9559133Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-07T23:26:20.9559222Z               "line": 70
2026-06-07T23:26:20.9559309Z             },
2026-06-07T23:26:20.9559395Z             {
2026-06-07T23:26:20.9559513Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T23:26:20.9559599Z               "line": 223
2026-06-07T23:26:20.9559696Z             },
2026-06-07T23:26:20.9559776Z             {
2026-06-07T23:26:20.9559876Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-07T23:26:20.9559982Z               "line": 37
2026-06-07T23:26:20.9560062Z             },
2026-06-07T23:26:20.9560147Z             {
2026-06-07T23:26:20.9560263Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T23:26:20.9560363Z               "line": 38
2026-06-07T23:26:20.9560448Z             },
2026-06-07T23:26:20.9560539Z             {
2026-06-07T23:26:20.9560659Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-07T23:26:20.9560748Z               "line": 36
2026-06-07T23:26:20.9560835Z             },
2026-06-07T23:26:20.9560916Z             {
2026-06-07T23:26:20.9561034Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-07T23:26:20.9561119Z               "line": 40
2026-06-07T23:26:20.9561210Z             }
2026-06-07T23:26:20.9561297Z           ]
2026-06-07T23:26:20.9561382Z         },
2026-06-07T23:26:20.9561472Z         "int": {
2026-06-07T23:26:20.9561563Z           "complete": false,
2026-06-07T23:26:20.9561659Z           "evidence": []
2026-06-07T23:26:20.9561744Z         },
2026-06-07T23:26:20.9561834Z         "unit": {
2026-06-07T23:26:20.9561931Z           "complete": true,
2026-06-07T23:26:20.9562016Z           "evidence": [
2026-06-07T23:26:20.9562102Z             {
2026-06-07T23:26:20.9562227Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T23:26:20.9562316Z               "line": 195
2026-06-07T23:26:20.9562397Z             },
2026-06-07T23:26:20.9562484Z             {
2026-06-07T23:26:20.9562612Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-07T23:26:20.9562702Z               "line": 122
2026-06-07T23:26:20.9562793Z             },
2026-06-07T23:26:20.9562875Z             {
2026-06-07T23:26:20.9563007Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-07T23:26:20.9563098Z               "line": 674
2026-06-07T23:26:20.9563181Z             },
2026-06-07T23:26:20.9563270Z             {
2026-06-07T23:26:20.9563380Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-07T23:26:20.9563481Z               "line": 215
2026-06-07T23:26:20.9563566Z             },
2026-06-07T23:26:20.9563656Z             {
2026-06-07T23:26:20.9563769Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-07T23:26:20.9563865Z               "line": 156
2026-06-07T23:26:20.9563949Z             },
2026-06-07T23:26:20.9564034Z             {
2026-06-07T23:26:20.9564145Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-07T23:26:20.9564230Z               "line": 112
2026-06-07T23:26:20.9564320Z             },
2026-06-07T23:26:20.9564406Z             {
2026-06-07T23:26:20.9564516Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-07T23:26:20.9564611Z               "line": 157
2026-06-07T23:26:20.9564765Z             },
2026-06-07T23:26:20.9564850Z             {
2026-06-07T23:26:20.9564964Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T23:26:20.9565055Z               "line": 215
2026-06-07T23:26:20.9565141Z             },
2026-06-07T23:26:20.9565222Z             {
2026-06-07T23:26:20.9565404Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-07T23:26:20.9565479Z               "line": 140
2026-06-07T23:26:20.9565560Z             },
2026-06-07T23:26:20.9565636Z             {
2026-06-07T23:26:20.9565747Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-07T23:26:20.9565836Z               "line": 162
2026-06-07T23:26:20.9565909Z             }
2026-06-07T23:26:20.9565995Z           ]
2026-06-07T23:26:20.9566081Z         }
2026-06-07T23:26:20.9566156Z       }
2026-06-07T23:26:20.9566231Z     },
2026-06-07T23:26:20.9566341Z     {
2026-06-07T23:26:20.9566469Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-07T23:26:20.9566629Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-07T23:26:20.9566726Z       "requiredStages": [
2026-06-07T23:26:20.9566816Z         "impl",
2026-06-07T23:26:20.9566901Z         "unit"
2026-06-07T23:26:20.9567069Z       ],
2026-06-07T23:26:20.9567159Z       "stages": {
2026-06-07T23:26:20.9567249Z         "doc": {
2026-06-07T23:26:20.9567336Z           "complete": false,
2026-06-07T23:26:20.9567450Z           "evidence": []
2026-06-07T23:26:20.9567544Z         },
2026-06-07T23:26:20.9567646Z         "impl": {
2026-06-07T23:26:20.9567736Z           "complete": true,
2026-06-07T23:26:20.9567827Z           "evidence": [
2026-06-07T23:26:20.9567912Z             {
2026-06-07T23:26:20.9568028Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9568117Z               "line": 95
2026-06-07T23:26:20.9568203Z             },
2026-06-07T23:26:20.9568290Z             {
2026-06-07T23:26:20.9568399Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:20.9568503Z               "line": 102
2026-06-07T23:26:20.9568591Z             }
2026-06-07T23:26:20.9568672Z           ]
2026-06-07T23:26:20.9568769Z         },
2026-06-07T23:26:20.9568855Z         "int": {
2026-06-07T23:26:20.9568951Z           "complete": false,
2026-06-07T23:26:20.9569045Z           "evidence": []
2026-06-07T23:26:20.9569139Z         },
2026-06-07T23:26:20.9569235Z         "unit": {
2026-06-07T23:26:20.9569326Z           "complete": true,
2026-06-07T23:26:20.9569425Z           "evidence": [
2026-06-07T23:26:20.9569510Z             {
2026-06-07T23:26:20.9569626Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9569717Z               "line": 250
2026-06-07T23:26:20.9569811Z             },
2026-06-07T23:26:20.9569893Z             {
2026-06-07T23:26:20.9570007Z               "path": "crates/spt-store/src/proc.rs",
2026-06-07T23:26:20.9570102Z               "line": 198
2026-06-07T23:26:20.9570189Z             },
2026-06-07T23:26:20.9570275Z             {
2026-06-07T23:26:20.9570388Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:20.9570484Z               "line": 442
2026-06-07T23:26:20.9570571Z             },
2026-06-07T23:26:20.9570655Z             {
2026-06-07T23:26:20.9570765Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:20.9570862Z               "line": 475
2026-06-07T23:26:20.9570946Z             }
2026-06-07T23:26:20.9571032Z           ]
2026-06-07T23:26:20.9571118Z         }
2026-06-07T23:26:20.9571205Z       }
2026-06-07T23:26:20.9571294Z     },
2026-06-07T23:26:20.9571380Z     {
2026-06-07T23:26:20.9571486Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-07T23:26:20.9571665Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-07T23:26:20.9571760Z       "requiredStages": [
2026-06-07T23:26:20.9571852Z         "impl",
2026-06-07T23:26:20.9571937Z         "unit"
2026-06-07T23:26:20.9572023Z       ],
2026-06-07T23:26:20.9572109Z       "stages": {
2026-06-07T23:26:20.9572195Z         "doc": {
2026-06-07T23:26:20.9572404Z           "complete": false,
2026-06-07T23:26:20.9572500Z           "evidence": []
2026-06-07T23:26:20.9572591Z         },
2026-06-07T23:26:20.9572685Z         "impl": {
2026-06-07T23:26:20.9572777Z           "complete": true,
2026-06-07T23:26:20.9572867Z           "evidence": [
2026-06-07T23:26:20.9573034Z             {
2026-06-07T23:26:20.9573158Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9573244Z               "line": 234
2026-06-07T23:26:20.9573334Z             },
2026-06-07T23:26:20.9573421Z             {
2026-06-07T23:26:20.9573534Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9573625Z               "line": 279
2026-06-07T23:26:20.9573707Z             },
2026-06-07T23:26:20.9573797Z             {
2026-06-07T23:26:20.9573915Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9574008Z               "line": 291
2026-06-07T23:26:20.9574098Z             }
2026-06-07T23:26:20.9574182Z           ]
2026-06-07T23:26:20.9574281Z         },
2026-06-07T23:26:20.9574368Z         "int": {
2026-06-07T23:26:20.9574462Z           "complete": false,
2026-06-07T23:26:20.9574551Z           "evidence": []
2026-06-07T23:26:20.9574637Z         },
2026-06-07T23:26:20.9574724Z         "unit": {
2026-06-07T23:26:20.9574824Z           "complete": true,
2026-06-07T23:26:20.9574913Z           "evidence": [
2026-06-07T23:26:20.9574995Z             {
2026-06-07T23:26:20.9575110Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9575204Z               "line": 427
2026-06-07T23:26:20.9575286Z             },
2026-06-07T23:26:20.9575372Z             {
2026-06-07T23:26:20.9575486Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:20.9575576Z               "line": 471
2026-06-07T23:26:20.9575664Z             }
2026-06-07T23:26:20.9575748Z           ]
2026-06-07T23:26:20.9575834Z         }
2026-06-07T23:26:20.9575920Z       }
2026-06-07T23:26:20.9576007Z     },
2026-06-07T23:26:20.9576087Z     {
2026-06-07T23:26:20.9576196Z       "id": "REQ-INFRA-1",
2026-06-07T23:26:20.9576373Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-07T23:26:20.9576469Z       "requiredStages": [],
2026-06-07T23:26:20.9576565Z       "stages": {
2026-06-07T23:26:20.9576651Z         "doc": {
2026-06-07T23:26:20.9576754Z           "complete": false,
2026-06-07T23:26:20.9576848Z           "evidence": []
2026-06-07T23:26:20.9576935Z         },
2026-06-07T23:26:20.9577118Z         "impl": {
2026-06-07T23:26:20.9577208Z           "complete": false,
2026-06-07T23:26:20.9577310Z           "evidence": []
2026-06-07T23:26:20.9577395Z         },
2026-06-07T23:26:20.9577480Z         "int": {
2026-06-07T23:26:20.9577577Z           "complete": false,
2026-06-07T23:26:20.9577667Z           "evidence": []
2026-06-07T23:26:20.9577752Z         },
2026-06-07T23:26:20.9577848Z         "unit": {
2026-06-07T23:26:20.9577939Z           "complete": false,
2026-06-07T23:26:20.9578029Z           "evidence": []
2026-06-07T23:26:20.9578119Z         }
2026-06-07T23:26:20.9578202Z       }
2026-06-07T23:26:20.9578291Z     },
2026-06-07T23:26:20.9578372Z     {
2026-06-07T23:26:20.9578473Z       "id": "REQ-INST-1",
2026-06-07T23:26:20.9578625Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-07T23:26:20.9578730Z       "requiredStages": [],
2026-06-07T23:26:20.9578816Z       "stages": {
2026-06-07T23:26:20.9578903Z         "doc": {
2026-06-07T23:26:20.9578996Z           "complete": false,
2026-06-07T23:26:20.9579087Z           "evidence": []
2026-06-07T23:26:20.9579170Z         },
2026-06-07T23:26:20.9579255Z         "impl": {
2026-06-07T23:26:20.9579349Z           "complete": false,
2026-06-07T23:26:20.9579439Z           "evidence": []
2026-06-07T23:26:20.9579525Z         },
2026-06-07T23:26:20.9579614Z         "int": {
2026-06-07T23:26:20.9579708Z           "complete": false,
2026-06-07T23:26:20.9579809Z           "evidence": []
2026-06-07T23:26:20.9579896Z         },
2026-06-07T23:26:20.9580085Z         "unit": {
2026-06-07T23:26:20.9580186Z           "complete": false,
2026-06-07T23:26:20.9580281Z           "evidence": []
2026-06-07T23:26:20.9580371Z         }
2026-06-07T23:26:20.9580453Z       }
2026-06-07T23:26:20.9580539Z     },
2026-06-07T23:26:20.9580620Z     {
2026-06-07T23:26:20.9580811Z       "id": "REQ-INST-10",
2026-06-07T23:26:20.9581020Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-07T23:26:20.9581117Z       "requiredStages": [
2026-06-07T23:26:20.9581206Z         "impl",
2026-06-07T23:26:20.9581296Z         "unit"
2026-06-07T23:26:20.9581384Z       ],
2026-06-07T23:26:20.9581469Z       "stages": {
2026-06-07T23:26:20.9581558Z         "doc": {
2026-06-07T23:26:20.9581654Z           "complete": false,
2026-06-07T23:26:20.9581741Z           "evidence": []
2026-06-07T23:26:20.9581831Z         },
2026-06-07T23:26:20.9581916Z         "impl": {
2026-06-07T23:26:20.9582018Z           "complete": true,
2026-06-07T23:26:20.9582113Z           "evidence": [
2026-06-07T23:26:20.9582197Z             {
2026-06-07T23:26:20.9582325Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9582417Z               "line": 527
2026-06-07T23:26:20.9582507Z             },
2026-06-07T23:26:20.9582597Z             {
2026-06-07T23:26:20.9582727Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9582817Z               "line": 604
2026-06-07T23:26:20.9582907Z             },
2026-06-07T23:26:20.9582993Z             {
2026-06-07T23:26:20.9583113Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-07T23:26:20.9583202Z               "line": 13
2026-06-07T23:26:20.9583289Z             },
2026-06-07T23:26:20.9583376Z             {
2026-06-07T23:26:20.9583484Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-07T23:26:20.9583579Z               "line": 67
2026-06-07T23:26:20.9583662Z             },
2026-06-07T23:26:20.9583746Z             {
2026-06-07T23:26:20.9583866Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T23:26:20.9583957Z               "line": 18
2026-06-07T23:26:20.9584042Z             },
2026-06-07T23:26:20.9584133Z             {
2026-06-07T23:26:20.9584238Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T23:26:20.9584334Z               "line": 432
2026-06-07T23:26:20.9584423Z             }
2026-06-07T23:26:20.9584510Z           ]
2026-06-07T23:26:20.9584591Z         },
2026-06-07T23:26:20.9584682Z         "int": {
2026-06-07T23:26:20.9584780Z           "complete": false,
2026-06-07T23:26:20.9584875Z           "evidence": []
2026-06-07T23:26:20.9584962Z         },
2026-06-07T23:26:20.9585055Z         "unit": {
2026-06-07T23:26:20.9585379Z           "complete": true,
2026-06-07T23:26:20.9585469Z           "evidence": [
2026-06-07T23:26:20.9585555Z             {
2026-06-07T23:26:20.9585684Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9585789Z               "line": 810
2026-06-07T23:26:20.9585875Z             },
2026-06-07T23:26:20.9585951Z             {
2026-06-07T23:26:20.9586070Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9586161Z               "line": 1080
2026-06-07T23:26:20.9586270Z             },
2026-06-07T23:26:20.9586351Z             {
2026-06-07T23:26:20.9586476Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9586571Z               "line": 1091
2026-06-07T23:26:20.9586656Z             },
2026-06-07T23:26:20.9586742Z             {
2026-06-07T23:26:20.9586858Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9587029Z               "line": 1107
2026-06-07T23:26:20.9587125Z             },
2026-06-07T23:26:20.9587211Z             {
2026-06-07T23:26:20.9587328Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9587418Z               "line": 1123
2026-06-07T23:26:20.9587505Z             },
2026-06-07T23:26:20.9587589Z             {
2026-06-07T23:26:20.9587817Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9587917Z               "line": 1145
2026-06-07T23:26:20.9587998Z             },
2026-06-07T23:26:20.9588084Z             {
2026-06-07T23:26:20.9588199Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9588293Z               "line": 1450
2026-06-07T23:26:20.9588466Z             },
2026-06-07T23:26:20.9588556Z             {
2026-06-07T23:26:20.9588674Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-07T23:26:20.9588762Z               "line": 130
2026-06-07T23:26:20.9588856Z             },
2026-06-07T23:26:20.9588942Z             {
2026-06-07T23:26:20.9589057Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-07T23:26:20.9589148Z               "line": 167
2026-06-07T23:26:20.9589232Z             },
2026-06-07T23:26:20.9589323Z             {
2026-06-07T23:26:20.9589429Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-07T23:26:20.9589519Z               "line": 175
2026-06-07T23:26:20.9589590Z             },
2026-06-07T23:26:20.9589682Z             {
2026-06-07T23:26:20.9589792Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-07T23:26:20.9589876Z               "line": 183
2026-06-07T23:26:20.9589966Z             },
2026-06-07T23:26:20.9590048Z             {
2026-06-07T23:26:20.9590160Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T23:26:20.9590249Z               "line": 882
2026-06-07T23:26:20.9590345Z             }
2026-06-07T23:26:20.9590427Z           ]
2026-06-07T23:26:20.9590517Z         }
2026-06-07T23:26:20.9590607Z       }
2026-06-07T23:26:20.9590689Z     },
2026-06-07T23:26:20.9590770Z     {
2026-06-07T23:26:20.9590865Z       "id": "REQ-INST-11",
2026-06-07T23:26:20.9591075Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-07T23:26:20.9591175Z       "requiredStages": [
2026-06-07T23:26:20.9591256Z         "impl",
2026-06-07T23:26:20.9591347Z         "unit"
2026-06-07T23:26:20.9591428Z       ],
2026-06-07T23:26:20.9591527Z       "stages": {
2026-06-07T23:26:20.9591614Z         "doc": {
2026-06-07T23:26:20.9591719Z           "complete": false,
2026-06-07T23:26:20.9591809Z           "evidence": []
2026-06-07T23:26:20.9591895Z         },
2026-06-07T23:26:20.9591986Z         "impl": {
2026-06-07T23:26:20.9592081Z           "complete": true,
2026-06-07T23:26:20.9592171Z           "evidence": [
2026-06-07T23:26:20.9592258Z             {
2026-06-07T23:26:20.9592377Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9592476Z               "line": 393
2026-06-07T23:26:20.9592558Z             },
2026-06-07T23:26:20.9592650Z             {
2026-06-07T23:26:20.9592785Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9592871Z               "line": 265
2026-06-07T23:26:20.9592948Z             },
2026-06-07T23:26:20.9593039Z             {
2026-06-07T23:26:20.9593157Z               "path": "crates/spt-store/src/rename.rs",
2026-06-07T23:26:20.9593243Z               "line": 59
2026-06-07T23:26:20.9593339Z             },
2026-06-07T23:26:20.9593424Z             {
2026-06-07T23:26:20.9593534Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9593626Z               "line": 3309
2026-06-07T23:26:20.9593711Z             },
2026-06-07T23:26:20.9593806Z             {
2026-06-07T23:26:20.9593907Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9594001Z               "line": 4408
2026-06-07T23:26:20.9594082Z             }
2026-06-07T23:26:20.9594168Z           ]
2026-06-07T23:26:20.9594255Z         },
2026-06-07T23:26:20.9594344Z         "int": {
2026-06-07T23:26:20.9594440Z           "complete": false,
2026-06-07T23:26:20.9594522Z           "evidence": []
2026-06-07T23:26:20.9594603Z         },
2026-06-07T23:26:20.9594688Z         "unit": {
2026-06-07T23:26:20.9594783Z           "complete": true,
2026-06-07T23:26:20.9594870Z           "evidence": [
2026-06-07T23:26:20.9594955Z             {
2026-06-07T23:26:20.9595152Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9595242Z               "line": 1250
2026-06-07T23:26:20.9595321Z             },
2026-06-07T23:26:20.9595397Z             {
2026-06-07T23:26:20.9595517Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9595671Z               "line": 1283
2026-06-07T23:26:20.9595757Z             },
2026-06-07T23:26:20.9595844Z             {
2026-06-07T23:26:20.9595972Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9596067Z               "line": 495
2026-06-07T23:26:20.9596145Z             },
2026-06-07T23:26:20.9596230Z             {
2026-06-07T23:26:20.9596344Z               "path": "crates/spt-store/src/rename.rs",
2026-06-07T23:26:20.9596435Z               "line": 160
2026-06-07T23:26:20.9596525Z             },
2026-06-07T23:26:20.9596611Z             {
2026-06-07T23:26:20.9596726Z               "path": "crates/spt-store/src/rename.rs",
2026-06-07T23:26:20.9596812Z               "line": 190
2026-06-07T23:26:20.9596907Z             },
2026-06-07T23:26:20.9597065Z             {
2026-06-07T23:26:20.9597178Z               "path": "crates/spt-store/src/rename.rs",
2026-06-07T23:26:20.9597269Z               "line": 225
2026-06-07T23:26:20.9597355Z             },
2026-06-07T23:26:20.9597442Z             {
2026-06-07T23:26:20.9597550Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9597646Z               "line": 4648
2026-06-07T23:26:20.9597728Z             }
2026-06-07T23:26:20.9597822Z           ]
2026-06-07T23:26:20.9597907Z         }
2026-06-07T23:26:20.9597988Z       }
2026-06-07T23:26:20.9598074Z     },
2026-06-07T23:26:20.9598158Z     {
2026-06-07T23:26:20.9598253Z       "id": "REQ-INST-12",
2026-06-07T23:26:20.9598529Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-07T23:26:20.9598624Z       "requiredStages": [
2026-06-07T23:26:20.9598716Z         "impl",
2026-06-07T23:26:20.9598806Z         "unit"
2026-06-07T23:26:20.9598896Z       ],
2026-06-07T23:26:20.9598982Z       "stages": {
2026-06-07T23:26:20.9599073Z         "doc": {
2026-06-07T23:26:20.9599163Z           "complete": false,
2026-06-07T23:26:20.9599258Z           "evidence": []
2026-06-07T23:26:20.9599346Z         },
2026-06-07T23:26:20.9599435Z         "impl": {
2026-06-07T23:26:20.9599526Z           "complete": true,
2026-06-07T23:26:20.9599607Z           "evidence": [
2026-06-07T23:26:20.9599698Z             {
2026-06-07T23:26:20.9599821Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9599912Z               "line": 445
2026-06-07T23:26:20.9599999Z             },
2026-06-07T23:26:20.9600083Z             {
2026-06-07T23:26:20.9600207Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9600285Z               "line": 538
2026-06-07T23:26:20.9600366Z             },
2026-06-07T23:26:20.9602374Z             {
2026-06-07T23:26:20.9602532Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9602636Z               "line": 618
2026-06-07T23:26:20.9602727Z             },
2026-06-07T23:26:20.9602808Z             {
2026-06-07T23:26:20.9602937Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9603031Z               "line": 87
2026-06-07T23:26:20.9603123Z             },
2026-06-07T23:26:20.9603205Z             {
2026-06-07T23:26:20.9603322Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9603403Z               "line": 216
2026-06-07T23:26:20.9603489Z             },
2026-06-07T23:26:20.9603565Z             {
2026-06-07T23:26:20.9603679Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T23:26:20.9603770Z               "line": 135
2026-06-07T23:26:20.9603857Z             }
2026-06-07T23:26:20.9603928Z           ]
2026-06-07T23:26:20.9604017Z         },
2026-06-07T23:26:20.9604094Z         "int": {
2026-06-07T23:26:20.9604186Z           "complete": false,
2026-06-07T23:26:20.9604281Z           "evidence": []
2026-06-07T23:26:20.9604505Z         },
2026-06-07T23:26:20.9604600Z         "unit": {
2026-06-07T23:26:20.9604690Z           "complete": true,
2026-06-07T23:26:20.9604777Z           "evidence": [
2026-06-07T23:26:20.9604867Z             {
2026-06-07T23:26:20.9604986Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9605163Z               "line": 1325
2026-06-07T23:26:20.9605253Z             },
2026-06-07T23:26:20.9605325Z             {
2026-06-07T23:26:20.9605445Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9605534Z               "line": 1348
2026-06-07T23:26:20.9605620Z             },
2026-06-07T23:26:20.9605693Z             {
2026-06-07T23:26:20.9605830Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9605934Z               "line": 1385
2026-06-07T23:26:20.9606020Z             },
2026-06-07T23:26:20.9606106Z             {
2026-06-07T23:26:20.9606217Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9606303Z               "line": 350
2026-06-07T23:26:20.9606385Z             },
2026-06-07T23:26:20.9606461Z             {
2026-06-07T23:26:20.9606580Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T23:26:20.9606680Z               "line": 172
2026-06-07T23:26:20.9606790Z             },
2026-06-07T23:26:20.9606861Z             {
2026-06-07T23:26:20.9607058Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T23:26:20.9607143Z               "line": 193
2026-06-07T23:26:20.9607228Z             },
2026-06-07T23:26:20.9607305Z             {
2026-06-07T23:26:20.9607424Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T23:26:20.9607514Z               "line": 219
2026-06-07T23:26:20.9607596Z             }
2026-06-07T23:26:20.9607678Z           ]
2026-06-07T23:26:20.9607762Z         }
2026-06-07T23:26:20.9607848Z       }
2026-06-07T23:26:20.9607945Z     },
2026-06-07T23:26:20.9608026Z     {
2026-06-07T23:26:20.9608120Z       "id": "REQ-INST-13",
2026-06-07T23:26:20.9608298Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-07T23:26:20.9608401Z       "requiredStages": [
2026-06-07T23:26:20.9608486Z         "impl",
2026-06-07T23:26:20.9608567Z         "unit"
2026-06-07T23:26:20.9608649Z       ],
2026-06-07T23:26:20.9608741Z       "stages": {
2026-06-07T23:26:20.9608836Z         "doc": {
2026-06-07T23:26:20.9608927Z           "complete": false,
2026-06-07T23:26:20.9609023Z           "evidence": []
2026-06-07T23:26:20.9609108Z         },
2026-06-07T23:26:20.9609209Z         "impl": {
2026-06-07T23:26:20.9609304Z           "complete": true,
2026-06-07T23:26:20.9609394Z           "evidence": [
2026-06-07T23:26:20.9609480Z             {
2026-06-07T23:26:20.9609600Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T23:26:20.9609691Z               "line": 98
2026-06-07T23:26:20.9609776Z             },
2026-06-07T23:26:20.9609862Z             {
2026-06-07T23:26:20.9609981Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T23:26:20.9610072Z               "line": 158
2026-06-07T23:26:20.9610163Z             }
2026-06-07T23:26:20.9610244Z           ]
2026-06-07T23:26:20.9610338Z         },
2026-06-07T23:26:20.9610420Z         "int": {
2026-06-07T23:26:20.9610521Z           "complete": false,
2026-06-07T23:26:20.9610615Z           "evidence": []
2026-06-07T23:26:20.9610701Z         },
2026-06-07T23:26:20.9610792Z         "unit": {
2026-06-07T23:26:20.9610888Z           "complete": true,
2026-06-07T23:26:20.9610977Z           "evidence": [
2026-06-07T23:26:20.9611062Z             {
2026-06-07T23:26:20.9611182Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T23:26:20.9611280Z               "line": 248
2026-06-07T23:26:20.9611370Z             },
2026-06-07T23:26:20.9611455Z             {
2026-06-07T23:26:20.9611576Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T23:26:20.9611670Z               "line": 266
2026-06-07T23:26:20.9611751Z             }
2026-06-07T23:26:20.9611943Z           ]
2026-06-07T23:26:20.9612032Z         }
2026-06-07T23:26:20.9612119Z       }
2026-06-07T23:26:20.9612205Z     },
2026-06-07T23:26:20.9612286Z     {
2026-06-07T23:26:20.9612381Z       "id": "REQ-INST-14",
2026-06-07T23:26:20.9612739Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-07T23:26:20.9612934Z       "requiredStages": [
2026-06-07T23:26:20.9613020Z         "doc",
2026-06-07T23:26:20.9613107Z         "impl",
2026-06-07T23:26:20.9613201Z         "unit"
2026-06-07T23:26:20.9613287Z       ],
2026-06-07T23:26:20.9613373Z       "stages": {
2026-06-07T23:26:20.9613459Z         "doc": {
2026-06-07T23:26:20.9613553Z           "complete": true,
2026-06-07T23:26:20.9613649Z           "evidence": [
2026-06-07T23:26:20.9613732Z             {
2026-06-07T23:26:20.9613835Z               "path": "CONTEXT.md",
2026-06-07T23:26:20.9613924Z               "line": 425
2026-06-07T23:26:20.9614015Z             },
2026-06-07T23:26:20.9614098Z             {
2026-06-07T23:26:20.9614202Z               "path": "docs/STORAGE.md",
2026-06-07T23:26:20.9614291Z               "line": 49
2026-06-07T23:26:20.9614378Z             }
2026-06-07T23:26:20.9614464Z           ]
2026-06-07T23:26:20.9614549Z         },
2026-06-07T23:26:20.9614640Z         "impl": {
2026-06-07T23:26:20.9614731Z           "complete": true,
2026-06-07T23:26:20.9614817Z           "evidence": [
2026-06-07T23:26:20.9614906Z             {
2026-06-07T23:26:20.9615041Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9615131Z               "line": 335
2026-06-07T23:26:20.9615216Z             },
2026-06-07T23:26:20.9615303Z             {
2026-06-07T23:26:20.9615427Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9615513Z               "line": 257
2026-06-07T23:26:20.9615603Z             },
2026-06-07T23:26:20.9615685Z             {
2026-06-07T23:26:20.9615808Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9615894Z               "line": 211
2026-06-07T23:26:20.9615986Z             },
2026-06-07T23:26:20.9616066Z             {
2026-06-07T23:26:20.9616180Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9616272Z               "line": 973
2026-06-07T23:26:20.9616358Z             }
2026-06-07T23:26:20.9616446Z           ]
2026-06-07T23:26:20.9616527Z         },
2026-06-07T23:26:20.9616613Z         "int": {
2026-06-07T23:26:20.9616712Z           "complete": false,
2026-06-07T23:26:20.9616806Z           "evidence": []
2026-06-07T23:26:20.9616897Z         },
2026-06-07T23:26:20.9617069Z         "unit": {
2026-06-07T23:26:20.9617178Z           "complete": true,
2026-06-07T23:26:20.9617265Z           "evidence": [
2026-06-07T23:26:20.9617350Z             {
2026-06-07T23:26:20.9617488Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9617580Z               "line": 899
2026-06-07T23:26:20.9617664Z             },
2026-06-07T23:26:20.9617755Z             {
2026-06-07T23:26:20.9617880Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9617975Z               "line": 822
2026-06-07T23:26:20.9618060Z             },
2026-06-07T23:26:20.9618141Z             {
2026-06-07T23:26:20.9618266Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9618356Z               "line": 1021
2026-06-07T23:26:20.9618442Z             },
2026-06-07T23:26:20.9618529Z             {
2026-06-07T23:26:20.9618642Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9618732Z               "line": 463
2026-06-07T23:26:20.9618824Z             },
2026-06-07T23:26:20.9618906Z             {
2026-06-07T23:26:20.9619013Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9619103Z               "line": 4724
2026-06-07T23:26:20.9619199Z             }
2026-06-07T23:26:20.9619283Z           ]
2026-06-07T23:26:20.9619368Z         }
2026-06-07T23:26:20.9619459Z       }
2026-06-07T23:26:20.9619644Z     },
2026-06-07T23:26:20.9619735Z     {
2026-06-07T23:26:20.9619827Z       "id": "REQ-INST-15",
2026-06-07T23:26:20.9620499Z       "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-07T23:26:20.9620679Z       "requiredStages": [
2026-06-07T23:26:20.9620766Z         "doc",
2026-06-07T23:26:20.9620856Z         "impl",
2026-06-07T23:26:20.9620937Z         "unit"
2026-06-07T23:26:20.9621027Z       ],
2026-06-07T23:26:20.9621115Z       "stages": {
2026-06-07T23:26:20.9621203Z         "doc": {
2026-06-07T23:26:20.9621294Z           "complete": true,
2026-06-07T23:26:20.9621391Z           "evidence": [
2026-06-07T23:26:20.9621476Z             {
2026-06-07T23:26:20.9621651Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-07T23:26:20.9621747Z               "line": 3
2026-06-07T23:26:20.9621831Z             }
2026-06-07T23:26:20.9621916Z           ]
2026-06-07T23:26:20.9622002Z         },
2026-06-07T23:26:20.9622088Z         "impl": {
2026-06-07T23:26:20.9622183Z           "complete": true,
2026-06-07T23:26:20.9622277Z           "evidence": [
2026-06-07T23:26:20.9622369Z             {
2026-06-07T23:26:20.9622498Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9622592Z               "line": 284
2026-06-07T23:26:20.9622674Z             },
2026-06-07T23:26:20.9622765Z             {
2026-06-07T23:26:20.9622879Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T23:26:20.9622970Z               "line": 60
2026-06-07T23:26:20.9623060Z             },
2026-06-07T23:26:20.9623146Z             {
2026-06-07T23:26:20.9623275Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9623366Z               "line": 336
2026-06-07T23:26:20.9623451Z             },
2026-06-07T23:26:20.9623547Z             {
2026-06-07T23:26:20.9623667Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9623756Z               "line": 385
2026-06-07T23:26:20.9623842Z             },
2026-06-07T23:26:20.9623929Z             {
2026-06-07T23:26:20.9624048Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T23:26:20.9624137Z               "line": 19
2026-06-07T23:26:20.9624224Z             },
2026-06-07T23:26:20.9624306Z             {
2026-06-07T23:26:20.9624418Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T23:26:20.9624508Z               "line": 70
2026-06-07T23:26:20.9624595Z             },
2026-06-07T23:26:20.9624681Z             {
2026-06-07T23:26:20.9624785Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T23:26:20.9624876Z               "line": 96
2026-06-07T23:26:20.9624967Z             },
2026-06-07T23:26:20.9625053Z             {
2026-06-07T23:26:20.9625161Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T23:26:20.9625258Z               "line": 121
2026-06-07T23:26:20.9625344Z             },
2026-06-07T23:26:20.9625429Z             {
2026-06-07T23:26:20.9625529Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T23:26:20.9625616Z               "line": 172
2026-06-07T23:26:20.9625706Z             },
2026-06-07T23:26:20.9625786Z             {
2026-06-07T23:26:20.9625893Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:20.9625992Z               "line": 143
2026-06-07T23:26:20.9626096Z             },
2026-06-07T23:26:20.9626183Z             {
2026-06-07T23:26:20.9626288Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9626383Z               "line": 865
2026-06-07T23:26:20.9626464Z             }
2026-06-07T23:26:20.9626550Z           ]
2026-06-07T23:26:20.9626636Z         },
2026-06-07T23:26:20.9626721Z         "int": {
2026-06-07T23:26:20.9626823Z           "complete": false,
2026-06-07T23:26:20.9626913Z           "evidence": []
2026-06-07T23:26:20.9627173Z         },
2026-06-07T23:26:20.9627263Z         "unit": {
2026-06-07T23:26:20.9627347Z           "complete": true,
2026-06-07T23:26:20.9627467Z           "evidence": [
2026-06-07T23:26:20.9627548Z             {
2026-06-07T23:26:20.9627666Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9627863Z               "line": 545
2026-06-07T23:26:20.9627940Z             },
2026-06-07T23:26:20.9628024Z             {
2026-06-07T23:26:20.9628140Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:20.9628225Z               "line": 606
2026-06-07T23:26:20.9628306Z             },
2026-06-07T23:26:20.9628382Z             {
2026-06-07T23:26:20.9628488Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T23:26:20.9628583Z               "line": 213
2026-06-07T23:26:20.9628682Z             },
2026-06-07T23:26:20.9628760Z             {
2026-06-07T23:26:20.9628892Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T23:26:20.9629021Z               "line": 249
2026-06-07T23:26:20.9629108Z             },
2026-06-07T23:26:20.9629193Z             {
2026-06-07T23:26:20.9629297Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T23:26:20.9629385Z               "line": 262
2026-06-07T23:26:20.9629466Z             },
2026-06-07T23:26:20.9629549Z             {
2026-06-07T23:26:20.9629663Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T23:26:20.9629773Z               "line": 338
2026-06-07T23:26:20.9629857Z             },
2026-06-07T23:26:20.9629942Z             {
2026-06-07T23:26:20.9630057Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:20.9630143Z               "line": 496
2026-06-07T23:26:20.9630228Z             },
2026-06-07T23:26:20.9630314Z             {
2026-06-07T23:26:20.9630420Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9630510Z               "line": 4661
2026-06-07T23:26:20.9630600Z             },
2026-06-07T23:26:20.9630687Z             {
2026-06-07T23:26:20.9630796Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9630886Z               "line": 6027
2026-06-07T23:26:20.9630968Z             }
2026-06-07T23:26:20.9631055Z           ]
2026-06-07T23:26:20.9631135Z         }
2026-06-07T23:26:20.9631225Z       }
2026-06-07T23:26:20.9631317Z     },
2026-06-07T23:26:20.9631402Z     {
2026-06-07T23:26:20.9631492Z       "id": "REQ-INST-2",
2026-06-07T23:26:20.9631612Z       "title": "Per-node files, synced Psyche mind",
2026-06-07T23:26:20.9631708Z       "requiredStages": [
2026-06-07T23:26:20.9631797Z         "impl",
2026-06-07T23:26:20.9631884Z         "unit"
2026-06-07T23:26:20.9631970Z       ],
2026-06-07T23:26:20.9632055Z       "stages": {
2026-06-07T23:26:20.9632145Z         "doc": {
2026-06-07T23:26:20.9632235Z           "complete": false,
2026-06-07T23:26:20.9632326Z           "evidence": []
2026-06-07T23:26:20.9632409Z         },
2026-06-07T23:26:20.9632500Z         "impl": {
2026-06-07T23:26:20.9632585Z           "complete": true,
2026-06-07T23:26:20.9632710Z           "evidence": [
2026-06-07T23:26:20.9632800Z             {
2026-06-07T23:26:20.9632919Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9633015Z               "line": 86
2026-06-07T23:26:20.9633100Z             },
2026-06-07T23:26:20.9633191Z             {
2026-06-07T23:26:20.9633306Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T23:26:20.9633396Z               "line": 28
2026-06-07T23:26:20.9633486Z             },
2026-06-07T23:26:20.9633569Z             {
2026-06-07T23:26:20.9633682Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T23:26:20.9633773Z               "line": 74
2026-06-07T23:26:20.9633859Z             },
2026-06-07T23:26:20.9633945Z             {
2026-06-07T23:26:20.9634054Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T23:26:20.9634145Z               "line": 96
2026-06-07T23:26:20.9634227Z             },
2026-06-07T23:26:20.9634316Z             {
2026-06-07T23:26:20.9634498Z               "path": "crates/spt-live/src/resume.rs",
2026-06-07T23:26:20.9634593Z               "line": 81
2026-06-07T23:26:20.9634683Z             },
2026-06-07T23:26:20.9634765Z             {
2026-06-07T23:26:20.9634894Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T23:26:20.9635045Z               "line": 118
2026-06-07T23:26:20.9635131Z             }
2026-06-07T23:26:20.9635213Z           ]
2026-06-07T23:26:20.9635303Z         },
2026-06-07T23:26:20.9635388Z         "int": {
2026-06-07T23:26:20.9635479Z           "complete": false,
2026-06-07T23:26:20.9635575Z           "evidence": []
2026-06-07T23:26:20.9635655Z         },
2026-06-07T23:26:20.9635746Z         "unit": {
2026-06-07T23:26:20.9635842Z           "complete": true,
2026-06-07T23:26:20.9635933Z           "evidence": [
2026-06-07T23:26:20.9636055Z             {
2026-06-07T23:26:20.9636171Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T23:26:20.9636261Z               "line": 212
2026-06-07T23:26:20.9636356Z             },
2026-06-07T23:26:20.9636438Z             {
2026-06-07T23:26:20.9636547Z               "path": "crates/spt-live/src/resume.rs",
2026-06-07T23:26:20.9636638Z               "line": 258
2026-06-07T23:26:20.9636724Z             }
2026-06-07T23:26:20.9636805Z           ]
2026-06-07T23:26:20.9636900Z         }
2026-06-07T23:26:20.9637073Z       }
2026-06-07T23:26:20.9637154Z     },
2026-06-07T23:26:20.9637243Z     {
2026-06-07T23:26:20.9637344Z       "id": "REQ-INST-3",
2026-06-07T23:26:20.9637501Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-07T23:26:20.9637595Z       "requiredStages": [
2026-06-07T23:26:20.9637690Z         "doc",
2026-06-07T23:26:20.9637776Z         "impl",
2026-06-07T23:26:20.9637865Z         "unit"
2026-06-07T23:26:20.9637950Z       ],
2026-06-07T23:26:20.9638041Z       "stages": {
2026-06-07T23:26:20.9638127Z         "doc": {
2026-06-07T23:26:20.9638217Z           "complete": true,
2026-06-07T23:26:20.9638313Z           "evidence": [
2026-06-07T23:26:20.9638399Z             {
2026-06-07T23:26:20.9638518Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-07T23:26:20.9638603Z               "line": 3
2026-06-07T23:26:20.9638690Z             }
2026-06-07T23:26:20.9638780Z           ]
2026-06-07T23:26:20.9638861Z         },
2026-06-07T23:26:20.9638956Z         "impl": {
2026-06-07T23:26:20.9639048Z           "complete": true,
2026-06-07T23:26:20.9639138Z           "evidence": [
2026-06-07T23:26:20.9639218Z             {
2026-06-07T23:26:20.9639344Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-07T23:26:20.9639433Z               "line": 70
2026-06-07T23:26:20.9639524Z             },
2026-06-07T23:26:20.9639610Z             {
2026-06-07T23:26:20.9639729Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T23:26:20.9639820Z               "line": 440
2026-06-07T23:26:20.9639906Z             },
2026-06-07T23:26:20.9639992Z             {
2026-06-07T23:26:20.9640119Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9640209Z               "line": 202
2026-06-07T23:26:20.9640295Z             },
2026-06-07T23:26:20.9640376Z             {
2026-06-07T23:26:20.9640498Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9640584Z               "line": 291
2026-06-07T23:26:20.9640675Z             },
2026-06-07T23:26:20.9640760Z             {
2026-06-07T23:26:20.9640874Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9640971Z               "line": 325
2026-06-07T23:26:20.9641052Z             },
2026-06-07T23:26:20.9641141Z             {
2026-06-07T23:26:20.9641262Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9641351Z               "line": 300
2026-06-07T23:26:20.9641441Z             },
2026-06-07T23:26:20.9641523Z             {
2026-06-07T23:26:20.9641652Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9641738Z               "line": 212
2026-06-07T23:26:20.9641823Z             },
2026-06-07T23:26:20.9642009Z             {
2026-06-07T23:26:20.9642148Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9642240Z               "line": 321
2026-06-07T23:26:20.9642328Z             },
2026-06-07T23:26:20.9642424Z             {
2026-06-07T23:26:20.9642629Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9642724Z               "line": 45
2026-06-07T23:26:20.9642809Z             },
2026-06-07T23:26:20.9642896Z             {
2026-06-07T23:26:20.9643022Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9643112Z               "line": 114
2026-06-07T23:26:20.9643194Z             },
2026-06-07T23:26:20.9643266Z             {
2026-06-07T23:26:20.9643374Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9643465Z               "line": 152
2026-06-07T23:26:20.9643546Z             },
2026-06-07T23:26:20.9643637Z             {
2026-06-07T23:26:20.9643761Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9643852Z               "line": 168
2026-06-07T23:26:20.9643938Z             },
2026-06-07T23:26:20.9644023Z             {
2026-06-07T23:26:20.9644143Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9644238Z               "line": 178
2026-06-07T23:26:20.9644323Z             },
2026-06-07T23:26:20.9644410Z             {
2026-06-07T23:26:20.9644529Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9644619Z               "line": 210
2026-06-07T23:26:20.9644705Z             },
2026-06-07T23:26:20.9644787Z             {
2026-06-07T23:26:20.9644900Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9644996Z               "line": 287
2026-06-07T23:26:20.9645083Z             },
2026-06-07T23:26:20.9645168Z             {
2026-06-07T23:26:20.9645281Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9645374Z               "line": 311
2026-06-07T23:26:20.9645469Z             },
2026-06-07T23:26:20.9645553Z             {
2026-06-07T23:26:20.9645676Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9645763Z               "line": 387
2026-06-07T23:26:20.9645849Z             },
2026-06-07T23:26:20.9645939Z             {
2026-06-07T23:26:20.9646068Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9646164Z               "line": 436
2026-06-07T23:26:20.9646244Z             },
2026-06-07T23:26:20.9646330Z             {
2026-06-07T23:26:20.9646450Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-07T23:26:20.9646544Z               "line": 37
2026-06-07T23:26:20.9646625Z             },
2026-06-07T23:26:20.9646712Z             {
2026-06-07T23:26:20.9646836Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9646921Z               "line": 62
2026-06-07T23:26:20.9647154Z             },
2026-06-07T23:26:20.9647250Z             {
2026-06-07T23:26:20.9647375Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9647465Z               "line": 190
2026-06-07T23:26:20.9647551Z             },
2026-06-07T23:26:20.9647638Z             {
2026-06-07T23:26:20.9647746Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9647841Z               "line": 1121
2026-06-07T23:26:20.9647923Z             }
2026-06-07T23:26:20.9648014Z           ]
2026-06-07T23:26:20.9648093Z         },
2026-06-07T23:26:20.9648183Z         "int": {
2026-06-07T23:26:20.9648279Z           "complete": false,
2026-06-07T23:26:20.9648369Z           "evidence": []
2026-06-07T23:26:20.9648458Z         },
2026-06-07T23:26:20.9648543Z         "unit": {
2026-06-07T23:26:20.9648645Z           "complete": true,
2026-06-07T23:26:20.9648735Z           "evidence": [
2026-06-07T23:26:20.9648824Z             {
2026-06-07T23:26:20.9648950Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T23:26:20.9649045Z               "line": 360
2026-06-07T23:26:20.9649130Z             },
2026-06-07T23:26:20.9649317Z             {
2026-06-07T23:26:20.9649445Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9649536Z               "line": 664
2026-06-07T23:26:20.9649622Z             },
2026-06-07T23:26:20.9649708Z             {
2026-06-07T23:26:20.9649918Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9650012Z               "line": 721
2026-06-07T23:26:20.9650093Z             },
2026-06-07T23:26:20.9650185Z             {
2026-06-07T23:26:20.9650322Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9650413Z               "line": 1000
2026-06-07T23:26:20.9650500Z             },
2026-06-07T23:26:20.9650586Z             {
2026-06-07T23:26:20.9650717Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9650802Z               "line": 1091
2026-06-07T23:26:20.9650889Z             },
2026-06-07T23:26:20.9650977Z             {
2026-06-07T23:26:20.9651096Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9651187Z               "line": 447
2026-06-07T23:26:20.9651273Z             },
2026-06-07T23:26:20.9651358Z             {
2026-06-07T23:26:20.9651468Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9651569Z               "line": 483
2026-06-07T23:26:20.9651654Z             },
2026-06-07T23:26:20.9651735Z             {
2026-06-07T23:26:20.9651855Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9651950Z               "line": 538
2026-06-07T23:26:20.9652035Z             },
2026-06-07T23:26:20.9652122Z             {
2026-06-07T23:26:20.9652245Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9652335Z               "line": 695
2026-06-07T23:26:20.9652423Z             },
2026-06-07T23:26:20.9652509Z             {
2026-06-07T23:26:20.9652622Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9652713Z               "line": 929
2026-06-07T23:26:20.9652800Z             },
2026-06-07T23:26:20.9652893Z             {
2026-06-07T23:26:20.9653013Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9653105Z               "line": 943
2026-06-07T23:26:20.9653194Z             },
2026-06-07T23:26:20.9653279Z             {
2026-06-07T23:26:20.9653403Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9653498Z               "line": 1061
2026-06-07T23:26:20.9653582Z             },
2026-06-07T23:26:20.9653667Z             {
2026-06-07T23:26:20.9653778Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9653868Z               "line": 413
2026-06-07T23:26:20.9653954Z             },
2026-06-07T23:26:20.9654044Z             {
2026-06-07T23:26:20.9654145Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9654235Z               "line": 4685
2026-06-07T23:26:20.9654316Z             }
2026-06-07T23:26:20.9654398Z           ]
2026-06-07T23:26:20.9654483Z         }
2026-06-07T23:26:20.9654568Z       }
2026-06-07T23:26:20.9654650Z     },
2026-06-07T23:26:20.9654737Z     {
2026-06-07T23:26:20.9654827Z       "id": "REQ-INST-4",
2026-06-07T23:26:20.9654999Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-07T23:26:20.9655098Z       "requiredStages": [
2026-06-07T23:26:20.9655193Z         "impl",
2026-06-07T23:26:20.9655280Z         "unit"
2026-06-07T23:26:20.9655371Z       ],
2026-06-07T23:26:20.9655455Z       "stages": {
2026-06-07T23:26:20.9655546Z         "doc": {
2026-06-07T23:26:20.9655643Z           "complete": false,
2026-06-07T23:26:20.9655733Z           "evidence": []
2026-06-07T23:26:20.9655817Z         },
2026-06-07T23:26:20.9655904Z         "impl": {
2026-06-07T23:26:20.9655996Z           "complete": true,
2026-06-07T23:26:20.9656084Z           "evidence": [
2026-06-07T23:26:20.9656170Z             {
2026-06-07T23:26:20.9656294Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9656380Z               "line": 292
2026-06-07T23:26:20.9656546Z             },
2026-06-07T23:26:20.9656629Z             {
2026-06-07T23:26:20.9656747Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9656837Z               "line": 202
2026-06-07T23:26:20.9656919Z             },
2026-06-07T23:26:20.9657185Z             {
2026-06-07T23:26:20.9657319Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9657414Z               "line": 234
2026-06-07T23:26:20.9657495Z             },
2026-06-07T23:26:20.9657583Z             {
2026-06-07T23:26:20.9657700Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9657791Z               "line": 274
2026-06-07T23:26:20.9657878Z             }
2026-06-07T23:26:20.9657959Z           ]
2026-06-07T23:26:20.9658048Z         },
2026-06-07T23:26:20.9658134Z         "int": {
2026-06-07T23:26:20.9658231Z           "complete": false,
2026-06-07T23:26:20.9658325Z           "evidence": []
2026-06-07T23:26:20.9658416Z         },
2026-06-07T23:26:20.9658517Z         "unit": {
2026-06-07T23:26:20.9658612Z           "complete": true,
2026-06-07T23:26:20.9658701Z           "evidence": [
2026-06-07T23:26:20.9658786Z             {
2026-06-07T23:26:20.9658906Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:20.9659004Z               "line": 716
2026-06-07T23:26:20.9659089Z             },
2026-06-07T23:26:20.9659176Z             {
2026-06-07T23:26:20.9659295Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9659389Z               "line": 559
2026-06-07T23:26:20.9659471Z             },
2026-06-07T23:26:20.9659562Z             {
2026-06-07T23:26:20.9659685Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9659776Z               "line": 666
2026-06-07T23:26:20.9659867Z             },
2026-06-07T23:26:20.9659948Z             {
2026-06-07T23:26:20.9660067Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9660153Z               "line": 748
2026-06-07T23:26:20.9660248Z             }
2026-06-07T23:26:20.9660334Z           ]
2026-06-07T23:26:20.9660415Z         }
2026-06-07T23:26:20.9660502Z       }
2026-06-07T23:26:20.9660582Z     },
2026-06-07T23:26:20.9660668Z     {
2026-06-07T23:26:20.9660760Z       "id": "REQ-INST-5",
2026-06-07T23:26:20.9660940Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-07T23:26:20.9661040Z       "requiredStages": [
2026-06-07T23:26:20.9661127Z         "impl",
2026-06-07T23:26:20.9661211Z         "unit",
2026-06-07T23:26:20.9661296Z         "int"
2026-06-07T23:26:20.9661382Z       ],
2026-06-07T23:26:20.9661467Z       "stages": {
2026-06-07T23:26:20.9661561Z         "doc": {
2026-06-07T23:26:20.9661656Z           "complete": false,
2026-06-07T23:26:20.9661747Z           "evidence": []
2026-06-07T23:26:20.9661833Z         },
2026-06-07T23:26:20.9661918Z         "impl": {
2026-06-07T23:26:20.9662009Z           "complete": true,
2026-06-07T23:26:20.9662105Z           "evidence": [
2026-06-07T23:26:20.9662195Z             {
2026-06-07T23:26:20.9662328Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9662420Z               "line": 39
2026-06-07T23:26:20.9662506Z             },
2026-06-07T23:26:20.9662590Z             {
2026-06-07T23:26:20.9662720Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T23:26:20.9662810Z               "line": 68
2026-06-07T23:26:20.9662900Z             },
2026-06-07T23:26:20.9662988Z             {
2026-06-07T23:26:20.9663097Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T23:26:20.9663187Z               "line": 97
2026-06-07T23:26:20.9663273Z             },
2026-06-07T23:26:20.9663355Z             {
2026-06-07T23:26:20.9663467Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T23:26:20.9663559Z               "line": 180
2026-06-07T23:26:20.9663646Z             },
2026-06-07T23:26:20.9663727Z             {
2026-06-07T23:26:20.9663839Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T23:26:20.9664025Z               "line": 311
2026-06-07T23:26:20.9664118Z             }
2026-06-07T23:26:20.9664199Z           ]
2026-06-07T23:26:20.9664285Z         },
2026-06-07T23:26:20.9664372Z         "int": {
2026-06-07T23:26:20.9664466Z           "complete": true,
2026-06-07T23:26:20.9664662Z           "evidence": [
2026-06-07T23:26:20.9664748Z             {
2026-06-07T23:26:20.9664881Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T23:26:20.9664968Z               "line": 146
2026-06-07T23:26:20.9665053Z             },
2026-06-07T23:26:20.9665143Z             {
2026-06-07T23:26:20.9665263Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-07T23:26:20.9665358Z               "line": 102
2026-06-07T23:26:20.9665443Z             },
2026-06-07T23:26:20.9665530Z             {
2026-06-07T23:26:20.9665649Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9665744Z               "line": 635
2026-06-07T23:26:20.9665840Z             },
2026-06-07T23:26:20.9665922Z             {
2026-06-07T23:26:20.9666039Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9666131Z               "line": 972
2026-06-07T23:26:20.9666217Z             }
2026-06-07T23:26:20.9666302Z           ]
2026-06-07T23:26:20.9666397Z         },
2026-06-07T23:26:20.9666479Z         "unit": {
2026-06-07T23:26:20.9666571Z           "complete": true,
2026-06-07T23:26:20.9668894Z           "evidence": [
2026-06-07T23:26:20.9669000Z             {
2026-06-07T23:26:20.9669134Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T23:26:20.9669228Z               "line": 520
2026-06-07T23:26:20.9669322Z             },
2026-06-07T23:26:20.9669409Z             {
2026-06-07T23:26:20.9669526Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T23:26:20.9669621Z               "line": 563
2026-06-07T23:26:20.9669702Z             },
2026-06-07T23:26:20.9669784Z             {
2026-06-07T23:26:20.9669917Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-07T23:26:20.9670012Z               "line": 210
2026-06-07T23:26:20.9670098Z             }
2026-06-07T23:26:20.9670180Z           ]
2026-06-07T23:26:20.9670269Z         }
2026-06-07T23:26:20.9670351Z       }
2026-06-07T23:26:20.9670437Z     },
2026-06-07T23:26:20.9670527Z     {
2026-06-07T23:26:20.9670622Z       "id": "REQ-INST-6",
2026-06-07T23:26:20.9670804Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-07T23:26:20.9670899Z       "requiredStages": [
2026-06-07T23:26:20.9670995Z         "impl",
2026-06-07T23:26:20.9671080Z         "unit",
2026-06-07T23:26:20.9671166Z         "int"
2026-06-07T23:26:20.9671247Z       ],
2026-06-07T23:26:20.9671339Z       "stages": {
2026-06-07T23:26:20.9671428Z         "doc": {
2026-06-07T23:26:20.9671519Z           "complete": true,
2026-06-07T23:26:20.9671610Z           "evidence": [
2026-06-07T23:26:20.9671696Z             {
2026-06-07T23:26:20.9671800Z               "path": "docs/DEFERRED.md",
2026-06-07T23:26:20.9671894Z               "line": 13
2026-06-07T23:26:20.9671981Z             }
2026-06-07T23:26:20.9672065Z           ]
2026-06-07T23:26:20.9672150Z         },
2026-06-07T23:26:20.9672240Z         "impl": {
2026-06-07T23:26:20.9672332Z           "complete": true,
2026-06-07T23:26:20.9672431Z           "evidence": [
2026-06-07T23:26:20.9672516Z             {
2026-06-07T23:26:20.9672642Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T23:26:20.9672737Z               "line": 377
2026-06-07T23:26:20.9672821Z             },
2026-06-07T23:26:20.9672908Z             {
2026-06-07T23:26:20.9673027Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-07T23:26:20.9673113Z               "line": 27
2026-06-07T23:26:20.9673203Z             },
2026-06-07T23:26:20.9673285Z             {
2026-06-07T23:26:20.9673399Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-07T23:26:20.9673484Z               "line": 73
2026-06-07T23:26:20.9673572Z             },
2026-06-07T23:26:20.9673775Z             {
2026-06-07T23:26:20.9673905Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-07T23:26:20.9673995Z               "line": 182
2026-06-07T23:26:20.9674081Z             },
2026-06-07T23:26:20.9674162Z             {
2026-06-07T23:26:20.9674371Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9674466Z               "line": 424
2026-06-07T23:26:20.9674547Z             },
2026-06-07T23:26:20.9674632Z             {
2026-06-07T23:26:20.9674749Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-07T23:26:20.9674836Z               "line": 31
2026-06-07T23:26:20.9674927Z             },
2026-06-07T23:26:20.9675012Z             {
2026-06-07T23:26:20.9675131Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:20.9675209Z               "line": 182
2026-06-07T23:26:20.9675304Z             },
2026-06-07T23:26:20.9675393Z             {
2026-06-07T23:26:20.9675509Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T23:26:20.9675598Z               "line": 81
2026-06-07T23:26:20.9675684Z             },
2026-06-07T23:26:20.9675770Z             {
2026-06-07T23:26:20.9675876Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9675966Z               "line": 1122
2026-06-07T23:26:20.9676056Z             },
2026-06-07T23:26:20.9676138Z             {
2026-06-07T23:26:20.9676251Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T23:26:20.9676337Z               "line": 179
2026-06-07T23:26:20.9676425Z             },
2026-06-07T23:26:20.9676505Z             {
2026-06-07T23:26:20.9676614Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T23:26:20.9676705Z               "line": 215
2026-06-07T23:26:20.9676777Z             }
2026-06-07T23:26:20.9676867Z           ]
2026-06-07T23:26:20.9677054Z         },
2026-06-07T23:26:20.9677145Z         "int": {
2026-06-07T23:26:20.9677224Z           "complete": true,
2026-06-07T23:26:20.9677319Z           "evidence": [
2026-06-07T23:26:20.9677400Z             {
2026-06-07T23:26:20.9677520Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9677605Z               "line": 649
2026-06-07T23:26:20.9677671Z             },
2026-06-07T23:26:20.9677763Z             {
2026-06-07T23:26:20.9677881Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9677972Z               "line": 1017
2026-06-07T23:26:20.9678059Z             },
2026-06-07T23:26:20.9678144Z             {
2026-06-07T23:26:20.9678253Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T23:26:20.9678340Z               "line": 712
2026-06-07T23:26:20.9678416Z             }
2026-06-07T23:26:20.9678497Z           ]
2026-06-07T23:26:20.9678582Z         },
2026-06-07T23:26:20.9678669Z         "unit": {
2026-06-07T23:26:20.9678759Z           "complete": true,
2026-06-07T23:26:20.9678849Z           "evidence": [
2026-06-07T23:26:20.9678935Z             {
2026-06-07T23:26:20.9679060Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T23:26:20.9679149Z               "line": 620
2026-06-07T23:26:20.9679231Z             },
2026-06-07T23:26:20.9679313Z             {
2026-06-07T23:26:20.9679431Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:20.9679521Z               "line": 897
2026-06-07T23:26:20.9679609Z             },
2026-06-07T23:26:20.9679699Z             {
2026-06-07T23:26:20.9679812Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-07T23:26:20.9679911Z               "line": 66
2026-06-07T23:26:20.9679998Z             },
2026-06-07T23:26:20.9680072Z             {
2026-06-07T23:26:20.9680172Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:20.9680258Z               "line": 272
2026-06-07T23:26:20.9680344Z             },
2026-06-07T23:26:20.9680429Z             {
2026-06-07T23:26:20.9680543Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T23:26:20.9680630Z               "line": 201
2026-06-07T23:26:20.9680716Z             }
2026-06-07T23:26:20.9680892Z           ]
2026-06-07T23:26:20.9680978Z         }
2026-06-07T23:26:20.9681063Z       }
2026-06-07T23:26:20.9681149Z     },
2026-06-07T23:26:20.9681231Z     {
2026-06-07T23:26:20.9681326Z       "id": "REQ-INST-7",
2026-06-07T23:26:20.9681464Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-07T23:26:20.9681654Z       "requiredStages": [
2026-06-07T23:26:20.9681731Z         "impl",
2026-06-07T23:26:20.9681816Z         "unit",
2026-06-07T23:26:20.9681899Z         "int"
2026-06-07T23:26:20.9681988Z       ],
2026-06-07T23:26:20.9682079Z       "stages": {
2026-06-07T23:26:20.9682161Z         "doc": {
2026-06-07T23:26:20.9682256Z           "complete": false,
2026-06-07T23:26:20.9682350Z           "evidence": []
2026-06-07T23:26:20.9682435Z         },
2026-06-07T23:26:20.9682522Z         "impl": {
2026-06-07T23:26:20.9682616Z           "complete": true,
2026-06-07T23:26:20.9682710Z           "evidence": [
2026-06-07T23:26:20.9682790Z             {
2026-06-07T23:26:20.9682916Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T23:26:20.9683005Z               "line": 412
2026-06-07T23:26:20.9683095Z             },
2026-06-07T23:26:20.9683178Z             {
2026-06-07T23:26:20.9683301Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9683382Z               "line": 40
2026-06-07T23:26:20.9683458Z             },
2026-06-07T23:26:20.9683545Z             {
2026-06-07T23:26:20.9683673Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9683768Z               "line": 27
2026-06-07T23:26:20.9683860Z             },
2026-06-07T23:26:20.9683940Z             {
2026-06-07T23:26:20.9684069Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9684155Z               "line": 185
2026-06-07T23:26:20.9684241Z             },
2026-06-07T23:26:20.9684322Z             {
2026-06-07T23:26:20.9684442Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9684541Z               "line": 275
2026-06-07T23:26:20.9684627Z             },
2026-06-07T23:26:20.9684708Z             {
2026-06-07T23:26:20.9684823Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-07T23:26:20.9684912Z               "line": 59
2026-06-07T23:26:20.9685002Z             },
2026-06-07T23:26:20.9685084Z             {
2026-06-07T23:26:20.9685210Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9685295Z               "line": 41
2026-06-07T23:26:20.9685381Z             },
2026-06-07T23:26:20.9685464Z             {
2026-06-07T23:26:20.9685586Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T23:26:20.9685672Z               "line": 27
2026-06-07T23:26:20.9685759Z             },
2026-06-07T23:26:20.9685835Z             {
2026-06-07T23:26:20.9685943Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T23:26:20.9686035Z               "line": 59
2026-06-07T23:26:20.9686126Z             },
2026-06-07T23:26:20.9686216Z             {
2026-06-07T23:26:20.9686330Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T23:26:20.9686421Z               "line": 68
2026-06-07T23:26:20.9686507Z             },
2026-06-07T23:26:20.9686592Z             {
2026-06-07T23:26:20.9686703Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T23:26:20.9686798Z               "line": 139
2026-06-07T23:26:20.9686888Z             }
2026-06-07T23:26:20.9687047Z           ]
2026-06-07T23:26:20.9687131Z         },
2026-06-07T23:26:20.9687217Z         "int": {
2026-06-07T23:26:20.9687309Z           "complete": true,
2026-06-07T23:26:20.9687399Z           "evidence": [
2026-06-07T23:26:20.9687483Z             {
2026-06-07T23:26:20.9687604Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-07T23:26:20.9687695Z               "line": 102
2026-06-07T23:26:20.9687784Z             },
2026-06-07T23:26:20.9687860Z             {
2026-06-07T23:26:20.9687979Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9688184Z               "line": 593
2026-06-07T23:26:20.9688270Z             },
2026-06-07T23:26:20.9688356Z             {
2026-06-07T23:26:20.9688470Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9688560Z               "line": 867
2026-06-07T23:26:20.9688729Z             }
2026-06-07T23:26:20.9688803Z           ]
2026-06-07T23:26:20.9688890Z         },
2026-06-07T23:26:20.9688981Z         "unit": {
2026-06-07T23:26:20.9689081Z           "complete": true,
2026-06-07T23:26:20.9689171Z           "evidence": [
2026-06-07T23:26:20.9689258Z             {
2026-06-07T23:26:20.9689385Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9689476Z               "line": 870
2026-06-07T23:26:20.9689563Z             },
2026-06-07T23:26:20.9689644Z             {
2026-06-07T23:26:20.9689767Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9689859Z               "line": 1152
2026-06-07T23:26:20.9689949Z             },
2026-06-07T23:26:20.9690034Z             {
2026-06-07T23:26:20.9690159Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-07T23:26:20.9690250Z               "line": 83
2026-06-07T23:26:20.9690320Z             },
2026-06-07T23:26:20.9690401Z             {
2026-06-07T23:26:20.9690524Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9690609Z               "line": 690
2026-06-07T23:26:20.9690698Z             },
2026-06-07T23:26:20.9690783Z             {
2026-06-07T23:26:20.9690899Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9690989Z               "line": 701
2026-06-07T23:26:20.9691079Z             },
2026-06-07T23:26:20.9691156Z             {
2026-06-07T23:26:20.9691266Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9691360Z               "line": 716
2026-06-07T23:26:20.9691447Z             },
2026-06-07T23:26:20.9691529Z             {
2026-06-07T23:26:20.9691652Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T23:26:20.9691742Z               "line": 99
2026-06-07T23:26:20.9691830Z             },
2026-06-07T23:26:20.9691909Z             {
2026-06-07T23:26:20.9692029Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T23:26:20.9692125Z               "line": 114
2026-06-07T23:26:20.9692210Z             },
2026-06-07T23:26:20.9692291Z             {
2026-06-07T23:26:20.9692420Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T23:26:20.9692511Z               "line": 147
2026-06-07T23:26:20.9692591Z             }
2026-06-07T23:26:20.9692678Z           ]
2026-06-07T23:26:20.9692759Z         }
2026-06-07T23:26:20.9692849Z       }
2026-06-07T23:26:20.9692929Z     },
2026-06-07T23:26:20.9693014Z     {
2026-06-07T23:26:20.9693110Z       "id": "REQ-INST-8",
2026-06-07T23:26:20.9693261Z       "title": "Remote-control mode distinct from local operation",
2026-06-07T23:26:20.9693365Z       "requiredStages": [
2026-06-07T23:26:20.9693442Z         "impl",
2026-06-07T23:26:20.9693537Z         "unit",
2026-06-07T23:26:20.9693613Z         "int"
2026-06-07T23:26:20.9693690Z       ],
2026-06-07T23:26:20.9693776Z       "stages": {
2026-06-07T23:26:20.9693861Z         "doc": {
2026-06-07T23:26:20.9693951Z           "complete": false,
2026-06-07T23:26:20.9694067Z           "evidence": []
2026-06-07T23:26:20.9694162Z         },
2026-06-07T23:26:20.9694247Z         "impl": {
2026-06-07T23:26:20.9694343Z           "complete": true,
2026-06-07T23:26:20.9694424Z           "evidence": [
2026-06-07T23:26:20.9694505Z             {
2026-06-07T23:26:20.9694629Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-07T23:26:20.9694720Z               "line": 98
2026-06-07T23:26:20.9694805Z             },
2026-06-07T23:26:20.9694886Z             {
2026-06-07T23:26:20.9694997Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-07T23:26:20.9695092Z               "line": 209
2026-06-07T23:26:20.9695172Z             },
2026-06-07T23:26:20.9695312Z             {
2026-06-07T23:26:20.9695430Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-07T23:26:20.9695524Z               "line": 230
2026-06-07T23:26:20.9695609Z             },
2026-06-07T23:26:20.9695691Z             {
2026-06-07T23:26:20.9695869Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-07T23:26:20.9695961Z               "line": 35
2026-06-07T23:26:20.9696047Z             }
2026-06-07T23:26:20.9696127Z           ]
2026-06-07T23:26:20.9696213Z         },
2026-06-07T23:26:20.9696295Z         "int": {
2026-06-07T23:26:20.9696390Z           "complete": true,
2026-06-07T23:26:20.9696480Z           "evidence": [
2026-06-07T23:26:20.9696561Z             {
2026-06-07T23:26:20.9696686Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T23:26:20.9696776Z               "line": 404
2026-06-07T23:26:20.9696857Z             },
2026-06-07T23:26:20.9697024Z             {
2026-06-07T23:26:20.9697152Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9697244Z               "line": 931
2026-06-07T23:26:20.9697325Z             }
2026-06-07T23:26:20.9697410Z           ]
2026-06-07T23:26:20.9697501Z         },
2026-06-07T23:26:20.9697587Z         "unit": {
2026-06-07T23:26:20.9697677Z           "complete": true,
2026-06-07T23:26:20.9697768Z           "evidence": [
2026-06-07T23:26:20.9697849Z             {
2026-06-07T23:26:20.9697964Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-07T23:26:20.9698057Z               "line": 180
2026-06-07T23:26:20.9698140Z             },
2026-06-07T23:26:20.9698222Z             {
2026-06-07T23:26:20.9698339Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-07T23:26:20.9698434Z               "line": 258
2026-06-07T23:26:20.9698516Z             },
2026-06-07T23:26:20.9698588Z             {
2026-06-07T23:26:20.9698696Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-07T23:26:20.9698787Z               "line": 70
2026-06-07T23:26:20.9698879Z             },
2026-06-07T23:26:20.9698965Z             {
2026-06-07T23:26:20.9699077Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-07T23:26:20.9699164Z               "line": 110
2026-06-07T23:26:20.9699255Z             }
2026-06-07T23:26:20.9699336Z           ]
2026-06-07T23:26:20.9699421Z         }
2026-06-07T23:26:20.9699498Z       }
2026-06-07T23:26:20.9699579Z     },
2026-06-07T23:26:20.9699664Z     {
2026-06-07T23:26:20.9699755Z       "id": "REQ-INST-9",
2026-06-07T23:26:20.9699936Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-07T23:26:20.9700031Z       "requiredStages": [
2026-06-07T23:26:20.9700118Z         "impl",
2026-06-07T23:26:20.9700204Z         "unit"
2026-06-07T23:26:20.9700279Z       ],
2026-06-07T23:26:20.9700366Z       "stages": {
2026-06-07T23:26:20.9700457Z         "doc": {
2026-06-07T23:26:20.9700556Z           "complete": false,
2026-06-07T23:26:20.9700651Z           "evidence": []
2026-06-07T23:26:20.9700734Z         },
2026-06-07T23:26:20.9700829Z         "impl": {
2026-06-07T23:26:20.9700917Z           "complete": true,
2026-06-07T23:26:20.9701012Z           "evidence": [
2026-06-07T23:26:20.9701094Z             {
2026-06-07T23:26:20.9701216Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9701311Z               "line": 328
2026-06-07T23:26:20.9701397Z             }
2026-06-07T23:26:20.9701483Z           ]
2026-06-07T23:26:20.9701573Z         },
2026-06-07T23:26:20.9701658Z         "int": {
2026-06-07T23:26:20.9701751Z           "complete": false,
2026-06-07T23:26:20.9701841Z           "evidence": []
2026-06-07T23:26:20.9701916Z         },
2026-06-07T23:26:20.9702002Z         "unit": {
2026-06-07T23:26:20.9702098Z           "complete": true,
2026-06-07T23:26:20.9702189Z           "evidence": [
2026-06-07T23:26:20.9702279Z             {
2026-06-07T23:26:20.9702404Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9702499Z               "line": 1168
2026-06-07T23:26:20.9702670Z             },
2026-06-07T23:26:20.9702752Z             {
2026-06-07T23:26:20.9702875Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9702971Z               "line": 1177
2026-06-07T23:26:20.9703053Z             },
2026-06-07T23:26:20.9703228Z             {
2026-06-07T23:26:20.9703349Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9703437Z               "line": 1193
2026-06-07T23:26:20.9703518Z             },
2026-06-07T23:26:20.9703608Z             {
2026-06-07T23:26:20.9703727Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9703821Z               "line": 1205
2026-06-07T23:26:20.9703910Z             },
2026-06-07T23:26:20.9703993Z             {
2026-06-07T23:26:20.9704111Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9704197Z               "line": 1225
2026-06-07T23:26:20.9704283Z             }
2026-06-07T23:26:20.9704369Z           ]
2026-06-07T23:26:20.9704459Z         }
2026-06-07T23:26:20.9704545Z       }
2026-06-07T23:26:20.9704627Z     },
2026-06-07T23:26:20.9704712Z     {
2026-06-07T23:26:20.9704807Z       "id": "REQ-INSTALL-1",
2026-06-07T23:26:20.9704994Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-07T23:26:20.9705093Z       "requiredStages": [
2026-06-07T23:26:20.9705174Z         "doc",
2026-06-07T23:26:20.9705267Z         "impl",
2026-06-07T23:26:20.9705351Z         "int"
2026-06-07T23:26:20.9705437Z       ],
2026-06-07T23:26:20.9705523Z       "stages": {
2026-06-07T23:26:20.9705609Z         "doc": {
2026-06-07T23:26:20.9705704Z           "complete": true,
2026-06-07T23:26:20.9705795Z           "evidence": [
2026-06-07T23:26:20.9705877Z             {
2026-06-07T23:26:20.9705976Z               "path": "CONTEXT.md",
2026-06-07T23:26:20.9706066Z               "line": 560
2026-06-07T23:26:20.9706151Z             }
2026-06-07T23:26:20.9706237Z           ]
2026-06-07T23:26:20.9706321Z         },
2026-06-07T23:26:20.9706411Z         "impl": {
2026-06-07T23:26:20.9706506Z           "complete": true,
2026-06-07T23:26:20.9706593Z           "evidence": [
2026-06-07T23:26:20.9706683Z             {
2026-06-07T23:26:20.9706787Z               "path": "installer/install.ps1",
2026-06-07T23:26:20.9706884Z               "line": 57
2026-06-07T23:26:20.9707073Z             },
2026-06-07T23:26:20.9707155Z             {
2026-06-07T23:26:20.9707260Z               "path": "installer/install.sh",
2026-06-07T23:26:20.9707345Z               "line": 52
2026-06-07T23:26:20.9707460Z             }
2026-06-07T23:26:20.9707546Z           ]
2026-06-07T23:26:20.9707622Z         },
2026-06-07T23:26:20.9707707Z         "int": {
2026-06-07T23:26:20.9707800Z           "complete": true,
2026-06-07T23:26:20.9707899Z           "evidence": [
2026-06-07T23:26:20.9707985Z             {
2026-06-07T23:26:20.9708105Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-07T23:26:20.9708190Z               "line": 21
2026-06-07T23:26:20.9708284Z             }
2026-06-07T23:26:20.9708366Z           ]
2026-06-07T23:26:20.9708444Z         },
2026-06-07T23:26:20.9708538Z         "unit": {
2026-06-07T23:26:20.9708632Z           "complete": false,
2026-06-07T23:26:20.9708729Z           "evidence": []
2026-06-07T23:26:20.9708815Z         }
2026-06-07T23:26:20.9708909Z       }
2026-06-07T23:26:20.9708989Z     },
2026-06-07T23:26:20.9709071Z     {
2026-06-07T23:26:20.9709166Z       "id": "REQ-INSTALL-2",
2026-06-07T23:26:20.9709318Z       "title": "Marketplace-repackaging-friendly install",
2026-06-07T23:26:20.9709410Z       "requiredStages": [
2026-06-07T23:26:20.9709495Z         "doc"
2026-06-07T23:26:20.9709581Z       ],
2026-06-07T23:26:20.9709671Z       "stages": {
2026-06-07T23:26:20.9709753Z         "doc": {
2026-06-07T23:26:20.9709849Z           "complete": true,
2026-06-07T23:26:20.9709943Z           "evidence": [
2026-06-07T23:26:20.9710025Z             {
2026-06-07T23:26:20.9710120Z               "path": "CONTEXT.md",
2026-06-07T23:26:20.9710311Z               "line": 561
2026-06-07T23:26:20.9710402Z             }
2026-06-07T23:26:20.9710487Z           ]
2026-06-07T23:26:20.9710572Z         },
2026-06-07T23:26:20.9710659Z         "impl": {
2026-06-07T23:26:20.9710755Z           "complete": false,
2026-06-07T23:26:20.9710921Z           "evidence": []
2026-06-07T23:26:20.9711012Z         },
2026-06-07T23:26:20.9711098Z         "int": {
2026-06-07T23:26:20.9711192Z           "complete": false,
2026-06-07T23:26:20.9711274Z           "evidence": []
2026-06-07T23:26:20.9711370Z         },
2026-06-07T23:26:20.9711464Z         "unit": {
2026-06-07T23:26:20.9711554Z           "complete": false,
2026-06-07T23:26:20.9711644Z           "evidence": []
2026-06-07T23:26:20.9711735Z         }
2026-06-07T23:26:20.9711818Z       }
2026-06-07T23:26:20.9711904Z     },
2026-06-07T23:26:20.9711991Z     {
2026-06-07T23:26:20.9712082Z       "id": "REQ-INSTALL-3",
2026-06-07T23:26:20.9712223Z       "title": "Idempotent + interactive-optional first run",
2026-06-07T23:26:20.9712330Z       "requiredStages": [
2026-06-07T23:26:20.9712416Z         "impl",
2026-06-07T23:26:20.9712505Z         "int"
2026-06-07T23:26:20.9712596Z       ],
2026-06-07T23:26:20.9712682Z       "stages": {
2026-06-07T23:26:20.9712768Z         "doc": {
2026-06-07T23:26:20.9712863Z           "complete": false,
2026-06-07T23:26:20.9712954Z           "evidence": []
2026-06-07T23:26:20.9713039Z         },
2026-06-07T23:26:20.9713134Z         "impl": {
2026-06-07T23:26:20.9713226Z           "complete": true,
2026-06-07T23:26:20.9713317Z           "evidence": [
2026-06-07T23:26:20.9713402Z             {
2026-06-07T23:26:20.9713516Z               "path": "installer/install.ps1",
2026-06-07T23:26:20.9713608Z               "line": 100
2026-06-07T23:26:20.9713692Z             },
2026-06-07T23:26:20.9713778Z             {
2026-06-07T23:26:20.9713889Z               "path": "installer/install.ps1",
2026-06-07T23:26:20.9713979Z               "line": 111
2026-06-07T23:26:20.9714064Z             },
2026-06-07T23:26:20.9714153Z             {
2026-06-07T23:26:20.9714259Z               "path": "installer/install.sh",
2026-06-07T23:26:20.9714347Z               "line": 79
2026-06-07T23:26:20.9714437Z             }
2026-06-07T23:26:20.9714523Z           ]
2026-06-07T23:26:20.9714610Z         },
2026-06-07T23:26:20.9714700Z         "int": {
2026-06-07T23:26:20.9714790Z           "complete": true,
2026-06-07T23:26:20.9714887Z           "evidence": [
2026-06-07T23:26:20.9714968Z             {
2026-06-07T23:26:20.9715095Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-07T23:26:20.9715192Z               "line": 167
2026-06-07T23:26:20.9715277Z             }
2026-06-07T23:26:20.9715362Z           ]
2026-06-07T23:26:20.9715444Z         },
2026-06-07T23:26:20.9715521Z         "unit": {
2026-06-07T23:26:20.9715611Z           "complete": false,
2026-06-07T23:26:20.9715711Z           "evidence": []
2026-06-07T23:26:20.9715798Z         }
2026-06-07T23:26:20.9715883Z       }
2026-06-07T23:26:20.9715968Z     },
2026-06-07T23:26:20.9716054Z     {
2026-06-07T23:26:20.9716156Z       "id": "REQ-INSTALL-4",
2026-06-07T23:26:20.9716764Z       "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-07T23:26:20.9716872Z       "requiredStages": [
2026-06-07T23:26:20.9717052Z         "impl",
2026-06-07T23:26:20.9717139Z         "unit"
2026-06-07T23:26:20.9717229Z       ],
2026-06-07T23:26:20.9717318Z       "stages": {
2026-06-07T23:26:20.9717410Z         "doc": {
2026-06-07T23:26:20.9717506Z           "complete": false,
2026-06-07T23:26:20.9717605Z           "evidence": []
2026-06-07T23:26:20.9717691Z         },
2026-06-07T23:26:20.9717777Z         "impl": {
2026-06-07T23:26:20.9717873Z           "complete": true,
2026-06-07T23:26:20.9717962Z           "evidence": [
2026-06-07T23:26:20.9718050Z             {
2026-06-07T23:26:20.9718306Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:20.9718398Z               "line": 154
2026-06-07T23:26:20.9718488Z             },
2026-06-07T23:26:20.9718569Z             {
2026-06-07T23:26:20.9718699Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T23:26:20.9718874Z               "line": 29
2026-06-07T23:26:20.9718965Z             },
2026-06-07T23:26:20.9719060Z             {
2026-06-07T23:26:20.9719183Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T23:26:20.9719280Z               "line": 117
2026-06-07T23:26:20.9719361Z             },
2026-06-07T23:26:20.9719450Z             {
2026-06-07T23:26:20.9719568Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T23:26:20.9719664Z               "line": 161
2026-06-07T23:26:20.9719750Z             },
2026-06-07T23:26:20.9719831Z             {
2026-06-07T23:26:20.9719950Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T23:26:20.9720042Z               "line": 191
2026-06-07T23:26:20.9720131Z             },
2026-06-07T23:26:20.9720217Z             {
2026-06-07T23:26:20.9720337Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T23:26:20.9720437Z               "line": 223
2026-06-07T23:26:20.9720517Z             },
2026-06-07T23:26:20.9720614Z             {
2026-06-07T23:26:20.9720718Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9720818Z               "line": 3414
2026-06-07T23:26:20.9720899Z             }
2026-06-07T23:26:20.9720986Z           ]
2026-06-07T23:26:20.9721075Z         },
2026-06-07T23:26:20.9721161Z         "int": {
2026-06-07T23:26:20.9721253Z           "complete": false,
2026-06-07T23:26:20.9721352Z           "evidence": []
2026-06-07T23:26:20.9721438Z         },
2026-06-07T23:26:20.9721524Z         "unit": {
2026-06-07T23:26:20.9721620Z           "complete": true,
2026-06-07T23:26:20.9721714Z           "evidence": [
2026-06-07T23:26:20.9721800Z             {
2026-06-07T23:26:20.9721940Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:20.9722029Z               "line": 334
2026-06-07T23:26:20.9722119Z             },
2026-06-07T23:26:20.9722200Z             {
2026-06-07T23:26:20.9722318Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T23:26:20.9722416Z               "line": 269
2026-06-07T23:26:20.9722503Z             },
2026-06-07T23:26:20.9722585Z             {
2026-06-07T23:26:20.9722703Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T23:26:20.9722793Z               "line": 310
2026-06-07T23:26:20.9722880Z             },
2026-06-07T23:26:20.9722966Z             {
2026-06-07T23:26:20.9723084Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T23:26:20.9723176Z               "line": 330
2026-06-07T23:26:20.9723270Z             },
2026-06-07T23:26:20.9723351Z             {
2026-06-07T23:26:20.9723462Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9723552Z               "line": 4977
2026-06-07T23:26:20.9723647Z             }
2026-06-07T23:26:20.9723733Z           ]
2026-06-07T23:26:20.9723820Z         }
2026-06-07T23:26:20.9723905Z       }
2026-06-07T23:26:20.9723990Z     },
2026-06-07T23:26:20.9724076Z     {
2026-06-07T23:26:20.9724173Z       "id": "REQ-INSTALL-5",
2026-06-07T23:26:20.9724643Z       "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-07T23:26:20.9724743Z       "requiredStages": [
2026-06-07T23:26:20.9724828Z         "impl",
2026-06-07T23:26:20.9724917Z         "int"
2026-06-07T23:26:20.9724998Z       ],
2026-06-07T23:26:20.9725093Z       "stages": {
2026-06-07T23:26:20.9725179Z         "doc": {
2026-06-07T23:26:20.9725279Z           "complete": false,
2026-06-07T23:26:20.9725370Z           "evidence": []
2026-06-07T23:26:20.9725452Z         },
2026-06-07T23:26:20.9725542Z         "impl": {
2026-06-07T23:26:20.9725637Z           "complete": true,
2026-06-07T23:26:20.9725804Z           "evidence": [
2026-06-07T23:26:20.9725894Z             {
2026-06-07T23:26:20.9726004Z               "path": "installer/install.ps1",
2026-06-07T23:26:20.9726095Z               "line": 5
2026-06-07T23:26:20.9726181Z             },
2026-06-07T23:26:20.9726334Z             {
2026-06-07T23:26:20.9726443Z               "path": "installer/install.sh",
2026-06-07T23:26:20.9726538Z               "line": 6
2026-06-07T23:26:20.9726623Z             }
2026-06-07T23:26:20.9726706Z           ]
2026-06-07T23:26:20.9726795Z         },
2026-06-07T23:26:20.9726881Z         "int": {
2026-06-07T23:26:20.9727064Z           "complete": true,
2026-06-07T23:26:20.9727152Z           "evidence": [
2026-06-07T23:26:20.9727237Z             {
2026-06-07T23:26:20.9727362Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-07T23:26:20.9727450Z               "line": 22
2026-06-07T23:26:20.9727536Z             }
2026-06-07T23:26:20.9727617Z           ]
2026-06-07T23:26:20.9727704Z         },
2026-06-07T23:26:20.9727793Z         "unit": {
2026-06-07T23:26:20.9727888Z           "complete": false,
2026-06-07T23:26:20.9727985Z           "evidence": []
2026-06-07T23:26:20.9728071Z         }
2026-06-07T23:26:20.9728160Z       }
2026-06-07T23:26:20.9728247Z     },
2026-06-07T23:26:20.9728337Z     {
2026-06-07T23:26:20.9728428Z       "id": "REQ-INSTALL-6",
2026-06-07T23:26:20.9729700Z       "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-07T23:26:20.9729801Z       "requiredStages": [
2026-06-07T23:26:20.9729888Z         "impl",
2026-06-07T23:26:20.9729978Z         "unit"
2026-06-07T23:26:20.9730058Z       ],
2026-06-07T23:26:20.9730152Z       "stages": {
2026-06-07T23:26:20.9730244Z         "doc": {
2026-06-07T23:26:20.9730334Z           "complete": false,
2026-06-07T23:26:20.9730429Z           "evidence": []
2026-06-07T23:26:20.9730510Z         },
2026-06-07T23:26:20.9730606Z         "impl": {
2026-06-07T23:26:20.9730696Z           "complete": true,
2026-06-07T23:26:20.9730796Z           "evidence": [
2026-06-07T23:26:20.9730878Z             {
2026-06-07T23:26:20.9731002Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:20.9731096Z               "line": 59
2026-06-07T23:26:20.9731183Z             },
2026-06-07T23:26:20.9731274Z             {
2026-06-07T23:26:20.9731387Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:20.9731484Z               "line": 365
2026-06-07T23:26:20.9731569Z             },
2026-06-07T23:26:20.9731655Z             {
2026-06-07T23:26:20.9731779Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T23:26:20.9731870Z               "line": 138
2026-06-07T23:26:20.9731959Z             },
2026-06-07T23:26:20.9732046Z             {
2026-06-07T23:26:20.9732166Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T23:26:20.9732260Z               "line": 223
2026-06-07T23:26:20.9732346Z             },
2026-06-07T23:26:20.9732438Z             {
2026-06-07T23:26:20.9732547Z               "path": "installer/install.sh",
2026-06-07T23:26:20.9732636Z               "line": 104
2026-06-07T23:26:20.9732726Z             }
2026-06-07T23:26:20.9732817Z           ]
2026-06-07T23:26:20.9732906Z         },
2026-06-07T23:26:20.9732991Z         "int": {
2026-06-07T23:26:20.9733087Z           "complete": false,
2026-06-07T23:26:20.9733173Z           "evidence": []
2026-06-07T23:26:20.9733263Z         },
2026-06-07T23:26:20.9735848Z         "unit": {
2026-06-07T23:26:20.9735973Z           "complete": true,
2026-06-07T23:26:20.9736068Z           "evidence": [
2026-06-07T23:26:20.9736220Z             {
2026-06-07T23:26:20.9736598Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T23:26:20.9736688Z               "line": 673
2026-06-07T23:26:20.9736774Z             }
2026-06-07T23:26:20.9736860Z           ]
2026-06-07T23:26:20.9737041Z         }
2026-06-07T23:26:20.9737131Z       }
2026-06-07T23:26:20.9737228Z     },
2026-06-07T23:26:20.9737460Z     {
2026-06-07T23:26:20.9737566Z       "id": "REQ-INSTALL-7",
2026-06-07T23:26:20.9738768Z       "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-07T23:26:20.9738874Z       "requiredStages": [
2026-06-07T23:26:20.9738959Z         "impl"
2026-06-07T23:26:20.9739045Z       ],
2026-06-07T23:26:20.9739136Z       "stages": {
2026-06-07T23:26:20.9739226Z         "doc": {
2026-06-07T23:26:20.9739326Z           "complete": false,
2026-06-07T23:26:20.9739421Z           "evidence": []
2026-06-07T23:26:20.9739509Z         },
2026-06-07T23:26:20.9739593Z         "impl": {
2026-06-07T23:26:20.9739693Z           "complete": true,
2026-06-07T23:26:20.9739780Z           "evidence": [
2026-06-07T23:26:20.9739875Z             {
2026-06-07T23:26:20.9739984Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9740085Z               "line": 2400
2026-06-07T23:26:20.9740171Z             },
2026-06-07T23:26:20.9740251Z             {
2026-06-07T23:26:20.9740366Z               "path": "installer/install.ps1",
2026-06-07T23:26:20.9740453Z               "line": 157
2026-06-07T23:26:20.9740538Z             }
2026-06-07T23:26:20.9740623Z           ]
2026-06-07T23:26:20.9740712Z         },
2026-06-07T23:26:20.9740794Z         "int": {
2026-06-07T23:26:20.9740890Z           "complete": false,
2026-06-07T23:26:20.9740984Z           "evidence": []
2026-06-07T23:26:20.9741066Z         },
2026-06-07T23:26:20.9741157Z         "unit": {
2026-06-07T23:26:20.9741247Z           "complete": false,
2026-06-07T23:26:20.9741342Z           "evidence": []
2026-06-07T23:26:20.9741433Z         }
2026-06-07T23:26:20.9741519Z       }
2026-06-07T23:26:20.9741604Z     },
2026-06-07T23:26:20.9741686Z     {
2026-06-07T23:26:20.9741805Z       "id": "REQ-INSTALL-8",
2026-06-07T23:26:20.9742811Z       "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-07T23:26:20.9742911Z       "requiredStages": [
2026-06-07T23:26:20.9743003Z         "impl"
2026-06-07T23:26:20.9743093Z       ],
2026-06-07T23:26:20.9743177Z       "stages": {
2026-06-07T23:26:20.9743267Z         "doc": {
2026-06-07T23:26:20.9743363Z           "complete": false,
2026-06-07T23:26:20.9743457Z           "evidence": []
2026-06-07T23:26:20.9743536Z         },
2026-06-07T23:26:20.9743633Z         "impl": {
2026-06-07T23:26:20.9743724Z           "complete": true,
2026-06-07T23:26:20.9743818Z           "evidence": [
2026-06-07T23:26:20.9743904Z             {
2026-06-07T23:26:20.9744014Z               "path": "installer/install.ps1",
2026-06-07T23:26:20.9744105Z               "line": 184
2026-06-07T23:26:20.9744190Z             },
2026-06-07T23:26:20.9744277Z             {
2026-06-07T23:26:20.9744391Z               "path": "installer/install.sh",
2026-06-07T23:26:20.9744481Z               "line": 121
2026-06-07T23:26:20.9744567Z             }
2026-06-07T23:26:20.9744649Z           ]
2026-06-07T23:26:20.9744734Z         },
2026-06-07T23:26:20.9744819Z         "int": {
2026-06-07T23:26:20.9744916Z           "complete": false,
2026-06-07T23:26:20.9745001Z           "evidence": []
2026-06-07T23:26:20.9745106Z         },
2026-06-07T23:26:20.9745293Z         "unit": {
2026-06-07T23:26:20.9745391Z           "complete": false,
2026-06-07T23:26:20.9745487Z           "evidence": []
2026-06-07T23:26:20.9745570Z         }
2026-06-07T23:26:20.9745655Z       }
2026-06-07T23:26:20.9745739Z     },
2026-06-07T23:26:20.9745910Z     {
2026-06-07T23:26:20.9746009Z       "id": "REQ-MANIFEST-1",
2026-06-07T23:26:20.9746200Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-07T23:26:20.9746285Z       "requiredStages": [
2026-06-07T23:26:20.9746371Z         "doc",
2026-06-07T23:26:20.9746461Z         "impl",
2026-06-07T23:26:20.9746543Z         "unit"
2026-06-07T23:26:20.9746633Z       ],
2026-06-07T23:26:20.9746723Z       "stages": {
2026-06-07T23:26:20.9746814Z         "doc": {
2026-06-07T23:26:20.9746910Z           "complete": true,
2026-06-07T23:26:20.9747096Z           "evidence": [
2026-06-07T23:26:20.9747187Z             {
2026-06-07T23:26:20.9747291Z               "path": "docs/MANIFEST.md",
2026-06-07T23:26:20.9747391Z               "line": 19
2026-06-07T23:26:20.9747473Z             }
2026-06-07T23:26:20.9747564Z           ]
2026-06-07T23:26:20.9747841Z         },
2026-06-07T23:26:20.9747925Z         "impl": {
2026-06-07T23:26:20.9748020Z           "complete": true,
2026-06-07T23:26:20.9748112Z           "evidence": [
2026-06-07T23:26:20.9748193Z             {
2026-06-07T23:26:20.9748315Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9748410Z               "line": 18
2026-06-07T23:26:20.9748501Z             }
2026-06-07T23:26:20.9748580Z           ]
2026-06-07T23:26:20.9748675Z         },
2026-06-07T23:26:20.9748752Z         "int": {
2026-06-07T23:26:20.9748843Z           "complete": false,
2026-06-07T23:26:20.9748947Z           "evidence": []
2026-06-07T23:26:20.9749062Z         },
2026-06-07T23:26:20.9749148Z         "unit": {
2026-06-07T23:26:20.9749238Z           "complete": true,
2026-06-07T23:26:20.9749328Z           "evidence": [
2026-06-07T23:26:20.9749415Z             {
2026-06-07T23:26:20.9749548Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9749638Z               "line": 746
2026-06-07T23:26:20.9749730Z             },
2026-06-07T23:26:20.9749815Z             {
2026-06-07T23:26:20.9749938Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9750040Z               "line": 860
2026-06-07T23:26:20.9750125Z             },
2026-06-07T23:26:20.9750211Z             {
2026-06-07T23:26:20.9750326Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9750421Z               "line": 872
2026-06-07T23:26:20.9750511Z             },
2026-06-07T23:26:20.9750597Z             {
2026-06-07T23:26:20.9750713Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9750801Z               "line": 883
2026-06-07T23:26:20.9750892Z             },
2026-06-07T23:26:20.9750975Z             {
2026-06-07T23:26:20.9751093Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9751187Z               "line": 900
2026-06-07T23:26:20.9751272Z             },
2026-06-07T23:26:20.9751355Z             {
2026-06-07T23:26:20.9751468Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9751563Z               "line": 914
2026-06-07T23:26:20.9751650Z             },
2026-06-07T23:26:20.9751736Z             {
2026-06-07T23:26:20.9751855Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9751941Z               "line": 929
2026-06-07T23:26:20.9752027Z             },
2026-06-07T23:26:20.9752112Z             {
2026-06-07T23:26:20.9752231Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9752323Z               "line": 944
2026-06-07T23:26:20.9752413Z             },
2026-06-07T23:26:20.9752498Z             {
2026-06-07T23:26:20.9752619Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9752713Z               "line": 959
2026-06-07T23:26:20.9752794Z             },
2026-06-07T23:26:20.9752990Z             {
2026-06-07T23:26:20.9753123Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9753210Z               "line": 970
2026-06-07T23:26:20.9753300Z             }
2026-06-07T23:26:20.9753380Z           ]
2026-06-07T23:26:20.9753558Z         }
2026-06-07T23:26:20.9753639Z       }
2026-06-07T23:26:20.9753728Z     },
2026-06-07T23:26:20.9753808Z     {
2026-06-07T23:26:20.9753909Z       "id": "REQ-MIGRATE-1",
2026-06-07T23:26:20.9754083Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-07T23:26:20.9754178Z       "requiredStages": [],
2026-06-07T23:26:20.9754270Z       "stages": {
2026-06-07T23:26:20.9754355Z         "doc": {
2026-06-07T23:26:20.9754449Z           "complete": false,
2026-06-07T23:26:20.9754546Z           "evidence": []
2026-06-07T23:26:20.9754632Z         },
2026-06-07T23:26:20.9754721Z         "impl": {
2026-06-07T23:26:20.9754812Z           "complete": false,
2026-06-07T23:26:20.9755051Z           "evidence": []
2026-06-07T23:26:20.9755147Z         },
2026-06-07T23:26:20.9755247Z         "int": {
2026-06-07T23:26:20.9755342Z           "complete": false,
2026-06-07T23:26:20.9755433Z           "evidence": []
2026-06-07T23:26:20.9755519Z         },
2026-06-07T23:26:20.9755604Z         "unit": {
2026-06-07T23:26:20.9755699Z           "complete": false,
2026-06-07T23:26:20.9755791Z           "evidence": []
2026-06-07T23:26:20.9755900Z         }
2026-06-07T23:26:20.9755976Z       }
2026-06-07T23:26:20.9756057Z     },
2026-06-07T23:26:20.9756144Z     {
2026-06-07T23:26:20.9756238Z       "id": "REQ-MSG-1",
2026-06-07T23:26:20.9756683Z       "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-07T23:26:20.9756778Z       "requiredStages": [
2026-06-07T23:26:20.9756859Z         "impl",
2026-06-07T23:26:20.9757026Z         "unit",
2026-06-07T23:26:20.9757108Z         "int"
2026-06-07T23:26:20.9757184Z       ],
2026-06-07T23:26:20.9757274Z       "stages": {
2026-06-07T23:26:20.9757355Z         "doc": {
2026-06-07T23:26:20.9757452Z           "complete": false,
2026-06-07T23:26:20.9757542Z           "evidence": []
2026-06-07T23:26:20.9757631Z         },
2026-06-07T23:26:20.9757723Z         "impl": {
2026-06-07T23:26:20.9757818Z           "complete": true,
2026-06-07T23:26:20.9757913Z           "evidence": [
2026-06-07T23:26:20.9757999Z             {
2026-06-07T23:26:20.9758124Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9758214Z               "line": 28
2026-06-07T23:26:20.9758304Z             },
2026-06-07T23:26:20.9758391Z             {
2026-06-07T23:26:20.9758513Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9758600Z               "line": 94
2026-06-07T23:26:20.9758691Z             },
2026-06-07T23:26:20.9758772Z             {
2026-06-07T23:26:20.9758890Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9758985Z               "line": 127
2026-06-07T23:26:20.9759075Z             },
2026-06-07T23:26:20.9759159Z             {
2026-06-07T23:26:20.9759273Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9759365Z               "line": 149
2026-06-07T23:26:20.9759446Z             },
2026-06-07T23:26:20.9759540Z             {
2026-06-07T23:26:20.9759650Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9759741Z               "line": 174
2026-06-07T23:26:20.9759826Z             },
2026-06-07T23:26:20.9759907Z             {
2026-06-07T23:26:20.9760028Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-07T23:26:20.9760113Z               "line": 18
2026-06-07T23:26:20.9760203Z             },
2026-06-07T23:26:20.9760290Z             {
2026-06-07T23:26:20.9760394Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T23:26:20.9760494Z               "line": 13
2026-06-07T23:26:20.9760576Z             },
2026-06-07T23:26:20.9760662Z             {
2026-06-07T23:26:20.9760871Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T23:26:20.9760968Z               "line": 61
2026-06-07T23:26:20.9761056Z             },
2026-06-07T23:26:20.9761142Z             {
2026-06-07T23:26:20.9761263Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-07T23:26:20.9761438Z               "line": 10
2026-06-07T23:26:20.9761520Z             }
2026-06-07T23:26:20.9761607Z           ]
2026-06-07T23:26:20.9761690Z         },
2026-06-07T23:26:20.9761781Z         "int": {
2026-06-07T23:26:20.9761876Z           "complete": true,
2026-06-07T23:26:20.9761968Z           "evidence": [
2026-06-07T23:26:20.9762048Z             {
2026-06-07T23:26:20.9762191Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-07T23:26:20.9762277Z               "line": 9
2026-06-07T23:26:20.9762362Z             },
2026-06-07T23:26:20.9762448Z             {
2026-06-07T23:26:20.9762577Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-07T23:26:20.9762677Z               "line": 70
2026-06-07T23:26:20.9762767Z             },
2026-06-07T23:26:20.9762855Z             {
2026-06-07T23:26:20.9762983Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-07T23:26:20.9763077Z               "line": 129
2026-06-07T23:26:20.9763164Z             }
2026-06-07T23:26:20.9763249Z           ]
2026-06-07T23:26:20.9763335Z         },
2026-06-07T23:26:20.9763411Z         "unit": {
2026-06-07T23:26:20.9763508Z           "complete": true,
2026-06-07T23:26:20.9763602Z           "evidence": [
2026-06-07T23:26:20.9763683Z             {
2026-06-07T23:26:20.9763799Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9763889Z               "line": 203
2026-06-07T23:26:20.9763973Z             },
2026-06-07T23:26:20.9764060Z             {
2026-06-07T23:26:20.9764175Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9764264Z               "line": 232
2026-06-07T23:26:20.9764349Z             },
2026-06-07T23:26:20.9764440Z             {
2026-06-07T23:26:20.9764572Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9764825Z               "line": 277
2026-06-07T23:26:20.9764924Z             },
2026-06-07T23:26:20.9765014Z             {
2026-06-07T23:26:20.9765291Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9765392Z               "line": 300
2026-06-07T23:26:20.9765473Z             },
2026-06-07T23:26:20.9765544Z             {
2026-06-07T23:26:20.9765663Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T23:26:20.9765764Z               "line": 324
2026-06-07T23:26:20.9765873Z             },
2026-06-07T23:26:20.9765954Z             {
2026-06-07T23:26:20.9766070Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-07T23:26:20.9766164Z               "line": 203
2026-06-07T23:26:20.9766245Z             },
2026-06-07T23:26:20.9766331Z             {
2026-06-07T23:26:20.9766441Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-07T23:26:20.9766531Z               "line": 236
2026-06-07T23:26:20.9766632Z             },
2026-06-07T23:26:20.9766733Z             {
2026-06-07T23:26:20.9766859Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-07T23:26:20.9767040Z               "line": 250
2026-06-07T23:26:20.9767129Z             },
2026-06-07T23:26:20.9767214Z             {
2026-06-07T23:26:20.9767324Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-07T23:26:20.9767424Z               "line": 262
2026-06-07T23:26:20.9767510Z             },
2026-06-07T23:26:20.9767596Z             {
2026-06-07T23:26:20.9767706Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T23:26:20.9767801Z               "line": 158
2026-06-07T23:26:20.9767881Z             },
2026-06-07T23:26:20.9767959Z             {
2026-06-07T23:26:20.9768054Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T23:26:20.9768144Z               "line": 241
2026-06-07T23:26:20.9768225Z             },
2026-06-07T23:26:20.9768411Z             {
2026-06-07T23:26:20.9768525Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-07T23:26:20.9768612Z               "line": 68
2026-06-07T23:26:20.9768693Z             },
2026-06-07T23:26:20.9768779Z             {
2026-06-07T23:26:20.9768883Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-07T23:26:20.9769064Z               "line": 77
2026-06-07T23:26:20.9769150Z             },
2026-06-07T23:26:20.9769238Z             {
2026-06-07T23:26:20.9769346Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-07T23:26:20.9769440Z               "line": 83
2026-06-07T23:26:20.9769525Z             },
2026-06-07T23:26:20.9769612Z             {
2026-06-07T23:26:20.9769719Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-07T23:26:20.9769805Z               "line": 102
2026-06-07T23:26:20.9769895Z             }
2026-06-07T23:26:20.9769973Z           ]
2026-06-07T23:26:20.9770058Z         }
2026-06-07T23:26:20.9770143Z       }
2026-06-07T23:26:20.9770225Z     },
2026-06-07T23:26:20.9770316Z     {
2026-06-07T23:26:20.9770410Z       "id": "REQ-MSG-2",
2026-06-07T23:26:20.9770674Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-07T23:26:20.9770773Z       "requiredStages": [
2026-06-07T23:26:20.9770860Z         "impl",
2026-06-07T23:26:20.9770959Z         "unit"
2026-06-07T23:26:20.9771049Z       ],
2026-06-07T23:26:20.9771141Z       "stages": {
2026-06-07T23:26:20.9771232Z         "doc": {
2026-06-07T23:26:20.9771326Z           "complete": false,
2026-06-07T23:26:20.9771417Z           "evidence": []
2026-06-07T23:26:20.9771504Z         },
2026-06-07T23:26:20.9771593Z         "impl": {
2026-06-07T23:26:20.9771683Z           "complete": true,
2026-06-07T23:26:20.9771780Z           "evidence": [
2026-06-07T23:26:20.9771861Z             {
2026-06-07T23:26:20.9771974Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9772070Z               "line": 11
2026-06-07T23:26:20.9772157Z             },
2026-06-07T23:26:20.9772251Z             {
2026-06-07T23:26:20.9772355Z               "path": "crates/spt/src/main.rs",
2026-06-07T23:26:20.9772445Z               "line": 8
2026-06-07T23:26:20.9772532Z             }
2026-06-07T23:26:20.9772617Z           ]
2026-06-07T23:26:20.9772702Z         },
2026-06-07T23:26:20.9772800Z         "int": {
2026-06-07T23:26:20.9772895Z           "complete": false,
2026-06-07T23:26:20.9772984Z           "evidence": []
2026-06-07T23:26:20.9773075Z         },
2026-06-07T23:26:20.9773166Z         "unit": {
2026-06-07T23:26:20.9773265Z           "complete": true,
2026-06-07T23:26:20.9773356Z           "evidence": [
2026-06-07T23:26:20.9773443Z             {
2026-06-07T23:26:20.9773548Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9773642Z               "line": 4495
2026-06-07T23:26:20.9773734Z             },
2026-06-07T23:26:20.9773819Z             {
2026-06-07T23:26:20.9773924Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9774015Z               "line": 4544
2026-06-07T23:26:20.9774106Z             },
2026-06-07T23:26:20.9774190Z             {
2026-06-07T23:26:20.9774291Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9774392Z               "line": 4567
2026-06-07T23:26:20.9774477Z             },
2026-06-07T23:26:20.9774562Z             {
2026-06-07T23:26:20.9774669Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9774759Z               "line": 5997
2026-06-07T23:26:20.9774848Z             },
2026-06-07T23:26:20.9774933Z             {
2026-06-07T23:26:20.9775039Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9775127Z               "line": 6006
2026-06-07T23:26:20.9775217Z             },
2026-06-07T23:26:20.9775308Z             {
2026-06-07T23:26:20.9775409Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9775503Z               "line": 6020
2026-06-07T23:26:20.9775589Z             }
2026-06-07T23:26:20.9775676Z           ]
2026-06-07T23:26:20.9775762Z         }
2026-06-07T23:26:20.9775938Z       }
2026-06-07T23:26:20.9776023Z     },
2026-06-07T23:26:20.9776114Z     {
2026-06-07T23:26:20.9776204Z       "id": "REQ-MSG-3",
2026-06-07T23:26:20.9776572Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-07T23:26:20.9776743Z       "requiredStages": [
2026-06-07T23:26:20.9776824Z         "impl",
2026-06-07T23:26:20.9776916Z         "unit",
2026-06-07T23:26:20.9777101Z         "int"
2026-06-07T23:26:20.9777182Z       ],
2026-06-07T23:26:20.9777269Z       "stages": {
2026-06-07T23:26:20.9777358Z         "doc": {
2026-06-07T23:26:20.9777452Z           "complete": false,
2026-06-07T23:26:20.9777553Z           "evidence": []
2026-06-07T23:26:20.9777638Z         },
2026-06-07T23:26:20.9777732Z         "impl": {
2026-06-07T23:26:20.9777822Z           "complete": true,
2026-06-07T23:26:20.9777913Z           "evidence": [
2026-06-07T23:26:20.9777999Z             {
2026-06-07T23:26:20.9778126Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-07T23:26:20.9778214Z               "line": 19
2026-06-07T23:26:20.9778309Z             },
2026-06-07T23:26:20.9778394Z             {
2026-06-07T23:26:20.9778509Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T23:26:20.9778614Z               "line": 21
2026-06-07T23:26:20.9778699Z             },
2026-06-07T23:26:20.9778790Z             {
2026-06-07T23:26:20.9778896Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T23:26:20.9778991Z               "line": 48
2026-06-07T23:26:20.9779085Z             },
2026-06-07T23:26:20.9779173Z             {
2026-06-07T23:26:20.9779282Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T23:26:20.9779372Z               "line": 142
2026-06-07T23:26:20.9779463Z             }
2026-06-07T23:26:20.9779549Z           ]
2026-06-07T23:26:20.9779634Z         },
2026-06-07T23:26:20.9779725Z         "int": {
2026-06-07T23:26:20.9779817Z           "complete": true,
2026-06-07T23:26:20.9779920Z           "evidence": [
2026-06-07T23:26:20.9780000Z             {
2026-06-07T23:26:20.9780143Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-07T23:26:20.9780233Z               "line": 10
2026-06-07T23:26:20.9780322Z             },
2026-06-07T23:26:20.9780417Z             {
2026-06-07T23:26:20.9780552Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-07T23:26:20.9780646Z               "line": 70
2026-06-07T23:26:20.9780732Z             }
2026-06-07T23:26:20.9780819Z           ]
2026-06-07T23:26:20.9780909Z         },
2026-06-07T23:26:20.9780994Z         "unit": {
2026-06-07T23:26:20.9781090Z           "complete": true,
2026-06-07T23:26:20.9781181Z           "evidence": [
2026-06-07T23:26:20.9781271Z             {
2026-06-07T23:26:20.9781381Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T23:26:20.9781477Z               "line": 196
2026-06-07T23:26:20.9781563Z             },
2026-06-07T23:26:20.9781648Z             {
2026-06-07T23:26:20.9781763Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T23:26:20.9781857Z               "line": 215
2026-06-07T23:26:20.9781943Z             },
2026-06-07T23:26:20.9782026Z             {
2026-06-07T23:26:20.9782149Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T23:26:20.9782244Z               "line": 237
2026-06-07T23:26:20.9782330Z             }
2026-06-07T23:26:20.9782417Z           ]
2026-06-07T23:26:20.9782501Z         }
2026-06-07T23:26:20.9782592Z       }
2026-06-07T23:26:20.9782674Z     },
2026-06-07T23:26:20.9782760Z     {
2026-06-07T23:26:20.9782848Z       "id": "REQ-MSG-4",
2026-06-07T23:26:20.9783674Z       "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-07T23:26:20.9783774Z       "requiredStages": [
2026-06-07T23:26:20.9783965Z         "impl",
2026-06-07T23:26:20.9784059Z         "unit",
2026-06-07T23:26:20.9784150Z         "int"
2026-06-07T23:26:20.9784236Z       ],
2026-06-07T23:26:20.9784332Z       "stages": {
2026-06-07T23:26:20.9784417Z         "doc": {
2026-06-07T23:26:20.9784512Z           "complete": false,
2026-06-07T23:26:20.9784689Z           "evidence": []
2026-06-07T23:26:20.9784780Z         },
2026-06-07T23:26:20.9784865Z         "impl": {
2026-06-07T23:26:20.9784962Z           "complete": true,
2026-06-07T23:26:20.9785055Z           "evidence": [
2026-06-07T23:26:20.9785296Z             {
2026-06-07T23:26:20.9785418Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T23:26:20.9785507Z               "line": 16
2026-06-07T23:26:20.9785594Z             },
2026-06-07T23:26:20.9785678Z             {
2026-06-07T23:26:20.9785782Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T23:26:20.9785868Z               "line": 25
2026-06-07T23:26:20.9785945Z             },
2026-06-07T23:26:20.9786040Z             {
2026-06-07T23:26:20.9786154Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T23:26:20.9786269Z               "line": 47
2026-06-07T23:26:20.9786359Z             },
2026-06-07T23:26:20.9786445Z             {
2026-06-07T23:26:20.9786593Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:20.9786688Z               "line": 363
2026-06-07T23:26:20.9786778Z             },
2026-06-07T23:26:20.9786866Z             {
2026-06-07T23:26:20.9787055Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9787146Z               "line": 1806
2026-06-07T23:26:20.9787232Z             }
2026-06-07T23:26:20.9787322Z           ]
2026-06-07T23:26:20.9787408Z         },
2026-06-07T23:26:20.9787500Z         "int": {
2026-06-07T23:26:20.9787594Z           "complete": true,
2026-06-07T23:26:20.9787689Z           "evidence": [
2026-06-07T23:26:20.9787781Z             {
2026-06-07T23:26:20.9787909Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-07T23:26:20.9788003Z               "line": 93
2026-06-07T23:26:20.9788089Z             },
2026-06-07T23:26:20.9788175Z             {
2026-06-07T23:26:20.9788297Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-07T23:26:20.9788391Z               "line": 123
2026-06-07T23:26:20.9788478Z             }
2026-06-07T23:26:20.9788569Z           ]
2026-06-07T23:26:20.9788649Z         },
2026-06-07T23:26:20.9788735Z         "unit": {
2026-06-07T23:26:20.9788831Z           "complete": true,
2026-06-07T23:26:20.9788921Z           "evidence": [
2026-06-07T23:26:20.9789016Z             {
2026-06-07T23:26:20.9789122Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T23:26:20.9789212Z               "line": 62
2026-06-07T23:26:20.9789302Z             },
2026-06-07T23:26:20.9789379Z             {
2026-06-07T23:26:20.9789493Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T23:26:20.9789574Z               "line": 73
2026-06-07T23:26:20.9789665Z             },
2026-06-07T23:26:20.9789747Z             {
2026-06-07T23:26:20.9789860Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T23:26:20.9789960Z               "line": 84
2026-06-07T23:26:20.9790067Z             },
2026-06-07T23:26:20.9790151Z             {
2026-06-07T23:26:20.9790256Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T23:26:20.9790353Z               "line": 96
2026-06-07T23:26:20.9790438Z             },
2026-06-07T23:26:20.9790532Z             {
2026-06-07T23:26:20.9790641Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T23:26:20.9790732Z               "line": 105
2026-06-07T23:26:20.9790821Z             },
2026-06-07T23:26:20.9790901Z             {
2026-06-07T23:26:20.9791011Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T23:26:20.9791103Z               "line": 120
2026-06-07T23:26:20.9791188Z             }
2026-06-07T23:26:20.9791278Z           ]
2026-06-07T23:26:20.9791365Z         }
2026-06-07T23:26:20.9791455Z       }
2026-06-07T23:26:20.9791540Z     },
2026-06-07T23:26:20.9791736Z     {
2026-06-07T23:26:20.9791841Z       "id": "REQ-NET-1",
2026-06-07T23:26:20.9792027Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-07T23:26:20.9792127Z       "requiredStages": [
2026-06-07T23:26:20.9792222Z         "impl",
2026-06-07T23:26:20.9792399Z         "unit",
2026-06-07T23:26:20.9792484Z         "int"
2026-06-07T23:26:20.9792571Z       ],
2026-06-07T23:26:20.9792657Z       "stages": {
2026-06-07T23:26:20.9792746Z         "doc": {
2026-06-07T23:26:20.9792847Z           "complete": false,
2026-06-07T23:26:20.9792938Z           "evidence": []
2026-06-07T23:26:20.9793024Z         },
2026-06-07T23:26:20.9793113Z         "impl": {
2026-06-07T23:26:20.9793205Z           "complete": true,
2026-06-07T23:26:20.9793296Z           "evidence": [
2026-06-07T23:26:20.9793385Z             {
2026-06-07T23:26:20.9793513Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T23:26:20.9793605Z               "line": 54
2026-06-07T23:26:20.9793705Z             },
2026-06-07T23:26:20.9793785Z             {
2026-06-07T23:26:20.9793905Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T23:26:20.9793991Z               "line": 554
2026-06-07T23:26:20.9794080Z             },
2026-06-07T23:26:20.9794176Z             {
2026-06-07T23:26:20.9794291Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-07T23:26:20.9794386Z               "line": 69
2026-06-07T23:26:20.9794471Z             },
2026-06-07T23:26:20.9794559Z             {
2026-06-07T23:26:20.9794682Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9794782Z               "line": 65
2026-06-07T23:26:20.9794873Z             },
2026-06-07T23:26:20.9794958Z             {
2026-06-07T23:26:20.9795077Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9795169Z               "line": 127
2026-06-07T23:26:20.9795259Z             },
2026-06-07T23:26:20.9795345Z             {
2026-06-07T23:26:20.9795465Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9795588Z               "line": 143
2026-06-07T23:26:20.9795673Z             },
2026-06-07T23:26:20.9795755Z             {
2026-06-07T23:26:20.9795865Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9795963Z               "line": 158
2026-06-07T23:26:20.9796049Z             },
2026-06-07T23:26:20.9796135Z             {
2026-06-07T23:26:20.9796252Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9796366Z               "line": 235
2026-06-07T23:26:20.9796472Z             },
2026-06-07T23:26:20.9796558Z             {
2026-06-07T23:26:20.9796680Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9796772Z               "line": 270
2026-06-07T23:26:20.9796858Z             },
2026-06-07T23:26:20.9797038Z             {
2026-06-07T23:26:20.9797158Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9797253Z               "line": 276
2026-06-07T23:26:20.9797343Z             },
2026-06-07T23:26:20.9797431Z             {
2026-06-07T23:26:20.9797549Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9797639Z               "line": 282
2026-06-07T23:26:20.9797726Z             },
2026-06-07T23:26:20.9797816Z             {
2026-06-07T23:26:20.9797930Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9798017Z               "line": 298
2026-06-07T23:26:20.9798112Z             },
2026-06-07T23:26:20.9798197Z             {
2026-06-07T23:26:20.9798317Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9798413Z               "line": 318
2026-06-07T23:26:20.9798497Z             },
2026-06-07T23:26:20.9798582Z             {
2026-06-07T23:26:20.9798702Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-07T23:26:20.9798791Z               "line": 35
2026-06-07T23:26:20.9798885Z             },
2026-06-07T23:26:20.9798971Z             {
2026-06-07T23:26:20.9799185Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-07T23:26:20.9799281Z               "line": 85
2026-06-07T23:26:20.9799367Z             },
2026-06-07T23:26:20.9799448Z             {
2026-06-07T23:26:20.9799566Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9799753Z               "line": 135
2026-06-07T23:26:20.9799843Z             },
2026-06-07T23:26:20.9799930Z             {
2026-06-07T23:26:20.9800035Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9800130Z               "line": 1654
2026-06-07T23:26:20.9800215Z             },
2026-06-07T23:26:20.9800307Z             {
2026-06-07T23:26:20.9800416Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T23:26:20.9800507Z               "line": 17
2026-06-07T23:26:20.9800593Z             }
2026-06-07T23:26:20.9800679Z           ]
2026-06-07T23:26:20.9800764Z         },
2026-06-07T23:26:20.9800854Z         "int": {
2026-06-07T23:26:20.9800947Z           "complete": true,
2026-06-07T23:26:20.9801045Z           "evidence": [
2026-06-07T23:26:20.9801130Z             {
2026-06-07T23:26:20.9801259Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T23:26:20.9801348Z               "line": 330
2026-06-07T23:26:20.9801438Z             },
2026-06-07T23:26:20.9801528Z             {
2026-06-07T23:26:20.9801648Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9801743Z               "line": 603
2026-06-07T23:26:20.9801828Z             },
2026-06-07T23:26:20.9801915Z             {
2026-06-07T23:26:20.9802029Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9802124Z               "line": 876
2026-06-07T23:26:20.9802211Z             }
2026-06-07T23:26:20.9802297Z           ]
2026-06-07T23:26:20.9802382Z         },
2026-06-07T23:26:20.9802467Z         "unit": {
2026-06-07T23:26:20.9802568Z           "complete": true,
2026-06-07T23:26:20.9802653Z           "evidence": [
2026-06-07T23:26:20.9802739Z             {
2026-06-07T23:26:20.9802864Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T23:26:20.9802954Z               "line": 610
2026-06-07T23:26:20.9803045Z             },
2026-06-07T23:26:20.9803126Z             {
2026-06-07T23:26:20.9803246Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T23:26:20.9803340Z               "line": 645
2026-06-07T23:26:20.9803426Z             },
2026-06-07T23:26:20.9803517Z             {
2026-06-07T23:26:20.9803645Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T23:26:20.9803746Z               "line": 803
2026-06-07T23:26:20.9806162Z             },
2026-06-07T23:26:20.9806267Z             {
2026-06-07T23:26:20.9806402Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-07T23:26:20.9806500Z               "line": 151
2026-06-07T23:26:20.9806585Z             },
2026-06-07T23:26:20.9806671Z             {
2026-06-07T23:26:20.9806803Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9806902Z               "line": 391
2026-06-07T23:26:20.9807093Z             },
2026-06-07T23:26:20.9807174Z             {
2026-06-07T23:26:20.9807303Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9807399Z               "line": 405
2026-06-07T23:26:20.9807512Z             },
2026-06-07T23:26:20.9807598Z             {
2026-06-07T23:26:20.9807723Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9807818Z               "line": 424
2026-06-07T23:26:20.9807899Z             },
2026-06-07T23:26:20.9807986Z             {
2026-06-07T23:26:20.9808105Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-07T23:26:20.9808195Z               "line": 119
2026-06-07T23:26:20.9808281Z             },
2026-06-07T23:26:20.9808367Z             {
2026-06-07T23:26:20.9808480Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-07T23:26:20.9808572Z               "line": 162
2026-06-07T23:26:20.9808658Z             },
2026-06-07T23:26:20.9808892Z             {
2026-06-07T23:26:20.9809010Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T23:26:20.9809100Z               "line": 492
2026-06-07T23:26:20.9809185Z             },
2026-06-07T23:26:20.9809276Z             {
2026-06-07T23:26:20.9809398Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T23:26:20.9809579Z               "line": 602
2026-06-07T23:26:20.9809665Z             },
2026-06-07T23:26:20.9809750Z             {
2026-06-07T23:26:20.9809860Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T23:26:20.9809946Z               "line": 991
2026-06-07T23:26:20.9810036Z             }
2026-06-07T23:26:20.9810127Z           ]
2026-06-07T23:26:20.9810214Z         }
2026-06-07T23:26:20.9810299Z       }
2026-06-07T23:26:20.9810379Z     },
2026-06-07T23:26:20.9810465Z     {
2026-06-07T23:26:20.9810557Z       "id": "REQ-NET-2",
2026-06-07T23:26:20.9810737Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-07T23:26:20.9810839Z       "requiredStages": [
2026-06-07T23:26:20.9810933Z         "impl"
2026-06-07T23:26:20.9811023Z       ],
2026-06-07T23:26:20.9811109Z       "stages": {
2026-06-07T23:26:20.9811197Z         "doc": {
2026-06-07T23:26:20.9811295Z           "complete": false,
2026-06-07T23:26:20.9811391Z           "evidence": []
2026-06-07T23:26:20.9811473Z         },
2026-06-07T23:26:20.9811563Z         "impl": {
2026-06-07T23:26:20.9811657Z           "complete": true,
2026-06-07T23:26:20.9811747Z           "evidence": [
2026-06-07T23:26:20.9811834Z             {
2026-06-07T23:26:20.9811950Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T23:26:20.9812040Z               "line": 57
2026-06-07T23:26:20.9812127Z             },
2026-06-07T23:26:20.9812213Z             {
2026-06-07T23:26:20.9812336Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9812422Z               "line": 39
2026-06-07T23:26:20.9812513Z             },
2026-06-07T23:26:20.9812594Z             {
2026-06-07T23:26:20.9812723Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9812818Z               "line": 49
2026-06-07T23:26:20.9812899Z             },
2026-06-07T23:26:20.9812985Z             {
2026-06-07T23:26:20.9813096Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9813195Z               "line": 127
2026-06-07T23:26:20.9813280Z             },
2026-06-07T23:26:20.9813367Z             {
2026-06-07T23:26:20.9813481Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9813571Z               "line": 143
2026-06-07T23:26:20.9813657Z             },
2026-06-07T23:26:20.9813744Z             {
2026-06-07T23:26:20.9813867Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T23:26:20.9813957Z               "line": 158
2026-06-07T23:26:20.9814045Z             }
2026-06-07T23:26:20.9814130Z           ]
2026-06-07T23:26:20.9814214Z         },
2026-06-07T23:26:20.9814301Z         "int": {
2026-06-07T23:26:20.9814397Z           "complete": false,
2026-06-07T23:26:20.9814491Z           "evidence": []
2026-06-07T23:26:20.9814571Z         },
2026-06-07T23:26:20.9814657Z         "unit": {
2026-06-07T23:26:20.9814754Z           "complete": true,
2026-06-07T23:26:20.9814844Z           "evidence": [
2026-06-07T23:26:20.9814933Z             {
2026-06-07T23:26:20.9815054Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T23:26:20.9815149Z               "line": 402
2026-06-07T23:26:20.9815233Z             }
2026-06-07T23:26:20.9815316Z           ]
2026-06-07T23:26:20.9815402Z         }
2026-06-07T23:26:20.9815487Z       }
2026-06-07T23:26:20.9815572Z     },
2026-06-07T23:26:20.9815650Z     {
2026-06-07T23:26:20.9815745Z       "id": "REQ-NET-3",
2026-06-07T23:26:20.9815916Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-07T23:26:20.9816017Z       "requiredStages": [
2026-06-07T23:26:20.9816106Z         "impl",
2026-06-07T23:26:20.9816192Z         "unit"
2026-06-07T23:26:20.9816351Z       ],
2026-06-07T23:26:20.9816440Z       "stages": {
2026-06-07T23:26:20.9816527Z         "doc": {
2026-06-07T23:26:20.9816623Z           "complete": false,
2026-06-07T23:26:20.9816718Z           "evidence": []
2026-06-07T23:26:20.9816803Z         },
2026-06-07T23:26:20.9817041Z         "impl": {
2026-06-07T23:26:20.9817140Z           "complete": true,
2026-06-07T23:26:20.9817231Z           "evidence": [
2026-06-07T23:26:20.9817317Z             {
2026-06-07T23:26:20.9817433Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T23:26:20.9817524Z               "line": 39
2026-06-07T23:26:20.9817616Z             },
2026-06-07T23:26:20.9817697Z             {
2026-06-07T23:26:20.9817810Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T23:26:20.9817897Z               "line": 179
2026-06-07T23:26:20.9817982Z             },
2026-06-07T23:26:20.9818068Z             {
2026-06-07T23:26:20.9818183Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T23:26:20.9818283Z               "line": 330
2026-06-07T23:26:20.9818369Z             },
2026-06-07T23:26:20.9818454Z             {
2026-06-07T23:26:20.9818565Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-07T23:26:20.9818655Z               "line": 36
2026-06-07T23:26:20.9818740Z             },
2026-06-07T23:26:20.9818827Z             {
2026-06-07T23:26:20.9818955Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:20.9819041Z               "line": 158
2026-06-07T23:26:20.9819132Z             },
2026-06-07T23:26:20.9819209Z             {
2026-06-07T23:26:20.9819317Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:20.9819399Z               "line": 212
2026-06-07T23:26:20.9819485Z             },
2026-06-07T23:26:20.9819571Z             {
2026-06-07T23:26:20.9819689Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:20.9819779Z               "line": 233
2026-06-07T23:26:20.9819860Z             },
2026-06-07T23:26:20.9819953Z             {
2026-06-07T23:26:20.9820071Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:20.9820168Z               "line": 291
2026-06-07T23:26:20.9820254Z             },
2026-06-07T23:26:20.9820334Z             {
2026-06-07T23:26:20.9820454Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:20.9820549Z               "line": 310
2026-06-07T23:26:20.9820634Z             },
2026-06-07T23:26:20.9820716Z             {
2026-06-07T23:26:20.9820840Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:20.9820930Z               "line": 348
2026-06-07T23:26:20.9821016Z             },
2026-06-07T23:26:20.9821098Z             {
2026-06-07T23:26:20.9821217Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:20.9821312Z               "line": 393
2026-06-07T23:26:20.9821394Z             },
2026-06-07T23:26:20.9821479Z             {
2026-06-07T23:26:20.9821603Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:20.9821694Z               "line": 406
2026-06-07T23:26:20.9821780Z             },
2026-06-07T23:26:20.9821865Z             {
2026-06-07T23:26:20.9821989Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T23:26:20.9822081Z               "line": 29
2026-06-07T23:26:20.9822165Z             },
2026-06-07T23:26:20.9822255Z             {
2026-06-07T23:26:20.9822374Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T23:26:20.9822468Z               "line": 72
2026-06-07T23:26:20.9822553Z             },
2026-06-07T23:26:20.9822639Z             {
2026-06-07T23:26:20.9822764Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T23:26:20.9822858Z               "line": 123
2026-06-07T23:26:20.9822943Z             }
2026-06-07T23:26:20.9823031Z           ]
2026-06-07T23:26:20.9823121Z         },
2026-06-07T23:26:20.9823206Z         "int": {
2026-06-07T23:26:20.9823302Z           "complete": false,
2026-06-07T23:26:20.9823397Z           "evidence": []
2026-06-07T23:26:20.9823587Z         },
2026-06-07T23:26:20.9823679Z         "unit": {
2026-06-07T23:26:20.9823774Z           "complete": true,
2026-06-07T23:26:20.9823864Z           "evidence": [
2026-06-07T23:26:20.9823946Z             {
2026-06-07T23:26:20.9824074Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-07T23:26:20.9824256Z               "line": 214
2026-06-07T23:26:20.9824342Z             },
2026-06-07T23:26:20.9824432Z             {
2026-06-07T23:26:20.9824546Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-07T23:26:20.9824638Z               "line": 342
2026-06-07T23:26:20.9824722Z             },
2026-06-07T23:26:20.9824808Z             {
2026-06-07T23:26:20.9824924Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-07T23:26:20.9825014Z               "line": 493
2026-06-07T23:26:20.9825099Z             },
2026-06-07T23:26:20.9825179Z             {
2026-06-07T23:26:20.9825295Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-07T23:26:20.9825389Z               "line": 93
2026-06-07T23:26:20.9825479Z             },
2026-06-07T23:26:20.9825566Z             {
2026-06-07T23:26:20.9825681Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-07T23:26:20.9826005Z               "line": 142
2026-06-07T23:26:20.9826109Z             },
2026-06-07T23:26:20.9826191Z             {
2026-06-07T23:26:20.9826324Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T23:26:20.9826414Z               "line": 315
2026-06-07T23:26:20.9826491Z             },
2026-06-07T23:26:20.9826572Z             {
2026-06-07T23:26:20.9826696Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T23:26:20.9826786Z               "line": 355
2026-06-07T23:26:20.9826873Z             },
2026-06-07T23:26:20.9827044Z             {
2026-06-07T23:26:20.9827160Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T23:26:20.9827254Z               "line": 494
2026-06-07T23:26:20.9827329Z             }
2026-06-07T23:26:20.9827450Z           ]
2026-06-07T23:26:20.9827560Z         }
2026-06-07T23:26:20.9827658Z       }
2026-06-07T23:26:20.9827739Z     },
2026-06-07T23:26:20.9827825Z     {
2026-06-07T23:26:20.9827924Z       "id": "REQ-NODE-IDENTITY",
2026-06-07T23:26:20.9828147Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-07T23:26:20.9828253Z       "requiredStages": [
2026-06-07T23:26:20.9828342Z         "impl",
2026-06-07T23:26:20.9828428Z         "unit"
2026-06-07T23:26:20.9828510Z       ],
2026-06-07T23:26:20.9828605Z       "stages": {
2026-06-07T23:26:20.9828690Z         "doc": {
2026-06-07T23:26:20.9828786Z           "complete": false,
2026-06-07T23:26:20.9828881Z           "evidence": []
2026-06-07T23:26:20.9828962Z         },
2026-06-07T23:26:20.9829058Z         "impl": {
2026-06-07T23:26:20.9829149Z           "complete": true,
2026-06-07T23:26:20.9829244Z           "evidence": [
2026-06-07T23:26:20.9829324Z             {
2026-06-07T23:26:20.9829454Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T23:26:20.9829543Z               "line": 60
2026-06-07T23:26:20.9829629Z             },
2026-06-07T23:26:20.9829717Z             {
2026-06-07T23:26:20.9829835Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T23:26:20.9829930Z               "line": 68
2026-06-07T23:26:20.9830017Z             },
2026-06-07T23:26:20.9830103Z             {
2026-06-07T23:26:20.9830220Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T23:26:20.9830305Z               "line": 86
2026-06-07T23:26:20.9830396Z             },
2026-06-07T23:26:20.9830481Z             {
2026-06-07T23:26:20.9830594Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T23:26:20.9830685Z               "line": 120
2026-06-07T23:26:20.9830776Z             },
2026-06-07T23:26:20.9830861Z             {
2026-06-07T23:26:20.9830976Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T23:26:20.9831062Z               "line": 127
2026-06-07T23:26:20.9831261Z             },
2026-06-07T23:26:20.9831353Z             {
2026-06-07T23:26:20.9831472Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T23:26:20.9831557Z               "line": 143
2026-06-07T23:26:20.9831644Z             },
2026-06-07T23:26:20.9831829Z             {
2026-06-07T23:26:20.9831954Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-07T23:26:20.9832044Z               "line": 16
2026-06-07T23:26:20.9832130Z             }
2026-06-07T23:26:20.9832215Z           ]
2026-06-07T23:26:20.9832298Z         },
2026-06-07T23:26:20.9832382Z         "int": {
2026-06-07T23:26:20.9832477Z           "complete": false,
2026-06-07T23:26:20.9832569Z           "evidence": []
2026-06-07T23:26:20.9832660Z         },
2026-06-07T23:26:20.9832744Z         "unit": {
2026-06-07T23:26:20.9832838Z           "complete": true,
2026-06-07T23:26:20.9832930Z           "evidence": [
2026-06-07T23:26:20.9833014Z             {
2026-06-07T23:26:20.9833137Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T23:26:20.9833228Z               "line": 199
2026-06-07T23:26:20.9833319Z             },
2026-06-07T23:26:20.9833399Z             {
2026-06-07T23:26:20.9833513Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T23:26:20.9833610Z               "line": 218
2026-06-07T23:26:20.9833695Z             },
2026-06-07T23:26:20.9833780Z             {
2026-06-07T23:26:20.9833896Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T23:26:20.9833986Z               "line": 234
2026-06-07T23:26:20.9834071Z             },
2026-06-07T23:26:20.9834152Z             {
2026-06-07T23:26:20.9834267Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T23:26:20.9834358Z               "line": 256
2026-06-07T23:26:20.9834443Z             },
2026-06-07T23:26:20.9834530Z             {
2026-06-07T23:26:20.9834644Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-07T23:26:20.9834734Z               "line": 124
2026-06-07T23:26:20.9834826Z             },
2026-06-07T23:26:20.9834907Z             {
2026-06-07T23:26:20.9835020Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-07T23:26:20.9835111Z               "line": 140
2026-06-07T23:26:20.9835198Z             },
2026-06-07T23:26:20.9835282Z             {
2026-06-07T23:26:20.9835616Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-07T23:26:20.9835710Z               "line": 155
2026-06-07T23:26:20.9835797Z             }
2026-06-07T23:26:20.9835874Z           ]
2026-06-07T23:26:20.9835954Z         }
2026-06-07T23:26:20.9836039Z       }
2026-06-07T23:26:20.9836121Z     },
2026-06-07T23:26:20.9836207Z     {
2026-06-07T23:26:20.9836307Z       "id": "REQ-NOTIF-1",
2026-06-07T23:26:20.9836650Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-07T23:26:20.9836756Z       "requiredStages": [
2026-06-07T23:26:20.9836870Z         "impl",
2026-06-07T23:26:20.9837132Z         "unit",
2026-06-07T23:26:20.9837222Z         "int"
2026-06-07T23:26:20.9837308Z       ],
2026-06-07T23:26:20.9837395Z       "stages": {
2026-06-07T23:26:20.9837481Z         "doc": {
2026-06-07T23:26:20.9837575Z           "complete": false,
2026-06-07T23:26:20.9837666Z           "evidence": []
2026-06-07T23:26:20.9837753Z         },
2026-06-07T23:26:20.9837847Z         "impl": {
2026-06-07T23:26:20.9837943Z           "complete": true,
2026-06-07T23:26:20.9838034Z           "evidence": [
2026-06-07T23:26:20.9838115Z             {
2026-06-07T23:26:20.9838237Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T23:26:20.9838327Z               "line": 474
2026-06-07T23:26:20.9838413Z             },
2026-06-07T23:26:20.9838507Z             {
2026-06-07T23:26:20.9838620Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9838707Z               "line": 30
2026-06-07T23:26:20.9838798Z             },
2026-06-07T23:26:20.9838887Z             {
2026-06-07T23:26:20.9839112Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9839207Z               "line": 62
2026-06-07T23:26:20.9839298Z             },
2026-06-07T23:26:20.9839384Z             {
2026-06-07T23:26:20.9839499Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9839675Z               "line": 86
2026-06-07T23:26:20.9839765Z             },
2026-06-07T23:26:20.9839865Z             {
2026-06-07T23:26:20.9839976Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9840066Z               "line": 100
2026-06-07T23:26:20.9840143Z             },
2026-06-07T23:26:20.9840233Z             {
2026-06-07T23:26:20.9840339Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9840437Z               "line": 135
2026-06-07T23:26:20.9840533Z             },
2026-06-07T23:26:20.9840615Z             {
2026-06-07T23:26:20.9840728Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9840818Z               "line": 180
2026-06-07T23:26:20.9840909Z             },
2026-06-07T23:26:20.9840994Z             {
2026-06-07T23:26:20.9841106Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9841201Z               "line": 251
2026-06-07T23:26:20.9841284Z             },
2026-06-07T23:26:20.9841379Z             {
2026-06-07T23:26:20.9841492Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9841584Z               "line": 361
2026-06-07T23:26:20.9841665Z             },
2026-06-07T23:26:20.9841755Z             {
2026-06-07T23:26:20.9841865Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9841956Z               "line": 421
2026-06-07T23:26:20.9842046Z             },
2026-06-07T23:26:20.9842132Z             {
2026-06-07T23:26:20.9842257Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T23:26:20.9842347Z               "line": 24
2026-06-07T23:26:20.9842432Z             },
2026-06-07T23:26:20.9842519Z             {
2026-06-07T23:26:20.9842642Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T23:26:20.9842737Z               "line": 34
2026-06-07T23:26:20.9842819Z             },
2026-06-07T23:26:20.9842906Z             {
2026-06-07T23:26:20.9843019Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T23:26:20.9843119Z               "line": 58
2026-06-07T23:26:20.9843206Z             },
2026-06-07T23:26:20.9843290Z             {
2026-06-07T23:26:20.9843408Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T23:26:20.9843494Z               "line": 79
2026-06-07T23:26:20.9843579Z             },
2026-06-07T23:26:20.9843664Z             {
2026-06-07T23:26:20.9843783Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T23:26:20.9843879Z               "line": 91
2026-06-07T23:26:20.9843959Z             },
2026-06-07T23:26:20.9844050Z             {
2026-06-07T23:26:20.9844170Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:20.9844265Z               "line": 41
2026-06-07T23:26:20.9844355Z             },
2026-06-07T23:26:20.9844441Z             {
2026-06-07T23:26:20.9844570Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T23:26:20.9844665Z               "line": 96
2026-06-07T23:26:20.9844751Z             },
2026-06-07T23:26:20.9844842Z             {
2026-06-07T23:26:20.9844960Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-07T23:26:20.9845062Z               "line": 20
2026-06-07T23:26:20.9845143Z             },
2026-06-07T23:26:20.9845227Z             {
2026-06-07T23:26:20.9845342Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-07T23:26:20.9845434Z               "line": 30
2026-06-07T23:26:20.9845509Z             },
2026-06-07T23:26:20.9845599Z             {
2026-06-07T23:26:20.9845739Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-07T23:26:20.9845842Z               "line": 50
2026-06-07T23:26:20.9845933Z             },
2026-06-07T23:26:20.9846016Z             {
2026-06-07T23:26:20.9846209Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9846289Z               "line": 28
2026-06-07T23:26:20.9846376Z             },
2026-06-07T23:26:20.9846462Z             {
2026-06-07T23:26:20.9846571Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9846734Z               "line": 126
2026-06-07T23:26:20.9846838Z             },
2026-06-07T23:26:20.9846933Z             {
2026-06-07T23:26:20.9847125Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9847215Z               "line": 161
2026-06-07T23:26:20.9847306Z             },
2026-06-07T23:26:20.9847387Z             {
2026-06-07T23:26:20.9847501Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9847587Z               "line": 202
2026-06-07T23:26:20.9847679Z             },
2026-06-07T23:26:20.9847764Z             {
2026-06-07T23:26:20.9847873Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9847965Z               "line": 213
2026-06-07T23:26:20.9848055Z             },
2026-06-07T23:26:20.9848145Z             {
2026-06-07T23:26:20.9848255Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9848346Z               "line": 238
2026-06-07T23:26:20.9848436Z             },
2026-06-07T23:26:20.9848526Z             {
2026-06-07T23:26:20.9848642Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9848731Z               "line": 261
2026-06-07T23:26:20.9848825Z             },
2026-06-07T23:26:20.9848907Z             {
2026-06-07T23:26:20.9849030Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9849114Z               "line": 63
2026-06-07T23:26:20.9849205Z             }
2026-06-07T23:26:20.9849292Z           ]
2026-06-07T23:26:20.9849377Z         },
2026-06-07T23:26:20.9849466Z         "int": {
2026-06-07T23:26:20.9849558Z           "complete": true,
2026-06-07T23:26:20.9849654Z           "evidence": [
2026-06-07T23:26:20.9849739Z             {
2026-06-07T23:26:20.9849873Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T23:26:20.9849959Z               "line": 274
2026-06-07T23:26:20.9850035Z             },
2026-06-07T23:26:20.9850120Z             {
2026-06-07T23:26:20.9850240Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-07T23:26:20.9850340Z               "line": 102
2026-06-07T23:26:20.9850425Z             },
2026-06-07T23:26:20.9850512Z             {
2026-06-07T23:26:20.9850631Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9850721Z               "line": 612
2026-06-07T23:26:20.9850807Z             },
2026-06-07T23:26:20.9850894Z             {
2026-06-07T23:26:20.9851012Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9851108Z               "line": 1005
2026-06-07T23:26:20.9851190Z             }
2026-06-07T23:26:20.9851274Z           ]
2026-06-07T23:26:20.9851354Z         },
2026-06-07T23:26:20.9851449Z         "unit": {
2026-06-07T23:26:20.9851549Z           "complete": true,
2026-06-07T23:26:20.9851639Z           "evidence": [
2026-06-07T23:26:20.9851724Z             {
2026-06-07T23:26:20.9851839Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9851930Z               "line": 514
2026-06-07T23:26:20.9852014Z             },
2026-06-07T23:26:20.9852110Z             {
2026-06-07T23:26:20.9852220Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9852315Z               "line": 563
2026-06-07T23:26:20.9852401Z             },
2026-06-07T23:26:20.9852493Z             {
2026-06-07T23:26:20.9852606Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9852697Z               "line": 666
2026-06-07T23:26:20.9852783Z             },
2026-06-07T23:26:20.9852864Z             {
2026-06-07T23:26:20.9852977Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9853070Z               "line": 698
2026-06-07T23:26:20.9853155Z             },
2026-06-07T23:26:20.9853240Z             {
2026-06-07T23:26:20.9853456Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9853554Z               "line": 766
2026-06-07T23:26:20.9853636Z             },
2026-06-07T23:26:20.9853723Z             {
2026-06-07T23:26:20.9853841Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9854016Z               "line": 824
2026-06-07T23:26:20.9854102Z             },
2026-06-07T23:26:20.9854181Z             {
2026-06-07T23:26:20.9854295Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9854381Z               "line": 1045
2026-06-07T23:26:20.9854473Z             },
2026-06-07T23:26:20.9854562Z             {
2026-06-07T23:26:20.9854682Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T23:26:20.9854772Z               "line": 140
2026-06-07T23:26:20.9854858Z             },
2026-06-07T23:26:20.9854943Z             {
2026-06-07T23:26:20.9855059Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T23:26:20.9855159Z               "line": 233
2026-06-07T23:26:20.9855244Z             },
2026-06-07T23:26:20.9855331Z             {
2026-06-07T23:26:20.9855449Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T23:26:20.9855544Z               "line": 256
2026-06-07T23:26:20.9855636Z             },
2026-06-07T23:26:20.9855722Z             {
2026-06-07T23:26:20.9855845Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T23:26:20.9855937Z               "line": 341
2026-06-07T23:26:20.9856018Z             },
2026-06-07T23:26:20.9856107Z             {
2026-06-07T23:26:20.9856226Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T23:26:20.9856318Z               "line": 373
2026-06-07T23:26:20.9856402Z             },
2026-06-07T23:26:20.9856488Z             {
2026-06-07T23:26:20.9856619Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-07T23:26:20.9856713Z               "line": 117
2026-06-07T23:26:20.9856798Z             },
2026-06-07T23:26:20.9856888Z             {
2026-06-07T23:26:20.9857084Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-07T23:26:20.9857183Z               "line": 72
2026-06-07T23:26:20.9857271Z             },
2026-06-07T23:26:20.9857357Z             {
2026-06-07T23:26:20.9857470Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-07T23:26:20.9857566Z               "line": 97
2026-06-07T23:26:20.9857652Z             },
2026-06-07T23:26:20.9857741Z             {
2026-06-07T23:26:20.9857857Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9857947Z               "line": 379
2026-06-07T23:26:20.9858038Z             },
2026-06-07T23:26:20.9858123Z             {
2026-06-07T23:26:20.9858234Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9858324Z               "line": 417
2026-06-07T23:26:20.9858409Z             },
2026-06-07T23:26:20.9858496Z             {
2026-06-07T23:26:20.9858610Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9858705Z               "line": 433
2026-06-07T23:26:20.9858791Z             },
2026-06-07T23:26:20.9858878Z             {
2026-06-07T23:26:20.9858991Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9859086Z               "line": 472
2026-06-07T23:26:20.9859179Z             },
2026-06-07T23:26:20.9859263Z             {
2026-06-07T23:26:20.9859376Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9859462Z               "line": 489
2026-06-07T23:26:20.9859552Z             },
2026-06-07T23:26:20.9859636Z             {
2026-06-07T23:26:20.9859750Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9859842Z               "line": 517
2026-06-07T23:26:20.9859923Z             },
2026-06-07T23:26:20.9860013Z             {
2026-06-07T23:26:20.9860123Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T23:26:20.9860209Z               "line": 548
2026-06-07T23:26:20.9860299Z             },
2026-06-07T23:26:20.9860385Z             {
2026-06-07T23:26:20.9860599Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9860694Z               "line": 455
2026-06-07T23:26:20.9860772Z             }
2026-06-07T23:26:20.9860853Z           ]
2026-06-07T23:26:20.9860933Z         }
2026-06-07T23:26:20.9861120Z       }
2026-06-07T23:26:20.9861205Z     },
2026-06-07T23:26:20.9861281Z     {
2026-06-07T23:26:20.9861377Z       "id": "REQ-NOTIF-2",
2026-06-07T23:26:20.9861634Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-07T23:26:20.9861731Z       "requiredStages": [
2026-06-07T23:26:20.9861820Z         "doc",
2026-06-07T23:26:20.9861905Z         "impl",
2026-06-07T23:26:20.9861995Z         "unit",
2026-06-07T23:26:20.9862086Z         "int"
2026-06-07T23:26:20.9862170Z       ],
2026-06-07T23:26:20.9862260Z       "stages": {
2026-06-07T23:26:20.9862346Z         "doc": {
2026-06-07T23:26:20.9862442Z           "complete": true,
2026-06-07T23:26:20.9862537Z           "evidence": [
2026-06-07T23:26:20.9862627Z             {
2026-06-07T23:26:20.9862728Z               "path": "CONTEXT.md",
2026-06-07T23:26:20.9862814Z               "line": 346
2026-06-07T23:26:20.9862903Z             },
2026-06-07T23:26:20.9862985Z             {
2026-06-07T23:26:20.9863105Z               "path": "docs/MANIFEST.md",
2026-06-07T23:26:20.9863195Z               "line": 62
2026-06-07T23:26:20.9863281Z             }
2026-06-07T23:26:20.9863367Z           ]
2026-06-07T23:26:20.9863452Z         },
2026-06-07T23:26:20.9863542Z         "impl": {
2026-06-07T23:26:20.9863635Z           "complete": true,
2026-06-07T23:26:20.9863725Z           "evidence": [
2026-06-07T23:26:20.9863815Z             {
2026-06-07T23:26:20.9863934Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9864026Z               "line": 280
2026-06-07T23:26:20.9864110Z             },
2026-06-07T23:26:20.9864196Z             {
2026-06-07T23:26:20.9864312Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9864406Z               "line": 294
2026-06-07T23:26:20.9864486Z             },
2026-06-07T23:26:20.9864576Z             {
2026-06-07T23:26:20.9864695Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9864789Z               "line": 319
2026-06-07T23:26:20.9864884Z             },
2026-06-07T23:26:20.9864966Z             {
2026-06-07T23:26:20.9865089Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:20.9865184Z               "line": 126
2026-06-07T23:26:20.9865266Z             },
2026-06-07T23:26:20.9865362Z             {
2026-06-07T23:26:20.9865475Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9865571Z               "line": 72
2026-06-07T23:26:20.9865652Z             },
2026-06-07T23:26:20.9865738Z             {
2026-06-07T23:26:20.9865847Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9865934Z               "line": 1352
2026-06-07T23:26:20.9866024Z             },
2026-06-07T23:26:20.9866109Z             {
2026-06-07T23:26:20.9866220Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9866319Z               "line": 1401
2026-06-07T23:26:20.9866405Z             },
2026-06-07T23:26:20.9866492Z             {
2026-06-07T23:26:20.9866592Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9866691Z               "line": 1480
2026-06-07T23:26:20.9866773Z             },
2026-06-07T23:26:20.9866864Z             {
2026-06-07T23:26:20.9867048Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9867141Z               "line": 1519
2026-06-07T23:26:20.9867231Z             }
2026-06-07T23:26:20.9867310Z           ]
2026-06-07T23:26:20.9867400Z         },
2026-06-07T23:26:20.9867486Z         "int": {
2026-06-07T23:26:20.9867582Z           "complete": true,
2026-06-07T23:26:20.9867667Z           "evidence": [
2026-06-07T23:26:20.9867758Z             {
2026-06-07T23:26:20.9867878Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9868063Z               "line": 738
2026-06-07T23:26:20.9868155Z             },
2026-06-07T23:26:20.9868236Z             {
2026-06-07T23:26:20.9868354Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9868446Z               "line": 1158
2026-06-07T23:26:20.9868616Z             }
2026-06-07T23:26:20.9868702Z           ]
2026-06-07T23:26:20.9868785Z         },
2026-06-07T23:26:20.9868874Z         "unit": {
2026-06-07T23:26:20.9868965Z           "complete": true,
2026-06-07T23:26:20.9869056Z           "evidence": [
2026-06-07T23:26:20.9869142Z             {
2026-06-07T23:26:20.9869260Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9869351Z               "line": 894
2026-06-07T23:26:20.9869438Z             },
2026-06-07T23:26:20.9869522Z             {
2026-06-07T23:26:20.9869633Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9869729Z               "line": 962
2026-06-07T23:26:20.9869809Z             },
2026-06-07T23:26:20.9869908Z             {
2026-06-07T23:26:20.9870017Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9870108Z               "line": 4785
2026-06-07T23:26:20.9870196Z             },
2026-06-07T23:26:20.9870281Z             {
2026-06-07T23:26:20.9870388Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9870478Z               "line": 4840
2026-06-07T23:26:20.9870568Z             }
2026-06-07T23:26:20.9870654Z           ]
2026-06-07T23:26:20.9870740Z         }
2026-06-07T23:26:20.9872739Z       }
2026-06-07T23:26:20.9872839Z     },
2026-06-07T23:26:20.9872925Z     {
2026-06-07T23:26:20.9873026Z       "id": "REQ-PAIR-1",
2026-06-07T23:26:20.9873149Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-07T23:26:20.9873245Z       "requiredStages": [
2026-06-07T23:26:20.9873331Z         "impl",
2026-06-07T23:26:20.9873416Z         "unit",
2026-06-07T23:26:20.9873502Z         "int"
2026-06-07T23:26:20.9873589Z       ],
2026-06-07T23:26:20.9873674Z       "stages": {
2026-06-07T23:26:20.9873769Z         "doc": {
2026-06-07T23:26:20.9873870Z           "complete": false,
2026-06-07T23:26:20.9873960Z           "evidence": []
2026-06-07T23:26:20.9874051Z         },
2026-06-07T23:26:20.9874136Z         "impl": {
2026-06-07T23:26:20.9874233Z           "complete": true,
2026-06-07T23:26:20.9874327Z           "evidence": [
2026-06-07T23:26:20.9874418Z             {
2026-06-07T23:26:20.9874557Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9874646Z               "line": 27
2026-06-07T23:26:20.9874732Z             },
2026-06-07T23:26:20.9874814Z             {
2026-06-07T23:26:20.9874947Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9875032Z               "line": 88
2026-06-07T23:26:20.9875122Z             },
2026-06-07T23:26:20.9875208Z             {
2026-06-07T23:26:20.9875330Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9875425Z               "line": 110
2026-06-07T23:26:20.9875511Z             },
2026-06-07T23:26:20.9875603Z             {
2026-06-07T23:26:20.9875720Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9875812Z               "line": 153
2026-06-07T23:26:20.9875897Z             },
2026-06-07T23:26:20.9875983Z             {
2026-06-07T23:26:20.9876107Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9876194Z               "line": 182
2026-06-07T23:26:20.9876279Z             },
2026-06-07T23:26:20.9876364Z             {
2026-06-07T23:26:20.9876494Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T23:26:20.9876584Z               "line": 29
2026-06-07T23:26:20.9876669Z             },
2026-06-07T23:26:20.9876757Z             {
2026-06-07T23:26:20.9876898Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T23:26:20.9877076Z               "line": 31
2026-06-07T23:26:20.9877152Z             },
2026-06-07T23:26:20.9877318Z             {
2026-06-07T23:26:20.9877777Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9877870Z               "line": 40
2026-06-07T23:26:20.9877965Z             },
2026-06-07T23:26:20.9878051Z             {
2026-06-07T23:26:20.9878181Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9878361Z               "line": 165
2026-06-07T23:26:20.9878443Z             },
2026-06-07T23:26:20.9878533Z             {
2026-06-07T23:26:20.9878652Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9878744Z               "line": 359
2026-06-07T23:26:20.9878825Z             }
2026-06-07T23:26:20.9878909Z           ]
2026-06-07T23:26:20.9879001Z         },
2026-06-07T23:26:20.9879086Z         "int": {
2026-06-07T23:26:20.9879181Z           "complete": true,
2026-06-07T23:26:20.9879272Z           "evidence": [
2026-06-07T23:26:20.9879359Z             {
2026-06-07T23:26:20.9879482Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9879577Z               "line": 573
2026-06-07T23:26:20.9879664Z             },
2026-06-07T23:26:20.9879749Z             {
2026-06-07T23:26:20.9879868Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9879960Z               "line": 790
2026-06-07T23:26:20.9880050Z             }
2026-06-07T23:26:20.9880134Z           ]
2026-06-07T23:26:20.9880216Z         },
2026-06-07T23:26:20.9880308Z         "unit": {
2026-06-07T23:26:20.9880402Z           "complete": true,
2026-06-07T23:26:20.9880492Z           "evidence": [
2026-06-07T23:26:20.9880573Z             {
2026-06-07T23:26:20.9880696Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9880785Z               "line": 236
2026-06-07T23:26:20.9880875Z             },
2026-06-07T23:26:20.9880962Z             {
2026-06-07T23:26:20.9881099Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T23:26:20.9881190Z               "line": 349
2026-06-07T23:26:20.9881282Z             },
2026-06-07T23:26:20.9881367Z             {
2026-06-07T23:26:20.9881495Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T23:26:20.9881587Z               "line": 194
2026-06-07T23:26:20.9881672Z             },
2026-06-07T23:26:20.9881757Z             {
2026-06-07T23:26:20.9881888Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T23:26:20.9881973Z               "line": 216
2026-06-07T23:26:20.9882068Z             },
2026-06-07T23:26:20.9882149Z             {
2026-06-07T23:26:20.9882278Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T23:26:20.9882368Z               "line": 230
2026-06-07T23:26:20.9882454Z             },
2026-06-07T23:26:20.9882541Z             {
2026-06-07T23:26:20.9882668Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T23:26:20.9882750Z               "line": 242
2026-06-07T23:26:20.9882822Z             },
2026-06-07T23:26:20.9882898Z             {
2026-06-07T23:26:20.9883016Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T23:26:20.9883101Z               "line": 256
2026-06-07T23:26:20.9883192Z             },
2026-06-07T23:26:20.9883277Z             {
2026-06-07T23:26:20.9883399Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T23:26:20.9883490Z               "line": 270
2026-06-07T23:26:20.9883581Z             },
2026-06-07T23:26:20.9883666Z             {
2026-06-07T23:26:20.9883781Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T23:26:20.9883872Z               "line": 277
2026-06-07T23:26:20.9883957Z             },
2026-06-07T23:26:20.9884042Z             {
2026-06-07T23:26:20.9884163Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T23:26:20.9884253Z               "line": 295
2026-06-07T23:26:20.9884339Z             },
2026-06-07T23:26:20.9884425Z             {
2026-06-07T23:26:20.9884544Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9884706Z               "line": 819
2026-06-07T23:26:20.9884797Z             },
2026-06-07T23:26:20.9884883Z             {
2026-06-07T23:26:20.9885001Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9885094Z               "line": 903
2026-06-07T23:26:20.9885240Z             },
2026-06-07T23:26:20.9885330Z             {
2026-06-07T23:26:20.9885451Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9885540Z               "line": 972
2026-06-07T23:26:20.9885625Z             },
2026-06-07T23:26:20.9885711Z             {
2026-06-07T23:26:20.9885834Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9885923Z               "line": 1035
2026-06-07T23:26:20.9886008Z             },
2026-06-07T23:26:20.9886091Z             {
2026-06-07T23:26:20.9886209Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9886304Z               "line": 1093
2026-06-07T23:26:20.9886386Z             },
2026-06-07T23:26:20.9886477Z             {
2026-06-07T23:26:20.9886600Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9886692Z               "line": 1325
2026-06-07T23:26:20.9886777Z             }
2026-06-07T23:26:20.9886867Z           ]
2026-06-07T23:26:20.9887059Z         }
2026-06-07T23:26:20.9887144Z       }
2026-06-07T23:26:20.9887229Z     },
2026-06-07T23:26:20.9887312Z     {
2026-06-07T23:26:20.9887412Z       "id": "REQ-PAIR-2",
2026-06-07T23:26:20.9887549Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-07T23:26:20.9887650Z       "requiredStages": [
2026-06-07T23:26:20.9887741Z         "impl",
2026-06-07T23:26:20.9887826Z         "unit"
2026-06-07T23:26:20.9887912Z       ],
2026-06-07T23:26:20.9887998Z       "stages": {
2026-06-07T23:26:20.9888083Z         "doc": {
2026-06-07T23:26:20.9888178Z           "complete": false,
2026-06-07T23:26:20.9888271Z           "evidence": []
2026-06-07T23:26:20.9888356Z         },
2026-06-07T23:26:20.9888449Z         "impl": {
2026-06-07T23:26:20.9888549Z           "complete": true,
2026-06-07T23:26:20.9888641Z           "evidence": [
2026-06-07T23:26:20.9888732Z             {
2026-06-07T23:26:20.9888849Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9888931Z               "line": 42
2026-06-07T23:26:20.9889022Z             },
2026-06-07T23:26:20.9889102Z             {
2026-06-07T23:26:20.9889207Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9889289Z               "line": 150
2026-06-07T23:26:20.9889376Z             },
2026-06-07T23:26:20.9889450Z             {
2026-06-07T23:26:20.9889566Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9889661Z               "line": 170
2026-06-07T23:26:20.9889746Z             },
2026-06-07T23:26:20.9889842Z             {
2026-06-07T23:26:20.9889962Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9890052Z               "line": 208
2026-06-07T23:26:20.9890128Z             },
2026-06-07T23:26:20.9890224Z             {
2026-06-07T23:26:20.9890337Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9890428Z               "line": 231
2026-06-07T23:26:20.9890510Z             }
2026-06-07T23:26:20.9890601Z           ]
2026-06-07T23:26:20.9890690Z         },
2026-06-07T23:26:20.9890772Z         "int": {
2026-06-07T23:26:20.9890873Z           "complete": false,
2026-06-07T23:26:20.9890967Z           "evidence": []
2026-06-07T23:26:20.9891052Z         },
2026-06-07T23:26:20.9891138Z         "unit": {
2026-06-07T23:26:20.9891233Z           "complete": true,
2026-06-07T23:26:20.9891321Z           "evidence": [
2026-06-07T23:26:20.9891407Z             {
2026-06-07T23:26:20.9891518Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9891613Z               "line": 252
2026-06-07T23:26:20.9891693Z             },
2026-06-07T23:26:20.9891780Z             {
2026-06-07T23:26:20.9891889Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9892099Z               "line": 271
2026-06-07T23:26:20.9892185Z             },
2026-06-07T23:26:20.9892271Z             {
2026-06-07T23:26:20.9892379Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9892467Z               "line": 286
2026-06-07T23:26:20.9892642Z             },
2026-06-07T23:26:20.9892728Z             {
2026-06-07T23:26:20.9892847Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9892938Z               "line": 308
2026-06-07T23:26:20.9893043Z             },
2026-06-07T23:26:20.9893139Z             {
2026-06-07T23:26:20.9893267Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9893378Z               "line": 324
2026-06-07T23:26:20.9893459Z             },
2026-06-07T23:26:20.9893542Z             {
2026-06-07T23:26:20.9893680Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9893771Z               "line": 342
2026-06-07T23:26:20.9893859Z             },
2026-06-07T23:26:20.9893945Z             {
2026-06-07T23:26:20.9894055Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9894141Z               "line": 357
2026-06-07T23:26:20.9894231Z             },
2026-06-07T23:26:20.9894317Z             {
2026-06-07T23:26:20.9894422Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9894517Z               "line": 370
2026-06-07T23:26:20.9894598Z             },
2026-06-07T23:26:20.9894685Z             {
2026-06-07T23:26:20.9894789Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T23:26:20.9894880Z               "line": 384
2026-06-07T23:26:20.9894961Z             }
2026-06-07T23:26:20.9895043Z           ]
2026-06-07T23:26:20.9895128Z         }
2026-06-07T23:26:20.9895213Z       }
2026-06-07T23:26:20.9895295Z     },
2026-06-07T23:26:20.9895376Z     {
2026-06-07T23:26:20.9895476Z       "id": "REQ-PAIR-3",
2026-06-07T23:26:20.9895619Z       "title": "Fetch current pairing code from any paired node",
2026-06-07T23:26:20.9895720Z       "requiredStages": [
2026-06-07T23:26:20.9895809Z         "impl",
2026-06-07T23:26:20.9895890Z         "unit"
2026-06-07T23:26:20.9895978Z       ],
2026-06-07T23:26:20.9896067Z       "stages": {
2026-06-07T23:26:20.9896152Z         "doc": {
2026-06-07T23:26:20.9896247Z           "complete": false,
2026-06-07T23:26:20.9896338Z           "evidence": []
2026-06-07T23:26:20.9896422Z         },
2026-06-07T23:26:20.9896507Z         "impl": {
2026-06-07T23:26:20.9896598Z           "complete": true,
2026-06-07T23:26:20.9896689Z           "evidence": [
2026-06-07T23:26:20.9896774Z             {
2026-06-07T23:26:20.9896884Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9897047Z               "line": 1903
2026-06-07T23:26:20.9897136Z             },
2026-06-07T23:26:20.9897218Z             {
2026-06-07T23:26:20.9897323Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9897413Z               "line": 1972
2026-06-07T23:26:20.9897499Z             },
2026-06-07T23:26:20.9897581Z             {
2026-06-07T23:26:20.9897690Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9897789Z               "line": 2208
2026-06-07T23:26:20.9897872Z             }
2026-06-07T23:26:20.9897958Z           ]
2026-06-07T23:26:20.9898037Z         },
2026-06-07T23:26:20.9898128Z         "int": {
2026-06-07T23:26:20.9898220Z           "complete": false,
2026-06-07T23:26:20.9898315Z           "evidence": []
2026-06-07T23:26:20.9898400Z         },
2026-06-07T23:26:20.9898482Z         "unit": {
2026-06-07T23:26:20.9898582Z           "complete": true,
2026-06-07T23:26:20.9898672Z           "evidence": [
2026-06-07T23:26:20.9898758Z             {
2026-06-07T23:26:20.9898869Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9898958Z               "line": 6153
2026-06-07T23:26:20.9899042Z             },
2026-06-07T23:26:20.9899128Z             {
2026-06-07T23:26:20.9899234Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9899325Z               "line": 6343
2026-06-07T23:26:20.9899516Z             },
2026-06-07T23:26:20.9899602Z             {
2026-06-07T23:26:20.9899700Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9899792Z               "line": 6674
2026-06-07T23:26:20.9899878Z             },
2026-06-07T23:26:20.9899964Z             {
2026-06-07T23:26:20.9900155Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9900244Z               "line": 6693
2026-06-07T23:26:20.9900334Z             },
2026-06-07T23:26:20.9900416Z             {
2026-06-07T23:26:20.9900522Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9900607Z               "line": 6717
2026-06-07T23:26:20.9900693Z             },
2026-06-07T23:26:20.9900775Z             {
2026-06-07T23:26:20.9900879Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9900969Z               "line": 6736
2026-06-07T23:26:20.9901051Z             },
2026-06-07T23:26:20.9901137Z             {
2026-06-07T23:26:20.9901236Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9901332Z               "line": 6749
2026-06-07T23:26:20.9901414Z             },
2026-06-07T23:26:20.9901499Z             {
2026-06-07T23:26:20.9901603Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9901693Z               "line": 6758
2026-06-07T23:26:20.9901784Z             }
2026-06-07T23:26:20.9901863Z           ]
2026-06-07T23:26:20.9901948Z         }
2026-06-07T23:26:20.9902039Z       }
2026-06-07T23:26:20.9902120Z     },
2026-06-07T23:26:20.9902201Z     {
2026-06-07T23:26:20.9902296Z       "id": "REQ-PAIR-4",
2026-06-07T23:26:20.9902412Z       "title": "Subnet naming on first pairing",
2026-06-07T23:26:20.9902507Z       "requiredStages": [
2026-06-07T23:26:20.9902592Z         "impl",
2026-06-07T23:26:20.9902678Z         "unit"
2026-06-07T23:26:20.9902764Z       ],
2026-06-07T23:26:20.9902854Z       "stages": {
2026-06-07T23:26:20.9902935Z         "doc": {
2026-06-07T23:26:20.9903032Z           "complete": false,
2026-06-07T23:26:20.9903126Z           "evidence": []
2026-06-07T23:26:20.9903216Z         },
2026-06-07T23:26:20.9903303Z         "impl": {
2026-06-07T23:26:20.9903398Z           "complete": true,
2026-06-07T23:26:20.9903493Z           "evidence": [
2026-06-07T23:26:20.9903574Z             {
2026-06-07T23:26:20.9903699Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T23:26:20.9903793Z               "line": 154
2026-06-07T23:26:20.9903880Z             }
2026-06-07T23:26:20.9903961Z           ]
2026-06-07T23:26:20.9904051Z         },
2026-06-07T23:26:20.9904136Z         "int": {
2026-06-07T23:26:20.9904231Z           "complete": false,
2026-06-07T23:26:20.9904322Z           "evidence": []
2026-06-07T23:26:20.9904406Z         },
2026-06-07T23:26:20.9904491Z         "unit": {
2026-06-07T23:26:20.9904582Z           "complete": true,
2026-06-07T23:26:20.9904678Z           "evidence": [
2026-06-07T23:26:20.9904762Z             {
2026-06-07T23:26:20.9904892Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9904987Z               "line": 1151
2026-06-07T23:26:20.9905073Z             }
2026-06-07T23:26:20.9905158Z           ]
2026-06-07T23:26:20.9905240Z         }
2026-06-07T23:26:20.9905326Z       }
2026-06-07T23:26:20.9905411Z     },
2026-06-07T23:26:20.9905492Z     {
2026-06-07T23:26:20.9905594Z       "id": "REQ-PAIR-5",
2026-06-07T23:26:20.9905884Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-07T23:26:20.9905988Z       "requiredStages": [
2026-06-07T23:26:20.9906074Z         "impl",
2026-06-07T23:26:20.9906165Z         "unit",
2026-06-07T23:26:20.9906251Z         "int"
2026-06-07T23:26:20.9906336Z       ],
2026-06-07T23:26:20.9906427Z       "stages": {
2026-06-07T23:26:20.9906509Z         "doc": {
2026-06-07T23:26:20.9906604Z           "complete": false,
2026-06-07T23:26:20.9906693Z           "evidence": []
2026-06-07T23:26:20.9906778Z         },
2026-06-07T23:26:20.9906874Z         "impl": {
2026-06-07T23:26:20.9907153Z           "complete": true,
2026-06-07T23:26:20.9907254Z           "evidence": [
2026-06-07T23:26:20.9907339Z             {
2026-06-07T23:26:20.9907473Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T23:26:20.9907559Z               "line": 44
2026-06-07T23:26:20.9907734Z             },
2026-06-07T23:26:20.9907822Z             {
2026-06-07T23:26:20.9907950Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T23:26:20.9908035Z               "line": 96
2026-06-07T23:26:20.9908117Z             },
2026-06-07T23:26:20.9908212Z             {
2026-06-07T23:26:20.9908331Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T23:26:20.9908427Z               "line": 107
2026-06-07T23:26:20.9908513Z             },
2026-06-07T23:26:20.9908602Z             {
2026-06-07T23:26:20.9908722Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T23:26:20.9908813Z               "line": 124
2026-06-07T23:26:20.9908903Z             },
2026-06-07T23:26:20.9908993Z             {
2026-06-07T23:26:20.9909109Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T23:26:20.9909194Z               "line": 155
2026-06-07T23:26:20.9909279Z             },
2026-06-07T23:26:20.9909371Z             {
2026-06-07T23:26:20.9909495Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T23:26:20.9909584Z               "line": 195
2026-06-07T23:26:20.9909674Z             },
2026-06-07T23:26:20.9909756Z             {
2026-06-07T23:26:20.9909880Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T23:26:20.9909965Z               "line": 251
2026-06-07T23:26:20.9910052Z             },
2026-06-07T23:26:20.9910133Z             {
2026-06-07T23:26:20.9910279Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T23:26:20.9910367Z               "line": 33
2026-06-07T23:26:20.9910452Z             },
2026-06-07T23:26:20.9910538Z             {
2026-06-07T23:26:20.9910677Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T23:26:20.9910767Z               "line": 45
2026-06-07T23:26:20.9910853Z             },
2026-06-07T23:26:20.9910938Z             {
2026-06-07T23:26:20.9911077Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T23:26:20.9911167Z               "line": 59
2026-06-07T23:26:20.9911258Z             },
2026-06-07T23:26:20.9911340Z             {
2026-06-07T23:26:20.9911462Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9911553Z               "line": 359
2026-06-07T23:26:20.9911640Z             }
2026-06-07T23:26:20.9911726Z           ]
2026-06-07T23:26:20.9911810Z         },
2026-06-07T23:26:20.9911897Z         "int": {
2026-06-07T23:26:20.9911988Z           "complete": true,
2026-06-07T23:26:20.9912082Z           "evidence": [
2026-06-07T23:26:20.9912163Z             {
2026-06-07T23:26:20.9912291Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9912391Z               "line": 790
2026-06-07T23:26:20.9912474Z             },
2026-06-07T23:26:20.9912565Z             {
2026-06-07T23:26:20.9912690Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T23:26:20.9912780Z               "line": 342
2026-06-07T23:26:20.9912861Z             }
2026-06-07T23:26:20.9912953Z           ]
2026-06-07T23:26:20.9913038Z         },
2026-06-07T23:26:20.9913123Z         "unit": {
2026-06-07T23:26:20.9913214Z           "complete": true,
2026-06-07T23:26:20.9913305Z           "evidence": [
2026-06-07T23:26:20.9913391Z             {
2026-06-07T23:26:20.9913514Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T23:26:20.9913606Z               "line": 293
2026-06-07T23:26:20.9913691Z             },
2026-06-07T23:26:20.9913776Z             {
2026-06-07T23:26:20.9913902Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T23:26:20.9913991Z               "line": 304
2026-06-07T23:26:20.9914077Z             },
2026-06-07T23:26:20.9914231Z             {
2026-06-07T23:26:20.9914373Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T23:26:20.9914464Z               "line": 406
2026-06-07T23:26:20.9914546Z             },
2026-06-07T23:26:20.9914630Z             {
2026-06-07T23:26:20.9914829Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T23:26:20.9914920Z               "line": 72
2026-06-07T23:26:20.9915008Z             },
2026-06-07T23:26:20.9915089Z             {
2026-06-07T23:26:20.9915228Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T23:26:20.9915318Z               "line": 82
2026-06-07T23:26:20.9915408Z             },
2026-06-07T23:26:20.9915485Z             {
2026-06-07T23:26:20.9915624Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T23:26:20.9915723Z               "line": 100
2026-06-07T23:26:20.9915810Z             },
2026-06-07T23:26:20.9915895Z             {
2026-06-07T23:26:20.9916028Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T23:26:20.9916120Z               "line": 110
2026-06-07T23:26:20.9916205Z             },
2026-06-07T23:26:20.9916291Z             {
2026-06-07T23:26:20.9916425Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T23:26:20.9916520Z               "line": 125
2026-06-07T23:26:20.9916606Z             },
2026-06-07T23:26:20.9916691Z             {
2026-06-07T23:26:20.9916816Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9916901Z               "line": 896
2026-06-07T23:26:20.9917074Z             },
2026-06-07T23:26:20.9917164Z             {
2026-06-07T23:26:20.9917287Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9917372Z               "line": 961
2026-06-07T23:26:20.9917458Z             },
2026-06-07T23:26:20.9917542Z             {
2026-06-07T23:26:20.9917665Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:20.9917761Z               "line": 1215
2026-06-07T23:26:20.9917852Z             }
2026-06-07T23:26:20.9917933Z           ]
2026-06-07T23:26:20.9918018Z         }
2026-06-07T23:26:20.9918100Z       }
2026-06-07T23:26:20.9918186Z     },
2026-06-07T23:26:20.9918271Z     {
2026-06-07T23:26:20.9918372Z       "id": "REQ-PAIR-6",
2026-06-07T23:26:20.9918628Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-07T23:26:20.9918725Z       "requiredStages": [
2026-06-07T23:26:20.9918815Z         "impl",
2026-06-07T23:26:20.9918900Z         "unit"
2026-06-07T23:26:20.9918992Z       ],
2026-06-07T23:26:20.9919078Z       "stages": {
2026-06-07T23:26:20.9919162Z         "doc": {
2026-06-07T23:26:20.9919258Z           "complete": false,
2026-06-07T23:26:20.9919355Z           "evidence": []
2026-06-07T23:26:20.9919439Z         },
2026-06-07T23:26:20.9919525Z         "impl": {
2026-06-07T23:26:20.9919621Z           "complete": true,
2026-06-07T23:26:20.9919712Z           "evidence": [
2026-06-07T23:26:20.9919801Z             {
2026-06-07T23:26:20.9919907Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9919994Z               "line": 1972
2026-06-07T23:26:20.9920083Z             },
2026-06-07T23:26:20.9920172Z             {
2026-06-07T23:26:20.9920283Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9920374Z               "line": 2208
2026-06-07T23:26:20.9920464Z             },
2026-06-07T23:26:20.9920554Z             {
2026-06-07T23:26:20.9920665Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T23:26:20.9920755Z               "line": 18
2026-06-07T23:26:20.9920839Z             },
2026-06-07T23:26:20.9920927Z             {
2026-06-07T23:26:20.9921031Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T23:26:20.9921126Z               "line": 49
2026-06-07T23:26:20.9921207Z             },
2026-06-07T23:26:20.9921294Z             {
2026-06-07T23:26:20.9921403Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T23:26:20.9921613Z               "line": 163
2026-06-07T23:26:20.9921703Z             }
2026-06-07T23:26:20.9921789Z           ]
2026-06-07T23:26:20.9921871Z         },
2026-06-07T23:26:20.9921957Z         "int": {
2026-06-07T23:26:20.9922051Z           "complete": false,
2026-06-07T23:26:20.9922233Z           "evidence": []
2026-06-07T23:26:20.9922319Z         },
2026-06-07T23:26:20.9922414Z         "unit": {
2026-06-07T23:26:20.9922506Z           "complete": true,
2026-06-07T23:26:20.9922596Z           "evidence": [
2026-06-07T23:26:20.9922685Z             {
2026-06-07T23:26:20.9922789Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9922885Z               "line": 6771
2026-06-07T23:26:20.9922969Z             },
2026-06-07T23:26:20.9923058Z             {
2026-06-07T23:26:20.9923164Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:20.9923255Z               "line": 6788
2026-06-07T23:26:20.9923345Z             },
2026-06-07T23:26:20.9923431Z             {
2026-06-07T23:26:20.9923541Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T23:26:20.9923631Z               "line": 228
2026-06-07T23:26:20.9923716Z             },
2026-06-07T23:26:20.9923803Z             {
2026-06-07T23:26:20.9923908Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T23:26:20.9924012Z               "line": 237
2026-06-07T23:26:20.9924094Z             }
2026-06-07T23:26:20.9924176Z           ]
2026-06-07T23:26:20.9924261Z         }
2026-06-07T23:26:20.9924346Z       }
2026-06-07T23:26:20.9924433Z     },
2026-06-07T23:26:20.9924514Z     {
2026-06-07T23:26:20.9924609Z       "id": "REQ-PAIR-7",
2026-06-07T23:26:20.9924762Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-07T23:26:20.9924862Z       "requiredStages": [],
2026-06-07T23:26:20.9924947Z       "stages": {
2026-06-07T23:26:20.9925033Z         "doc": {
2026-06-07T23:26:20.9925355Z           "complete": false,
2026-06-07T23:26:20.9925456Z           "evidence": []
2026-06-07T23:26:20.9925545Z         },
2026-06-07T23:26:20.9925625Z         "impl": {
2026-06-07T23:26:20.9925735Z           "complete": false,
2026-06-07T23:26:20.9925841Z           "evidence": []
2026-06-07T23:26:20.9925930Z         },
2026-06-07T23:26:20.9926012Z         "int": {
2026-06-07T23:26:20.9926103Z           "complete": false,
2026-06-07T23:26:20.9926189Z           "evidence": []
2026-06-07T23:26:20.9926269Z         },
2026-06-07T23:26:20.9926355Z         "unit": {
2026-06-07T23:26:20.9926437Z           "complete": false,
2026-06-07T23:26:20.9926518Z           "evidence": []
2026-06-07T23:26:20.9926598Z         }
2026-06-07T23:26:20.9926680Z       }
2026-06-07T23:26:20.9926765Z     },
2026-06-07T23:26:20.9926846Z     {
2026-06-07T23:26:20.9927156Z       "id": "REQ-PAIR-8",
2026-06-07T23:26:20.9928493Z       "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-07T23:26:20.9928593Z       "requiredStages": [
2026-06-07T23:26:20.9928689Z         "impl",
2026-06-07T23:26:20.9928774Z         "unit"
2026-06-07T23:26:20.9928864Z       ],
2026-06-07T23:26:20.9928952Z       "stages": {
2026-06-07T23:26:20.9929041Z         "doc": {
2026-06-07T23:26:20.9929136Z           "complete": false,
2026-06-07T23:26:20.9929223Z           "evidence": []
2026-06-07T23:26:20.9929313Z         },
2026-06-07T23:26:20.9929404Z         "impl": {
2026-06-07T23:26:20.9929498Z           "complete": true,
2026-06-07T23:26:20.9929586Z           "evidence": [
2026-06-07T23:26:20.9929675Z             {
2026-06-07T23:26:20.9929804Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:20.9929896Z               "line": 466
2026-06-07T23:26:20.9930085Z             },
2026-06-07T23:26:20.9930177Z             {
2026-06-07T23:26:20.9930310Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T23:26:20.9930399Z               "line": 22
2026-06-07T23:26:20.9930492Z             },
2026-06-07T23:26:20.9930577Z             {
2026-06-07T23:26:20.9930790Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T23:26:20.9930881Z               "line": 76
2026-06-07T23:26:20.9930967Z             },
2026-06-07T23:26:20.9931057Z             {
2026-06-07T23:26:20.9931177Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T23:26:20.9931272Z               "line": 127
2026-06-07T23:26:20.9931362Z             }
2026-06-07T23:26:20.9931448Z           ]
2026-06-07T23:26:20.9931534Z         },
2026-06-07T23:26:20.9931620Z         "int": {
2026-06-07T23:26:20.9931714Z           "complete": false,
2026-06-07T23:26:20.9931807Z           "evidence": []
2026-06-07T23:26:20.9931892Z         },
2026-06-07T23:26:20.9931982Z         "unit": {
2026-06-07T23:26:20.9932078Z           "complete": true,
2026-06-07T23:26:20.9932169Z           "evidence": [
2026-06-07T23:26:20.9932254Z             {
2026-06-07T23:26:20.9932378Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T23:26:20.9932474Z               "line": 183
2026-06-07T23:26:20.9932568Z             },
2026-06-07T23:26:20.9932655Z             {
2026-06-07T23:26:20.9932770Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T23:26:20.9932865Z               "line": 195
2026-06-07T23:26:20.9932949Z             },
2026-06-07T23:26:20.9933032Z             {
2026-06-07T23:26:20.9933156Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T23:26:20.9933245Z               "line": 211
2026-06-07T23:26:20.9933335Z             },
2026-06-07T23:26:20.9933417Z             {
2026-06-07T23:26:20.9933539Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T23:26:20.9933623Z               "line": 227
2026-06-07T23:26:20.9933705Z             }
2026-06-07T23:26:20.9933787Z           ]
2026-06-07T23:26:20.9933863Z         }
2026-06-07T23:26:20.9933952Z       }
2026-06-07T23:26:20.9934034Z     },
2026-06-07T23:26:20.9934120Z     {
2026-06-07T23:26:20.9934211Z       "id": "REQ-PRES-1",
2026-06-07T23:26:20.9935536Z       "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-07T23:26:20.9935637Z       "requiredStages": [
2026-06-07T23:26:20.9935723Z         "impl",
2026-06-07T23:26:20.9935811Z         "unit",
2026-06-07T23:26:20.9935897Z         "int"
2026-06-07T23:26:20.9935983Z       ],
2026-06-07T23:26:20.9936068Z       "stages": {
2026-06-07T23:26:20.9936161Z         "doc": {
2026-06-07T23:26:20.9936257Z           "complete": true,
2026-06-07T23:26:20.9936348Z           "evidence": [
2026-06-07T23:26:20.9936434Z             {
2026-06-07T23:26:20.9936533Z               "path": "docs/DEFERRED.md",
2026-06-07T23:26:20.9936630Z               "line": 11
2026-06-07T23:26:20.9936710Z             }
2026-06-07T23:26:20.9936805Z           ]
2026-06-07T23:26:20.9936896Z         },
2026-06-07T23:26:20.9937059Z         "impl": {
2026-06-07T23:26:20.9937153Z           "complete": true,
2026-06-07T23:26:20.9937240Z           "evidence": [
2026-06-07T23:26:20.9937326Z             {
2026-06-07T23:26:20.9937449Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T23:26:20.9937541Z               "line": 475
2026-06-07T23:26:20.9937631Z             },
2026-06-07T23:26:20.9937716Z             {
2026-06-07T23:26:20.9937840Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T23:26:20.9937927Z               "line": 527
2026-06-07T23:26:20.9938112Z             },
2026-06-07T23:26:20.9938194Z             {
2026-06-07T23:26:20.9938317Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9938407Z               "line": 181
2026-06-07T23:26:20.9938492Z             },
2026-06-07T23:26:20.9938662Z             {
2026-06-07T23:26:20.9938775Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9938872Z               "line": 207
2026-06-07T23:26:20.9938958Z             },
2026-06-07T23:26:20.9939043Z             {
2026-06-07T23:26:20.9939167Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T23:26:20.9939258Z               "line": 28
2026-06-07T23:26:20.9941293Z             },
2026-06-07T23:26:20.9941393Z             {
2026-06-07T23:26:20.9941536Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T23:26:20.9941636Z               "line": 105
2026-06-07T23:26:20.9941722Z             },
2026-06-07T23:26:20.9941813Z             {
2026-06-07T23:26:20.9941951Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T23:26:20.9942047Z               "line": 161
2026-06-07T23:26:20.9942133Z             },
2026-06-07T23:26:20.9942218Z             {
2026-06-07T23:26:20.9942342Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T23:26:20.9942438Z               "line": 180
2026-06-07T23:26:20.9942523Z             },
2026-06-07T23:26:20.9942613Z             {
2026-06-07T23:26:20.9942748Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9942838Z               "line": 346
2026-06-07T23:26:20.9942928Z             },
2026-06-07T23:26:20.9943016Z             {
2026-06-07T23:26:20.9943148Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:20.9943238Z               "line": 289
2026-06-07T23:26:20.9943326Z             },
2026-06-07T23:26:20.9943411Z             {
2026-06-07T23:26:20.9943529Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:20.9943626Z               "line": 336
2026-06-07T23:26:20.9943716Z             },
2026-06-07T23:26:20.9943800Z             {
2026-06-07T23:26:20.9943924Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:20.9944014Z               "line": 362
2026-06-07T23:26:20.9944103Z             },
2026-06-07T23:26:20.9944193Z             {
2026-06-07T23:26:20.9944313Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9944404Z               "line": 100
2026-06-07T23:26:20.9944489Z             }
2026-06-07T23:26:20.9944575Z           ]
2026-06-07T23:26:20.9944656Z         },
2026-06-07T23:26:20.9944747Z         "int": {
2026-06-07T23:26:20.9944841Z           "complete": true,
2026-06-07T23:26:20.9944938Z           "evidence": [
2026-06-07T23:26:20.9945023Z             {
2026-06-07T23:26:20.9945146Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T23:26:20.9945244Z               "line": 546
2026-06-07T23:26:20.9945329Z             },
2026-06-07T23:26:20.9945419Z             {
2026-06-07T23:26:20.9945533Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9945629Z               "line": 675
2026-06-07T23:26:20.9945714Z             },
2026-06-07T23:26:20.9945800Z             {
2026-06-07T23:26:20.9945920Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9946015Z               "line": 1068
2026-06-07T23:26:20.9946105Z             }
2026-06-07T23:26:20.9946193Z           ]
2026-06-07T23:26:20.9946278Z         },
2026-06-07T23:26:20.9946367Z         "unit": {
2026-06-07T23:26:20.9946462Z           "complete": true,
2026-06-07T23:26:20.9946552Z           "evidence": [
2026-06-07T23:26:20.9946633Z             {
2026-06-07T23:26:20.9946750Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:20.9946846Z               "line": 601
2026-06-07T23:26:20.9946927Z             },
2026-06-07T23:26:20.9947103Z             {
2026-06-07T23:26:20.9947233Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T23:26:20.9947446Z               "line": 237
2026-06-07T23:26:20.9947538Z             },
2026-06-07T23:26:20.9947624Z             {
2026-06-07T23:26:20.9947747Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T23:26:20.9947834Z               "line": 268
2026-06-07T23:26:20.9948023Z             },
2026-06-07T23:26:20.9948111Z             {
2026-06-07T23:26:20.9948234Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T23:26:20.9948319Z               "line": 304
2026-06-07T23:26:20.9948405Z             },
2026-06-07T23:26:20.9948492Z             {
2026-06-07T23:26:20.9948610Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T23:26:20.9948706Z               "line": 335
2026-06-07T23:26:20.9948793Z             },
2026-06-07T23:26:20.9948877Z             {
2026-06-07T23:26:20.9949005Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:20.9949095Z               "line": 953
2026-06-07T23:26:20.9949185Z             },
2026-06-07T23:26:20.9949274Z             {
2026-06-07T23:26:20.9949398Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:20.9949485Z               "line": 980
2026-06-07T23:26:20.9949574Z             }
2026-06-07T23:26:20.9949660Z           ]
2026-06-07T23:26:20.9949752Z         }
2026-06-07T23:26:20.9949838Z       }
2026-06-07T23:26:20.9949922Z     },
2026-06-07T23:26:20.9950009Z     {
2026-06-07T23:26:20.9950105Z       "id": "REQ-REACH-1",
2026-06-07T23:26:20.9950256Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-07T23:26:20.9950353Z       "requiredStages": [
2026-06-07T23:26:20.9950447Z         "impl",
2026-06-07T23:26:20.9950538Z         "unit",
2026-06-07T23:26:20.9950623Z         "int"
2026-06-07T23:26:20.9950706Z       ],
2026-06-07T23:26:20.9950795Z       "stages": {
2026-06-07T23:26:20.9950881Z         "doc": {
2026-06-07T23:26:20.9950978Z           "complete": false,
2026-06-07T23:26:20.9951068Z           "evidence": []
2026-06-07T23:26:20.9951162Z         },
2026-06-07T23:26:20.9951249Z         "impl": {
2026-06-07T23:26:20.9951350Z           "complete": true,
2026-06-07T23:26:20.9951439Z           "evidence": [
2026-06-07T23:26:20.9951524Z             {
2026-06-07T23:26:20.9951645Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-07T23:26:20.9951740Z               "line": 140
2026-06-07T23:26:20.9951829Z             },
2026-06-07T23:26:20.9951914Z             {
2026-06-07T23:26:20.9952030Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T23:26:20.9952120Z               "line": 76
2026-06-07T23:26:20.9952205Z             },
2026-06-07T23:26:20.9952292Z             {
2026-06-07T23:26:20.9952402Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T23:26:20.9952501Z               "line": 222
2026-06-07T23:26:20.9952583Z             },
2026-06-07T23:26:20.9952669Z             {
2026-06-07T23:26:20.9952773Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T23:26:20.9952868Z               "line": 422
2026-06-07T23:26:20.9952951Z             },
2026-06-07T23:26:20.9953040Z             {
2026-06-07T23:26:20.9953150Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T23:26:20.9953236Z               "line": 529
2026-06-07T23:26:20.9953327Z             },
2026-06-07T23:26:20.9953412Z             {
2026-06-07T23:26:20.9953527Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-07T23:26:20.9953618Z               "line": 39
2026-06-07T23:26:20.9953703Z             },
2026-06-07T23:26:20.9953789Z             {
2026-06-07T23:26:20.9953900Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9953994Z               "line": 229
2026-06-07T23:26:20.9954074Z             },
2026-06-07T23:26:20.9954167Z             {
2026-06-07T23:26:20.9954276Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-07T23:26:20.9954370Z               "line": 88
2026-06-07T23:26:20.9954455Z             },
2026-06-07T23:26:20.9954542Z             {
2026-06-07T23:26:20.9954730Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-07T23:26:20.9954820Z               "line": 98
2026-06-07T23:26:20.9954912Z             },
2026-06-07T23:26:20.9954997Z             {
2026-06-07T23:26:20.9955121Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9955278Z               "line": 210
2026-06-07T23:26:20.9955373Z             }
2026-06-07T23:26:20.9955459Z           ]
2026-06-07T23:26:20.9955541Z         },
2026-06-07T23:26:20.9955631Z         "int": {
2026-06-07T23:26:20.9955726Z           "complete": true,
2026-06-07T23:26:20.9955818Z           "evidence": [
2026-06-07T23:26:20.9955903Z             {
2026-06-07T23:26:20.9956031Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T23:26:20.9956166Z               "line": 404
2026-06-07T23:26:20.9956251Z             },
2026-06-07T23:26:20.9956337Z             {
2026-06-07T23:26:20.9956457Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T23:26:20.9956551Z               "line": 503
2026-06-07T23:26:20.9956642Z             },
2026-06-07T23:26:20.9956738Z             {
2026-06-07T23:26:20.9956875Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9957050Z               "line": 901
2026-06-07T23:26:20.9957132Z             },
2026-06-07T23:26:20.9957225Z             {
2026-06-07T23:26:20.9957344Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:20.9957440Z               "line": 1196
2026-06-07T23:26:20.9957526Z             }
2026-06-07T23:26:20.9957610Z           ]
2026-06-07T23:26:20.9957692Z         },
2026-06-07T23:26:20.9957788Z         "unit": {
2026-06-07T23:26:20.9957883Z           "complete": true,
2026-06-07T23:26:20.9957973Z           "evidence": [
2026-06-07T23:26:20.9958055Z             {
2026-06-07T23:26:20.9958169Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T23:26:20.9958259Z               "line": 639
2026-06-07T23:26:20.9958346Z             },
2026-06-07T23:26:20.9958432Z             {
2026-06-07T23:26:20.9958551Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T23:26:20.9958641Z               "line": 660
2026-06-07T23:26:20.9958728Z             },
2026-06-07T23:26:20.9958812Z             {
2026-06-07T23:26:20.9958932Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-07T23:26:20.9959023Z               "line": 390
2026-06-07T23:26:20.9959113Z             },
2026-06-07T23:26:20.9959199Z             {
2026-06-07T23:26:20.9959315Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-07T23:26:20.9959405Z               "line": 92
2026-06-07T23:26:20.9959489Z             },
2026-06-07T23:26:20.9959579Z             {
2026-06-07T23:26:20.9959694Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-07T23:26:20.9959783Z               "line": 223
2026-06-07T23:26:20.9959868Z             },
2026-06-07T23:26:20.9959954Z             {
2026-06-07T23:26:20.9960065Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-07T23:26:20.9960144Z               "line": 96
2026-06-07T23:26:20.9960234Z             },
2026-06-07T23:26:20.9960317Z             {
2026-06-07T23:26:20.9960431Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-07T23:26:20.9960526Z               "line": 146
2026-06-07T23:26:20.9960612Z             },
2026-06-07T23:26:20.9960698Z             {
2026-06-07T23:26:20.9960807Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:20.9960898Z               "line": 502
2026-06-07T23:26:20.9960984Z             },
2026-06-07T23:26:20.9961070Z             {
2026-06-07T23:26:20.9961184Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-07T23:26:20.9961271Z               "line": 118
2026-06-07T23:26:20.9961360Z             },
2026-06-07T23:26:20.9961441Z             {
2026-06-07T23:26:20.9961547Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-07T23:26:20.9961642Z               "line": 148
2026-06-07T23:26:20.9961727Z             },
2026-06-07T23:26:20.9961809Z             {
2026-06-07T23:26:20.9962027Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9962123Z               "line": 602
2026-06-07T23:26:20.9962205Z             }
2026-06-07T23:26:20.9962295Z           ]
2026-06-07T23:26:20.9962380Z         }
2026-06-07T23:26:20.9962552Z       }
2026-06-07T23:26:20.9962633Z     },
2026-06-07T23:26:20.9962718Z     {
2026-06-07T23:26:20.9962809Z       "id": "REQ-REACH-2",
2026-06-07T23:26:20.9962967Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-07T23:26:20.9963061Z       "requiredStages": [],
2026-06-07T23:26:20.9963152Z       "stages": {
2026-06-07T23:26:20.9963238Z         "doc": {
2026-06-07T23:26:20.9963333Z           "complete": false,
2026-06-07T23:26:20.9963423Z           "evidence": []
2026-06-07T23:26:20.9963506Z         },
2026-06-07T23:26:20.9963596Z         "impl": {
2026-06-07T23:26:20.9963686Z           "complete": false,
2026-06-07T23:26:20.9963777Z           "evidence": []
2026-06-07T23:26:20.9963863Z         },
2026-06-07T23:26:20.9963953Z         "int": {
2026-06-07T23:26:20.9964049Z           "complete": false,
2026-06-07T23:26:20.9964141Z           "evidence": []
2026-06-07T23:26:20.9964225Z         },
2026-06-07T23:26:20.9964311Z         "unit": {
2026-06-07T23:26:20.9964402Z           "complete": false,
2026-06-07T23:26:20.9964502Z           "evidence": []
2026-06-07T23:26:20.9964577Z         }
2026-06-07T23:26:20.9964654Z       }
2026-06-07T23:26:20.9964736Z     },
2026-06-07T23:26:20.9964822Z     {
2026-06-07T23:26:20.9964916Z       "id": "REQ-REL-1",
2026-06-07T23:26:20.9965275Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-07T23:26:20.9965376Z       "requiredStages": [
2026-06-07T23:26:20.9965671Z         "doc",
2026-06-07T23:26:20.9965767Z         "impl"
2026-06-07T23:26:20.9965853Z       ],
2026-06-07T23:26:20.9965938Z       "stages": {
2026-06-07T23:26:20.9966054Z         "doc": {
2026-06-07T23:26:20.9966186Z           "complete": true,
2026-06-07T23:26:20.9966272Z           "evidence": [
2026-06-07T23:26:20.9966364Z             {
2026-06-07T23:26:20.9966582Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-07T23:26:20.9966678Z               "line": 3
2026-06-07T23:26:20.9966763Z             }
2026-06-07T23:26:20.9966844Z           ]
2026-06-07T23:26:20.9966930Z         },
2026-06-07T23:26:20.9967078Z         "impl": {
2026-06-07T23:26:20.9967173Z           "complete": true,
2026-06-07T23:26:20.9967264Z           "evidence": [
2026-06-07T23:26:20.9967351Z             {
2026-06-07T23:26:20.9967525Z               "path": ".github/workflows/docs-publish.yml",
2026-06-07T23:26:20.9967620Z               "line": 11
2026-06-07T23:26:20.9967706Z             },
2026-06-07T23:26:20.9967790Z             {
2026-06-07T23:26:20.9967904Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:20.9967995Z               "line": 265
2026-06-07T23:26:20.9968086Z             }
2026-06-07T23:26:20.9968171Z           ]
2026-06-07T23:26:20.9968257Z         },
2026-06-07T23:26:20.9968343Z         "int": {
2026-06-07T23:26:20.9968438Z           "complete": false,
2026-06-07T23:26:20.9968528Z           "evidence": []
2026-06-07T23:26:20.9968615Z         },
2026-06-07T23:26:20.9968710Z         "unit": {
2026-06-07T23:26:20.9968801Z           "complete": false,
2026-06-07T23:26:20.9968891Z           "evidence": []
2026-06-07T23:26:20.9968978Z         }
2026-06-07T23:26:20.9969063Z       }
2026-06-07T23:26:20.9969148Z     },
2026-06-07T23:26:20.9969231Z     {
2026-06-07T23:26:20.9969326Z       "id": "REQ-REL-2",
2026-06-07T23:26:20.9969783Z       "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-07T23:26:20.9969889Z       "requiredStages": [
2026-06-07T23:26:20.9969984Z         "impl",
2026-06-07T23:26:20.9970068Z         "int"
2026-06-07T23:26:20.9970259Z       ],
2026-06-07T23:26:20.9970347Z       "stages": {
2026-06-07T23:26:20.9970437Z         "doc": {
2026-06-07T23:26:20.9970547Z           "complete": true,
2026-06-07T23:26:20.9970667Z           "evidence": [
2026-06-07T23:26:20.9970752Z             {
2026-06-07T23:26:20.9970948Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-07T23:26:20.9971038Z               "line": 6
2026-06-07T23:26:20.9971124Z             }
2026-06-07T23:26:20.9971206Z           ]
2026-06-07T23:26:20.9971291Z         },
2026-06-07T23:26:20.9971381Z         "impl": {
2026-06-07T23:26:20.9971478Z           "complete": true,
2026-06-07T23:26:20.9971564Z           "evidence": [
2026-06-07T23:26:20.9971654Z             {
2026-06-07T23:26:20.9971768Z               "path": ".github/workflows/release.yml",
2026-06-07T23:26:20.9971859Z               "line": 16
2026-06-07T23:26:20.9971944Z             },
2026-06-07T23:26:20.9972035Z             {
2026-06-07T23:26:20.9972150Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:20.9972244Z               "line": 352
2026-06-07T23:26:20.9972330Z             },
2026-06-07T23:26:20.9972412Z             {
2026-06-07T23:26:20.9972517Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:20.9972606Z               "line": 424
2026-06-07T23:26:20.9972698Z             },
2026-06-07T23:26:20.9972785Z             {
2026-06-07T23:26:20.9972888Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:20.9972978Z               "line": 484
2026-06-07T23:26:20.9973064Z             },
2026-06-07T23:26:20.9973150Z             {
2026-06-07T23:26:20.9973250Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:20.9973344Z               "line": 591
2026-06-07T23:26:20.9973432Z             }
2026-06-07T23:26:20.9973513Z           ]
2026-06-07T23:26:20.9973602Z         },
2026-06-07T23:26:20.9973688Z         "int": {
2026-06-07T23:26:20.9973784Z           "complete": true,
2026-06-07T23:26:20.9973884Z           "evidence": [
2026-06-07T23:26:20.9973979Z             {
2026-06-07T23:26:20.9974109Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-07T23:26:20.9974199Z               "line": 13
2026-06-07T23:26:20.9974284Z             }
2026-06-07T23:26:20.9974366Z           ]
2026-06-07T23:26:20.9974461Z         },
2026-06-07T23:26:20.9974546Z         "unit": {
2026-06-07T23:26:20.9974652Z           "complete": false,
2026-06-07T23:26:20.9974743Z           "evidence": []
2026-06-07T23:26:20.9974823Z         }
2026-06-07T23:26:20.9974914Z       }
2026-06-07T23:26:20.9974996Z     },
2026-06-07T23:26:20.9975081Z     {
2026-06-07T23:26:20.9975175Z       "id": "REQ-REL-3",
2026-06-07T23:26:20.9975585Z       "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-07T23:26:20.9975681Z       "requiredStages": [
2026-06-07T23:26:20.9975765Z         "impl",
2026-06-07T23:26:20.9975850Z         "unit"
2026-06-07T23:26:20.9975936Z       ],
2026-06-07T23:26:20.9976027Z       "stages": {
2026-06-07T23:26:20.9976112Z         "doc": {
2026-06-07T23:26:20.9976207Z           "complete": false,
2026-06-07T23:26:20.9976304Z           "evidence": []
2026-06-07T23:26:20.9976389Z         },
2026-06-07T23:26:20.9976483Z         "impl": {
2026-06-07T23:26:20.9976570Z           "complete": true,
2026-06-07T23:26:20.9976665Z           "evidence": [
2026-06-07T23:26:20.9976751Z             {
2026-06-07T23:26:20.9976870Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:20.9977047Z               "line": 224
2026-06-07T23:26:20.9977132Z             },
2026-06-07T23:26:20.9977219Z             {
2026-06-07T23:26:20.9977337Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:20.9977428Z               "line": 276
2026-06-07T23:26:20.9977514Z             },
2026-06-07T23:26:20.9977601Z             {
2026-06-07T23:26:20.9977709Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:20.9977897Z               "line": 329
2026-06-07T23:26:20.9977986Z             },
2026-06-07T23:26:20.9978071Z             {
2026-06-07T23:26:20.9978175Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:20.9978270Z               "line": 353
2026-06-07T23:26:20.9978459Z             },
2026-06-07T23:26:20.9978546Z             {
2026-06-07T23:26:20.9978651Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:20.9978740Z               "line": 392
2026-06-07T23:26:20.9978827Z             }
2026-06-07T23:26:20.9978918Z           ]
2026-06-07T23:26:20.9979003Z         },
2026-06-07T23:26:20.9979093Z         "int": {
2026-06-07T23:26:20.9979190Z           "complete": false,
2026-06-07T23:26:20.9979280Z           "evidence": []
2026-06-07T23:26:20.9979365Z         },
2026-06-07T23:26:20.9979451Z         "unit": {
2026-06-07T23:26:20.9979552Z           "complete": true,
2026-06-07T23:26:20.9979642Z           "evidence": [
2026-06-07T23:26:20.9979727Z             {
2026-06-07T23:26:20.9979857Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:20.9979947Z               "line": 977
2026-06-07T23:26:20.9980033Z             },
2026-06-07T23:26:20.9980115Z             {
2026-06-07T23:26:20.9980233Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:20.9980334Z               "line": 1036
2026-06-07T23:26:20.9980420Z             }
2026-06-07T23:26:20.9980506Z           ]
2026-06-07T23:26:20.9980590Z         }
2026-06-07T23:26:20.9980685Z       }
2026-06-07T23:26:20.9980767Z     },
2026-06-07T23:26:20.9980851Z     {
2026-06-07T23:26:20.9980954Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-07T23:26:20.9981142Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-07T23:26:20.9981241Z       "requiredStages": [
2026-06-07T23:26:20.9981331Z         "impl",
2026-06-07T23:26:20.9981418Z         "unit"
2026-06-07T23:26:20.9981503Z       ],
2026-06-07T23:26:20.9981594Z       "stages": {
2026-06-07T23:26:20.9981684Z         "doc": {
2026-06-07T23:26:20.9981775Z           "complete": false,
2026-06-07T23:26:20.9981871Z           "evidence": []
2026-06-07T23:26:20.9981955Z         },
2026-06-07T23:26:20.9982052Z         "impl": {
2026-06-07T23:26:20.9982147Z           "complete": true,
2026-06-07T23:26:20.9982242Z           "evidence": [
2026-06-07T23:26:20.9982328Z             {
2026-06-07T23:26:20.9982448Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:20.9982543Z               "line": 18
2026-06-07T23:26:20.9982629Z             },
2026-06-07T23:26:20.9982720Z             {
2026-06-07T23:26:20.9982828Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:20.9982924Z               "line": 35
2026-06-07T23:26:20.9983016Z             },
2026-06-07T23:26:20.9983101Z             {
2026-06-07T23:26:20.9983210Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:20.9983302Z               "line": 72
2026-06-07T23:26:20.9983392Z             }
2026-06-07T23:26:20.9983481Z           ]
2026-06-07T23:26:20.9983571Z         },
2026-06-07T23:26:20.9983662Z         "int": {
2026-06-07T23:26:20.9983753Z           "complete": false,
2026-06-07T23:26:20.9983852Z           "evidence": []
2026-06-07T23:26:20.9983939Z         },
2026-06-07T23:26:20.9984025Z         "unit": {
2026-06-07T23:26:20.9984125Z           "complete": true,
2026-06-07T23:26:20.9984215Z           "evidence": [
2026-06-07T23:26:20.9984312Z             {
2026-06-07T23:26:20.9984421Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:20.9984515Z               "line": 214
2026-06-07T23:26:20.9984597Z             },
2026-06-07T23:26:20.9984688Z             {
2026-06-07T23:26:20.9984796Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:20.9984892Z               "line": 231
2026-06-07T23:26:20.9984974Z             },
2026-06-07T23:26:20.9985059Z             {
2026-06-07T23:26:20.9985174Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:20.9985459Z               "line": 240
2026-06-07T23:26:20.9985551Z             }
2026-06-07T23:26:20.9985632Z           ]
2026-06-07T23:26:20.9985721Z         }
2026-06-07T23:26:20.9985808Z       }
2026-06-07T23:26:20.9985890Z     },
2026-06-07T23:26:20.9985980Z     {
2026-06-07T23:26:20.9986084Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-07T23:26:20.9986297Z       "title": "Hostable endpoint-types capability declaration",
2026-06-07T23:26:20.9986391Z       "requiredStages": [
2026-06-07T23:26:20.9986481Z         "impl",
2026-06-07T23:26:20.9986568Z         "unit"
2026-06-07T23:26:20.9986644Z       ],
2026-06-07T23:26:20.9986734Z       "stages": {
2026-06-07T23:26:20.9986816Z         "doc": {
2026-06-07T23:26:20.9986897Z           "complete": false,
2026-06-07T23:26:20.9987063Z           "evidence": []
2026-06-07T23:26:20.9987149Z         },
2026-06-07T23:26:20.9987240Z         "impl": {
2026-06-07T23:26:20.9987330Z           "complete": true,
2026-06-07T23:26:20.9987425Z           "evidence": [
2026-06-07T23:26:20.9987513Z             {
2026-06-07T23:26:20.9987636Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9987726Z               "line": 404
2026-06-07T23:26:20.9987813Z             }
2026-06-07T23:26:20.9987902Z           ]
2026-06-07T23:26:20.9987984Z         },
2026-06-07T23:26:20.9988079Z         "int": {
2026-06-07T23:26:20.9988175Z           "complete": false,
2026-06-07T23:26:20.9988269Z           "evidence": []
2026-06-07T23:26:20.9988356Z         },
2026-06-07T23:26:20.9988447Z         "unit": {
2026-06-07T23:26:20.9988541Z           "complete": true,
2026-06-07T23:26:20.9988631Z           "evidence": [
2026-06-07T23:26:20.9988721Z             {
2026-06-07T23:26:20.9988835Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:20.9988929Z               "line": 641
2026-06-07T23:26:20.9989014Z             }
2026-06-07T23:26:20.9989101Z           ]
2026-06-07T23:26:20.9989187Z         }
2026-06-07T23:26:20.9989267Z       }
2026-06-07T23:26:20.9989358Z     },
2026-06-07T23:26:20.9989445Z     {
2026-06-07T23:26:20.9989549Z       "id": "REQ-SEAM-HISTORY",
2026-06-07T23:26:20.9989726Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-07T23:26:20.9989821Z       "requiredStages": [
2026-06-07T23:26:20.9989911Z         "impl",
2026-06-07T23:26:20.9990002Z         "unit",
2026-06-07T23:26:20.9990088Z         "int"
2026-06-07T23:26:20.9990174Z       ],
2026-06-07T23:26:20.9990264Z       "stages": {
2026-06-07T23:26:20.9990351Z         "doc": {
2026-06-07T23:26:20.9990450Z           "complete": false,
2026-06-07T23:26:20.9990550Z           "evidence": []
2026-06-07T23:26:20.9990636Z         },
2026-06-07T23:26:20.9990732Z         "impl": {
2026-06-07T23:26:20.9990822Z           "complete": true,
2026-06-07T23:26:20.9990917Z           "evidence": [
2026-06-07T23:26:20.9991000Z             {
2026-06-07T23:26:20.9991118Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T23:26:20.9991217Z               "line": 24
2026-06-07T23:26:20.9991307Z             },
2026-06-07T23:26:20.9991393Z             {
2026-06-07T23:26:20.9991510Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T23:26:20.9991600Z               "line": 22
2026-06-07T23:26:20.9991687Z             }
2026-06-07T23:26:20.9991773Z           ]
2026-06-07T23:26:20.9991867Z         },
2026-06-07T23:26:20.9991958Z         "int": {
2026-06-07T23:26:20.9992050Z           "complete": true,
2026-06-07T23:26:20.9992139Z           "evidence": [
2026-06-07T23:26:20.9992225Z             {
2026-06-07T23:26:20.9992345Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T23:26:20.9992440Z               "line": 256
2026-06-07T23:26:20.9992525Z             }
2026-06-07T23:26:20.9992612Z           ]
2026-06-07T23:26:20.9992698Z         },
2026-06-07T23:26:20.9992783Z         "unit": {
2026-06-07T23:26:20.9992874Z           "complete": true,
2026-06-07T23:26:20.9992970Z           "evidence": [
2026-06-07T23:26:20.9993055Z             {
2026-06-07T23:26:20.9993270Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T23:26:20.9993365Z               "line": 167
2026-06-07T23:26:20.9993455Z             },
2026-06-07T23:26:20.9993537Z             {
2026-06-07T23:26:20.9993652Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T23:26:20.9993823Z               "line": 196
2026-06-07T23:26:20.9993910Z             },
2026-06-07T23:26:20.9993999Z             {
2026-06-07T23:26:20.9994103Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T23:26:20.9994194Z               "line": 216
2026-06-07T23:26:20.9994280Z             },
2026-06-07T23:26:20.9994370Z             {
2026-06-07T23:26:20.9994479Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T23:26:20.9994571Z               "line": 199
2026-06-07T23:26:20.9994662Z             },
2026-06-07T23:26:20.9994741Z             {
2026-06-07T23:26:20.9994862Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T23:26:20.9994952Z               "line": 219
2026-06-07T23:26:20.9995042Z             },
2026-06-07T23:26:20.9995128Z             {
2026-06-07T23:26:20.9995248Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T23:26:20.9995338Z               "line": 244
2026-06-07T23:26:20.9995419Z             },
2026-06-07T23:26:20.9995510Z             {
2026-06-07T23:26:20.9995623Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T23:26:20.9995714Z               "line": 269
2026-06-07T23:26:20.9995801Z             },
2026-06-07T23:26:20.9995887Z             {
2026-06-07T23:26:20.9996001Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T23:26:20.9996087Z               "line": 290
2026-06-07T23:26:20.9996174Z             },
2026-06-07T23:26:20.9996258Z             {
2026-06-07T23:26:20.9996368Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T23:26:20.9996460Z               "line": 317
2026-06-07T23:26:20.9996549Z             }
2026-06-07T23:26:20.9996639Z           ]
2026-06-07T23:26:20.9996719Z         }
2026-06-07T23:26:20.9996820Z       }
2026-06-07T23:26:20.9996904Z     },
2026-06-07T23:26:20.9997071Z     {
2026-06-07T23:26:20.9997171Z       "id": "REQ-SEAM-INJECT",
2026-06-07T23:26:20.9997332Z       "title": "inject-input methods configurable per activity-state",
2026-06-07T23:26:20.9997424Z       "requiredStages": [
2026-06-07T23:26:20.9997519Z         "impl",
2026-06-07T23:26:20.9997608Z         "unit"
2026-06-07T23:26:20.9997695Z       ],
2026-06-07T23:26:20.9997786Z       "stages": {
2026-06-07T23:26:20.9997872Z         "doc": {
2026-06-07T23:26:20.9997967Z           "complete": false,
2026-06-07T23:26:20.9998063Z           "evidence": []
2026-06-07T23:26:20.9998148Z         },
2026-06-07T23:26:20.9998233Z         "impl": {
2026-06-07T23:26:20.9998324Z           "complete": true,
2026-06-07T23:26:20.9998416Z           "evidence": [
2026-06-07T23:26:20.9998500Z             {
2026-06-07T23:26:20.9998620Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:20.9998717Z               "line": 19
2026-06-07T23:26:20.9998805Z             },
2026-06-07T23:26:20.9998901Z             {
2026-06-07T23:26:20.9999012Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:20.9999106Z               "line": 111
2026-06-07T23:26:20.9999191Z             }
2026-06-07T23:26:20.9999281Z           ]
2026-06-07T23:26:20.9999368Z         },
2026-06-07T23:26:20.9999456Z         "int": {
2026-06-07T23:26:20.9999551Z           "complete": false,
2026-06-07T23:26:20.9999646Z           "evidence": []
2026-06-07T23:26:20.9999738Z         },
2026-06-07T23:26:20.9999827Z         "unit": {
2026-06-07T23:26:20.9999918Z           "complete": true,
2026-06-07T23:26:21.0000009Z           "evidence": [
2026-06-07T23:26:21.0000100Z             {
2026-06-07T23:26:21.0000218Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:21.0000310Z               "line": 320
2026-06-07T23:26:21.0000395Z             },
2026-06-07T23:26:21.0000481Z             {
2026-06-07T23:26:21.0000691Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:21.0000786Z               "line": 340
2026-06-07T23:26:21.0000872Z             }
2026-06-07T23:26:21.0000959Z           ]
2026-06-07T23:26:21.0001039Z         }
2026-06-07T23:26:21.0001134Z       }
2026-06-07T23:26:21.0001216Z     },
2026-06-07T23:26:21.0001391Z     {
2026-06-07T23:26:21.0001496Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-07T23:26:21.0001631Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-07T23:26:21.0001730Z       "requiredStages": [
2026-06-07T23:26:21.0001815Z         "impl",
2026-06-07T23:26:21.0001906Z         "unit"
2026-06-07T23:26:21.0001995Z       ],
2026-06-07T23:26:21.0002084Z       "stages": {
2026-06-07T23:26:21.0002170Z         "doc": {
2026-06-07T23:26:21.0002267Z           "complete": false,
2026-06-07T23:26:21.0002356Z           "evidence": []
2026-06-07T23:26:21.0002441Z         },
2026-06-07T23:26:21.0002528Z         "impl": {
2026-06-07T23:26:21.0002619Z           "complete": true,
2026-06-07T23:26:21.0002723Z           "evidence": [
2026-06-07T23:26:21.0002809Z             {
2026-06-07T23:26:21.0002924Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0003014Z               "line": 18
2026-06-07T23:26:21.0003100Z             },
2026-06-07T23:26:21.0003191Z             {
2026-06-07T23:26:21.0003300Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0003400Z               "line": 309
2026-06-07T23:26:21.0003483Z             }
2026-06-07T23:26:21.0003568Z           ]
2026-06-07T23:26:21.0003658Z         },
2026-06-07T23:26:21.0003744Z         "int": {
2026-06-07T23:26:21.0003840Z           "complete": false,
2026-06-07T23:26:21.0003934Z           "evidence": []
2026-06-07T23:26:21.0004020Z         },
2026-06-07T23:26:21.0004107Z         "unit": {
2026-06-07T23:26:21.0004202Z           "complete": true,
2026-06-07T23:26:21.0004296Z           "evidence": [
2026-06-07T23:26:21.0004383Z             {
2026-06-07T23:26:21.0004498Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0004587Z               "line": 559
2026-06-07T23:26:21.0004682Z             },
2026-06-07T23:26:21.0004768Z             {
2026-06-07T23:26:21.0004878Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0004972Z               "line": 569
2026-06-07T23:26:21.0005064Z             }
2026-06-07T23:26:21.0005151Z           ]
2026-06-07T23:26:21.0005236Z         }
2026-06-07T23:26:21.0005325Z       }
2026-06-07T23:26:21.0005408Z     },
2026-06-07T23:26:21.0005493Z     {
2026-06-07T23:26:21.0007554Z       "id": "REQ-SEAM-PSYCHE",
2026-06-07T23:26:21.0007735Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-07T23:26:21.0007835Z       "requiredStages": [
2026-06-07T23:26:21.0007926Z         "impl",
2026-06-07T23:26:21.0008017Z         "unit",
2026-06-07T23:26:21.0008103Z         "int"
2026-06-07T23:26:21.0008188Z       ],
2026-06-07T23:26:21.0008279Z       "stages": {
2026-06-07T23:26:21.0008360Z         "doc": {
2026-06-07T23:26:21.0008469Z           "complete": false,
2026-06-07T23:26:21.0008565Z           "evidence": []
2026-06-07T23:26:21.0008647Z         },
2026-06-07T23:26:21.0008737Z         "impl": {
2026-06-07T23:26:21.0008832Z           "complete": true,
2026-06-07T23:26:21.0008923Z           "evidence": [
2026-06-07T23:26:21.0009013Z             {
2026-06-07T23:26:21.0009142Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-07T23:26:21.0009224Z               "line": 19
2026-06-07T23:26:21.0009310Z             },
2026-06-07T23:26:21.0009404Z             {
2026-06-07T23:26:21.0009519Z               "path": "crates/spt/src/api/live.rs",
2026-06-07T23:26:21.0009611Z               "line": 12
2026-06-07T23:26:21.0009694Z             },
2026-06-07T23:26:21.0009780Z             {
2026-06-07T23:26:21.0009894Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0009988Z               "line": 209
2026-06-07T23:26:21.0010078Z             }
2026-06-07T23:26:21.0010158Z           ]
2026-06-07T23:26:21.0010383Z         },
2026-06-07T23:26:21.0010468Z         "int": {
2026-06-07T23:26:21.0010565Z           "complete": true,
2026-06-07T23:26:21.0010655Z           "evidence": [
2026-06-07T23:26:21.0010740Z             {
2026-06-07T23:26:21.0010866Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T23:26:21.0011045Z               "line": 255
2026-06-07T23:26:21.0011132Z             }
2026-06-07T23:26:21.0011218Z           ]
2026-06-07T23:26:21.0011308Z         },
2026-06-07T23:26:21.0011394Z         "unit": {
2026-06-07T23:26:21.0011485Z           "complete": true,
2026-06-07T23:26:21.0011580Z           "evidence": [
2026-06-07T23:26:21.0011661Z             {
2026-06-07T23:26:21.0011781Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-07T23:26:21.0011867Z               "line": 161
2026-06-07T23:26:21.0011956Z             },
2026-06-07T23:26:21.0012038Z             {
2026-06-07T23:26:21.0012149Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-07T23:26:21.0012247Z               "line": 168
2026-06-07T23:26:21.0012332Z             },
2026-06-07T23:26:21.0012418Z             {
2026-06-07T23:26:21.0012531Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-07T23:26:21.0012621Z               "line": 191
2026-06-07T23:26:21.0012711Z             },
2026-06-07T23:26:21.0012798Z             {
2026-06-07T23:26:21.0012898Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-07T23:26:21.0012987Z               "line": 106
2026-06-07T23:26:21.0013088Z             },
2026-06-07T23:26:21.0013179Z             {
2026-06-07T23:26:21.0013321Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-07T23:26:21.0013408Z               "line": 137
2026-06-07T23:26:21.0013494Z             },
2026-06-07T23:26:21.0013579Z             {
2026-06-07T23:26:21.0013689Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-07T23:26:21.0013780Z               "line": 161
2026-06-07T23:26:21.0013865Z             }
2026-06-07T23:26:21.0013951Z           ]
2026-06-07T23:26:21.0014038Z         }
2026-06-07T23:26:21.0014123Z       }
2026-06-07T23:26:21.0014208Z     },
2026-06-07T23:26:21.0014294Z     {
2026-06-07T23:26:21.0014391Z       "id": "REQ-SEAM-RESUME",
2026-06-07T23:26:21.0014571Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-07T23:26:21.0014672Z       "requiredStages": [
2026-06-07T23:26:21.0014762Z         "impl",
2026-06-07T23:26:21.0014847Z         "unit"
2026-06-07T23:26:21.0014933Z       ],
2026-06-07T23:26:21.0015016Z       "stages": {
2026-06-07T23:26:21.0015106Z         "doc": {
2026-06-07T23:26:21.0015199Z           "complete": false,
2026-06-07T23:26:21.0015294Z           "evidence": []
2026-06-07T23:26:21.0015377Z         },
2026-06-07T23:26:21.0015462Z         "impl": {
2026-06-07T23:26:21.0015556Z           "complete": true,
2026-06-07T23:26:21.0015648Z           "evidence": [
2026-06-07T23:26:21.0015734Z             {
2026-06-07T23:26:21.0015848Z               "path": "crates/spt-live/src/resume.rs",
2026-06-07T23:26:21.0015943Z               "line": 19
2026-06-07T23:26:21.0016030Z             }
2026-06-07T23:26:21.0016115Z           ]
2026-06-07T23:26:21.0016200Z         },
2026-06-07T23:26:21.0016288Z         "int": {
2026-06-07T23:26:21.0016382Z           "complete": false,
2026-06-07T23:26:21.0016472Z           "evidence": []
2026-06-07T23:26:21.0016559Z         },
2026-06-07T23:26:21.0016640Z         "unit": {
2026-06-07T23:26:21.0016739Z           "complete": true,
2026-06-07T23:26:21.0016834Z           "evidence": [
2026-06-07T23:26:21.0016917Z             {
2026-06-07T23:26:21.0017144Z               "path": "crates/spt-live/src/resume.rs",
2026-06-07T23:26:21.0017237Z               "line": 179
2026-06-07T23:26:21.0017322Z             },
2026-06-07T23:26:21.0017406Z             {
2026-06-07T23:26:21.0017522Z               "path": "crates/spt-live/src/resume.rs",
2026-06-07T23:26:21.0017618Z               "line": 201
2026-06-07T23:26:21.0017702Z             },
2026-06-07T23:26:21.0017787Z             {
2026-06-07T23:26:21.0017996Z               "path": "crates/spt-live/src/resume.rs",
2026-06-07T23:26:21.0018090Z               "line": 222
2026-06-07T23:26:21.0018176Z             }
2026-06-07T23:26:21.0018263Z           ]
2026-06-07T23:26:21.0018659Z         }
2026-06-07T23:26:21.0018854Z       }
2026-06-07T23:26:21.0018972Z     },
2026-06-07T23:26:21.0019053Z     {
2026-06-07T23:26:21.0019155Z       "id": "REQ-SEAM-SPAWN",
2026-06-07T23:26:21.0019259Z       "title": "spawn-session seam",
2026-06-07T23:26:21.0019358Z       "requiredStages": [
2026-06-07T23:26:21.0019444Z         "impl",
2026-06-07T23:26:21.0019522Z         "unit"
2026-06-07T23:26:21.0019606Z       ],
2026-06-07T23:26:21.0019687Z       "stages": {
2026-06-07T23:26:21.0019774Z         "doc": {
2026-06-07T23:26:21.0019865Z           "complete": false,
2026-06-07T23:26:21.0019954Z           "evidence": []
2026-06-07T23:26:21.0020041Z         },
2026-06-07T23:26:21.0020127Z         "impl": {
2026-06-07T23:26:21.0020222Z           "complete": true,
2026-06-07T23:26:21.0020368Z           "evidence": [
2026-06-07T23:26:21.0020478Z             {
2026-06-07T23:26:21.0020628Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:21.0020738Z               "line": 20
2026-06-07T23:26:21.0020824Z             }
2026-06-07T23:26:21.0020910Z           ]
2026-06-07T23:26:21.0020995Z         },
2026-06-07T23:26:21.0021081Z         "int": {
2026-06-07T23:26:21.0021177Z           "complete": false,
2026-06-07T23:26:21.0021267Z           "evidence": []
2026-06-07T23:26:21.0021353Z         },
2026-06-07T23:26:21.0021445Z         "unit": {
2026-06-07T23:26:21.0021535Z           "complete": true,
2026-06-07T23:26:21.0021625Z           "evidence": [
2026-06-07T23:26:21.0021711Z             {
2026-06-07T23:26:21.0021835Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:21.0021925Z               "line": 435
2026-06-07T23:26:21.0022012Z             },
2026-06-07T23:26:21.0022098Z             {
2026-06-07T23:26:21.0022221Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:21.0022311Z               "line": 442
2026-06-07T23:26:21.0022394Z             },
2026-06-07T23:26:21.0022483Z             {
2026-06-07T23:26:21.0022598Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:21.0022689Z               "line": 452
2026-06-07T23:26:21.0022779Z             },
2026-06-07T23:26:21.0022864Z             {
2026-06-07T23:26:21.0022978Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:21.0023064Z               "line": 458
2026-06-07T23:26:21.0023152Z             },
2026-06-07T23:26:21.0023242Z             {
2026-06-07T23:26:21.0023358Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:21.0023448Z               "line": 483
2026-06-07T23:26:21.0023534Z             },
2026-06-07T23:26:21.0023615Z             {
2026-06-07T23:26:21.0023730Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T23:26:21.0023824Z               "line": 520
2026-06-07T23:26:21.0023915Z             }
2026-06-07T23:26:21.0024002Z           ]
2026-06-07T23:26:21.0024077Z         }
2026-06-07T23:26:21.0024163Z       }
2026-06-07T23:26:21.0024249Z     },
2026-06-07T23:26:21.0024335Z     {
2026-06-07T23:26:21.0024435Z       "id": "REQ-SEAM-UPDATE",
2026-06-07T23:26:21.0024608Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-07T23:26:21.0024702Z       "requiredStages": [
2026-06-07T23:26:21.0024788Z         "impl",
2026-06-07T23:26:21.0024874Z         "unit"
2026-06-07T23:26:21.0024965Z       ],
2026-06-07T23:26:21.0025059Z       "stages": {
2026-06-07T23:26:21.0025145Z         "doc": {
2026-06-07T23:26:21.0025242Z           "complete": false,
2026-06-07T23:26:21.0025332Z           "evidence": []
2026-06-07T23:26:21.0025421Z         },
2026-06-07T23:26:21.0025508Z         "impl": {
2026-06-07T23:26:21.0025604Z           "complete": true,
2026-06-07T23:26:21.0025698Z           "evidence": [
2026-06-07T23:26:21.0025778Z             {
2026-06-07T23:26:21.0025989Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:21.0026084Z               "line": 28
2026-06-07T23:26:21.0026169Z             },
2026-06-07T23:26:21.0026256Z             {
2026-06-07T23:26:21.0026384Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:21.0026561Z               "line": 83
2026-06-07T23:26:21.0026647Z             }
2026-06-07T23:26:21.0026732Z           ]
2026-06-07T23:26:21.0026813Z         },
2026-06-07T23:26:21.0026900Z         "int": {
2026-06-07T23:26:21.0027084Z           "complete": false,
2026-06-07T23:26:21.0027177Z           "evidence": []
2026-06-07T23:26:21.0027257Z         },
2026-06-07T23:26:21.0027347Z         "unit": {
2026-06-07T23:26:21.0027438Z           "complete": true,
2026-06-07T23:26:21.0027529Z           "evidence": [
2026-06-07T23:26:21.0027614Z             {
2026-06-07T23:26:21.0027906Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:21.0028000Z               "line": 285
2026-06-07T23:26:21.0028082Z             },
2026-06-07T23:26:21.0028169Z             {
2026-06-07T23:26:21.0028286Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:21.0028371Z               "line": 296
2026-06-07T23:26:21.0028467Z             }
2026-06-07T23:26:21.0028556Z           ]
2026-06-07T23:26:21.0028674Z         }
2026-06-07T23:26:21.0028751Z       }
2026-06-07T23:26:21.0028837Z     },
2026-06-07T23:26:21.0028923Z     {
2026-06-07T23:26:21.0029012Z       "id": "REQ-SEC-1",
2026-06-07T23:26:21.0029385Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-07T23:26:21.0029481Z       "requiredStages": [
2026-06-07T23:26:21.0029571Z         "impl",
2026-06-07T23:26:21.0029656Z         "unit"
2026-06-07T23:26:21.0029738Z       ],
2026-06-07T23:26:21.0029828Z       "stages": {
2026-06-07T23:26:21.0029914Z         "doc": {
2026-06-07T23:26:21.0030009Z           "complete": false,
2026-06-07T23:26:21.0030101Z           "evidence": []
2026-06-07T23:26:21.0030185Z         },
2026-06-07T23:26:21.0030271Z         "impl": {
2026-06-07T23:26:21.0030363Z           "complete": true,
2026-06-07T23:26:21.0030453Z           "evidence": [
2026-06-07T23:26:21.0030544Z             {
2026-06-07T23:26:21.0030664Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T23:26:21.0030754Z               "line": 84
2026-06-07T23:26:21.0030838Z             },
2026-06-07T23:26:21.0030924Z             {
2026-06-07T23:26:21.0031038Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T23:26:21.0031132Z               "line": 114
2026-06-07T23:26:21.0031217Z             },
2026-06-07T23:26:21.0031303Z             {
2026-06-07T23:26:21.0031413Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T23:26:21.0031503Z               "line": 128
2026-06-07T23:26:21.0031589Z             },
2026-06-07T23:26:21.0031671Z             {
2026-06-07T23:26:21.0031795Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T23:26:21.0031884Z               "line": 108
2026-06-07T23:26:21.0031971Z             },
2026-06-07T23:26:21.0032056Z             {
2026-06-07T23:26:21.0032170Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T23:26:21.0032267Z               "line": 129
2026-06-07T23:26:21.0032357Z             },
2026-06-07T23:26:21.0032443Z             {
2026-06-07T23:26:21.0032552Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T23:26:21.0032644Z               "line": 142
2026-06-07T23:26:21.0032728Z             },
2026-06-07T23:26:21.0032814Z             {
2026-06-07T23:26:21.0032925Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T23:26:21.0033024Z               "line": 208
2026-06-07T23:26:21.0033110Z             },
2026-06-07T23:26:21.0033191Z             {
2026-06-07T23:26:21.0033307Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T23:26:21.0033504Z               "line": 234
2026-06-07T23:26:21.0033596Z             },
2026-06-07T23:26:21.0033689Z             {
2026-06-07T23:26:21.0033798Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0033889Z               "line": 3313
2026-06-07T23:26:21.0033971Z             }
2026-06-07T23:26:21.0034170Z           ]
2026-06-07T23:26:21.0034252Z         },
2026-06-07T23:26:21.0034337Z         "int": {
2026-06-07T23:26:21.0034432Z           "complete": false,
2026-06-07T23:26:21.0034523Z           "evidence": []
2026-06-07T23:26:21.0034609Z         },
2026-06-07T23:26:21.0034694Z         "unit": {
2026-06-07T23:26:21.0034789Z           "complete": true,
2026-06-07T23:26:21.0034877Z           "evidence": [
2026-06-07T23:26:21.0034966Z             {
2026-06-07T23:26:21.0035081Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T23:26:21.0035172Z               "line": 140
2026-06-07T23:26:21.0035257Z             },
2026-06-07T23:26:21.0035338Z             {
2026-06-07T23:26:21.0035463Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T23:26:21.0035553Z               "line": 192
2026-06-07T23:26:21.0035638Z             },
2026-06-07T23:26:21.0035725Z             {
2026-06-07T23:26:21.0035840Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T23:26:21.0035934Z               "line": 233
2026-06-07T23:26:21.0036020Z             },
2026-06-07T23:26:21.0036107Z             {
2026-06-07T23:26:21.0036221Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-07T23:26:21.0036315Z               "line": 137
2026-06-07T23:26:21.0036405Z             },
2026-06-07T23:26:21.0036487Z             {
2026-06-07T23:26:21.0036601Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T23:26:21.0036690Z               "line": 246
2026-06-07T23:26:21.0036778Z             },
2026-06-07T23:26:21.0036859Z             {
2026-06-07T23:26:21.0037117Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T23:26:21.0037212Z               "line": 276
2026-06-07T23:26:21.0037302Z             },
2026-06-07T23:26:21.0037383Z             {
2026-06-07T23:26:21.0037507Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T23:26:21.0037616Z               "line": 309
2026-06-07T23:26:21.0037702Z             },
2026-06-07T23:26:21.0037794Z             {
2026-06-07T23:26:21.0037907Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T23:26:21.0037993Z               "line": 328
2026-06-07T23:26:21.0038080Z             },
2026-06-07T23:26:21.0038165Z             {
2026-06-07T23:26:21.0038279Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T23:26:21.0038371Z               "line": 361
2026-06-07T23:26:21.0038456Z             },
2026-06-07T23:26:21.0038541Z             {
2026-06-07T23:26:21.0038652Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T23:26:21.0038743Z               "line": 385
2026-06-07T23:26:21.0038827Z             },
2026-06-07T23:26:21.0038917Z             {
2026-06-07T23:26:21.0039027Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0039121Z               "line": 4871
2026-06-07T23:26:21.0039205Z             }
2026-06-07T23:26:21.0039291Z           ]
2026-06-07T23:26:21.0039378Z         }
2026-06-07T23:26:21.0039459Z       }
2026-06-07T23:26:21.0039553Z     },
2026-06-07T23:26:21.0039635Z     {
2026-06-07T23:26:21.0039731Z       "id": "REQ-SHELL-1",
2026-06-07T23:26:21.0040574Z       "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-07T23:26:21.0040670Z       "requiredStages": [
2026-06-07T23:26:21.0040760Z         "impl",
2026-06-07T23:26:21.0040846Z         "unit",
2026-06-07T23:26:21.0040933Z         "int"
2026-06-07T23:26:21.0041023Z       ],
2026-06-07T23:26:21.0041234Z       "stages": {
2026-06-07T23:26:21.0041328Z         "doc": {
2026-06-07T23:26:21.0041422Z           "complete": false,
2026-06-07T23:26:21.0041512Z           "evidence": []
2026-06-07T23:26:21.0041598Z         },
2026-06-07T23:26:21.0041683Z         "impl": {
2026-06-07T23:26:21.0041777Z           "complete": true,
2026-06-07T23:26:21.0041954Z           "evidence": [
2026-06-07T23:26:21.0042044Z             {
2026-06-07T23:26:21.0042163Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T23:26:21.0042260Z               "line": 94
2026-06-07T23:26:21.0042345Z             },
2026-06-07T23:26:21.0042435Z             {
2026-06-07T23:26:21.0042555Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T23:26:21.0042640Z               "line": 119
2026-06-07T23:26:21.0042726Z             },
2026-06-07T23:26:21.0042812Z             {
2026-06-07T23:26:21.0042936Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T23:26:21.0043022Z               "line": 27
2026-06-07T23:26:21.0043112Z             },
2026-06-07T23:26:21.0043204Z             {
2026-06-07T23:26:21.0043317Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T23:26:21.0043413Z               "line": 52
2026-06-07T23:26:21.0043495Z             },
2026-06-07T23:26:21.0043589Z             {
2026-06-07T23:26:21.0043708Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T23:26:21.0043795Z               "line": 132
2026-06-07T23:26:21.0043886Z             },
2026-06-07T23:26:21.0043970Z             {
2026-06-07T23:26:21.0044083Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T23:26:21.0044170Z               "line": 164
2026-06-07T23:26:21.0044259Z             },
2026-06-07T23:26:21.0044339Z             {
2026-06-07T23:26:21.0044458Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0044546Z               "line": 22
2026-06-07T23:26:21.0044634Z             },
2026-06-07T23:26:21.0044720Z             {
2026-06-07T23:26:21.0044835Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0044930Z               "line": 65
2026-06-07T23:26:21.0045016Z             },
2026-06-07T23:26:21.0045103Z             {
2026-06-07T23:26:21.0045222Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0045316Z               "line": 76
2026-06-07T23:26:21.0045403Z             },
2026-06-07T23:26:21.0045488Z             {
2026-06-07T23:26:21.0045612Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0045699Z               "line": 150
2026-06-07T23:26:21.0045785Z             },
2026-06-07T23:26:21.0045869Z             {
2026-06-07T23:26:21.0045984Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0046076Z               "line": 209
2026-06-07T23:26:21.0046160Z             },
2026-06-07T23:26:21.0046241Z             {
2026-06-07T23:26:21.0046362Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0046452Z               "line": 246
2026-06-07T23:26:21.0046537Z             },
2026-06-07T23:26:21.0046623Z             {
2026-06-07T23:26:21.0046744Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0046827Z               "line": 267
2026-06-07T23:26:21.0046917Z             },
2026-06-07T23:26:21.0047100Z             {
2026-06-07T23:26:21.0047213Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0047304Z               "line": 280
2026-06-07T23:26:21.0047386Z             },
2026-06-07T23:26:21.0047476Z             {
2026-06-07T23:26:21.0047590Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:21.0047677Z               "line": 189
2026-06-07T23:26:21.0047763Z             },
2026-06-07T23:26:21.0047847Z             {
2026-06-07T23:26:21.0047963Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:21.0048048Z               "line": 205
2026-06-07T23:26:21.0048129Z             },
2026-06-07T23:26:21.0048219Z             {
2026-06-07T23:26:21.0048434Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T23:26:21.0048544Z               "line": 41
2026-06-07T23:26:21.0048636Z             },
2026-06-07T23:26:21.0048744Z             {
2026-06-07T23:26:21.0048858Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T23:26:21.0049035Z               "line": 204
2026-06-07T23:26:21.0049130Z             },
2026-06-07T23:26:21.0049212Z             {
2026-06-07T23:26:21.0049331Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T23:26:21.0049421Z               "line": 156
2026-06-07T23:26:21.0049506Z             },
2026-06-07T23:26:21.0049587Z             {
2026-06-07T23:26:21.0049700Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T23:26:21.0049789Z               "line": 295
2026-06-07T23:26:21.0049876Z             },
2026-06-07T23:26:21.0049962Z             {
2026-06-07T23:26:21.0050076Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T23:26:21.0050171Z               "line": 345
2026-06-07T23:26:21.0050257Z             },
2026-06-07T23:26:21.0050344Z             {
2026-06-07T23:26:21.0050462Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:21.0050553Z               "line": 261
2026-06-07T23:26:21.0050643Z             },
2026-06-07T23:26:21.0050729Z             {
2026-06-07T23:26:21.0050840Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0050930Z               "line": 3811
2026-06-07T23:26:21.0051015Z             },
2026-06-07T23:26:21.0051101Z             {
2026-06-07T23:26:21.0051202Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0051296Z               "line": 3961
2026-06-07T23:26:21.0051378Z             },
2026-06-07T23:26:21.0051464Z             {
2026-06-07T23:26:21.0051564Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0051659Z               "line": 3998
2026-06-07T23:26:21.0051745Z             }
2026-06-07T23:26:21.0051832Z           ]
2026-06-07T23:26:21.0051921Z         },
2026-06-07T23:26:21.0052011Z         "int": {
2026-06-07T23:26:21.0052106Z           "complete": true,
2026-06-07T23:26:21.0052196Z           "evidence": [
2026-06-07T23:26:21.0052285Z             {
2026-06-07T23:26:21.0052413Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T23:26:21.0052510Z               "line": 695
2026-06-07T23:26:21.0052595Z             },
2026-06-07T23:26:21.0052680Z             {
2026-06-07T23:26:21.0052810Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-07T23:26:21.0052896Z               "line": 8
2026-06-07T23:26:21.0052980Z             },
2026-06-07T23:26:21.0053067Z             {
2026-06-07T23:26:21.0053191Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-07T23:26:21.0053281Z               "line": 49
2026-06-07T23:26:21.0053362Z             },
2026-06-07T23:26:21.0053449Z             {
2026-06-07T23:26:21.0053568Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:21.0053663Z               "line": 706
2026-06-07T23:26:21.0053755Z             },
2026-06-07T23:26:21.0053839Z             {
2026-06-07T23:26:21.0053953Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:21.0054045Z               "line": 1116
2026-06-07T23:26:21.0054140Z             },
2026-06-07T23:26:21.0054226Z             {
2026-06-07T23:26:21.0054346Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-07T23:26:21.0054441Z               "line": 17
2026-06-07T23:26:21.0054525Z             },
2026-06-07T23:26:21.0054611Z             {
2026-06-07T23:26:21.0054725Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-07T23:26:21.0054814Z               "line": 14
2026-06-07T23:26:21.0054899Z             }
2026-06-07T23:26:21.0054985Z           ]
2026-06-07T23:26:21.0055071Z         },
2026-06-07T23:26:21.0055162Z         "unit": {
2026-06-07T23:26:21.0055257Z           "complete": true,
2026-06-07T23:26:21.0055348Z           "evidence": [
2026-06-07T23:26:21.0055434Z             {
2026-06-07T23:26:21.0055629Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T23:26:21.0055729Z               "line": 234
2026-06-07T23:26:21.0055819Z             },
2026-06-07T23:26:21.0055901Z             {
2026-06-07T23:26:21.0056025Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T23:26:21.0056177Z               "line": 267
2026-06-07T23:26:21.0056264Z             },
2026-06-07T23:26:21.0056350Z             {
2026-06-07T23:26:21.0056468Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T23:26:21.0056559Z               "line": 307
2026-06-07T23:26:21.0056646Z             },
2026-06-07T23:26:21.0056730Z             {
2026-06-07T23:26:21.0056845Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0056936Z               "line": 519
2026-06-07T23:26:21.0057111Z             },
2026-06-07T23:26:21.0057193Z             {
2026-06-07T23:26:21.0057313Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0057416Z               "line": 592
2026-06-07T23:26:21.0057506Z             },
2026-06-07T23:26:21.0057588Z             {
2026-06-07T23:26:21.0057707Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0057802Z               "line": 736
2026-06-07T23:26:21.0057893Z             },
2026-06-07T23:26:21.0057979Z             {
2026-06-07T23:26:21.0058093Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:21.0058184Z               "line": 567
2026-06-07T23:26:21.0058265Z             },
2026-06-07T23:26:21.0058355Z             {
2026-06-07T23:26:21.0058474Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T23:26:21.0058566Z               "line": 352
2026-06-07T23:26:21.0058656Z             },
2026-06-07T23:26:21.0058741Z             {
2026-06-07T23:26:21.0058847Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0058937Z               "line": 5219
2026-06-07T23:26:21.0059032Z             },
2026-06-07T23:26:21.0059123Z             {
2026-06-07T23:26:21.0059228Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0059318Z               "line": 5541
2026-06-07T23:26:21.0059404Z             },
2026-06-07T23:26:21.0059491Z             {
2026-06-07T23:26:21.0059595Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0059685Z               "line": 5907
2026-06-07T23:26:21.0059773Z             }
2026-06-07T23:26:21.0059858Z           ]
2026-06-07T23:26:21.0059942Z         }
2026-06-07T23:26:21.0060027Z       }
2026-06-07T23:26:21.0060113Z     },
2026-06-07T23:26:21.0060199Z     {
2026-06-07T23:26:21.0060298Z       "id": "REQ-SHELL-2",
2026-06-07T23:26:21.0061800Z       "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-07T23:26:21.0061900Z       "requiredStages": [
2026-06-07T23:26:21.0061990Z         "impl",
2026-06-07T23:26:21.0062077Z         "unit",
2026-06-07T23:26:21.0062166Z         "int"
2026-06-07T23:26:21.0062252Z       ],
2026-06-07T23:26:21.0062339Z       "stages": {
2026-06-07T23:26:21.0062425Z         "doc": {
2026-06-07T23:26:21.0062519Z           "complete": false,
2026-06-07T23:26:21.0062613Z           "evidence": []
2026-06-07T23:26:21.0062695Z         },
2026-06-07T23:26:21.0062794Z         "impl": {
2026-06-07T23:26:21.0062887Z           "complete": true,
2026-06-07T23:26:21.0062978Z           "evidence": [
2026-06-07T23:26:21.0063065Z             {
2026-06-07T23:26:21.0063188Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:21.0063279Z               "line": 235
2026-06-07T23:26:21.0063366Z             },
2026-06-07T23:26:21.0063550Z             {
2026-06-07T23:26:21.0063680Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T23:26:21.0063765Z               "line": 389
2026-06-07T23:26:21.0063856Z             },
2026-06-07T23:26:21.0063937Z             {
2026-06-07T23:26:21.0064056Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T23:26:21.0064247Z               "line": 250
2026-06-07T23:26:21.0064333Z             },
2026-06-07T23:26:21.0064418Z             {
2026-06-07T23:26:21.0064538Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:21.0064629Z               "line": 310
2026-06-07T23:26:21.0064714Z             },
2026-06-07T23:26:21.0064800Z             {
2026-06-07T23:26:21.0064921Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T23:26:21.0065011Z               "line": 30
2026-06-07T23:26:21.0065094Z             },
2026-06-07T23:26:21.0065180Z             {
2026-06-07T23:26:21.0065300Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T23:26:21.0065393Z               "line": 150
2026-06-07T23:26:21.0065483Z             },
2026-06-07T23:26:21.0065569Z             {
2026-06-07T23:26:21.0065685Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T23:26:21.0065778Z               "line": 186
2026-06-07T23:26:21.0065870Z             },
2026-06-07T23:26:21.0065961Z             {
2026-06-07T23:26:21.0066079Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T23:26:21.0066170Z               "line": 345
2026-06-07T23:26:21.0066256Z             },
2026-06-07T23:26:21.0066342Z             {
2026-06-07T23:26:21.0066461Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:21.0066552Z               "line": 348
2026-06-07T23:26:21.0066637Z             },
2026-06-07T23:26:21.0066723Z             {
2026-06-07T23:26:21.0066848Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T23:26:21.0067038Z               "line": 115
2026-06-07T23:26:21.0067124Z             },
2026-06-07T23:26:21.0067215Z             {
2026-06-07T23:26:21.0067333Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0067429Z               "line": 120
2026-06-07T23:26:21.0067511Z             },
2026-06-07T23:26:21.0067600Z             {
2026-06-07T23:26:21.0067720Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0067811Z               "line": 360
2026-06-07T23:26:21.0067901Z             },
2026-06-07T23:26:21.0067986Z             {
2026-06-07T23:26:21.0068105Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0068196Z               "line": 464
2026-06-07T23:26:21.0068286Z             },
2026-06-07T23:26:21.0068381Z             {
2026-06-07T23:26:21.0068497Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0068587Z               "line": 24
2026-06-07T23:26:21.0068672Z             },
2026-06-07T23:26:21.0068758Z             {
2026-06-07T23:26:21.0068883Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0068967Z               "line": 76
2026-06-07T23:26:21.0069059Z             },
2026-06-07T23:26:21.0069140Z             {
2026-06-07T23:26:21.0069263Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0069354Z               "line": 154
2026-06-07T23:26:21.0069446Z             },
2026-06-07T23:26:21.0069535Z             {
2026-06-07T23:26:21.0069650Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0069746Z               "line": 177
2026-06-07T23:26:21.0069835Z             },
2026-06-07T23:26:21.0069921Z             {
2026-06-07T23:26:21.0070037Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0070132Z               "line": 273
2026-06-07T23:26:21.0070221Z             },
2026-06-07T23:26:21.0070303Z             {
2026-06-07T23:26:21.0070419Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0070507Z               "line": 450
2026-06-07T23:26:21.0070698Z             },
2026-06-07T23:26:21.0070787Z             {
2026-06-07T23:26:21.0070905Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0070996Z               "line": 532
2026-06-07T23:26:21.0071082Z             },
2026-06-07T23:26:21.0071167Z             {
2026-06-07T23:26:21.0071368Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-07T23:26:21.0071459Z               "line": 27
2026-06-07T23:26:21.0071544Z             },
2026-06-07T23:26:21.0071630Z             {
2026-06-07T23:26:21.0071744Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-07T23:26:21.0071835Z               "line": 43
2026-06-07T23:26:21.0071945Z             },
2026-06-07T23:26:21.0072031Z             {
2026-06-07T23:26:21.0072154Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:21.0072241Z               "line": 323
2026-06-07T23:26:21.0072327Z             },
2026-06-07T23:26:21.0072416Z             {
2026-06-07T23:26:21.0072526Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0072618Z               "line": 1194
2026-06-07T23:26:21.0072703Z             },
2026-06-07T23:26:21.0072789Z             {
2026-06-07T23:26:21.0072890Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0072990Z               "line": 3825
2026-06-07T23:26:21.0073112Z             },
2026-06-07T23:26:21.0073197Z             {
2026-06-07T23:26:21.0073307Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0073396Z               "line": 3886
2026-06-07T23:26:21.0073486Z             },
2026-06-07T23:26:21.0073567Z             {
2026-06-07T23:26:21.0073672Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0073763Z               "line": 3914
2026-06-07T23:26:21.0073848Z             },
2026-06-07T23:26:21.0073940Z             {
2026-06-07T23:26:21.0074039Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0076048Z               "line": 3968
2026-06-07T23:26:21.0076148Z             },
2026-06-07T23:26:21.0076240Z             {
2026-06-07T23:26:21.0076353Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0076444Z               "line": 4084
2026-06-07T23:26:21.0076530Z             },
2026-06-07T23:26:21.0076616Z             {
2026-06-07T23:26:21.0076720Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0076816Z               "line": 4137
2026-06-07T23:26:21.0076902Z             },
2026-06-07T23:26:21.0077074Z             {
2026-06-07T23:26:21.0077188Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T23:26:21.0077278Z               "line": 298
2026-06-07T23:26:21.0077359Z             },
2026-06-07T23:26:21.0077446Z             {
2026-06-07T23:26:21.0077554Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T23:26:21.0077645Z               "line": 339
2026-06-07T23:26:21.0077728Z             }
2026-06-07T23:26:21.0077813Z           ]
2026-06-07T23:26:21.0077898Z         },
2026-06-07T23:26:21.0077984Z         "int": {
2026-06-07T23:26:21.0078090Z           "complete": true,
2026-06-07T23:26:21.0078179Z           "evidence": [
2026-06-07T23:26:21.0078260Z             {
2026-06-07T23:26:21.0078391Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T23:26:21.0078480Z               "line": 688
2026-06-07T23:26:21.0078569Z             },
2026-06-07T23:26:21.0078655Z             {
2026-06-07T23:26:21.0078780Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:21.0078869Z               "line": 706
2026-06-07T23:26:21.0078955Z             },
2026-06-07T23:26:21.0079038Z             {
2026-06-07T23:26:21.0079161Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:21.0079251Z               "line": 1116
2026-06-07T23:26:21.0079333Z             },
2026-06-07T23:26:21.0079418Z             {
2026-06-07T23:26:21.0079551Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-07T23:26:21.0079638Z               "line": 18
2026-06-07T23:26:21.0079715Z             }
2026-06-07T23:26:21.0079904Z           ]
2026-06-07T23:26:21.0079991Z         },
2026-06-07T23:26:21.0080076Z         "unit": {
2026-06-07T23:26:21.0080171Z           "complete": true,
2026-06-07T23:26:21.0080253Z           "evidence": [
2026-06-07T23:26:21.0080340Z             {
2026-06-07T23:26:21.0080626Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T23:26:21.0080715Z               "line": 429
2026-06-07T23:26:21.0080801Z             },
2026-06-07T23:26:21.0080883Z             {
2026-06-07T23:26:21.0081007Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T23:26:21.0081096Z               "line": 794
2026-06-07T23:26:21.0081181Z             },
2026-06-07T23:26:21.0081267Z             {
2026-06-07T23:26:21.0081384Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0081475Z               "line": 625
2026-06-07T23:26:21.0081556Z             },
2026-06-07T23:26:21.0081638Z             {
2026-06-07T23:26:21.0081765Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0081852Z               "line": 674
2026-06-07T23:26:21.0081938Z             },
2026-06-07T23:26:21.0082024Z             {
2026-06-07T23:26:21.0082137Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T23:26:21.0082229Z               "line": 698
2026-06-07T23:26:21.0082319Z             },
2026-06-07T23:26:21.0082404Z             {
2026-06-07T23:26:21.0082520Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0082610Z               "line": 596
2026-06-07T23:26:21.0082690Z             },
2026-06-07T23:26:21.0082781Z             {
2026-06-07T23:26:21.0082897Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0082986Z               "line": 617
2026-06-07T23:26:21.0083067Z             },
2026-06-07T23:26:21.0083154Z             {
2026-06-07T23:26:21.0083272Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0083358Z               "line": 653
2026-06-07T23:26:21.0083450Z             },
2026-06-07T23:26:21.0083540Z             {
2026-06-07T23:26:21.0083658Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0083748Z               "line": 707
2026-06-07T23:26:21.0083839Z             },
2026-06-07T23:26:21.0083923Z             {
2026-06-07T23:26:21.0084041Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0084127Z               "line": 725
2026-06-07T23:26:21.0084214Z             },
2026-06-07T23:26:21.0084294Z             {
2026-06-07T23:26:21.0084409Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0084500Z               "line": 759
2026-06-07T23:26:21.0084585Z             },
2026-06-07T23:26:21.0084666Z             {
2026-06-07T23:26:21.0084782Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T23:26:21.0084871Z               "line": 834
2026-06-07T23:26:21.0084957Z             },
2026-06-07T23:26:21.0085038Z             {
2026-06-07T23:26:21.0085167Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-07T23:26:21.0085257Z               "line": 80
2026-06-07T23:26:21.0085338Z             },
2026-06-07T23:26:21.0085425Z             {
2026-06-07T23:26:21.0085534Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0085629Z               "line": 4698
2026-06-07T23:26:21.0085721Z             },
2026-06-07T23:26:21.0085802Z             {
2026-06-07T23:26:21.0085911Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0085997Z               "line": 5296
2026-06-07T23:26:21.0086083Z             },
2026-06-07T23:26:21.0086168Z             {
2026-06-07T23:26:21.0086267Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0086358Z               "line": 5366
2026-06-07T23:26:21.0086443Z             },
2026-06-07T23:26:21.0086528Z             {
2026-06-07T23:26:21.0086627Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0086713Z               "line": 5404
2026-06-07T23:26:21.0086800Z             }
2026-06-07T23:26:21.0087038Z           ]
2026-06-07T23:26:21.0087124Z         }
2026-06-07T23:26:21.0087199Z       }
2026-06-07T23:26:21.0087285Z     },
2026-06-07T23:26:21.0087367Z     {
2026-06-07T23:26:21.0087462Z       "id": "REQ-START-1",
2026-06-07T23:26:21.0087658Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-07T23:26:21.0087843Z       "requiredStages": [
2026-06-07T23:26:21.0087929Z         "impl",
2026-06-07T23:26:21.0088016Z         "unit"
2026-06-07T23:26:21.0088100Z       ],
2026-06-07T23:26:21.0088191Z       "stages": {
2026-06-07T23:26:21.0088278Z         "doc": {
2026-06-07T23:26:21.0088373Z           "complete": false,
2026-06-07T23:26:21.0088458Z           "evidence": []
2026-06-07T23:26:21.0088544Z         },
2026-06-07T23:26:21.0088631Z         "impl": {
2026-06-07T23:26:21.0088725Z           "complete": true,
2026-06-07T23:26:21.0088811Z           "evidence": [
2026-06-07T23:26:21.0088898Z             {
2026-06-07T23:26:21.0089022Z               "path": "crates/spt-store/src/seed.rs",
2026-06-07T23:26:21.0089110Z               "line": 16
2026-06-07T23:26:21.0089196Z             }
2026-06-07T23:26:21.0089278Z           ]
2026-06-07T23:26:21.0089359Z         },
2026-06-07T23:26:21.0089449Z         "int": {
2026-06-07T23:26:21.0089550Z           "complete": false,
2026-06-07T23:26:21.0089640Z           "evidence": []
2026-06-07T23:26:21.0089726Z         },
2026-06-07T23:26:21.0089816Z         "unit": {
2026-06-07T23:26:21.0089908Z           "complete": true,
2026-06-07T23:26:21.0089993Z           "evidence": [
2026-06-07T23:26:21.0090078Z             {
2026-06-07T23:26:21.0090189Z               "path": "crates/spt-store/src/seed.rs",
2026-06-07T23:26:21.0090280Z               "line": 43
2026-06-07T23:26:21.0090365Z             },
2026-06-07T23:26:21.0090450Z             {
2026-06-07T23:26:21.0090556Z               "path": "crates/spt-store/src/seed.rs",
2026-06-07T23:26:21.0090641Z               "line": 59
2026-06-07T23:26:21.0090746Z             }
2026-06-07T23:26:21.0090866Z           ]
2026-06-07T23:26:21.0090942Z         }
2026-06-07T23:26:21.0091028Z       }
2026-06-07T23:26:21.0091109Z     },
2026-06-07T23:26:21.0091181Z     {
2026-06-07T23:26:21.0091275Z       "id": "REQ-START-2",
2026-06-07T23:26:21.0091414Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-07T23:26:21.0091501Z       "requiredStages": [
2026-06-07T23:26:21.0091595Z         "impl",
2026-06-07T23:26:21.0091694Z         "unit",
2026-06-07T23:26:21.0091799Z         "int"
2026-06-07T23:26:21.0091880Z       ],
2026-06-07T23:26:21.0091968Z       "stages": {
2026-06-07T23:26:21.0092054Z         "doc": {
2026-06-07T23:26:21.0092145Z           "complete": false,
2026-06-07T23:26:21.0092236Z           "evidence": []
2026-06-07T23:26:21.0092316Z         },
2026-06-07T23:26:21.0092402Z         "impl": {
2026-06-07T23:26:21.0092494Z           "complete": true,
2026-06-07T23:26:21.0092584Z           "evidence": [
2026-06-07T23:26:21.0092669Z             {
2026-06-07T23:26:21.0092789Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0092879Z               "line": 16
2026-06-07T23:26:21.0092964Z             },
2026-06-07T23:26:21.0093046Z             {
2026-06-07T23:26:21.0093160Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0093251Z               "line": 100
2026-06-07T23:26:21.0093337Z             },
2026-06-07T23:26:21.0093424Z             {
2026-06-07T23:26:21.0093536Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0093623Z               "line": 208
2026-06-07T23:26:21.0093709Z             }
2026-06-07T23:26:21.0093790Z           ]
2026-06-07T23:26:21.0093875Z         },
2026-06-07T23:26:21.0093957Z         "int": {
2026-06-07T23:26:21.0094048Z           "complete": true,
2026-06-07T23:26:21.0094138Z           "evidence": [
2026-06-07T23:26:21.0094223Z             {
2026-06-07T23:26:21.0094342Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T23:26:21.0094525Z               "line": 182
2026-06-07T23:26:21.0094610Z             }
2026-06-07T23:26:21.0094692Z           ]
2026-06-07T23:26:21.0094779Z         },
2026-06-07T23:26:21.0094864Z         "unit": {
2026-06-07T23:26:21.0094954Z           "complete": true,
2026-06-07T23:26:21.0095041Z           "evidence": [
2026-06-07T23:26:21.0095207Z             {
2026-06-07T23:26:21.0095317Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0095403Z               "line": 421
2026-06-07T23:26:21.0095488Z             },
2026-06-07T23:26:21.0095574Z             {
2026-06-07T23:26:21.0095680Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0095770Z               "line": 454
2026-06-07T23:26:21.0095855Z             }
2026-06-07T23:26:21.0095942Z           ]
2026-06-07T23:26:21.0096023Z         }
2026-06-07T23:26:21.0096108Z       }
2026-06-07T23:26:21.0096190Z     },
2026-06-07T23:26:21.0096271Z     {
2026-06-07T23:26:21.0096366Z       "id": "REQ-START-3",
2026-06-07T23:26:21.0096537Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-07T23:26:21.0096634Z       "requiredStages": [
2026-06-07T23:26:21.0096719Z         "impl",
2026-06-07T23:26:21.0096803Z         "unit",
2026-06-07T23:26:21.0096889Z         "int"
2026-06-07T23:26:21.0097054Z       ],
2026-06-07T23:26:21.0097144Z       "stages": {
2026-06-07T23:26:21.0097225Z         "doc": {
2026-06-07T23:26:21.0097322Z           "complete": false,
2026-06-07T23:26:21.0097407Z           "evidence": []
2026-06-07T23:26:21.0097492Z         },
2026-06-07T23:26:21.0097579Z         "impl": {
2026-06-07T23:26:21.0097669Z           "complete": true,
2026-06-07T23:26:21.0097760Z           "evidence": [
2026-06-07T23:26:21.0097841Z             {
2026-06-07T23:26:21.0097965Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T23:26:21.0098051Z               "line": 23
2026-06-07T23:26:21.0098136Z             },
2026-06-07T23:26:21.0098218Z             {
2026-06-07T23:26:21.0098336Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T23:26:21.0098431Z               "line": 205
2026-06-07T23:26:21.0098514Z             },
2026-06-07T23:26:21.0098595Z             {
2026-06-07T23:26:21.0098709Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T23:26:21.0098800Z               "line": 221
2026-06-07T23:26:21.0098886Z             },
2026-06-07T23:26:21.0098971Z             {
2026-06-07T23:26:21.0099080Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0099168Z               "line": 17
2026-06-07T23:26:21.0099253Z             },
2026-06-07T23:26:21.0099337Z             {
2026-06-07T23:26:21.0099453Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0099539Z               "line": 43
2026-06-07T23:26:21.0099623Z             },
2026-06-07T23:26:21.0099708Z             {
2026-06-07T23:26:21.0099814Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0099904Z               "line": 101
2026-06-07T23:26:21.0099990Z             }
2026-06-07T23:26:21.0100076Z           ]
2026-06-07T23:26:21.0100163Z         },
2026-06-07T23:26:21.0100244Z         "int": {
2026-06-07T23:26:21.0100338Z           "complete": true,
2026-06-07T23:26:21.0100424Z           "evidence": [
2026-06-07T23:26:21.0100511Z             {
2026-06-07T23:26:21.0100629Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T23:26:21.0100719Z               "line": 436
2026-06-07T23:26:21.0100806Z             }
2026-06-07T23:26:21.0100886Z           ]
2026-06-07T23:26:21.0100972Z         },
2026-06-07T23:26:21.0101053Z         "unit": {
2026-06-07T23:26:21.0101150Z           "complete": true,
2026-06-07T23:26:21.0101234Z           "evidence": [
2026-06-07T23:26:21.0101320Z             {
2026-06-07T23:26:21.0101436Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T23:26:21.0101525Z               "line": 331
2026-06-07T23:26:21.0101611Z             },
2026-06-07T23:26:21.0101693Z             {
2026-06-07T23:26:21.0101901Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T23:26:21.0101998Z               "line": 352
2026-06-07T23:26:21.0102080Z             },
2026-06-07T23:26:21.0102155Z             {
2026-06-07T23:26:21.0102268Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T23:26:21.0102445Z               "line": 362
2026-06-07T23:26:21.0102514Z             },
2026-06-07T23:26:21.0102595Z             {
2026-06-07T23:26:21.0102720Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0102820Z               "line": 422
2026-06-07T23:26:21.0102905Z             },
2026-06-07T23:26:21.0102986Z             {
2026-06-07T23:26:21.0103105Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0103209Z               "line": 455
2026-06-07T23:26:21.0103311Z             },
2026-06-07T23:26:21.0103401Z             {
2026-06-07T23:26:21.0103510Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T23:26:21.0103601Z               "line": 463
2026-06-07T23:26:21.0103688Z             }
2026-06-07T23:26:21.0103773Z           ]
2026-06-07T23:26:21.0103853Z         }
2026-06-07T23:26:21.0103940Z       }
2026-06-07T23:26:21.0104027Z     },
2026-06-07T23:26:21.0104106Z     {
2026-06-07T23:26:21.0104202Z       "id": "REQ-START-4",
2026-06-07T23:26:21.0104342Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-07T23:26:21.0104435Z       "requiredStages": [
2026-06-07T23:26:21.0104522Z         "impl",
2026-06-07T23:26:21.0104608Z         "unit"
2026-06-07T23:26:21.0104694Z       ],
2026-06-07T23:26:21.0104778Z       "stages": {
2026-06-07T23:26:21.0104863Z         "doc": {
2026-06-07T23:26:21.0104950Z           "complete": false,
2026-06-07T23:26:21.0105043Z           "evidence": []
2026-06-07T23:26:21.0105128Z         },
2026-06-07T23:26:21.0105214Z         "impl": {
2026-06-07T23:26:21.0105305Z           "complete": true,
2026-06-07T23:26:21.0105395Z           "evidence": [
2026-06-07T23:26:21.0105476Z             {
2026-06-07T23:26:21.0105597Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:21.0105692Z               "line": 391
2026-06-07T23:26:21.0105776Z             }
2026-06-07T23:26:21.0105863Z           ]
2026-06-07T23:26:21.0105944Z         },
2026-06-07T23:26:21.0106025Z         "int": {
2026-06-07T23:26:21.0106125Z           "complete": false,
2026-06-07T23:26:21.0106212Z           "evidence": []
2026-06-07T23:26:21.0106296Z         },
2026-06-07T23:26:21.0106382Z         "unit": {
2026-06-07T23:26:21.0106473Z           "complete": true,
2026-06-07T23:26:21.0106565Z           "evidence": [
2026-06-07T23:26:21.0106649Z             {
2026-06-07T23:26:21.0106764Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T23:26:21.0106851Z               "line": 660
2026-06-07T23:26:21.0106940Z             }
2026-06-07T23:26:21.0107112Z           ]
2026-06-07T23:26:21.0107204Z         }
2026-06-07T23:26:21.0107288Z       }
2026-06-07T23:26:21.0107378Z     },
2026-06-07T23:26:21.0107463Z     {
2026-06-07T23:26:21.0107558Z       "id": "REQ-STORE-1",
2026-06-07T23:26:21.0108371Z       "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-07T23:26:21.0108473Z       "requiredStages": [
2026-06-07T23:26:21.0108563Z         "impl",
2026-06-07T23:26:21.0108653Z         "unit"
2026-06-07T23:26:21.0108735Z       ],
2026-06-07T23:26:21.0108821Z       "stages": {
2026-06-07T23:26:21.0108906Z         "doc": {
2026-06-07T23:26:21.0109001Z           "complete": false,
2026-06-07T23:26:21.0109093Z           "evidence": []
2026-06-07T23:26:21.0109174Z         },
2026-06-07T23:26:21.0109264Z         "impl": {
2026-06-07T23:26:21.0109355Z           "complete": true,
2026-06-07T23:26:21.0109460Z           "evidence": [
2026-06-07T23:26:21.0109545Z             {
2026-06-07T23:26:21.0109775Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:21.0109864Z               "line": 23
2026-06-07T23:26:21.0109946Z             },
2026-06-07T23:26:21.0110033Z             {
2026-06-07T23:26:21.0110155Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:21.0110330Z               "line": 46
2026-06-07T23:26:21.0110413Z             },
2026-06-07T23:26:21.0110503Z             {
2026-06-07T23:26:21.0110626Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:21.0110708Z               "line": 97
2026-06-07T23:26:21.0110794Z             },
2026-06-07T23:26:21.0110879Z             {
2026-06-07T23:26:21.0110999Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:21.0111095Z               "line": 125
2026-06-07T23:26:21.0111180Z             },
2026-06-07T23:26:21.0111270Z             {
2026-06-07T23:26:21.0111386Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:21.0111485Z               "line": 181
2026-06-07T23:26:21.0111565Z             },
2026-06-07T23:26:21.0111648Z             {
2026-06-07T23:26:21.0111766Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:21.0111856Z               "line": 205
2026-06-07T23:26:21.0111953Z             },
2026-06-07T23:26:21.0112034Z             {
2026-06-07T23:26:21.0112153Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:21.0112239Z               "line": 441
2026-06-07T23:26:21.0112325Z             },
2026-06-07T23:26:21.0112410Z             {
2026-06-07T23:26:21.0112534Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:21.0112621Z               "line": 25
2026-06-07T23:26:21.0112706Z             },
2026-06-07T23:26:21.0112790Z             {
2026-06-07T23:26:21.0112910Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:21.0113000Z               "line": 104
2026-06-07T23:26:21.0113084Z             },
2026-06-07T23:26:21.0113174Z             {
2026-06-07T23:26:21.0113295Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:21.0113385Z               "line": 132
2026-06-07T23:26:21.0113469Z             },
2026-06-07T23:26:21.0113551Z             {
2026-06-07T23:26:21.0113675Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:21.0113765Z               "line": 148
2026-06-07T23:26:21.0113851Z             },
2026-06-07T23:26:21.0113933Z             {
2026-06-07T23:26:21.0114047Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:21.0114142Z               "line": 166
2026-06-07T23:26:21.0114224Z             },
2026-06-07T23:26:21.0114309Z             {
2026-06-07T23:26:21.0114428Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:21.0114515Z               "line": 175
2026-06-07T23:26:21.0114601Z             },
2026-06-07T23:26:21.0114681Z             {
2026-06-07T23:26:21.0114805Z               "path": "crates/spt-store/src/project.rs",
2026-06-07T23:26:21.0114892Z               "line": 16
2026-06-07T23:26:21.0114976Z             },
2026-06-07T23:26:21.0115062Z             {
2026-06-07T23:26:21.0115173Z               "path": "crates/spt-store/src/project.rs",
2026-06-07T23:26:21.0115268Z               "line": 63
2026-06-07T23:26:21.0115352Z             }
2026-06-07T23:26:21.0115437Z           ]
2026-06-07T23:26:21.0115519Z         },
2026-06-07T23:26:21.0115608Z         "int": {
2026-06-07T23:26:21.0115703Z           "complete": false,
2026-06-07T23:26:21.0115789Z           "evidence": []
2026-06-07T23:26:21.0115875Z         },
2026-06-07T23:26:21.0115965Z         "unit": {
2026-06-07T23:26:21.0116060Z           "complete": true,
2026-06-07T23:26:21.0116147Z           "evidence": [
2026-06-07T23:26:21.0116232Z             {
2026-06-07T23:26:21.0116356Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:21.0116442Z               "line": 558
2026-06-07T23:26:21.0116533Z             },
2026-06-07T23:26:21.0116690Z             {
2026-06-07T23:26:21.0116815Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:21.0116900Z               "line": 568
2026-06-07T23:26:21.0117072Z             },
2026-06-07T23:26:21.0117167Z             {
2026-06-07T23:26:21.0117372Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:21.0117463Z               "line": 590
2026-06-07T23:26:21.0117548Z             },
2026-06-07T23:26:21.0117629Z             {
2026-06-07T23:26:21.0117750Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:21.0117834Z               "line": 606
2026-06-07T23:26:21.0117924Z             },
2026-06-07T23:26:21.0118004Z             {
2026-06-07T23:26:21.0118128Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T23:26:21.0118217Z               "line": 629
2026-06-07T23:26:21.0118302Z             },
2026-06-07T23:26:21.0118389Z             {
2026-06-07T23:26:21.0118513Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:21.0118603Z               "line": 440
2026-06-07T23:26:21.0118684Z             },
2026-06-07T23:26:21.0118771Z             {
2026-06-07T23:26:21.0118884Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T23:26:21.0118980Z               "line": 475
2026-06-07T23:26:21.0119066Z             },
2026-06-07T23:26:21.0119152Z             {
2026-06-07T23:26:21.0119270Z               "path": "crates/spt-store/src/project.rs",
2026-06-07T23:26:21.0119358Z               "line": 120
2026-06-07T23:26:21.0119443Z             },
2026-06-07T23:26:21.0119528Z             {
2026-06-07T23:26:21.0119644Z               "path": "crates/spt-store/src/project.rs",
2026-06-07T23:26:21.0119734Z               "line": 128
2026-06-07T23:26:21.0119814Z             }
2026-06-07T23:26:21.0119900Z           ]
2026-06-07T23:26:21.0119983Z         }
2026-06-07T23:26:21.0120067Z       }
2026-06-07T23:26:21.0120158Z     },
2026-06-07T23:26:21.0120239Z     {
2026-06-07T23:26:21.0120340Z       "id": "REQ-SUBNET-1",
2026-06-07T23:26:21.0120650Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-07T23:26:21.0120748Z       "requiredStages": [
2026-06-07T23:26:21.0120833Z         "impl",
2026-06-07T23:26:21.0120920Z         "unit"
2026-06-07T23:26:21.0121002Z       ],
2026-06-07T23:26:21.0121092Z       "stages": {
2026-06-07T23:26:21.0121176Z         "doc": {
2026-06-07T23:26:21.0121268Z           "complete": false,
2026-06-07T23:26:21.0121364Z           "evidence": []
2026-06-07T23:26:21.0121453Z         },
2026-06-07T23:26:21.0121539Z         "impl": {
2026-06-07T23:26:21.0121635Z           "complete": true,
2026-06-07T23:26:21.0121730Z           "evidence": [
2026-06-07T23:26:21.0121815Z             {
2026-06-07T23:26:21.0121941Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:21.0122031Z               "line": 258
2026-06-07T23:26:21.0122116Z             },
2026-06-07T23:26:21.0122203Z             {
2026-06-07T23:26:21.0122327Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:21.0122421Z               "line": 496
2026-06-07T23:26:21.0122508Z             },
2026-06-07T23:26:21.0122589Z             {
2026-06-07T23:26:21.0122703Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0122789Z               "line": 2043
2026-06-07T23:26:21.0122875Z             },
2026-06-07T23:26:21.0122956Z             {
2026-06-07T23:26:21.0123061Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0123153Z               "line": 2208
2026-06-07T23:26:21.0123238Z             },
2026-06-07T23:26:21.0123322Z             {
2026-06-07T23:26:21.0123422Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0123512Z               "line": 2227
2026-06-07T23:26:21.0123602Z             },
2026-06-07T23:26:21.0123686Z             {
2026-06-07T23:26:21.0123787Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0123992Z               "line": 2288
2026-06-07T23:26:21.0124082Z             },
2026-06-07T23:26:21.0124164Z             {
2026-06-07T23:26:21.0124273Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0124368Z               "line": 2330
2026-06-07T23:26:21.0124517Z             },
2026-06-07T23:26:21.0124602Z             {
2026-06-07T23:26:21.0124702Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0124789Z               "line": 2499
2026-06-07T23:26:21.0124874Z             },
2026-06-07T23:26:21.0124960Z             {
2026-06-07T23:26:21.0125065Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0125151Z               "line": 2556
2026-06-07T23:26:21.0125241Z             },
2026-06-07T23:26:21.0125327Z             {
2026-06-07T23:26:21.0125433Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0125527Z               "line": 2680
2026-06-07T23:26:21.0125613Z             },
2026-06-07T23:26:21.0125700Z             {
2026-06-07T23:26:21.0125819Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T23:26:21.0125912Z               "line": 412
2026-06-07T23:26:21.0125993Z             }
2026-06-07T23:26:21.0126084Z           ]
2026-06-07T23:26:21.0126168Z         },
2026-06-07T23:26:21.0126253Z         "int": {
2026-06-07T23:26:21.0126354Z           "complete": false,
2026-06-07T23:26:21.0126445Z           "evidence": []
2026-06-07T23:26:21.0126530Z         },
2026-06-07T23:26:21.0126611Z         "unit": {
2026-06-07T23:26:21.0126707Z           "complete": true,
2026-06-07T23:26:21.0126797Z           "evidence": [
2026-06-07T23:26:21.0126882Z             {
2026-06-07T23:26:21.0127102Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:21.0127192Z               "line": 1202
2026-06-07T23:26:21.0127278Z             },
2026-06-07T23:26:21.0127361Z             {
2026-06-07T23:26:21.0127470Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0127560Z               "line": 6153
2026-06-07T23:26:21.0127656Z             },
2026-06-07T23:26:21.0127741Z             {
2026-06-07T23:26:21.0127841Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0127932Z               "line": 6298
2026-06-07T23:26:21.0128019Z             },
2026-06-07T23:26:21.0128103Z             {
2026-06-07T23:26:21.0128209Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0128295Z               "line": 6305
2026-06-07T23:26:21.0128385Z             },
2026-06-07T23:26:21.0128465Z             {
2026-06-07T23:26:21.0128569Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0128660Z               "line": 6358
2026-06-07T23:26:21.0128744Z             },
2026-06-07T23:26:21.0128829Z             {
2026-06-07T23:26:21.0128930Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0129022Z               "line": 6375
2026-06-07T23:26:21.0129101Z             },
2026-06-07T23:26:21.0129186Z             {
2026-06-07T23:26:21.0129288Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0129383Z               "line": 6389
2026-06-07T23:26:21.0129463Z             },
2026-06-07T23:26:21.0129550Z             {
2026-06-07T23:26:21.0129650Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0129740Z               "line": 6487
2026-06-07T23:26:21.0129830Z             }
2026-06-07T23:26:21.0129913Z           ]
2026-06-07T23:26:21.0129998Z         }
2026-06-07T23:26:21.0130083Z       }
2026-06-07T23:26:21.0130170Z     },
2026-06-07T23:26:21.0130251Z     {
2026-06-07T23:26:21.0130346Z       "id": "REQ-SUBNET-2",
2026-06-07T23:26:21.0130571Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-07T23:26:21.0130665Z       "requiredStages": [
2026-06-07T23:26:21.0130751Z         "impl",
2026-06-07T23:26:21.0130833Z         "unit",
2026-06-07T23:26:21.0130918Z         "int"
2026-06-07T23:26:21.0131003Z       ],
2026-06-07T23:26:21.0131085Z       "stages": {
2026-06-07T23:26:21.0131172Z         "doc": {
2026-06-07T23:26:21.0131365Z           "complete": true,
2026-06-07T23:26:21.0131456Z           "evidence": [
2026-06-07T23:26:21.0131538Z             {
2026-06-07T23:26:21.0131699Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-07T23:26:21.0131790Z               "line": 60
2026-06-07T23:26:21.0131952Z             }
2026-06-07T23:26:21.0132037Z           ]
2026-06-07T23:26:21.0132119Z         },
2026-06-07T23:26:21.0132205Z         "impl": {
2026-06-07T23:26:21.0132295Z           "complete": true,
2026-06-07T23:26:21.0132395Z           "evidence": [
2026-06-07T23:26:21.0132482Z             {
2026-06-07T23:26:21.0132596Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T23:26:21.0132685Z               "line": 548
2026-06-07T23:26:21.0132768Z             },
2026-06-07T23:26:21.0132849Z             {
2026-06-07T23:26:21.0132963Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T23:26:21.0133058Z               "line": 636
2026-06-07T23:26:21.0133149Z             },
2026-06-07T23:26:21.0133230Z             {
2026-06-07T23:26:21.0133349Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:21.0133436Z               "line": 416
2026-06-07T23:26:21.0133521Z             },
2026-06-07T23:26:21.0133601Z             {
2026-06-07T23:26:21.0133717Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T23:26:21.0133808Z               "line": 499
2026-06-07T23:26:21.0133892Z             },
2026-06-07T23:26:21.0133972Z             {
2026-06-07T23:26:21.0134091Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:21.0134176Z               "line": 26
2026-06-07T23:26:21.0134260Z             },
2026-06-07T23:26:21.0134347Z             {
2026-06-07T23:26:21.0134462Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:21.0134547Z               "line": 60
2026-06-07T23:26:21.0134633Z             },
2026-06-07T23:26:21.0134715Z             {
2026-06-07T23:26:21.0134833Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:21.0134928Z               "line": 150
2026-06-07T23:26:21.0135011Z             },
2026-06-07T23:26:21.0135096Z             {
2026-06-07T23:26:21.0135205Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:21.0135296Z               "line": 277
2026-06-07T23:26:21.0135382Z             },
2026-06-07T23:26:21.0135468Z             {
2026-06-07T23:26:21.0135582Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:21.0135669Z               "line": 389
2026-06-07T23:26:21.0135749Z             },
2026-06-07T23:26:21.0135835Z             {
2026-06-07T23:26:21.0135955Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T23:26:21.0136045Z               "line": 252
2026-06-07T23:26:21.0136125Z             },
2026-06-07T23:26:21.0136216Z             {
2026-06-07T23:26:21.0136317Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0136407Z               "line": 2254
2026-06-07T23:26:21.0136492Z             },
2026-06-07T23:26:21.0136577Z             {
2026-06-07T23:26:21.0136677Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0136766Z               "line": 2619
2026-06-07T23:26:21.0136851Z             },
2026-06-07T23:26:21.0136933Z             {
2026-06-07T23:26:21.0137118Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0137209Z               "line": 3037
2026-06-07T23:26:21.0137291Z             }
2026-06-07T23:26:21.0137372Z           ]
2026-06-07T23:26:21.0137461Z         },
2026-06-07T23:26:21.0137548Z         "int": {
2026-06-07T23:26:21.0137639Z           "complete": true,
2026-06-07T23:26:21.0137729Z           "evidence": [
2026-06-07T23:26:21.0137810Z             {
2026-06-07T23:26:21.0137935Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-07T23:26:21.0138020Z               "line": 22
2026-06-07T23:26:21.0138105Z             },
2026-06-07T23:26:21.0138193Z             {
2026-06-07T23:26:21.0138406Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:21.0138497Z               "line": 573
2026-06-07T23:26:21.0138579Z             },
2026-06-07T23:26:21.0138668Z             {
2026-06-07T23:26:21.0138783Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:21.0138959Z               "line": 790
2026-06-07T23:26:21.0139044Z             }
2026-06-07T23:26:21.0139124Z           ]
2026-06-07T23:26:21.0139206Z         },
2026-06-07T23:26:21.0141088Z         "unit": {
2026-06-07T23:26:21.0141206Z           "complete": true,
2026-06-07T23:26:21.0141297Z           "evidence": [
2026-06-07T23:26:21.0141384Z             {
2026-06-07T23:26:21.0141516Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:21.0141606Z               "line": 475
2026-06-07T23:26:21.0141694Z             },
2026-06-07T23:26:21.0141780Z             {
2026-06-07T23:26:21.0141883Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0141977Z               "line": 6193
2026-06-07T23:26:21.0142074Z             },
2026-06-07T23:26:21.0142160Z             {
2026-06-07T23:26:21.0142259Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0142354Z               "line": 6591
2026-06-07T23:26:21.0142436Z             }
2026-06-07T23:26:21.0142531Z           ]
2026-06-07T23:26:21.0142621Z         }
2026-06-07T23:26:21.0142704Z       }
2026-06-07T23:26:21.0142794Z     },
2026-06-07T23:26:21.0142879Z     {
2026-06-07T23:26:21.0142970Z       "id": "REQ-SUBNET-3",
2026-06-07T23:26:21.0143232Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-07T23:26:21.0143333Z       "requiredStages": [
2026-06-07T23:26:21.0143418Z         "impl",
2026-06-07T23:26:21.0143504Z         "unit"
2026-06-07T23:26:21.0143589Z       ],
2026-06-07T23:26:21.0143677Z       "stages": {
2026-06-07T23:26:21.0143761Z         "doc": {
2026-06-07T23:26:21.0143857Z           "complete": false,
2026-06-07T23:26:21.0143948Z           "evidence": []
2026-06-07T23:26:21.0144034Z         },
2026-06-07T23:26:21.0144123Z         "impl": {
2026-06-07T23:26:21.0144214Z           "complete": true,
2026-06-07T23:26:21.0144306Z           "evidence": [
2026-06-07T23:26:21.0144391Z             {
2026-06-07T23:26:21.0144518Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:21.0144614Z               "line": 146
2026-06-07T23:26:21.0144699Z             },
2026-06-07T23:26:21.0144783Z             {
2026-06-07T23:26:21.0144907Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:21.0144999Z               "line": 360
2026-06-07T23:26:21.0145084Z             },
2026-06-07T23:26:21.0145168Z             {
2026-06-07T23:26:21.0145284Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:21.0145375Z               "line": 125
2026-06-07T23:26:21.0145455Z             },
2026-06-07T23:26:21.0145541Z             {
2026-06-07T23:26:21.0145656Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:21.0145746Z               "line": 500
2026-06-07T23:26:21.0145832Z             },
2026-06-07T23:26:21.0145918Z             {
2026-06-07T23:26:21.0146033Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:21.0146118Z               "line": 559
2026-06-07T23:26:21.0146205Z             },
2026-06-07T23:26:21.0146290Z             {
2026-06-07T23:26:21.0146404Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-07T23:26:21.0146495Z               "line": 9
2026-06-07T23:26:21.0146577Z             },
2026-06-07T23:26:21.0146662Z             {
2026-06-07T23:26:21.0146766Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0146854Z               "line": 2556
2026-06-07T23:26:21.0146939Z             },
2026-06-07T23:26:21.0147118Z             {
2026-06-07T23:26:21.0147228Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T23:26:21.0147317Z               "line": 433
2026-06-07T23:26:21.0147402Z             }
2026-06-07T23:26:21.0147598Z           ]
2026-06-07T23:26:21.0147688Z         },
2026-06-07T23:26:21.0147774Z         "int": {
2026-06-07T23:26:21.0147865Z           "complete": false,
2026-06-07T23:26:21.0147956Z           "evidence": []
2026-06-07T23:26:21.0148041Z         },
2026-06-07T23:26:21.0148213Z         "unit": {
2026-06-07T23:26:21.0148308Z           "complete": true,
2026-06-07T23:26:21.0148394Z           "evidence": [
2026-06-07T23:26:21.0148476Z             {
2026-06-07T23:26:21.0148604Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:21.0148689Z               "line": 1331
2026-06-07T23:26:21.0148776Z             },
2026-06-07T23:26:21.0148862Z             {
2026-06-07T23:26:21.0148971Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:21.0149067Z               "line": 868
2026-06-07T23:26:21.0149153Z             },
2026-06-07T23:26:21.0149237Z             {
2026-06-07T23:26:21.0149353Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:21.0149444Z               "line": 917
2026-06-07T23:26:21.0149533Z             },
2026-06-07T23:26:21.0149614Z             {
2026-06-07T23:26:21.0149733Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-07T23:26:21.0149818Z               "line": 49
2026-06-07T23:26:21.0149907Z             },
2026-06-07T23:26:21.0149992Z             {
2026-06-07T23:26:21.0150098Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0150184Z               "line": 6487
2026-06-07T23:26:21.0150269Z             }
2026-06-07T23:26:21.0150355Z           ]
2026-06-07T23:26:21.0150437Z         }
2026-06-07T23:26:21.0150522Z       }
2026-06-07T23:26:21.0150603Z     },
2026-06-07T23:26:21.0150684Z     {
2026-06-07T23:26:21.0150794Z       "id": "REQ-SUBNET-4",
2026-06-07T23:26:21.0151076Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-07T23:26:21.0151171Z       "requiredStages": [
2026-06-07T23:26:21.0151261Z         "impl",
2026-06-07T23:26:21.0151348Z         "unit"
2026-06-07T23:26:21.0151432Z       ],
2026-06-07T23:26:21.0151518Z       "stages": {
2026-06-07T23:26:21.0151605Z         "doc": {
2026-06-07T23:26:21.0151696Z           "complete": true,
2026-06-07T23:26:21.0151790Z           "evidence": [
2026-06-07T23:26:21.0151871Z             {
2026-06-07T23:26:21.0152030Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-07T23:26:21.0152118Z               "line": 60
2026-06-07T23:26:21.0152201Z             }
2026-06-07T23:26:21.0152287Z           ]
2026-06-07T23:26:21.0152368Z         },
2026-06-07T23:26:21.0152457Z         "impl": {
2026-06-07T23:26:21.0152547Z           "complete": true,
2026-06-07T23:26:21.0152639Z           "evidence": [
2026-06-07T23:26:21.0152720Z             {
2026-06-07T23:26:21.0152824Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0152919Z               "line": 2043
2026-06-07T23:26:21.0153001Z             },
2026-06-07T23:26:21.0153091Z             {
2026-06-07T23:26:21.0153186Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0153273Z               "line": 3004
2026-06-07T23:26:21.0153354Z             },
2026-06-07T23:26:21.0153434Z             {
2026-06-07T23:26:21.0153530Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0153621Z               "line": 3037
2026-06-07T23:26:21.0153725Z             }
2026-06-07T23:26:21.0153811Z           ]
2026-06-07T23:26:21.0153893Z         },
2026-06-07T23:26:21.0153969Z         "int": {
2026-06-07T23:26:21.0154064Z           "complete": false,
2026-06-07T23:26:21.0154149Z           "evidence": []
2026-06-07T23:26:21.0154227Z         },
2026-06-07T23:26:21.0154312Z         "unit": {
2026-06-07T23:26:21.0154402Z           "complete": true,
2026-06-07T23:26:21.0154494Z           "evidence": [
2026-06-07T23:26:21.0154575Z             {
2026-06-07T23:26:21.0154679Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0154765Z               "line": 6284
2026-06-07T23:26:21.0154937Z             },
2026-06-07T23:26:21.0155026Z             {
2026-06-07T23:26:21.0155131Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0155216Z               "line": 6358
2026-06-07T23:26:21.0155301Z             }
2026-06-07T23:26:21.0155386Z           ]
2026-06-07T23:26:21.0155535Z         }
2026-06-07T23:26:21.0155616Z       }
2026-06-07T23:26:21.0155701Z     },
2026-06-07T23:26:21.0155782Z     {
2026-06-07T23:26:21.0155878Z       "id": "REQ-SUBNET-5",
2026-06-07T23:26:21.0157127Z       "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-07T23:26:21.0157226Z       "requiredStages": [
2026-06-07T23:26:21.0157312Z         "impl",
2026-06-07T23:26:21.0157409Z         "unit"
2026-06-07T23:26:21.0157494Z       ],
2026-06-07T23:26:21.0157579Z       "stages": {
2026-06-07T23:26:21.0157669Z         "doc": {
2026-06-07T23:26:21.0157764Z           "complete": false,
2026-06-07T23:26:21.0157853Z           "evidence": []
2026-06-07T23:26:21.0157947Z         },
2026-06-07T23:26:21.0158034Z         "impl": {
2026-06-07T23:26:21.0158130Z           "complete": true,
2026-06-07T23:26:21.0158225Z           "evidence": [
2026-06-07T23:26:21.0158310Z             {
2026-06-07T23:26:21.0158440Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T23:26:21.0158534Z               "line": 126
2026-06-07T23:26:21.0158620Z             },
2026-06-07T23:26:21.0158702Z             {
2026-06-07T23:26:21.0158826Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:21.0158915Z               "line": 74
2026-06-07T23:26:21.0159003Z             },
2026-06-07T23:26:21.0159093Z             {
2026-06-07T23:26:21.0159216Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:21.0159303Z               "line": 316
2026-06-07T23:26:21.0159389Z             },
2026-06-07T23:26:21.0159478Z             {
2026-06-07T23:26:21.0159598Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-07T23:26:21.0159689Z               "line": 17
2026-06-07T23:26:21.0159774Z             },
2026-06-07T23:26:21.0159860Z             {
2026-06-07T23:26:21.0159962Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0160056Z               "line": 2962
2026-06-07T23:26:21.0160140Z             }
2026-06-07T23:26:21.0160226Z           ]
2026-06-07T23:26:21.0160307Z         },
2026-06-07T23:26:21.0160397Z         "int": {
2026-06-07T23:26:21.0160490Z           "complete": false,
2026-06-07T23:26:21.0160576Z           "evidence": []
2026-06-07T23:26:21.0160663Z         },
2026-06-07T23:26:21.0160749Z         "unit": {
2026-06-07T23:26:21.0160853Z           "complete": true,
2026-06-07T23:26:21.0160959Z           "evidence": [
2026-06-07T23:26:21.0161055Z             {
2026-06-07T23:26:21.0161172Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T23:26:21.0161259Z               "line": 341
2026-06-07T23:26:21.0161344Z             },
2026-06-07T23:26:21.0161430Z             {
2026-06-07T23:26:21.0161555Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-07T23:26:21.0161650Z               "line": 111
2026-06-07T23:26:21.0161736Z             },
2026-06-07T23:26:21.0161821Z             {
2026-06-07T23:26:21.0161937Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-07T23:26:21.0162026Z               "line": 138
2026-06-07T23:26:21.0162112Z             },
2026-06-07T23:26:21.0162199Z             {
2026-06-07T23:26:21.0162317Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-07T23:26:21.0162407Z               "line": 148
2026-06-07T23:26:21.0162489Z             },
2026-06-07T23:26:21.0162576Z             {
2026-06-07T23:26:21.0162775Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0162872Z               "line": 6210
2026-06-07T23:26:21.0162961Z             }
2026-06-07T23:26:21.0163041Z           ]
2026-06-07T23:26:21.0163131Z         }
2026-06-07T23:26:21.0163213Z       }
2026-06-07T23:26:21.0163299Z     },
2026-06-07T23:26:21.0163470Z     {
2026-06-07T23:26:21.0163570Z       "id": "REQ-SUBNET-6",
2026-06-07T23:26:21.0164228Z       "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-07T23:26:21.0164323Z       "requiredStages": [
2026-06-07T23:26:21.0164410Z         "impl",
2026-06-07T23:26:21.0164496Z         "unit"
2026-06-07T23:26:21.0164581Z       ],
2026-06-07T23:26:21.0164667Z       "stages": {
2026-06-07T23:26:21.0164753Z         "doc": {
2026-06-07T23:26:21.0164848Z           "complete": false,
2026-06-07T23:26:21.0164943Z           "evidence": []
2026-06-07T23:26:21.0165029Z         },
2026-06-07T23:26:21.0165116Z         "impl": {
2026-06-07T23:26:21.0165210Z           "complete": true,
2026-06-07T23:26:21.0165301Z           "evidence": [
2026-06-07T23:26:21.0165388Z             {
2026-06-07T23:26:21.0165497Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0165586Z               "line": 2791
2026-06-07T23:26:21.0165671Z             },
2026-06-07T23:26:21.0165758Z             {
2026-06-07T23:26:21.0165865Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0165955Z               "line": 2808
2026-06-07T23:26:21.0166041Z             },
2026-06-07T23:26:21.0166128Z             {
2026-06-07T23:26:21.0166227Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0166328Z               "line": 2857
2026-06-07T23:26:21.0166409Z             },
2026-06-07T23:26:21.0166500Z             {
2026-06-07T23:26:21.0166604Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0166696Z               "line": 2879
2026-06-07T23:26:21.0166781Z             }
2026-06-07T23:26:21.0166862Z           ]
2026-06-07T23:26:21.0167039Z         },
2026-06-07T23:26:21.0167124Z         "int": {
2026-06-07T23:26:21.0167219Z           "complete": false,
2026-06-07T23:26:21.0167315Z           "evidence": []
2026-06-07T23:26:21.0167401Z         },
2026-06-07T23:26:21.0167486Z         "unit": {
2026-06-07T23:26:21.0167577Z           "complete": true,
2026-06-07T23:26:21.0167674Z           "evidence": [
2026-06-07T23:26:21.0167758Z             {
2026-06-07T23:26:21.0167863Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0167950Z               "line": 6224
2026-06-07T23:26:21.0168040Z             },
2026-06-07T23:26:21.0168125Z             {
2026-06-07T23:26:21.0168224Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0168315Z               "line": 6243
2026-06-07T23:26:21.0168400Z             },
2026-06-07T23:26:21.0168479Z             {
2026-06-07T23:26:21.0168589Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0168676Z               "line": 6252
2026-06-07T23:26:21.0168761Z             }
2026-06-07T23:26:21.0168841Z           ]
2026-06-07T23:26:21.0168928Z         }
2026-06-07T23:26:21.0169014Z       }
2026-06-07T23:26:21.0169099Z     },
2026-06-07T23:26:21.0169180Z     {
2026-06-07T23:26:21.0169276Z       "id": "REQ-SUBNET-7",
2026-06-07T23:26:21.0170867Z       "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-07T23:26:21.0170966Z       "requiredStages": [
2026-06-07T23:26:21.0171146Z         "impl",
2026-06-07T23:26:21.0171238Z         "unit"
2026-06-07T23:26:21.0171318Z       ],
2026-06-07T23:26:21.0171403Z       "stages": {
2026-06-07T23:26:21.0171490Z         "doc": {
2026-06-07T23:26:21.0171580Z           "complete": false,
2026-06-07T23:26:21.0171761Z           "evidence": []
2026-06-07T23:26:21.0171843Z         },
2026-06-07T23:26:21.0171928Z         "impl": {
2026-06-07T23:26:21.0172018Z           "complete": true,
2026-06-07T23:26:21.0172110Z           "evidence": [
2026-06-07T23:26:21.0172191Z             {
2026-06-07T23:26:21.0172310Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-07T23:26:21.0172396Z               "line": 17
2026-06-07T23:26:21.0172478Z             },
2026-06-07T23:26:21.0172562Z             {
2026-06-07T23:26:21.0172681Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:21.0172768Z               "line": 104
2026-06-07T23:26:21.0172854Z             },
2026-06-07T23:26:21.0172944Z             {
2026-06-07T23:26:21.0173059Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T23:26:21.0173150Z               "line": 291
2026-06-07T23:26:21.0173229Z             },
2026-06-07T23:26:21.0173311Z             {
2026-06-07T23:26:21.0173427Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:21.0173521Z               "line": 339
2026-06-07T23:26:21.0173605Z             },
2026-06-07T23:26:21.0173691Z             {
2026-06-07T23:26:21.0173816Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:21.0173906Z               "line": 154
2026-06-07T23:26:21.0173991Z             },
2026-06-07T23:26:21.0174074Z             {
2026-06-07T23:26:21.0174197Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:21.0174287Z               "line": 364
2026-06-07T23:26:21.0174374Z             },
2026-06-07T23:26:21.0174455Z             {
2026-06-07T23:26:21.0174573Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:21.0174665Z               "line": 515
2026-06-07T23:26:21.0174751Z             },
2026-06-07T23:26:21.0174832Z             {
2026-06-07T23:26:21.0174950Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:21.0175042Z               "line": 555
2026-06-07T23:26:21.0175127Z             },
2026-06-07T23:26:21.0175208Z             {
2026-06-07T23:26:21.0175328Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:21.0175418Z               "line": 583
2026-06-07T23:26:21.0175503Z             },
2026-06-07T23:26:21.0175594Z             {
2026-06-07T23:26:21.0175719Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:21.0175803Z               "line": 128
2026-06-07T23:26:21.0175890Z             },
2026-06-07T23:26:21.0175972Z             {
2026-06-07T23:26:21.0176089Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:21.0176180Z               "line": 139
2026-06-07T23:26:21.0176265Z             }
2026-06-07T23:26:21.0176351Z           ]
2026-06-07T23:26:21.0176430Z         },
2026-06-07T23:26:21.0176516Z         "int": {
2026-06-07T23:26:21.0176611Z           "complete": false,
2026-06-07T23:26:21.0176702Z           "evidence": []
2026-06-07T23:26:21.0176782Z         },
2026-06-07T23:26:21.0176873Z         "unit": {
2026-06-07T23:26:21.0177060Z           "complete": true,
2026-06-07T23:26:21.0177145Z           "evidence": [
2026-06-07T23:26:21.0177231Z             {
2026-06-07T23:26:21.0177350Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-07T23:26:21.0177440Z               "line": 136
2026-06-07T23:26:21.0177522Z             },
2026-06-07T23:26:21.0177609Z             {
2026-06-07T23:26:21.0177722Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-07T23:26:21.0177812Z               "line": 156
2026-06-07T23:26:21.0177895Z             },
2026-06-07T23:26:21.0177984Z             {
2026-06-07T23:26:21.0178205Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:21.0178294Z               "line": 773
2026-06-07T23:26:21.0178380Z             },
2026-06-07T23:26:21.0178461Z             {
2026-06-07T23:26:21.0178581Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T23:26:21.0178774Z               "line": 795
2026-06-07T23:26:21.0178856Z             },
2026-06-07T23:26:21.0178946Z             {
2026-06-07T23:26:21.0179072Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T23:26:21.0179159Z               "line": 1287
2026-06-07T23:26:21.0179246Z             },
2026-06-07T23:26:21.0179325Z             {
2026-06-07T23:26:21.0179445Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T23:26:21.0179531Z               "line": 912
2026-06-07T23:26:21.0179612Z             }
2026-06-07T23:26:21.0179697Z           ]
2026-06-07T23:26:21.0179783Z         }
2026-06-07T23:26:21.0179870Z       }
2026-06-07T23:26:21.0179951Z     },
2026-06-07T23:26:21.0180036Z     {
2026-06-07T23:26:21.0180133Z       "id": "REQ-SUBNET-8",
2026-06-07T23:26:21.0181237Z       "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-07T23:26:21.0181337Z       "requiredStages": [
2026-06-07T23:26:21.0181423Z         "impl",
2026-06-07T23:26:21.0181512Z         "unit"
2026-06-07T23:26:21.0181592Z       ],
2026-06-07T23:26:21.0181678Z       "stages": {
2026-06-07T23:26:21.0181764Z         "doc": {
2026-06-07T23:26:21.0181855Z           "complete": false,
2026-06-07T23:26:21.0181944Z           "evidence": []
2026-06-07T23:26:21.0182026Z         },
2026-06-07T23:26:21.0182117Z         "impl": {
2026-06-07T23:26:21.0182203Z           "complete": true,
2026-06-07T23:26:21.0182302Z           "evidence": [
2026-06-07T23:26:21.0182384Z             {
2026-06-07T23:26:21.0182488Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0182578Z               "line": 2331
2026-06-07T23:26:21.0182660Z             },
2026-06-07T23:26:21.0182746Z             {
2026-06-07T23:26:21.0182847Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0182941Z               "line": 2360
2026-06-07T23:26:21.0183023Z             },
2026-06-07T23:26:21.0183109Z             {
2026-06-07T23:26:21.0183208Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0183295Z               "line": 2377
2026-06-07T23:26:21.0183381Z             },
2026-06-07T23:26:21.0183465Z             {
2026-06-07T23:26:21.0183566Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0183662Z               "line": 2681
2026-06-07T23:26:21.0183748Z             }
2026-06-07T23:26:21.0183827Z           ]
2026-06-07T23:26:21.0183910Z         },
2026-06-07T23:26:21.0184001Z         "int": {
2026-06-07T23:26:21.0184086Z           "complete": false,
2026-06-07T23:26:21.0184180Z           "evidence": []
2026-06-07T23:26:21.0184261Z         },
2026-06-07T23:26:21.0184343Z         "unit": {
2026-06-07T23:26:21.0184438Z           "complete": true,
2026-06-07T23:26:21.0184532Z           "evidence": [
2026-06-07T23:26:21.0184667Z             {
2026-06-07T23:26:21.0184762Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0184852Z               "line": 6389
2026-06-07T23:26:21.0184939Z             }
2026-06-07T23:26:21.0185019Z           ]
2026-06-07T23:26:21.0185105Z         }
2026-06-07T23:26:21.0185186Z       }
2026-06-07T23:26:21.0185273Z     },
2026-06-07T23:26:21.0185353Z     {
2026-06-07T23:26:21.0185443Z       "id": "REQ-TERM-1",
2026-06-07T23:26:21.0185616Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-07T23:26:21.0185710Z       "requiredStages": [
2026-06-07T23:26:21.0185796Z         "impl",
2026-06-07T23:26:21.0185883Z         "unit"
2026-06-07T23:26:21.0186034Z       ],
2026-06-07T23:26:21.0186121Z       "stages": {
2026-06-07T23:26:21.0186208Z         "doc": {
2026-06-07T23:26:21.0186302Z           "complete": false,
2026-06-07T23:26:21.0186392Z           "evidence": []
2026-06-07T23:26:21.0186474Z         },
2026-06-07T23:26:21.0186622Z         "impl": {
2026-06-07T23:26:21.0186711Z           "complete": true,
2026-06-07T23:26:21.0186801Z           "evidence": [
2026-06-07T23:26:21.0186888Z             {
2026-06-07T23:26:21.0187081Z               "path": "crates/spt-term/src/pty.rs",
2026-06-07T23:26:21.0187171Z               "line": 59
2026-06-07T23:26:21.0187267Z             },
2026-06-07T23:26:21.0187352Z             {
2026-06-07T23:26:21.0187463Z               "path": "crates/spt-term/src/pty.rs",
2026-06-07T23:26:21.0187548Z               "line": 171
2026-06-07T23:26:21.0187634Z             },
2026-06-07T23:26:21.0187715Z             {
2026-06-07T23:26:21.0187835Z               "path": "crates/spt-term/src/surface.rs",
2026-06-07T23:26:21.0187929Z               "line": 100
2026-06-07T23:26:21.0188010Z             }
2026-06-07T23:26:21.0188097Z           ]
2026-06-07T23:26:21.0188178Z         },
2026-06-07T23:26:21.0188269Z         "int": {
2026-06-07T23:26:21.0188359Z           "complete": false,
2026-06-07T23:26:21.0188460Z           "evidence": []
2026-06-07T23:26:21.0188544Z         },
2026-06-07T23:26:21.0188626Z         "unit": {
2026-06-07T23:26:21.0188721Z           "complete": true,
2026-06-07T23:26:21.0188808Z           "evidence": [
2026-06-07T23:26:21.0188892Z             {
2026-06-07T23:26:21.0189017Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-07T23:26:21.0189104Z               "line": 24
2026-06-07T23:26:21.0189188Z             },
2026-06-07T23:26:21.0189273Z             {
2026-06-07T23:26:21.0189387Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-07T23:26:21.0189477Z               "line": 56
2026-06-07T23:26:21.0189562Z             }
2026-06-07T23:26:21.0189647Z           ]
2026-06-07T23:26:21.0189738Z         }
2026-06-07T23:26:21.0189820Z       }
2026-06-07T23:26:21.0189900Z     },
2026-06-07T23:26:21.0189990Z     {
2026-06-07T23:26:21.0190082Z       "id": "REQ-TERM-2",
2026-06-07T23:26:21.0190257Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-07T23:26:21.0190353Z       "requiredStages": [
2026-06-07T23:26:21.0190439Z         "impl",
2026-06-07T23:26:21.0190529Z         "unit"
2026-06-07T23:26:21.0190610Z       ],
2026-06-07T23:26:21.0190698Z       "stages": {
2026-06-07T23:26:21.0190782Z         "doc": {
2026-06-07T23:26:21.0190878Z           "complete": false,
2026-06-07T23:26:21.0190964Z           "evidence": []
2026-06-07T23:26:21.0191050Z         },
2026-06-07T23:26:21.0191140Z         "impl": {
2026-06-07T23:26:21.0191231Z           "complete": true,
2026-06-07T23:26:21.0191317Z           "evidence": [
2026-06-07T23:26:21.0191403Z             {
2026-06-07T23:26:21.0191516Z               "path": "crates/spt-term/src/surface.rs",
2026-06-07T23:26:21.0191608Z               "line": 117
2026-06-07T23:26:21.0191698Z             },
2026-06-07T23:26:21.0191783Z             {
2026-06-07T23:26:21.0191892Z               "path": "crates/spt-term/src/surface.rs",
2026-06-07T23:26:21.0191983Z               "line": 127
2026-06-07T23:26:21.0192067Z             }
2026-06-07T23:26:21.0192152Z           ]
2026-06-07T23:26:21.0192233Z         },
2026-06-07T23:26:21.0192319Z         "int": {
2026-06-07T23:26:21.0192410Z           "complete": false,
2026-06-07T23:26:21.0192500Z           "evidence": []
2026-06-07T23:26:21.0192581Z         },
2026-06-07T23:26:21.0192668Z         "unit": {
2026-06-07T23:26:21.0192758Z           "complete": true,
2026-06-07T23:26:21.0192848Z           "evidence": [
2026-06-07T23:26:21.0192930Z             {
2026-06-07T23:26:21.0193044Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-07T23:26:21.0193130Z               "line": 46
2026-06-07T23:26:21.0193215Z             },
2026-06-07T23:26:21.0193297Z             {
2026-06-07T23:26:21.0193506Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-07T23:26:21.0193603Z               "line": 77
2026-06-07T23:26:21.0193683Z             }
2026-06-07T23:26:21.0193769Z           ]
2026-06-07T23:26:21.0193855Z         }
2026-06-07T23:26:21.0193941Z       }
2026-06-07T23:26:21.0194107Z     },
2026-06-07T23:26:21.0194189Z     {
2026-06-07T23:26:21.0194279Z       "id": "REQ-TERM-3",
2026-06-07T23:26:21.0194417Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-07T23:26:21.0194509Z       "requiredStages": [
2026-06-07T23:26:21.0194594Z         "impl",
2026-06-07T23:26:21.0194679Z         "unit"
2026-06-07T23:26:21.0194764Z       ],
2026-06-07T23:26:21.0194855Z       "stages": {
2026-06-07T23:26:21.0194936Z         "doc": {
2026-06-07T23:26:21.0195017Z           "complete": false,
2026-06-07T23:26:21.0195107Z           "evidence": []
2026-06-07T23:26:21.0195189Z         },
2026-06-07T23:26:21.0195275Z         "impl": {
2026-06-07T23:26:21.0195355Z           "complete": true,
2026-06-07T23:26:21.0195441Z           "evidence": [
2026-06-07T23:26:21.0195523Z             {
2026-06-07T23:26:21.0195642Z               "path": "crates/spt-term/src/stream.rs",
2026-06-07T23:26:21.0195727Z               "line": 71
2026-06-07T23:26:21.0195804Z             }
2026-06-07T23:26:21.0195890Z           ]
2026-06-07T23:26:21.0195980Z         },
2026-06-07T23:26:21.0196090Z         "int": {
2026-06-07T23:26:21.0196181Z           "complete": false,
2026-06-07T23:26:21.0196265Z           "evidence": []
2026-06-07T23:26:21.0196342Z         },
2026-06-07T23:26:21.0196429Z         "unit": {
2026-06-07T23:26:21.0196534Z           "complete": true,
2026-06-07T23:26:21.0196629Z           "evidence": [
2026-06-07T23:26:21.0196719Z             {
2026-06-07T23:26:21.0196835Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-07T23:26:21.0196919Z               "line": 37
2026-06-07T23:26:21.0197078Z             },
2026-06-07T23:26:21.0197154Z             {
2026-06-07T23:26:21.0197276Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-07T23:26:21.0197366Z               "line": 67
2026-06-07T23:26:21.0197448Z             }
2026-06-07T23:26:21.0197532Z           ]
2026-06-07T23:26:21.0197617Z         }
2026-06-07T23:26:21.0197698Z       }
2026-06-07T23:26:21.0197784Z     },
2026-06-07T23:26:21.0197870Z     {
2026-06-07T23:26:21.0197960Z       "id": "REQ-TERM-4",
2026-06-07T23:26:21.0198294Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-07T23:26:21.0198390Z       "requiredStages": [
2026-06-07T23:26:21.0198475Z         "impl",
2026-06-07T23:26:21.0198560Z         "unit",
2026-06-07T23:26:21.0198647Z         "int"
2026-06-07T23:26:21.0198734Z       ],
2026-06-07T23:26:21.0198819Z       "stages": {
2026-06-07T23:26:21.0198909Z         "doc": {
2026-06-07T23:26:21.0199000Z           "complete": true,
2026-06-07T23:26:21.0199091Z           "evidence": [
2026-06-07T23:26:21.0199181Z             {
2026-06-07T23:26:21.0199286Z               "path": "docs/MANIFEST.md",
2026-06-07T23:26:21.0199378Z               "line": 115
2026-06-07T23:26:21.0199462Z             }
2026-06-07T23:26:21.0199548Z           ]
2026-06-07T23:26:21.0199630Z         },
2026-06-07T23:26:21.0199725Z         "impl": {
2026-06-07T23:26:21.0199814Z           "complete": true,
2026-06-07T23:26:21.0199904Z           "evidence": [
2026-06-07T23:26:21.0199986Z             {
2026-06-07T23:26:21.0200103Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T23:26:21.0200202Z               "line": 507
2026-06-07T23:26:21.0200293Z             },
2026-06-07T23:26:21.0200375Z             {
2026-06-07T23:26:21.0200493Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T23:26:21.0200589Z               "line": 41
2026-06-07T23:26:21.0200675Z             },
2026-06-07T23:26:21.0200756Z             {
2026-06-07T23:26:21.0200875Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T23:26:21.0201066Z               "line": 91
2026-06-07T23:26:21.0201156Z             },
2026-06-07T23:26:21.0201243Z             {
2026-06-07T23:26:21.0201357Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T23:26:21.0201452Z               "line": 152
2026-06-07T23:26:21.0201620Z             },
2026-06-07T23:26:21.0201704Z             {
2026-06-07T23:26:21.0201824Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T23:26:21.0201916Z               "line": 221
2026-06-07T23:26:21.0202000Z             },
2026-06-07T23:26:21.0202086Z             {
2026-06-07T23:26:21.0202216Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T23:26:21.0202301Z               "line": 20
2026-06-07T23:26:21.0202395Z             },
2026-06-07T23:26:21.0202481Z             {
2026-06-07T23:26:21.0202595Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T23:26:21.0202689Z               "line": 222
2026-06-07T23:26:21.0202769Z             },
2026-06-07T23:26:21.0202870Z             {
2026-06-07T23:26:21.0202980Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T23:26:21.0203074Z               "line": 242
2026-06-07T23:26:21.0203160Z             },
2026-06-07T23:26:21.0203242Z             {
2026-06-07T23:26:21.0203361Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:21.0203456Z               "line": 625
2026-06-07T23:26:21.0203542Z             },
2026-06-07T23:26:21.0203623Z             {
2026-06-07T23:26:21.0203742Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T23:26:21.0203829Z               "line": 162
2026-06-07T23:26:21.0203914Z             },
2026-06-07T23:26:21.0203999Z             {
2026-06-07T23:26:21.0204115Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T23:26:21.0204205Z               "line": 206
2026-06-07T23:26:21.0204290Z             },
2026-06-07T23:26:21.0204376Z             {
2026-06-07T23:26:21.0204487Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T23:26:21.0204576Z               "line": 233
2026-06-07T23:26:21.0204663Z             },
2026-06-07T23:26:21.0204744Z             {
2026-06-07T23:26:21.0204854Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0204943Z               "line": 795
2026-06-07T23:26:21.0205035Z             }
2026-06-07T23:26:21.0205121Z           ]
2026-06-07T23:26:21.0205206Z         },
2026-06-07T23:26:21.0205290Z         "int": {
2026-06-07T23:26:21.0205386Z           "complete": true,
2026-06-07T23:26:21.0205478Z           "evidence": [
2026-06-07T23:26:21.0205558Z             {
2026-06-07T23:26:21.0205677Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-07T23:26:21.0205769Z               "line": 18
2026-06-07T23:26:21.0205850Z             }
2026-06-07T23:26:21.0205939Z           ]
2026-06-07T23:26:21.0206020Z         },
2026-06-07T23:26:21.0206112Z         "unit": {
2026-06-07T23:26:21.0206202Z           "complete": true,
2026-06-07T23:26:21.0206292Z           "evidence": [
2026-06-07T23:26:21.0206383Z             {
2026-06-07T23:26:21.0206497Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T23:26:21.0206587Z               "line": 259
2026-06-07T23:26:21.0206669Z             },
2026-06-07T23:26:21.0206756Z             {
2026-06-07T23:26:21.0206869Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T23:26:21.0207032Z               "line": 277
2026-06-07T23:26:21.0207122Z             },
2026-06-07T23:26:21.0207208Z             {
2026-06-07T23:26:21.0209336Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T23:26:21.0209449Z               "line": 289
2026-06-07T23:26:21.0209556Z             },
2026-06-07T23:26:21.0209642Z             {
2026-06-07T23:26:21.0209774Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T23:26:21.0209866Z               "line": 304
2026-06-07T23:26:21.0209952Z             },
2026-06-07T23:26:21.0210041Z             {
2026-06-07T23:26:21.0210161Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T23:26:21.0210384Z               "line": 320
2026-06-07T23:26:21.0210469Z             },
2026-06-07T23:26:21.0210565Z             {
2026-06-07T23:26:21.0210724Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T23:26:21.0210815Z               "line": 346
2026-06-07T23:26:21.0211039Z             },
2026-06-07T23:26:21.0211125Z             {
2026-06-07T23:26:21.0211240Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T23:26:21.0211335Z               "line": 361
2026-06-07T23:26:21.0211416Z             },
2026-06-07T23:26:21.0211503Z             {
2026-06-07T23:26:21.0211617Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T23:26:21.0211707Z               "line": 391
2026-06-07T23:26:21.0211793Z             },
2026-06-07T23:26:21.0211874Z             {
2026-06-07T23:26:21.0212002Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T23:26:21.0212094Z               "line": 365
2026-06-07T23:26:21.0212180Z             },
2026-06-07T23:26:21.0212260Z             {
2026-06-07T23:26:21.0212374Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T23:26:21.0212466Z               "line": 382
2026-06-07T23:26:21.0212565Z             },
2026-06-07T23:26:21.0212660Z             {
2026-06-07T23:26:21.0212776Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T23:26:21.0212856Z               "line": 411
2026-06-07T23:26:21.0212941Z             },
2026-06-07T23:26:21.0213031Z             {
2026-06-07T23:26:21.0213159Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T23:26:21.0213253Z               "line": 428
2026-06-07T23:26:21.0213338Z             },
2026-06-07T23:26:21.0213420Z             {
2026-06-07T23:26:21.0213540Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:21.0213630Z               "line": 828
2026-06-07T23:26:21.0213716Z             },
2026-06-07T23:26:21.0213802Z             {
2026-06-07T23:26:21.0213930Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:21.0214021Z               "line": 835
2026-06-07T23:26:21.0214102Z             },
2026-06-07T23:26:21.0214188Z             {
2026-06-07T23:26:21.0214307Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:21.0214403Z               "line": 850
2026-06-07T23:26:21.0214498Z             },
2026-06-07T23:26:21.0214602Z             {
2026-06-07T23:26:21.0214718Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T23:26:21.0214808Z               "line": 420
2026-06-07T23:26:21.0214894Z             },
2026-06-07T23:26:21.0214980Z             {
2026-06-07T23:26:21.0215094Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T23:26:21.0215184Z               "line": 458
2026-06-07T23:26:21.0215270Z             },
2026-06-07T23:26:21.0215353Z             {
2026-06-07T23:26:21.0215465Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T23:26:21.0215561Z               "line": 471
2026-06-07T23:26:21.0215653Z             },
2026-06-07T23:26:21.0215743Z             {
2026-06-07T23:26:21.0215851Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T23:26:21.0215941Z               "line": 497
2026-06-07T23:26:21.0216028Z             },
2026-06-07T23:26:21.0216109Z             {
2026-06-07T23:26:21.0216222Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T23:26:21.0216314Z               "line": 524
2026-06-07T23:26:21.0216400Z             },
2026-06-07T23:26:21.0216485Z             {
2026-06-07T23:26:21.0216600Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-07T23:26:21.0216691Z               "line": 32
2026-06-07T23:26:21.0216781Z             },
2026-06-07T23:26:21.0216866Z             {
2026-06-07T23:26:21.0217062Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0217152Z               "line": 5982
2026-06-07T23:26:21.0217239Z             }
2026-06-07T23:26:21.0217330Z           ]
2026-06-07T23:26:21.0217415Z         }
2026-06-07T23:26:21.0217501Z       }
2026-06-07T23:26:21.0217677Z     },
2026-06-07T23:26:21.0217763Z     {
2026-06-07T23:26:21.0217859Z       "id": "REQ-UPD-1",
2026-06-07T23:26:21.0217978Z       "title": "Peer-propagated update over P2P",
2026-06-07T23:26:21.0218067Z       "requiredStages": [
2026-06-07T23:26:21.0218241Z         "impl",
2026-06-07T23:26:21.0218335Z         "unit",
2026-06-07T23:26:21.0218434Z         "int"
2026-06-07T23:26:21.0218530Z       ],
2026-06-07T23:26:21.0218629Z       "stages": {
2026-06-07T23:26:21.0218722Z         "doc": {
2026-06-07T23:26:21.0218818Z           "complete": false,
2026-06-07T23:26:21.0218914Z           "evidence": []
2026-06-07T23:26:21.0219000Z         },
2026-06-07T23:26:21.0219089Z         "impl": {
2026-06-07T23:26:21.0219186Z           "complete": true,
2026-06-07T23:26:21.0219281Z           "evidence": [
2026-06-07T23:26:21.0219366Z             {
2026-06-07T23:26:21.0219496Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0219586Z               "line": 28
2026-06-07T23:26:21.0219676Z             },
2026-06-07T23:26:21.0219762Z             {
2026-06-07T23:26:21.0219882Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0219972Z               "line": 103
2026-06-07T23:26:21.0220058Z             },
2026-06-07T23:26:21.0220150Z             {
2026-06-07T23:26:21.0220272Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0220358Z               "line": 341
2026-06-07T23:26:21.0220445Z             },
2026-06-07T23:26:21.0220531Z             {
2026-06-07T23:26:21.0220654Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0220746Z               "line": 22
2026-06-07T23:26:21.0220836Z             },
2026-06-07T23:26:21.0220920Z             {
2026-06-07T23:26:21.0221034Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0221125Z               "line": 117
2026-06-07T23:26:21.0221209Z             },
2026-06-07T23:26:21.0221294Z             {
2026-06-07T23:26:21.0221413Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0221500Z               "line": 150
2026-06-07T23:26:21.0221589Z             },
2026-06-07T23:26:21.0221675Z             {
2026-06-07T23:26:21.0221791Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0221881Z               "line": 207
2026-06-07T23:26:21.0221971Z             },
2026-06-07T23:26:21.0222053Z             {
2026-06-07T23:26:21.0222172Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T23:26:21.0222262Z               "line": 37
2026-06-07T23:26:21.0222349Z             }
2026-06-07T23:26:21.0222435Z           ]
2026-06-07T23:26:21.0222520Z         },
2026-06-07T23:26:21.0222610Z         "int": {
2026-06-07T23:26:21.0222707Z           "complete": true,
2026-06-07T23:26:21.0222796Z           "evidence": [
2026-06-07T23:26:21.0222877Z             {
2026-06-07T23:26:21.0223007Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T23:26:21.0223102Z               "line": 197
2026-06-07T23:26:21.0223187Z             },
2026-06-07T23:26:21.0223278Z             {
2026-06-07T23:26:21.0223398Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T23:26:21.0223487Z               "line": 985
2026-06-07T23:26:21.0223572Z             }
2026-06-07T23:26:21.0223658Z           ]
2026-06-07T23:26:21.0223748Z         },
2026-06-07T23:26:21.0223833Z         "unit": {
2026-06-07T23:26:21.0223928Z           "complete": true,
2026-06-07T23:26:21.0224019Z           "evidence": [
2026-06-07T23:26:21.0224104Z             {
2026-06-07T23:26:21.0224218Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0224310Z               "line": 310
2026-06-07T23:26:21.0224396Z             },
2026-06-07T23:26:21.0224481Z             {
2026-06-07T23:26:21.0224595Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0224686Z               "line": 333
2026-06-07T23:26:21.0224772Z             },
2026-06-07T23:26:21.0224930Z             {
2026-06-07T23:26:21.0225063Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-07T23:26:21.0225153Z               "line": 266
2026-06-07T23:26:21.0225240Z             },
2026-06-07T23:26:21.0225321Z             {
2026-06-07T23:26:21.0225439Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T23:26:21.0225593Z               "line": 124
2026-06-07T23:26:21.0225682Z             },
2026-06-07T23:26:21.0225763Z             {
2026-06-07T23:26:21.0225879Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T23:26:21.0225969Z               "line": 200
2026-06-07T23:26:21.0226054Z             }
2026-06-07T23:26:21.0226140Z           ]
2026-06-07T23:26:21.0226223Z         }
2026-06-07T23:26:21.0226308Z       }
2026-06-07T23:26:21.0226392Z     },
2026-06-07T23:26:21.0226477Z     {
2026-06-07T23:26:21.0226574Z       "id": "REQ-UPD-2",
2026-06-07T23:26:21.0226721Z       "title": "All binaries signature-verified before handoff",
2026-06-07T23:26:21.0226821Z       "requiredStages": [
2026-06-07T23:26:21.0226908Z         "impl",
2026-06-07T23:26:21.0227087Z         "unit"
2026-06-07T23:26:21.0227170Z       ],
2026-06-07T23:26:21.0227260Z       "stages": {
2026-06-07T23:26:21.0227355Z         "doc": {
2026-06-07T23:26:21.0227451Z           "complete": false,
2026-06-07T23:26:21.0227551Z           "evidence": []
2026-06-07T23:26:21.0227642Z         },
2026-06-07T23:26:21.0227731Z         "impl": {
2026-06-07T23:26:21.0227824Z           "complete": true,
2026-06-07T23:26:21.0227918Z           "evidence": [
2026-06-07T23:26:21.0228004Z             {
2026-06-07T23:26:21.0228124Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0228223Z               "line": 342
2026-06-07T23:26:21.0228304Z             },
2026-06-07T23:26:21.0228390Z             {
2026-06-07T23:26:21.0228515Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0228604Z               "line": 468
2026-06-07T23:26:21.0228690Z             },
2026-06-07T23:26:21.0228778Z             {
2026-06-07T23:26:21.0228904Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0228989Z               "line": 29
2026-06-07T23:26:21.0229075Z             },
2026-06-07T23:26:21.0229161Z             {
2026-06-07T23:26:21.0229283Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0229373Z               "line": 258
2026-06-07T23:26:21.0229456Z             },
2026-06-07T23:26:21.0229541Z             {
2026-06-07T23:26:21.0229654Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0229746Z               "line": 275
2026-06-07T23:26:21.0229831Z             },
2026-06-07T23:26:21.0229917Z             {
2026-06-07T23:26:21.0230032Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0230118Z               "line": 395
2026-06-07T23:26:21.0230208Z             },
2026-06-07T23:26:21.0230289Z             {
2026-06-07T23:26:21.0230409Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0230494Z               "line": 527
2026-06-07T23:26:21.0230579Z             },
2026-06-07T23:26:21.0230666Z             {
2026-06-07T23:26:21.0230780Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T23:26:21.0230871Z               "line": 155
2026-06-07T23:26:21.0230957Z             }
2026-06-07T23:26:21.0231043Z           ]
2026-06-07T23:26:21.0231128Z         },
2026-06-07T23:26:21.0231214Z         "int": {
2026-06-07T23:26:21.0231306Z           "complete": false,
2026-06-07T23:26:21.0231401Z           "evidence": []
2026-06-07T23:26:21.0231485Z         },
2026-06-07T23:26:21.0231571Z         "unit": {
2026-06-07T23:26:21.0231661Z           "complete": true,
2026-06-07T23:26:21.0231756Z           "evidence": [
2026-06-07T23:26:21.0231840Z             {
2026-06-07T23:26:21.0231955Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0232046Z               "line": 682
2026-06-07T23:26:21.0232131Z             },
2026-06-07T23:26:21.0232308Z             {
2026-06-07T23:26:21.0232427Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0232517Z               "line": 743
2026-06-07T23:26:21.0232604Z             },
2026-06-07T23:26:21.0232689Z             {
2026-06-07T23:26:21.0232798Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0232976Z               "line": 757
2026-06-07T23:26:21.0233061Z             },
2026-06-07T23:26:21.0233146Z             {
2026-06-07T23:26:21.0233262Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0233352Z               "line": 773
2026-06-07T23:26:21.0233437Z             },
2026-06-07T23:26:21.0233523Z             {
2026-06-07T23:26:21.0233639Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0233728Z               "line": 864
2026-06-07T23:26:21.0233814Z             },
2026-06-07T23:26:21.0233901Z             {
2026-06-07T23:26:21.0234019Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T23:26:21.0234118Z               "line": 412
2026-06-07T23:26:21.0234199Z             },
2026-06-07T23:26:21.0234285Z             {
2026-06-07T23:26:21.0234397Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T23:26:21.0234488Z               "line": 425
2026-06-07T23:26:21.0234579Z             },
2026-06-07T23:26:21.0234660Z             {
2026-06-07T23:26:21.0234787Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-07T23:26:21.0234875Z               "line": 399
2026-06-07T23:26:21.0234961Z             }
2026-06-07T23:26:21.0235045Z           ]
2026-06-07T23:26:21.0235127Z         }
2026-06-07T23:26:21.0235218Z       }
2026-06-07T23:26:21.0235299Z     },
2026-06-07T23:26:21.0235384Z     {
2026-06-07T23:26:21.0235475Z       "id": "REQ-UPD-3",
2026-06-07T23:26:21.0235651Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-07T23:26:21.0235746Z       "requiredStages": [
2026-06-07T23:26:21.0235839Z         "impl",
2026-06-07T23:26:21.0235928Z         "unit",
2026-06-07T23:26:21.0236014Z         "int"
2026-06-07T23:26:21.0236100Z       ],
2026-06-07T23:26:21.0236186Z       "stages": {
2026-06-07T23:26:21.0236276Z         "doc": {
2026-06-07T23:26:21.0236367Z           "complete": false,
2026-06-07T23:26:21.0236463Z           "evidence": []
2026-06-07T23:26:21.0236548Z         },
2026-06-07T23:26:21.0236633Z         "impl": {
2026-06-07T23:26:21.0236725Z           "complete": true,
2026-06-07T23:26:21.0236811Z           "evidence": [
2026-06-07T23:26:21.0236900Z             {
2026-06-07T23:26:21.0237115Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T23:26:21.0237205Z               "line": 39
2026-06-07T23:26:21.0237291Z             },
2026-06-07T23:26:21.0237377Z             {
2026-06-07T23:26:21.0237496Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T23:26:21.0237586Z               "line": 71
2026-06-07T23:26:21.0237672Z             },
2026-06-07T23:26:21.0237754Z             {
2026-06-07T23:26:21.0237873Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T23:26:21.0237962Z               "line": 26
2026-06-07T23:26:21.0238050Z             },
2026-06-07T23:26:21.0238135Z             {
2026-06-07T23:26:21.0238244Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T23:26:21.0238340Z               "line": 114
2026-06-07T23:26:21.0238426Z             },
2026-06-07T23:26:21.0238511Z             {
2026-06-07T23:26:21.0238621Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T23:26:21.0238713Z               "line": 246
2026-06-07T23:26:21.0238797Z             },
2026-06-07T23:26:21.0238878Z             {
2026-06-07T23:26:21.0238984Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0239075Z               "line": 1546
2026-06-07T23:26:21.0239164Z             }
2026-06-07T23:26:21.0239250Z           ]
2026-06-07T23:26:21.0239333Z         },
2026-06-07T23:26:21.0239418Z         "int": {
2026-06-07T23:26:21.0239621Z           "complete": true,
2026-06-07T23:26:21.0239712Z           "evidence": [
2026-06-07T23:26:21.0239796Z             {
2026-06-07T23:26:21.0239924Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-07T23:26:21.0240011Z               "line": 23
2026-06-07T23:26:21.0240097Z             }
2026-06-07T23:26:21.0240267Z           ]
2026-06-07T23:26:21.0240349Z         },
2026-06-07T23:26:21.0240439Z         "unit": {
2026-06-07T23:26:21.0240529Z           "complete": true,
2026-06-07T23:26:21.0240616Z           "evidence": [
2026-06-07T23:26:21.0240702Z             {
2026-06-07T23:26:21.0240816Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T23:26:21.0240907Z               "line": 393
2026-06-07T23:26:21.0240993Z             },
2026-06-07T23:26:21.0241078Z             {
2026-06-07T23:26:21.0241193Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T23:26:21.0241289Z               "line": 461
2026-06-07T23:26:21.0241378Z             },
2026-06-07T23:26:21.0241464Z             {
2026-06-07T23:26:21.0241580Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T23:26:21.0241665Z               "line": 271
2026-06-07T23:26:21.0241756Z             },
2026-06-07T23:26:21.0241837Z             {
2026-06-07T23:26:21.0241952Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T23:26:21.0242045Z               "line": 295
2026-06-07T23:26:21.0242131Z             },
2026-06-07T23:26:21.0242212Z             {
2026-06-07T23:26:21.0242325Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T23:26:21.0242409Z               "line": 316
2026-06-07T23:26:21.0242490Z             },
2026-06-07T23:26:21.0242583Z             {
2026-06-07T23:26:21.0242696Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T23:26:21.0242786Z               "line": 332
2026-06-07T23:26:21.0242878Z             }
2026-06-07T23:26:21.0242958Z           ]
2026-06-07T23:26:21.0243043Z         }
2026-06-07T23:26:21.0243125Z       }
2026-06-07T23:26:21.0243212Z     },
2026-06-07T23:26:21.0243297Z     {
2026-06-07T23:26:21.0243387Z       "id": "REQ-UPD-4",
2026-06-07T23:26:21.0243569Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-07T23:26:21.0243659Z       "requiredStages": [
2026-06-07T23:26:21.0243750Z         "impl",
2026-06-07T23:26:21.0243837Z         "unit"
2026-06-07T23:26:21.0243917Z       ],
2026-06-07T23:26:21.0244011Z       "stages": {
2026-06-07T23:26:21.0244093Z         "doc": {
2026-06-07T23:26:21.0244185Z           "complete": false,
2026-06-07T23:26:21.0244273Z           "evidence": []
2026-06-07T23:26:21.0244360Z         },
2026-06-07T23:26:21.0244447Z         "impl": {
2026-06-07T23:26:21.0244537Z           "complete": true,
2026-06-07T23:26:21.0244631Z           "evidence": [
2026-06-07T23:26:21.0244716Z             {
2026-06-07T23:26:21.0244831Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T23:26:21.0244919Z               "line": 40
2026-06-07T23:26:21.0245005Z             },
2026-06-07T23:26:21.0245091Z             {
2026-06-07T23:26:21.0245211Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T23:26:21.0245296Z               "line": 72
2026-06-07T23:26:21.0245382Z             },
2026-06-07T23:26:21.0245464Z             {
2026-06-07T23:26:21.0245577Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-07T23:26:21.0245667Z               "line": 23
2026-06-07T23:26:21.0245755Z             },
2026-06-07T23:26:21.0245835Z             {
2026-06-07T23:26:21.0245949Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-07T23:26:21.0246036Z               "line": 56
2026-06-07T23:26:21.0246121Z             },
2026-06-07T23:26:21.0246202Z             {
2026-06-07T23:26:21.0246316Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-07T23:26:21.0246408Z               "line": 77
2026-06-07T23:26:21.0246488Z             },
2026-06-07T23:26:21.0246574Z             {
2026-06-07T23:26:21.0246756Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T23:26:21.0246850Z               "line": 184
2026-06-07T23:26:21.0246932Z             },
2026-06-07T23:26:21.0247108Z             {
2026-06-07T23:26:21.0247222Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T23:26:21.0247309Z               "line": 101
2026-06-07T23:26:21.0247484Z             },
2026-06-07T23:26:21.0247564Z             {
2026-06-07T23:26:21.0247680Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:21.0247766Z               "line": 170
2026-06-07T23:26:21.0247851Z             },
2026-06-07T23:26:21.0247932Z             {
2026-06-07T23:26:21.0248037Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0248127Z               "line": 1545
2026-06-07T23:26:21.0248212Z             }
2026-06-07T23:26:21.0248295Z           ]
2026-06-07T23:26:21.0248380Z         },
2026-06-07T23:26:21.0248465Z         "int": {
2026-06-07T23:26:21.0248556Z           "complete": false,
2026-06-07T23:26:21.0248657Z           "evidence": []
2026-06-07T23:26:21.0248743Z         },
2026-06-07T23:26:21.0248828Z         "unit": {
2026-06-07T23:26:21.0248919Z           "complete": true,
2026-06-07T23:26:21.0249010Z           "evidence": [
2026-06-07T23:26:21.0249095Z             {
2026-06-07T23:26:21.0249220Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T23:26:21.0249310Z               "line": 389
2026-06-07T23:26:21.0249395Z             },
2026-06-07T23:26:21.0249477Z             {
2026-06-07T23:26:21.0249597Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T23:26:21.0249696Z               "line": 514
2026-06-07T23:26:21.0249792Z             },
2026-06-07T23:26:21.0249878Z             {
2026-06-07T23:26:21.0249997Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T23:26:21.0250086Z               "line": 384
2026-06-07T23:26:21.0250167Z             },
2026-06-07T23:26:21.0250257Z             {
2026-06-07T23:26:21.0250370Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-07T23:26:21.0250464Z               "line": 102
2026-06-07T23:26:21.0250551Z             },
2026-06-07T23:26:21.0250633Z             {
2026-06-07T23:26:21.0250746Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-07T23:26:21.0250832Z               "line": 123
2026-06-07T23:26:21.0250928Z             },
2026-06-07T23:26:21.0251009Z             {
2026-06-07T23:26:21.0251123Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-07T23:26:21.0251214Z               "line": 142
2026-06-07T23:26:21.0251300Z             },
2026-06-07T23:26:21.0251381Z             {
2026-06-07T23:26:21.0251492Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T23:26:21.0251581Z               "line": 386
2026-06-07T23:26:21.0251667Z             },
2026-06-07T23:26:21.0251748Z             {
2026-06-07T23:26:21.0251863Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T23:26:21.0251953Z               "line": 538
2026-06-07T23:26:21.0252034Z             },
2026-06-07T23:26:21.0252121Z             {
2026-06-07T23:26:21.0252229Z               "path": "crates/spt/src/cli.rs",
2026-06-07T23:26:21.0252320Z               "line": 4831
2026-06-07T23:26:21.0252402Z             }
2026-06-07T23:26:21.0252488Z           ]
2026-06-07T23:26:21.0252572Z         }
2026-06-07T23:26:21.0252657Z       }
2026-06-07T23:26:21.0252738Z     },
2026-06-07T23:26:21.0252824Z     {
2026-06-07T23:26:21.0252913Z       "id": "REQ-UPD-5",
2026-06-07T23:26:21.0253055Z       "title": "spt-core ripple-updates registered adapters",
2026-06-07T23:26:21.0253152Z       "requiredStages": [
2026-06-07T23:26:21.0253237Z         "impl",
2026-06-07T23:26:21.0253322Z         "unit"
2026-06-07T23:26:21.0253404Z       ],
2026-06-07T23:26:21.0253490Z       "stages": {
2026-06-07T23:26:21.0253575Z         "doc": {
2026-06-07T23:26:21.0253666Z           "complete": false,
2026-06-07T23:26:21.0253757Z           "evidence": []
2026-06-07T23:26:21.0253842Z         },
2026-06-07T23:26:21.0253928Z         "impl": {
2026-06-07T23:26:21.0254115Z           "complete": true,
2026-06-07T23:26:21.0254215Z           "evidence": [
2026-06-07T23:26:21.0254295Z             {
2026-06-07T23:26:21.0254425Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:21.0254519Z               "line": 27
2026-06-07T23:26:21.0254663Z             },
2026-06-07T23:26:21.0254750Z             {
2026-06-07T23:26:21.0254877Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:21.0254968Z               "line": 82
2026-06-07T23:26:21.0255055Z             },
2026-06-07T23:26:21.0255139Z             {
2026-06-07T23:26:21.0255262Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:21.0255353Z               "line": 134
2026-06-07T23:26:21.0255438Z             },
2026-06-07T23:26:21.0255522Z             {
2026-06-07T23:26:21.0255637Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0255728Z               "line": 479
2026-06-07T23:26:21.0255809Z             },
2026-06-07T23:26:21.0255899Z             {
2026-06-07T23:26:21.0256015Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0256105Z               "line": 515
2026-06-07T23:26:21.0256184Z             }
2026-06-07T23:26:21.0256271Z           ]
2026-06-07T23:26:21.0256357Z         },
2026-06-07T23:26:21.0256443Z         "int": {
2026-06-07T23:26:21.0256538Z           "complete": false,
2026-06-07T23:26:21.0256625Z           "evidence": []
2026-06-07T23:26:21.0256709Z         },
2026-06-07T23:26:21.0256795Z         "unit": {
2026-06-07T23:26:21.0256891Z           "complete": true,
2026-06-07T23:26:21.0257062Z           "evidence": [
2026-06-07T23:26:21.0257148Z             {
2026-06-07T23:26:21.0257273Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:21.0257358Z               "line": 231
2026-06-07T23:26:21.0257444Z             },
2026-06-07T23:26:21.0257525Z             {
2026-06-07T23:26:21.0257654Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:21.0257748Z               "line": 245
2026-06-07T23:26:21.0257830Z             },
2026-06-07T23:26:21.0257913Z             {
2026-06-07T23:26:21.0258034Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:21.0258124Z               "line": 259
2026-06-07T23:26:21.0258210Z             },
2026-06-07T23:26:21.0258297Z             {
2026-06-07T23:26:21.0258420Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:21.0258506Z               "line": 273
2026-06-07T23:26:21.0258593Z             },
2026-06-07T23:26:21.0258678Z             {
2026-06-07T23:26:21.0258801Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T23:26:21.0258889Z               "line": 307
2026-06-07T23:26:21.0258974Z             },
2026-06-07T23:26:21.0259059Z             {
2026-06-07T23:26:21.0259175Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T23:26:21.0259259Z               "line": 792
2026-06-07T23:26:21.0259350Z             }
2026-06-07T23:26:21.0259431Z           ]
2026-06-07T23:26:21.0259518Z         }
2026-06-07T23:26:21.0259603Z       }
2026-06-07T23:26:21.0259689Z     },
2026-06-07T23:26:21.0259770Z     {
2026-06-07T23:26:21.0259866Z       "id": "REQ-UPD-6",
2026-06-07T23:26:21.0260627Z       "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-07T23:26:21.0260722Z       "requiredStages": [
2026-06-07T23:26:21.0260808Z         "doc",
2026-06-07T23:26:21.0260892Z         "impl",
2026-06-07T23:26:21.0260978Z         "unit",
2026-06-07T23:26:21.0261063Z         "int"
2026-06-07T23:26:21.0261150Z       ],
2026-06-07T23:26:21.0261231Z       "stages": {
2026-06-07T23:26:21.0261316Z         "doc": {
2026-06-07T23:26:21.0261507Z           "complete": true,
2026-06-07T23:26:21.0261597Z           "evidence": [
2026-06-07T23:26:21.0261683Z             {
2026-06-07T23:26:21.0261808Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-07T23:26:21.0261893Z               "line": 3
2026-06-07T23:26:21.0261978Z             },
2026-06-07T23:26:21.0262151Z             {
2026-06-07T23:26:21.0262265Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-07T23:26:21.0262351Z               "line": 3
2026-06-07T23:26:21.0262437Z             },
2026-06-07T23:26:21.0262518Z             {
2026-06-07T23:26:21.0262671Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-07T23:26:21.0262757Z               "line": 3
2026-06-07T23:26:21.0262842Z             }
2026-06-07T23:26:21.0262923Z           ]
2026-06-07T23:26:21.0263005Z         },
2026-06-07T23:26:21.0263095Z         "impl": {
2026-06-07T23:26:21.0263185Z           "complete": true,
2026-06-07T23:26:21.0263275Z           "evidence": [
2026-06-07T23:26:21.0263356Z             {
2026-06-07T23:26:21.0263483Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T23:26:21.0263577Z               "line": 143
2026-06-07T23:26:21.0263659Z             },
2026-06-07T23:26:21.0263745Z             {
2026-06-07T23:26:21.0263863Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:21.0263954Z               "line": 457
2026-06-07T23:26:21.0264041Z             },
2026-06-07T23:26:21.0264126Z             {
2026-06-07T23:26:21.0264241Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T23:26:21.0264327Z               "line": 510
2026-06-07T23:26:21.0264412Z             },
2026-06-07T23:26:21.0264493Z             {
2026-06-07T23:26:21.0264613Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0264698Z               "line": 69
2026-06-07T23:26:21.0264784Z             },
2026-06-07T23:26:21.0264870Z             {
2026-06-07T23:26:21.0264990Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0265084Z               "line": 132
2026-06-07T23:26:21.0265165Z             },
2026-06-07T23:26:21.0265253Z             {
2026-06-07T23:26:21.0265375Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0265461Z               "line": 242
2026-06-07T23:26:21.0265548Z             },
2026-06-07T23:26:21.0265639Z             {
2026-06-07T23:26:21.0265751Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0265841Z               "line": 398
2026-06-07T23:26:21.0265932Z             },
2026-06-07T23:26:21.0266021Z             {
2026-06-07T23:26:21.0266135Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0266225Z               "line": 526
2026-06-07T23:26:21.0266308Z             },
2026-06-07T23:26:21.0266392Z             {
2026-06-07T23:26:21.0266507Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0266598Z               "line": 540
2026-06-07T23:26:21.0266688Z             },
2026-06-07T23:26:21.0266778Z             {
2026-06-07T23:26:21.0266894Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0267064Z               "line": 595
2026-06-07T23:26:21.0267151Z             },
2026-06-07T23:26:21.0267237Z             {
2026-06-07T23:26:21.0267355Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0267446Z               "line": 626
2026-06-07T23:26:21.0267528Z             },
2026-06-07T23:26:21.0267617Z             {
2026-06-07T23:26:21.0267732Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0267819Z               "line": 41
2026-06-07T23:26:21.0267900Z             },
2026-06-07T23:26:21.0267985Z             {
2026-06-07T23:26:21.0268100Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0268191Z               "line": 99
2026-06-07T23:26:21.0268275Z             },
2026-06-07T23:26:21.0268357Z             {
2026-06-07T23:26:21.0268585Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0268675Z               "line": 130
2026-06-07T23:26:21.0268761Z             },
2026-06-07T23:26:21.0268848Z             {
2026-06-07T23:26:21.0268961Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0269052Z               "line": 159
2026-06-07T23:26:21.0269220Z             },
2026-06-07T23:26:21.0269304Z             {
2026-06-07T23:26:21.0269420Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0269525Z               "line": 190
2026-06-07T23:26:21.0269609Z             },
2026-06-07T23:26:21.0269691Z             {
2026-06-07T23:26:21.0269806Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0269896Z               "line": 213
2026-06-07T23:26:21.0269977Z             },
2026-06-07T23:26:21.0270078Z             {
2026-06-07T23:26:21.0270201Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0270292Z               "line": 231
2026-06-07T23:26:21.0270379Z             },
2026-06-07T23:26:21.0270463Z             {
2026-06-07T23:26:21.0270573Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0270665Z               "line": 241
2026-06-07T23:26:21.0270750Z             },
2026-06-07T23:26:21.0270830Z             {
2026-06-07T23:26:21.0270945Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0271037Z               "line": 253
2026-06-07T23:26:21.0271121Z             },
2026-06-07T23:26:21.0271202Z             {
2026-06-07T23:26:21.0271316Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0271406Z               "line": 263
2026-06-07T23:26:21.0271490Z             },
2026-06-07T23:26:21.0271575Z             {
2026-06-07T23:26:21.0271691Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0271781Z               "line": 87
2026-06-07T23:26:21.0271862Z             },
2026-06-07T23:26:21.0271948Z             {
2026-06-07T23:26:21.0272072Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0272157Z               "line": 113
2026-06-07T23:26:21.0272248Z             },
2026-06-07T23:26:21.0272330Z             {
2026-06-07T23:26:21.0272448Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0272538Z               "line": 128
2026-06-07T23:26:21.0272626Z             },
2026-06-07T23:26:21.0272715Z             {
2026-06-07T23:26:21.0272825Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0272911Z               "line": 149
2026-06-07T23:26:21.0273002Z             },
2026-06-07T23:26:21.0274915Z             {
2026-06-07T23:26:21.0275058Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0275149Z               "line": 161
2026-06-07T23:26:21.0275235Z             },
2026-06-07T23:26:21.0275321Z             {
2026-06-07T23:26:21.0275440Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0275526Z               "line": 172
2026-06-07T23:26:21.0275621Z             },
2026-06-07T23:26:21.0275706Z             {
2026-06-07T23:26:21.0275827Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0275916Z               "line": 438
2026-06-07T23:26:21.0276002Z             },
2026-06-07T23:26:21.0276084Z             {
2026-06-07T23:26:21.0276208Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0276302Z               "line": 542
2026-06-07T23:26:21.0276387Z             },
2026-06-07T23:26:21.0276468Z             {
2026-06-07T23:26:21.0276590Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T23:26:21.0276680Z               "line": 171
2026-06-07T23:26:21.0276767Z             },
2026-06-07T23:26:21.0276848Z             {
2026-06-07T23:26:21.0277067Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T23:26:21.0277158Z               "line": 65
2026-06-07T23:26:21.0277244Z             },
2026-06-07T23:26:21.0277324Z             {
2026-06-07T23:26:21.0277559Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T23:26:21.0277653Z               "line": 71
2026-06-07T23:26:21.0277735Z             },
2026-06-07T23:26:21.0277821Z             {
2026-06-07T23:26:21.0277934Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T23:26:21.0278107Z               "line": 77
2026-06-07T23:26:21.0278196Z             },
2026-06-07T23:26:21.0278278Z             {
2026-06-07T23:26:21.0278389Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:21.0278479Z               "line": 649
2026-06-07T23:26:21.0278560Z             },
2026-06-07T23:26:21.0278645Z             {
2026-06-07T23:26:21.0278751Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:21.0278835Z               "line": 666
2026-06-07T23:26:21.0278922Z             },
2026-06-07T23:26:21.0279004Z             {
2026-06-07T23:26:21.0279108Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:21.0279197Z               "line": 709
2026-06-07T23:26:21.0279287Z             },
2026-06-07T23:26:21.0279370Z             {
2026-06-07T23:26:21.0279474Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:21.0279559Z               "line": 849
2026-06-07T23:26:21.0279646Z             },
2026-06-07T23:26:21.0279731Z             {
2026-06-07T23:26:21.0279840Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:21.0279931Z               "line": 996
2026-06-07T23:26:21.0280013Z             }
2026-06-07T23:26:21.0280095Z           ]
2026-06-07T23:26:21.0280179Z         },
2026-06-07T23:26:21.0280261Z         "int": {
2026-06-07T23:26:21.0280357Z           "complete": true,
2026-06-07T23:26:21.0280447Z           "evidence": [
2026-06-07T23:26:21.0280532Z             {
2026-06-07T23:26:21.0280662Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-07T23:26:21.0280746Z               "line": 558
2026-06-07T23:26:21.0280828Z             },
2026-06-07T23:26:21.0280915Z             {
2026-06-07T23:26:21.0281033Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-07T23:26:21.0281123Z               "line": 135
2026-06-07T23:26:21.0281210Z             }
2026-06-07T23:26:21.0281292Z           ]
2026-06-07T23:26:21.0281376Z         },
2026-06-07T23:26:21.0281462Z         "unit": {
2026-06-07T23:26:21.0281554Z           "complete": true,
2026-06-07T23:26:21.0281644Z           "evidence": [
2026-06-07T23:26:21.0281728Z             {
2026-06-07T23:26:21.0281852Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T23:26:21.0281938Z               "line": 434
2026-06-07T23:26:21.0282026Z             },
2026-06-07T23:26:21.0282107Z             {
2026-06-07T23:26:21.0282232Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T23:26:21.0282318Z               "line": 483
2026-06-07T23:26:21.0282403Z             },
2026-06-07T23:26:21.0282494Z             {
2026-06-07T23:26:21.0282608Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T23:26:21.0282698Z               "line": 688
2026-06-07T23:26:21.0282784Z             },
2026-06-07T23:26:21.0282871Z             {
2026-06-07T23:26:21.0282985Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0283075Z               "line": 355
2026-06-07T23:26:21.0283162Z             },
2026-06-07T23:26:21.0283247Z             {
2026-06-07T23:26:21.0283366Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T23:26:21.0283452Z               "line": 392
2026-06-07T23:26:21.0283534Z             },
2026-06-07T23:26:21.0283618Z             {
2026-06-07T23:26:21.0283733Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0283820Z               "line": 879
2026-06-07T23:26:21.0283905Z             },
2026-06-07T23:26:21.0283986Z             {
2026-06-07T23:26:21.0284101Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0284192Z               "line": 901
2026-06-07T23:26:21.0284276Z             },
2026-06-07T23:26:21.0284361Z             {
2026-06-07T23:26:21.0284547Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0284636Z               "line": 918
2026-06-07T23:26:21.0284721Z             },
2026-06-07T23:26:21.0284803Z             {
2026-06-07T23:26:21.0284917Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0285074Z               "line": 933
2026-06-07T23:26:21.0285156Z             },
2026-06-07T23:26:21.0285246Z             {
2026-06-07T23:26:21.0285361Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T23:26:21.0285447Z               "line": 959
2026-06-07T23:26:21.0285533Z             },
2026-06-07T23:26:21.0285618Z             {
2026-06-07T23:26:21.0285734Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T23:26:21.0285823Z               "line": 455
2026-06-07T23:26:21.0285904Z             },
2026-06-07T23:26:21.0285985Z             {
2026-06-07T23:26:21.0286110Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-07T23:26:21.0286200Z               "line": 327
2026-06-07T23:26:21.0286290Z             },
2026-06-07T23:26:21.0286378Z             {
2026-06-07T23:26:21.0286481Z               "path": "crates/xtask/src/main.rs",
2026-06-07T23:26:21.0286572Z               "line": 1125
2026-06-07T23:26:21.0286654Z             },
2026-06-07T23:26:21.0286739Z             {
2026-06-07T23:26:21.0286853Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-07T23:26:21.0287038Z               "line": 130
2026-06-07T23:26:21.0287122Z             }
2026-06-07T23:26:21.0287207Z           ]
2026-06-07T23:26:21.0287293Z         }
2026-06-07T23:26:21.0287375Z       }
2026-06-07T23:26:21.0287456Z     }
2026-06-07T23:26:21.0287536Z   ],
2026-06-07T23:26:21.0287627Z   "findings": []
2026-06-07T23:26:21.0287713Z }
2026-06-07T23:26:21.0310840Z ##[group]Run ./traceable-reqs lint || true
2026-06-07T23:26:21.0310992Z [36;1m./traceable-reqs lint || true[0m
2026-06-07T23:26:21.0323885Z shell: /usr/bin/bash -e {0}
2026-06-07T23:26:21.0323978Z ##[endgroup]
2026-06-07T23:26:21.0480612Z Requirement quality findings (55); 166 requirements queued for agent review:
2026-06-07T23:26:21.0481552Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0481891Z   [must] requirement_quality REQ-CLI-1 criterion=length — title is 47 words; want 3..=25
2026-06-07T23:26:21.0482230Z   [must] requirement_quality REQ-CLI-2 criterion=length — title is 37 words; want 3..=25
2026-06-07T23:26:21.0482537Z   [must] requirement_quality REQ-CLI-3 criterion=length — title is 37 words; want 3..=25
2026-06-07T23:26:21.0482912Z   [must] requirement_quality REQ-CONSENT-1 criterion=length — title is 41 words; want 3..=25
2026-06-07T23:26:21.0483523Z   [must] requirement_quality REQ-CONSENT-2 criterion=length — title is 37 words; want 3..=25
2026-06-07T23:26:21.0484448Z   [must] requirement_quality REQ-CONV-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0485061Z   [must] requirement_quality REQ-CONV-1 criterion=length — title is 73 words; want 3..=25
2026-06-07T23:26:21.0485912Z   [must] requirement_quality REQ-CONV-2 criterion=length — title is 47 words; want 3..=25
2026-06-07T23:26:21.0486556Z   [must] requirement_quality REQ-DAEMON-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0487072Z   [must] requirement_quality REQ-DAEMON-5 criterion=length — title is 64 words; want 3..=25
2026-06-07T23:26:21.0487666Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-07T23:26:21.0488098Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-07T23:26:21.0488507Z   [must] requirement_quality REQ-HAZARD-DETACHED-PIPE-INHERIT criterion=length — title is 52 words; want 3..=25
2026-06-07T23:26:21.0489023Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0489418Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=length — title is 58 words; want 3..=25
2026-06-07T23:26:21.0489934Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0490543Z   [must] requirement_quality REQ-HAZARD-EPOCH-RESET criterion=length — title is 60 words; want 3..=25
2026-06-07T23:26:21.0491115Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0491540Z   [must] requirement_quality REQ-HAZARD-INSTANT-UNDERFLOW criterion=length — title is 30 words; want 3..=25
2026-06-07T23:26:21.0491902Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-07T23:26:21.0492268Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-07T23:26:21.0492757Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0493243Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0493638Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-07T23:26:21.0494111Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0494640Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=length — title is 66 words; want 3..=25
2026-06-07T23:26:21.0495003Z   [must] requirement_quality REQ-HAZARD-SUDO-SECURE-PATH criterion=length — title is 43 words; want 3..=25
2026-06-07T23:26:21.0495352Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-07T23:26:21.0495640Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-07T23:26:21.0495938Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-07T23:26:21.0496372Z   [must] requirement_quality REQ-INSTALL-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0497217Z   [must] requirement_quality REQ-INSTALL-6 criterion=length — title is 56 words; want 3..=25
2026-06-07T23:26:21.0497965Z   [must] requirement_quality REQ-INSTALL-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0498663Z   [must] requirement_quality REQ-INSTALL-7 criterion=length — title is 50 words; want 3..=25
2026-06-07T23:26:21.0499264Z   [must] requirement_quality REQ-INSTALL-8 criterion=length — title is 55 words; want 3..=25
2026-06-07T23:26:21.0499978Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0500786Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0501480Z   [must] requirement_quality REQ-MSG-4 criterion=length — title is 31 words; want 3..=25
2026-06-07T23:26:21.0502128Z   [must] requirement_quality REQ-PAIR-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0502706Z   [must] requirement_quality REQ-PAIR-8 criterion=length — title is 67 words; want 3..=25
2026-06-07T23:26:21.0503302Z   [must] requirement_quality REQ-PRES-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0503888Z   [must] requirement_quality REQ-PRES-1 criterion=length — title is 48 words; want 3..=25
2026-06-07T23:26:21.0504399Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-07T23:26:21.0504910Z   [must] requirement_quality REQ-SHELL-1 criterion=length — title is 36 words; want 3..=25
2026-06-07T23:26:21.0505400Z   [must] requirement_quality REQ-SHELL-2 criterion=length — title is 49 words; want 3..=25
2026-06-07T23:26:21.0506015Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-07T23:26:21.0506556Z   [must] requirement_quality REQ-SUBNET-5 criterion=length — title is 52 words; want 3..=25
2026-06-07T23:26:21.0507295Z   [must] requirement_quality REQ-SUBNET-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0507905Z   [must] requirement_quality REQ-SUBNET-6 criterion=length — title is 38 words; want 3..=25
2026-06-07T23:26:21.0508497Z   [must] requirement_quality REQ-SUBNET-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0509079Z   [must] requirement_quality REQ-SUBNET-7 criterion=length — title is 75 words; want 3..=25
2026-06-07T23:26:21.0509584Z   [must] requirement_quality REQ-SUBNET-8 criterion=length — title is 53 words; want 3..=25
2026-06-07T23:26:21.0510167Z   [must] requirement_quality REQ-UPD-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T23:26:21.0510739Z   [must] requirement_quality REQ-UPD-6 criterion=length — title is 32 words; want 3..=25
2026-06-07T23:26:21.0511017Z 
2026-06-07T23:26:21.0511124Z # Requirement quality review
2026-06-07T23:26:21.0511278Z 
2026-06-07T23:26:21.0511477Z You are reviewing 166 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-07T23:26:21.0512031Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-07T23:26:21.0512454Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-07T23:26:21.0512826Z this command's output. Your task is the rubric items below.
2026-06-07T23:26:21.0513036Z 
2026-06-07T23:26:21.0513136Z ## Rubric
2026-06-07T23:26:21.0513252Z 
2026-06-07T23:26:21.0513528Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-07T23:26:21.0514032Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-07T23:26:21.0514486Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-07T23:26:21.0514859Z - **active-voice** — clear subject and active verb.
2026-06-07T23:26:21.0515049Z 
2026-06-07T23:26:21.0515292Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-07T23:26:21.0515607Z clear concerns.
2026-06-07T23:26:21.0515736Z 
2026-06-07T23:26:21.0515842Z ## Requirements
2026-06-07T23:26:21.0515970Z 
2026-06-07T23:26:21.0516056Z ### REQ-ARCH-1
2026-06-07T23:26:21.0516256Z - Title: Many small acyclically-layered crates
2026-06-07T23:26:21.0516515Z - Required stages: impl
2026-06-07T23:26:21.0516646Z 
2026-06-07T23:26:21.0516736Z ### REQ-ARCH-2
2026-06-07T23:26:21.0517053Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-07T23:26:21.0517707Z - Required stages: impl
2026-06-07T23:26:21.0517916Z 
2026-06-07T23:26:21.0518037Z ### REQ-ARCH-3
2026-06-07T23:26:21.0518409Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-07T23:26:21.0518866Z - Required stages: impl, unit
2026-06-07T23:26:21.0519067Z 
2026-06-07T23:26:21.0519189Z ### REQ-ARCH-4
2026-06-07T23:26:21.0519520Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-07T23:26:21.0519901Z - Required stages: impl, unit
2026-06-07T23:26:21.0520093Z 
2026-06-07T23:26:21.0520220Z ### REQ-DAEMON-1
2026-06-07T23:26:21.0520554Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-07T23:26:21.0520937Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0521141Z 
2026-06-07T23:26:21.0521257Z ### REQ-DAEMON-2
2026-06-07T23:26:21.0521538Z - Title: Broker/brain split for seamless self-update
2026-06-07T23:26:21.0521901Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0522094Z 
2026-06-07T23:26:21.0522213Z ### REQ-DAEMON-3
2026-06-07T23:26:21.0522499Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-07T23:26:21.0522843Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0523230Z 
2026-06-07T23:26:21.0523343Z ### REQ-DAEMON-4
2026-06-07T23:26:21.0523596Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-07T23:26:21.0523906Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0524097Z 
2026-06-07T23:26:21.0524212Z ### REQ-STORE-1
2026-06-07T23:26:21.0525323Z - 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-07T23:26:21.0526492Z - Required stages: impl, unit
2026-06-07T23:26:21.0526684Z 
2026-06-07T23:26:21.0526806Z ### REQ-MANIFEST-1
2026-06-07T23:26:21.0527268Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-07T23:26:21.0527671Z - Required stages: doc, impl, unit
2026-06-07T23:26:21.0527861Z 
2026-06-07T23:26:21.0527967Z ### REQ-SEAM-SPAWN
2026-06-07T23:26:21.0528214Z - Title: spawn-session seam
2026-06-07T23:26:21.0528481Z - Required stages: impl, unit
2026-06-07T23:26:21.0528669Z 
2026-06-07T23:26:21.0528782Z ### REQ-SEAM-POSTSPAWN
2026-06-07T23:26:21.0529072Z - Title: post-spawn / api bind seam with boot nonce
2026-06-07T23:26:21.0529396Z - Required stages: impl, unit
2026-06-07T23:26:21.0529579Z 
2026-06-07T23:26:21.0529702Z ### REQ-SEAM-PSYCHE
2026-06-07T23:26:21.0530114Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-07T23:26:21.0530447Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0530639Z 
2026-06-07T23:26:21.0530757Z ### REQ-SEAM-HISTORY
2026-06-07T23:26:21.0531081Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-07T23:26:21.0531415Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0531573Z 
2026-06-07T23:26:21.0531668Z ### REQ-SEAM-ACTIVITY
2026-06-07T23:26:21.0531935Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-07T23:26:21.0532231Z - Required stages: impl, unit
2026-06-07T23:26:21.0532379Z 
2026-06-07T23:26:21.0532480Z ### REQ-SEAM-INJECT
2026-06-07T23:26:21.0532720Z - Title: inject-input methods configurable per activity-state
2026-06-07T23:26:21.0533002Z - Required stages: impl, unit
2026-06-07T23:26:21.0533151Z 
2026-06-07T23:26:21.0533241Z ### REQ-SEAM-RESUME
2026-06-07T23:26:21.0533499Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-07T23:26:21.0533827Z - Required stages: impl, unit
2026-06-07T23:26:21.0533970Z 
2026-06-07T23:26:21.0534076Z ### REQ-SEAM-CAPABILITY
2026-06-07T23:26:21.0534313Z - Title: Hostable endpoint-types capability declaration
2026-06-07T23:26:21.0534585Z - Required stages: impl, unit
2026-06-07T23:26:21.0534734Z 
2026-06-07T23:26:21.0534828Z ### REQ-SEAM-UPDATE
2026-06-07T23:26:21.0535082Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-07T23:26:21.0535366Z - Required stages: impl, unit
2026-06-07T23:26:21.0535517Z 
2026-06-07T23:26:21.0535612Z ### REQ-API-1
2026-06-07T23:26:21.0535855Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-07T23:26:21.0536141Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0536290Z 
2026-06-07T23:26:21.0536385Z ### REQ-API-2
2026-06-07T23:26:21.0536657Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-07T23:26:21.0537075Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0537234Z 
2026-06-07T23:26:21.0537338Z ### REQ-API-3
2026-06-07T23:26:21.0537554Z - Title: commune/signoff are file-drops, not commands
2026-06-07T23:26:21.0537818Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0537966Z 
2026-06-07T23:26:21.0538064Z ### REQ-START-1
2026-06-07T23:26:21.0538327Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-07T23:26:21.0538641Z - Required stages: impl, unit
2026-06-07T23:26:21.0538794Z 
2026-06-07T23:26:21.0538880Z ### REQ-START-2
2026-06-07T23:26:21.0539099Z - Title: Harness-hosted startup: api seed then listen
2026-06-07T23:26:21.0539467Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0539618Z 
2026-06-07T23:26:21.0539714Z ### REQ-START-3
2026-06-07T23:26:21.0539956Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-07T23:26:21.0540248Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0540404Z 
2026-06-07T23:26:21.0540495Z ### REQ-START-4
2026-06-07T23:26:21.0540707Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-07T23:26:21.0540974Z - Required stages: impl, unit
2026-06-07T23:26:21.0541123Z 
2026-06-07T23:26:21.0541218Z ### REQ-EP-1
2026-06-07T23:26:21.0541428Z - Title: Day-one endpoint types; open type system
2026-06-07T23:26:21.0541694Z - Required stages: impl, unit
2026-06-07T23:26:21.0541837Z 
2026-06-07T23:26:21.0541932Z ### REQ-EP-2
2026-06-07T23:26:21.0542166Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-07T23:26:21.0542443Z - Required stages: impl, unit
2026-06-07T23:26:21.0542586Z 
2026-06-07T23:26:21.0542677Z ### REQ-EP-3
2026-06-07T23:26:21.0542939Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-07T23:26:21.0543242Z - Required stages: impl, unit
2026-06-07T23:26:21.0543387Z 
2026-06-07T23:26:21.0543481Z ### REQ-EP-4
2026-06-07T23:26:21.0543706Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-07T23:26:21.0543968Z - Required stages: impl, unit
2026-06-07T23:26:21.0544120Z 
2026-06-07T23:26:21.0544206Z ### REQ-EP-5
2026-06-07T23:26:21.0545036Z - 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-07T23:26:21.0545783Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0545940Z 
2026-06-07T23:26:21.0546039Z ### REQ-INST-1
2026-06-07T23:26:21.0546268Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-07T23:26:21.0546540Z - Required stages: 
2026-06-07T23:26:21.0546669Z 
2026-06-07T23:26:21.0546763Z ### REQ-INST-2
2026-06-07T23:26:21.0547044Z - Title: Per-node files, synced Psyche mind
2026-06-07T23:26:21.0547298Z - Required stages: impl, unit
2026-06-07T23:26:21.0547446Z 
2026-06-07T23:26:21.0547541Z ### REQ-INST-3
2026-06-07T23:26:21.0547765Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-07T23:26:21.0548022Z - Required stages: doc, impl, unit
2026-06-07T23:26:21.0548176Z 
2026-06-07T23:26:21.0548284Z ### REQ-INST-4
2026-06-07T23:26:21.0548526Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-07T23:26:21.0548816Z - Required stages: impl, unit
2026-06-07T23:26:21.0548963Z 
2026-06-07T23:26:21.0549053Z ### REQ-INST-5
2026-06-07T23:26:21.0549301Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-07T23:26:21.0549606Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0549760Z 
2026-06-07T23:26:21.0549850Z ### REQ-INST-6
2026-06-07T23:26:21.0550108Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-07T23:26:21.0550418Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0550574Z 
2026-06-07T23:26:21.0550661Z ### REQ-INST-7
2026-06-07T23:26:21.0550879Z - Title: Subnet registry + bare-id resolution policy
2026-06-07T23:26:21.0551144Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0551291Z 
2026-06-07T23:26:21.0551392Z ### REQ-INST-8
2026-06-07T23:26:21.0551630Z - Title: Remote-control mode distinct from local operation
2026-06-07T23:26:21.0551911Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0552064Z 
2026-06-07T23:26:21.0552154Z ### REQ-INST-9
2026-06-07T23:26:21.0552402Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-07T23:26:21.0552703Z - Required stages: impl, unit
2026-06-07T23:26:21.0552855Z 
2026-06-07T23:26:21.0552952Z ### REQ-INST-10
2026-06-07T23:26:21.0553233Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-07T23:26:21.0553562Z - Required stages: impl, unit
2026-06-07T23:26:21.0553807Z 
2026-06-07T23:26:21.0553903Z ### REQ-INST-11
2026-06-07T23:26:21.0554185Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-07T23:26:21.0554518Z - Required stages: impl, unit
2026-06-07T23:26:21.0554667Z 
2026-06-07T23:26:21.0554756Z ### REQ-INST-12
2026-06-07T23:26:21.0555119Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-07T23:26:21.0555521Z - Required stages: impl, unit
2026-06-07T23:26:21.0555662Z 
2026-06-07T23:26:21.0555758Z ### REQ-INST-13
2026-06-07T23:26:21.0556015Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-07T23:26:21.0564654Z - Required stages: impl, unit
2026-06-07T23:26:21.0564864Z 
2026-06-07T23:26:21.0564968Z ### REQ-INST-14
2026-06-07T23:26:21.0565437Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-07T23:26:21.0565941Z - Required stages: doc, impl, unit
2026-06-07T23:26:21.0566119Z 
2026-06-07T23:26:21.0566218Z ### REQ-INST-15
2026-06-07T23:26:21.0567070Z - 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-07T23:26:21.0567893Z - Required stages: doc, impl, unit
2026-06-07T23:26:21.0568203Z 
2026-06-07T23:26:21.0568356Z ### REQ-REACH-1
2026-06-07T23:26:21.0568594Z - Title: Off-node remote-drive detection + file transfer
2026-06-07T23:26:21.0568885Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0569042Z 
2026-06-07T23:26:21.0569133Z ### REQ-REACH-2
2026-06-07T23:26:21.0569366Z - Title: Remote command execution (deferred, consent-gated)
2026-06-07T23:26:21.0569646Z - Required stages: 
2026-06-07T23:26:21.0569782Z 
2026-06-07T23:26:21.0569868Z ### REQ-MSG-1
2026-06-07T23:26:21.0570364Z - 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-07T23:26:21.0570923Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0571079Z 
2026-06-07T23:26:21.0571176Z ### REQ-MSG-2
2026-06-07T23:26:21.0571519Z - Title: spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes
2026-06-07T23:26:21.0571905Z - Required stages: impl, unit
2026-06-07T23:26:21.0572065Z 
2026-06-07T23:26:21.0572151Z ### REQ-MSG-3
2026-06-07T23:26:21.0572588Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-07T23:26:21.0573069Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0573227Z 
2026-06-07T23:26:21.0573321Z ### REQ-MSG-4
2026-06-07T23:26:21.0574228Z - 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-07T23:26:21.0575018Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0575181Z 
2026-06-07T23:26:21.0575280Z ### REQ-NODE-IDENTITY
2026-06-07T23:26:21.0575590Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-07T23:26:21.0575944Z - Required stages: impl, unit
2026-06-07T23:26:21.0576101Z 
2026-06-07T23:26:21.0576196Z ### REQ-NET-1
2026-06-07T23:26:21.0576439Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-07T23:26:21.0576749Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0576903Z 
2026-06-07T23:26:21.0577092Z ### REQ-NET-2
2026-06-07T23:26:21.0577341Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-07T23:26:21.0577631Z - Required stages: impl
2026-06-07T23:26:21.0577766Z 
2026-06-07T23:26:21.0577862Z ### REQ-NET-3
2026-06-07T23:26:21.0578230Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-07T23:26:21.0578525Z - Required stages: impl, unit
2026-06-07T23:26:21.0578668Z 
2026-06-07T23:26:21.0578763Z ### REQ-PAIR-1
2026-06-07T23:26:21.0578963Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-07T23:26:21.0579189Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0579345Z 
2026-06-07T23:26:21.0579435Z ### REQ-PAIR-2
2026-06-07T23:26:21.0579664Z - Title: Local trust store with TOFU + warn-on-change
2026-06-07T23:26:21.0579935Z - Required stages: impl, unit
2026-06-07T23:26:21.0580078Z 
2026-06-07T23:26:21.0580169Z ### REQ-PAIR-3
2026-06-07T23:26:21.0580390Z - Title: Fetch current pairing code from any paired node
2026-06-07T23:26:21.0580662Z - Required stages: impl, unit
2026-06-07T23:26:21.0580815Z 
2026-06-07T23:26:21.0580901Z ### REQ-PAIR-4
2026-06-07T23:26:21.0581092Z - Title: Subnet naming on first pairing
2026-06-07T23:26:21.0581329Z - Required stages: impl, unit
2026-06-07T23:26:21.0581473Z 
2026-06-07T23:26:21.0581578Z ### REQ-PAIR-5
2026-06-07T23:26:21.0581954Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-07T23:26:21.0582361Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0582516Z 
2026-06-07T23:26:21.0582611Z ### REQ-PAIR-6
2026-06-07T23:26:21.0582933Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-07T23:26:21.0583416Z - Required stages: impl, unit
2026-06-07T23:26:21.0583567Z 
2026-06-07T23:26:21.0583659Z ### REQ-PAIR-7
2026-06-07T23:26:21.0583901Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-07T23:26:21.0584178Z - Required stages: 
2026-06-07T23:26:21.0584303Z 
2026-06-07T23:26:21.0584397Z ### REQ-SUBNET-1
2026-06-07T23:26:21.0584788Z - Title: spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted
2026-06-07T23:26:21.0585213Z - Required stages: impl, unit
2026-06-07T23:26:21.0585374Z 
2026-06-07T23:26:21.0585454Z ### REQ-SUBNET-2
2026-06-07T23:26:21.0585750Z - Title: Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder
2026-06-07T23:26:21.0586112Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0586266Z 
2026-06-07T23:26:21.0586357Z ### REQ-SUBNET-3
2026-06-07T23:26:21.0586704Z - Title: Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)
2026-06-07T23:26:21.0587158Z - Required stages: impl, unit
2026-06-07T23:26:21.0587328Z 
2026-06-07T23:26:21.0587424Z ### REQ-SUBNET-4
2026-06-07T23:26:21.0587778Z - Title: Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)
2026-06-07T23:26:21.0588186Z - Required stages: impl, unit
2026-06-07T23:26:21.0588331Z 
2026-06-07T23:26:21.0588427Z ### REQ-DOCS-6
2026-06-07T23:26:21.0588809Z - Title: spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)
2026-06-07T23:26:21.0589247Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0589410Z 
2026-06-07T23:26:21.0589504Z ### REQ-SEC-1
2026-06-07T23:26:21.0589943Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-07T23:26:21.0590444Z - Required stages: impl, unit
2026-06-07T23:26:21.0590590Z 
2026-06-07T23:26:21.0590686Z ### REQ-NOTIF-1
2026-06-07T23:26:21.0591108Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-07T23:26:21.0591579Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0591771Z 
2026-06-07T23:26:21.0591866Z ### REQ-NOTIF-2
2026-06-07T23:26:21.0592195Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-07T23:26:21.0592572Z - Required stages: doc, impl, unit, int
2026-06-07T23:26:21.0592757Z 
2026-06-07T23:26:21.0592853Z ### REQ-UPD-1
2026-06-07T23:26:21.0593152Z - Title: Peer-propagated update over P2P
2026-06-07T23:26:21.0593393Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0593550Z 
2026-06-07T23:26:21.0593642Z ### REQ-UPD-2
2026-06-07T23:26:21.0593860Z - Title: All binaries signature-verified before handoff
2026-06-07T23:26:21.0594132Z - Required stages: impl, unit
2026-06-07T23:26:21.0594281Z 
2026-06-07T23:26:21.0594376Z ### REQ-UPD-3
2026-06-07T23:26:21.0594624Z - Title: No endpoint process terminates/suspends during self-update
2026-06-07T23:26:21.0594925Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0595076Z 
2026-06-07T23:26:21.0595168Z ### REQ-UPD-4
2026-06-07T23:26:21.0595429Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-07T23:26:21.0595734Z - Required stages: impl, unit
2026-06-07T23:26:21.0595883Z 
2026-06-07T23:26:21.0595972Z ### REQ-UPD-5
2026-06-07T23:26:21.0596188Z - Title: spt-core ripple-updates registered adapters
2026-06-07T23:26:21.0596459Z - Required stages: impl, unit
2026-06-07T23:26:21.0596611Z 
2026-06-07T23:26:21.0596701Z ### REQ-UPD-6
2026-06-07T23:26:21.0597626Z - 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-07T23:26:21.0598513Z - Required stages: doc, impl, unit, int
2026-06-07T23:26:21.0598788Z 
2026-06-07T23:26:21.0598881Z ### REQ-TERM-1
2026-06-07T23:26:21.0599131Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-07T23:26:21.0599430Z - Required stages: impl, unit
2026-06-07T23:26:21.0599578Z 
2026-06-07T23:26:21.0599674Z ### REQ-TERM-2
2026-06-07T23:26:21.0599926Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-07T23:26:21.0600227Z - Required stages: impl, unit
2026-06-07T23:26:21.0600370Z 
2026-06-07T23:26:21.0600461Z ### REQ-TERM-3
2026-06-07T23:26:21.0600681Z - Title: Byte-stream remote terminal streaming for v1
2026-06-07T23:26:21.0600938Z - Required stages: impl, unit
2026-06-07T23:26:21.0601084Z 
2026-06-07T23:26:21.0601178Z ### REQ-TERM-4
2026-06-07T23:26:21.0601587Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-07T23:26:21.0602045Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0602202Z 
2026-06-07T23:26:21.0602302Z ### REQ-FRONT-1
2026-06-07T23:26:21.0602546Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-07T23:26:21.0602837Z - Required stages: 
2026-06-07T23:26:21.0602965Z 
2026-06-07T23:26:21.0603060Z ### REQ-INSTALL-1
2026-06-07T23:26:21.0603332Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-07T23:26:21.0603651Z - Required stages: doc, impl, int
2026-06-07T23:26:21.0603788Z 
2026-06-07T23:26:21.0603879Z ### REQ-INSTALL-2
2026-06-07T23:26:21.0604096Z - Title: Marketplace-repackaging-friendly install
2026-06-07T23:26:21.0604367Z - Required stages: doc
2026-06-07T23:26:21.0604507Z 
2026-06-07T23:26:21.0604597Z ### REQ-INSTALL-3
2026-06-07T23:26:21.0604812Z - Title: Idempotent + interactive-optional first run
2026-06-07T23:26:21.0605084Z - Required stages: impl, int
2026-06-07T23:26:21.0605227Z 
2026-06-07T23:26:21.0605322Z ### REQ-INSTALL-4
2026-06-07T23:26:21.0605984Z - 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-07T23:26:21.0606690Z - Required stages: impl, unit
2026-06-07T23:26:21.0606842Z 
2026-06-07T23:26:21.0606936Z ### REQ-MIGRATE-1
2026-06-07T23:26:21.0607276Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-07T23:26:21.0607561Z - Required stages: 
2026-06-07T23:26:21.0607682Z 
2026-06-07T23:26:21.0607776Z ### REQ-INFRA-1
2026-06-07T23:26:21.0608025Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-07T23:26:21.0608425Z - Required stages: 
2026-06-07T23:26:21.0608554Z 
2026-06-07T23:26:21.0608645Z ### REQ-INSTALL-5
2026-06-07T23:26:21.0609172Z - 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-07T23:26:21.0609738Z - Required stages: impl, int
2026-06-07T23:26:21.0609895Z 
2026-06-07T23:26:21.0609986Z ### REQ-REL-1
2026-06-07T23:26:21.0610428Z - Title: spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)
2026-06-07T23:26:21.0610912Z - Required stages: doc, impl
2026-06-07T23:26:21.0611053Z 
2026-06-07T23:26:21.0611145Z ### REQ-REL-2
2026-06-07T23:26:21.0611663Z - 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-07T23:26:21.0612248Z - Required stages: impl, int
2026-06-07T23:26:21.0612394Z 
2026-06-07T23:26:21.0612491Z ### REQ-REL-3
2026-06-07T23:26:21.0612971Z - 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-07T23:26:21.0613506Z - Required stages: impl, unit
2026-06-07T23:26:21.0613659Z 
2026-06-07T23:26:21.0613940Z ### REQ-DOCS-1
2026-06-07T23:26:21.0614216Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-07T23:26:21.0614533Z - Required stages: doc, impl
2026-06-07T23:26:21.0614680Z 
2026-06-07T23:26:21.0614777Z ### REQ-DOCS-2
2026-06-07T23:26:21.0615024Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-07T23:26:21.0615305Z - Required stages: doc, int
2026-06-07T23:26:21.0615443Z 
2026-06-07T23:26:21.0615534Z ### REQ-DOCS-3
2026-06-07T23:26:21.0615820Z - Title: Diátaxis structure; one canonical way to do X
2026-06-07T23:26:21.0616097Z - Required stages: doc
2026-06-07T23:26:21.0616215Z 
2026-06-07T23:26:21.0616308Z ### REQ-DOCS-4
2026-06-07T23:26:21.0616574Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-07T23:26:21.0616908Z - Required stages: doc, impl, unit
2026-06-07T23:26:21.0617149Z 
2026-06-07T23:26:21.0617245Z ### REQ-DOCS-5
2026-06-07T23:26:21.0617521Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-07T23:26:21.0617836Z - Required stages: impl, int
2026-06-07T23:26:21.0617984Z 
2026-06-07T23:26:21.0618098Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-07T23:26:21.0618413Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-07T23:26:21.0618742Z - Required stages: impl, unit
2026-06-07T23:26:21.0618886Z 
2026-06-07T23:26:21.0618999Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-07T23:26:21.0619323Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-07T23:26:21.0619596Z - Required stages: impl, unit
2026-06-07T23:26:21.0619747Z 
2026-06-07T23:26:21.0619856Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-07T23:26:21.0620117Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-07T23:26:21.0620373Z - Required stages: impl, unit
2026-06-07T23:26:21.0620518Z 
2026-06-07T23:26:21.0620627Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-07T23:26:21.0620918Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-07T23:26:21.0621228Z - Required stages: impl, unit
2026-06-07T23:26:21.0621375Z 
2026-06-07T23:26:21.0621481Z ### REQ-HAZARD-WORKER-PATH
2026-06-07T23:26:21.0621763Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-07T23:26:21.0622063Z - Required stages: impl, unit
2026-06-07T23:26:21.0622209Z 
2026-06-07T23:26:21.0622322Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-07T23:26:21.0622630Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-07T23:26:21.0622940Z - Required stages: 
2026-06-07T23:26:21.0623066Z 
2026-06-07T23:26:21.0623274Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-07T23:26:21.0623536Z - Title: Stdin session_id precedence over env (2.2)
2026-06-07T23:26:21.0623790Z - Required stages: 
2026-06-07T23:26:21.0623918Z 
2026-06-07T23:26:21.0624029Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-07T23:26:21.0624306Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-07T23:26:21.0624601Z - Required stages: impl, unit
2026-06-07T23:26:21.0624747Z 
2026-06-07T23:26:21.0624861Z ### REQ-HAZARD-GEN-START-NOW
2026-06-07T23:26:21.0625365Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-07T23:26:21.0625646Z - Required stages: impl, int
2026-06-07T23:26:21.0625793Z 
2026-06-07T23:26:21.0625899Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-07T23:26:21.0626165Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-07T23:26:21.0626447Z - Required stages: impl, unit
2026-06-07T23:26:21.0626605Z 
2026-06-07T23:26:21.0626718Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-07T23:26:21.0627105Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-07T23:26:21.0627391Z - Required stages: impl, unit
2026-06-07T23:26:21.0627531Z 
2026-06-07T23:26:21.0627648Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-07T23:26:21.0627948Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-07T23:26:21.0628258Z - Required stages: impl, unit
2026-06-07T23:26:21.0628405Z 
2026-06-07T23:26:21.0628705Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-07T23:26:21.0628997Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-07T23:26:21.0629273Z - Required stages: impl, unit
2026-06-07T23:26:21.0629418Z 
2026-06-07T23:26:21.0629531Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-07T23:26:21.0629822Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-07T23:26:21.0630128Z - Required stages: impl, unit
2026-06-07T23:26:21.0630273Z 
2026-06-07T23:26:21.0630384Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-07T23:26:21.0630710Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-07T23:26:21.0631054Z - Required stages: impl, unit
2026-06-07T23:26:21.0631196Z 
2026-06-07T23:26:21.0631296Z ### REQ-HAZARD-ID-CHARSET
2026-06-07T23:26:21.0631636Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-07T23:26:21.0632003Z - Required stages: impl, unit
2026-06-07T23:26:21.0632151Z 
2026-06-07T23:26:21.0632265Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-07T23:26:21.0632565Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-07T23:26:21.0632878Z - Required stages: impl, unit
2026-06-07T23:26:21.0633026Z 
2026-06-07T23:26:21.0633143Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-07T23:26:21.0633495Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-07T23:26:21.0633858Z - Required stages: impl, unit
2026-06-07T23:26:21.0634006Z 
2026-06-07T23:26:21.0634111Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-07T23:26:21.0634608Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-07T23:26:21.0635041Z - Required stages: doc, impl, unit
2026-06-07T23:26:21.0635200Z 
2026-06-07T23:26:21.0635303Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-07T23:26:21.0635852Z - 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-07T23:26:21.0636332Z - Required stages: impl, unit
2026-06-07T23:26:21.0636481Z 
2026-06-07T23:26:21.0636600Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-07T23:26:21.0636861Z - Title: Deferred rows survive poll drain (4.4)
2026-06-07T23:26:21.0637214Z - Required stages: impl, unit
2026-06-07T23:26:21.0637367Z 
2026-06-07T23:26:21.0637473Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-07T23:26:21.0637716Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-07T23:26:21.0637968Z - Required stages: impl, unit
2026-06-07T23:26:21.0638220Z 
2026-06-07T23:26:21.0638329Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-07T23:26:21.0638603Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-07T23:26:21.0638908Z - Required stages: impl, unit
2026-06-07T23:26:21.0639057Z 
2026-06-07T23:26:21.0639152Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-07T23:26:21.0639433Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-07T23:26:21.0639715Z - Required stages: impl, unit
2026-06-07T23:26:21.0639867Z 
2026-06-07T23:26:21.0639978Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-07T23:26:21.0640244Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-07T23:26:21.0640516Z - Required stages: impl, unit
2026-06-07T23:26:21.0640659Z 
2026-06-07T23:26:21.0640763Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-07T23:26:21.0641024Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-07T23:26:21.0641300Z - Required stages: impl, unit
2026-06-07T23:26:21.0641442Z 
2026-06-07T23:26:21.0641551Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-07T23:26:21.0641857Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-07T23:26:21.0642162Z - Required stages: impl, unit
2026-06-07T23:26:21.0642310Z 
2026-06-07T23:26:21.0642414Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-07T23:26:21.0642706Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-07T23:26:21.0643025Z - Required stages: impl, unit
2026-06-07T23:26:21.0643174Z 
2026-06-07T23:26:21.0643395Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-07T23:26:21.0643689Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-07T23:26:21.0643990Z - Required stages: impl, unit
2026-06-07T23:26:21.0644128Z 
2026-06-07T23:26:21.0644252Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-07T23:26:21.0644538Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-07T23:26:21.0644815Z - Required stages: impl, unit
2026-06-07T23:26:21.0644967Z 
2026-06-07T23:26:21.0645078Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-07T23:26:21.0645416Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-07T23:26:21.0645755Z - Required stages: impl, unit
2026-06-07T23:26:21.0645900Z 
2026-06-07T23:26:21.0646014Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-07T23:26:21.0646666Z - 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-07T23:26:21.0647396Z - Required stages: impl, unit
2026-06-07T23:26:21.0647543Z 
2026-06-07T23:26:21.0647654Z ### REQ-HAZARD-DETACHED-PIPE-INHERIT
2026-06-07T23:26:21.0648881Z - 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-07T23:26:21.0649874Z - Required stages: impl, unit
2026-06-07T23:26:21.0650027Z 
2026-06-07T23:26:21.0650131Z ### REQ-HAZARD-CONPTY-DSR
2026-06-07T23:26:21.0650446Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-07T23:26:21.0650784Z - Required stages: impl, unit
2026-06-07T23:26:21.0650933Z 
2026-06-07T23:26:21.0651046Z ### REQ-HAZARD-CHILD-CONSOLE-FLASH
2026-06-07T23:26:21.0651579Z - 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-07T23:26:21.0652107Z - Required stages: impl, unit
2026-06-07T23:26:21.0652246Z 
2026-06-07T23:26:21.0652355Z ### REQ-HAZARD-INSTANT-UNDERFLOW
2026-06-07T23:26:21.0653008Z - 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-07T23:26:21.0653767Z - Required stages: impl, unit
2026-06-07T23:26:21.0653913Z 
2026-06-07T23:26:21.0654022Z ### REQ-HAZARD-SUDO-SECURE-PATH
2026-06-07T23:26:21.0654974Z - 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-07T23:26:21.0655972Z - Required stages: impl, unit
2026-06-07T23:26:21.0656147Z 
2026-06-07T23:26:21.0656243Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-07T23:26:21.0656574Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-07T23:26:21.0656901Z - Required stages: impl, unit
2026-06-07T23:26:21.0657130Z 
2026-06-07T23:26:21.0657245Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-07T23:26:21.0657599Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-07T23:26:21.0657994Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0658160Z 
2026-06-07T23:26:21.0658266Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-07T23:26:21.0658619Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-07T23:26:21.0658999Z - Required stages: impl, unit
2026-06-07T23:26:21.0659144Z 
2026-06-07T23:26:21.0659263Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-07T23:26:21.0659895Z - 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-07T23:26:21.0660430Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0660587Z 
2026-06-07T23:26:21.0660701Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-07T23:26:21.0661592Z - 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-07T23:26:21.0662347Z - Required stages: impl, unit
2026-06-07T23:26:21.0662501Z 
2026-06-07T23:26:21.0662618Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-07T23:26:21.0663360Z - 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-07T23:26:21.0664083Z - Required stages: impl, unit
2026-06-07T23:26:21.0664231Z 
2026-06-07T23:26:21.0664342Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-07T23:26:21.0665095Z - 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-07T23:26:21.0665940Z - Required stages: impl, unit
2026-06-07T23:26:21.0666087Z 
2026-06-07T23:26:21.0666188Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-07T23:26:21.0666817Z - 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-07T23:26:21.0667524Z - Required stages: impl, unit
2026-06-07T23:26:21.0667676Z 
2026-06-07T23:26:21.0667781Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-07T23:26:21.0668735Z - 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-07T23:26:21.0669559Z - Required stages: impl, unit
2026-06-07T23:26:21.0669704Z 
2026-06-07T23:26:21.0669813Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-07T23:26:21.0670665Z - 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-07T23:26:21.0671537Z - Required stages: doc, impl, unit
2026-06-07T23:26:21.0671696Z 
2026-06-07T23:26:21.0671795Z ### REQ-CONSENT-1
2026-06-07T23:26:21.0672723Z - 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-07T23:26:21.0673670Z - Required stages: impl, unit
2026-06-07T23:26:21.0673823Z 
2026-06-07T23:26:21.0673920Z ### REQ-CONSENT-2
2026-06-07T23:26:21.0674772Z - 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-07T23:26:21.0675670Z - Required stages: impl, unit
2026-06-07T23:26:21.0675818Z 
2026-06-07T23:26:21.0675914Z ### REQ-PRES-1
2026-06-07T23:26:21.0677525Z - 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-07T23:26:21.0678776Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0678932Z 
2026-06-07T23:26:21.0679029Z ### REQ-SHELL-1
2026-06-07T23:26:21.0679925Z - 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-07T23:26:21.0680872Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0681030Z 
2026-06-07T23:26:21.0681129Z ### REQ-SHELL-2
2026-06-07T23:26:21.0682623Z - 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-07T23:26:21.0683950Z - Required stages: impl, unit, int
2026-06-07T23:26:21.0684102Z 
2026-06-07T23:26:21.0684221Z ### REQ-HAZARD-ELEVATED-DAEMON-SPAWN
2026-06-07T23:26:21.0685550Z - 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-07T23:26:21.0686708Z - Required stages: doc, impl, unit
2026-06-07T23:26:21.0686868Z 
2026-06-07T23:26:21.0687051Z ### REQ-HAZARD-REGISTRY-GHOST-ROWS
2026-06-07T23:26:21.0688439Z - 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-07T23:26:21.0689707Z - Required stages: doc, impl, unit
2026-06-07T23:26:21.0689865Z 
2026-06-07T23:26:21.0689956Z ### REQ-CLI-1
2026-06-07T23:26:21.0693653Z - 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-07T23:26:21.0694872Z - Required stages: impl, unit
2026-06-07T23:26:21.0695025Z 
2026-06-07T23:26:21.0695124Z ### REQ-CLI-2
2026-06-07T23:26:21.0696173Z - 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-07T23:26:21.0697099Z - Required stages: impl, unit
2026-06-07T23:26:21.0697258Z 
2026-06-07T23:26:21.0697348Z ### REQ-CLI-3
2026-06-07T23:26:21.0698106Z - 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-07T23:26:21.0699042Z - Required stages: impl, unit
2026-06-07T23:26:21.0699195Z 
2026-06-07T23:26:21.0699291Z ### REQ-SUBNET-5
2026-06-07T23:26:21.0700516Z - 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-07T23:26:21.0701545Z - Required stages: impl, unit
2026-06-07T23:26:21.0701578Z 
2026-06-07T23:26:21.0701668Z ### REQ-SUBNET-6
2026-06-07T23:26:21.0702312Z - 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-07T23:26:21.0702417Z - Required stages: impl, unit
2026-06-07T23:26:21.0702451Z 
2026-06-07T23:26:21.0702546Z ### REQ-SUBNET-7
2026-06-07T23:26:21.0704119Z - 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-07T23:26:21.0704223Z - Required stages: impl, unit
2026-06-07T23:26:21.0704256Z 
2026-06-07T23:26:21.0704347Z ### REQ-SUBNET-8
2026-06-07T23:26:21.0705585Z - 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-07T23:26:21.0705756Z - Required stages: impl, unit
2026-06-07T23:26:21.0705784Z 
2026-06-07T23:26:21.0705881Z ### REQ-INSTALL-6
2026-06-07T23:26:21.0707083Z - 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-07T23:26:21.0707312Z - Required stages: impl, unit
2026-06-07T23:26:21.0707345Z 
2026-06-07T23:26:21.0707440Z ### REQ-INSTALL-7
2026-06-07T23:26:21.0708551Z - 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-07T23:26:21.0708656Z - Required stages: impl
2026-06-07T23:26:21.0708690Z 
2026-06-07T23:26:21.0708782Z ### REQ-INSTALL-8
2026-06-07T23:26:21.0709750Z - 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-07T23:26:21.0709855Z - Required stages: impl
2026-06-07T23:26:21.0709883Z 
2026-06-07T23:26:21.0709978Z ### REQ-CONV-1
2026-06-07T23:26:21.0711419Z - 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-07T23:26:21.0711524Z - Required stages: impl, unit
2026-06-07T23:26:21.0711557Z 
2026-06-07T23:26:21.0711649Z ### REQ-CONV-2
2026-06-07T23:26:21.0712658Z - 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-07T23:26:21.0712758Z - Required stages: impl, unit
2026-06-07T23:26:21.0712796Z 
2026-06-07T23:26:21.0712891Z ### REQ-PAIR-8
2026-06-07T23:26:21.0714098Z - 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-07T23:26:21.0714199Z - Required stages: impl, unit
2026-06-07T23:26:21.0714237Z 
2026-06-07T23:26:21.0714336Z ### REQ-DAEMON-5
2026-06-07T23:26:21.0715705Z - 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-07T23:26:21.0715821Z - Required stages: impl, unit
2026-06-07T23:26:21.0715850Z 
2026-06-07T23:26:21.0715949Z ### REQ-HAZARD-EPOCH-RESET
2026-06-07T23:26:21.0717274Z - 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-07T23:26:21.0717507Z - Required stages: 
2026-06-07T23:26:21.0717539Z 
2026-06-07T23:26:21.0717638Z ## How to report back
2026-06-07T23:26:21.0717671Z 
2026-06-07T23:26:21.0717839Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-07T23:26:21.0717873Z 
2026-06-07T23:26:21.0717962Z     {
2026-06-07T23:26:21.0718068Z       "code": "requirement_quality",
2026-06-07T23:26:21.0718183Z       "requirementId": "REQ-...",
2026-06-07T23:26:21.0718330Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-07T23:26:21.0718426Z       "message": "<short reason>",
2026-06-07T23:26:21.0718554Z       "suggestedRevision": "<optional rewrite>"
2026-06-07T23:26:21.0718635Z     }
2026-06-07T23:26:21.0718669Z 
2026-06-07T23:26:21.0718841Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-07T23:26:21.0718989Z deterministic findings above don't need to be repeated.
2026-06-07T23:26:21.0789188Z Post job cleanup.
2026-06-07T23:26:21.1440991Z [command]/usr/bin/git version
2026-06-07T23:26:21.1472657Z git version 2.43.0
2026-06-07T23:26:21.1543421Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/8026ea88-523a-466c-a07c-b6a00c6ce527' before making global git config changes
2026-06-07T23:26:21.1543663Z Adding repository directory to the temporary git global config as a safe directory
2026-06-07T23:26:21.1546654Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-07T23:26:21.1574987Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-07T23:26:21.1598887Z [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-07T23:26:21.1783647Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-07T23:26:21.1802498Z http.https://github.com/.extraheader
2026-06-07T23:26:21.1809379Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-07T23:26:21.1832520Z [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-07T23:26:21.2015935Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-07T23:26:21.2040879Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-07T23:26:21.2330498Z Cleaning up orphan processes
