﻿2026-06-13T11:05:50.3214402Z Current runner version: '2.335.1'
2026-06-13T11:05:50.3219372Z Runner name: 'kitsubito'
2026-06-13T11:05:50.3219894Z Runner group name: 'Default'
2026-06-13T11:05:50.3220533Z Machine name: 'KITSUBITO'
2026-06-13T11:05:50.3222398Z ##[group]GITHUB_TOKEN Permissions
2026-06-13T11:05:50.3224137Z Contents: read
2026-06-13T11:05:50.3224533Z Metadata: read
2026-06-13T11:05:50.3224900Z Packages: read
2026-06-13T11:05:50.3225256Z ##[endgroup]
2026-06-13T11:05:50.3226813Z Secret source: Actions
2026-06-13T11:05:50.3227319Z Prepare workflow directory
2026-06-13T11:05:50.3589522Z Prepare all required actions
2026-06-13T11:05:50.3621557Z Getting action download info
2026-06-13T11:05:50.7932221Z Download action repository 'actions/checkout@v5' (SHA:93cb6efe18208431cddfb8368fd83d5badbf9bfd)
2026-06-13T11:05:51.2583780Z Complete job name: traceability
2026-06-13T11:05:51.3496518Z ##[group]Run actions/checkout@v5
2026-06-13T11:05:51.3497275Z with:
2026-06-13T11:05:51.3497647Z   repository: SaberMage/spt-core
2026-06-13T11:05:51.3501124Z   token: ***
2026-06-13T11:05:51.3501481Z   ssh-strict: true
2026-06-13T11:05:51.3501838Z   ssh-user: git
2026-06-13T11:05:51.3502201Z   persist-credentials: true
2026-06-13T11:05:51.3502603Z   clean: true
2026-06-13T11:05:51.3502965Z   sparse-checkout-cone-mode: true
2026-06-13T11:05:51.3503385Z   fetch-depth: 1
2026-06-13T11:05:51.3503747Z   fetch-tags: false
2026-06-13T11:05:51.3504109Z   show-progress: true
2026-06-13T11:05:51.3504477Z   lfs: false
2026-06-13T11:05:51.3504817Z   submodules: false
2026-06-13T11:05:51.3505184Z   set-safe-directory: true
2026-06-13T11:05:51.3505807Z ##[endgroup]
2026-06-13T11:05:51.4297254Z Syncing repository: SaberMage/spt-core
2026-06-13T11:05:51.4298691Z ##[group]Getting Git version info
2026-06-13T11:05:51.4299502Z Working directory is '/home/reavus/actions-runner/_work/spt-core/spt-core'
2026-06-13T11:05:51.4300338Z [command]/usr/bin/git version
2026-06-13T11:05:51.4300746Z git version 2.43.0
2026-06-13T11:05:51.4310768Z ##[endgroup]
2026-06-13T11:05:51.4322247Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/f7be14f1-8687-4d69-8b98-6602780a0951' before making global git config changes
2026-06-13T11:05:51.4323359Z Adding repository directory to the temporary git global config as a safe directory
2026-06-13T11:05:51.4325329Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-13T11:05:51.4357334Z [command]/usr/bin/git config --local --get remote.origin.url
2026-06-13T11:05:51.4376440Z https://github.com/SaberMage/spt-core
2026-06-13T11:05:51.4386347Z ##[group]Removing previously created refs, to avoid conflicts
2026-06-13T11:05:51.4388884Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2026-06-13T11:05:51.4408429Z HEAD
2026-06-13T11:05:51.4438770Z ##[endgroup]
2026-06-13T11:05:51.4439758Z [command]/usr/bin/git submodule status
2026-06-13T11:05:51.4626504Z ##[group]Cleaning the repository
2026-06-13T11:05:51.4662034Z [command]/usr/bin/git clean -ffdx
2026-06-13T11:05:52.1831674Z Removing target/
2026-06-13T11:05:52.1841183Z [command]/usr/bin/git reset --hard HEAD
2026-06-13T11:05:52.1893927Z HEAD is now at 6b98561 Merge 77e0fb1bc77f8f2f500c9bdadcd65e158b5d4c11 into b189513c697e4305452b836bcdc14ce1b573c7b4
2026-06-13T11:05:52.1900431Z ##[endgroup]
2026-06-13T11:05:52.1901908Z ##[group]Disabling automatic garbage collection
2026-06-13T11:05:52.1906372Z [command]/usr/bin/git config --local gc.auto 0
2026-06-13T11:05:52.1943203Z ##[endgroup]
2026-06-13T11:05:52.1944321Z ##[group]Setting up auth
2026-06-13T11:05:52.1949180Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-13T11:05:52.1985808Z [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-13T11:05:52.2206000Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-13T11:05:52.2237677Z [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-13T11:05:52.2438515Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-13T11:05:52.2466144Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-13T11:05:52.2665280Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-13T11:05:52.2700099Z ##[endgroup]
2026-06-13T11:05:52.2700998Z ##[group]Fetching the repository
2026-06-13T11:05:52.2707691Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +3d7b98a8d6bfdc30c6b2bb37c61f7bbd7b95bad5:refs/remotes/pull/9/merge
2026-06-13T11:05:52.6963043Z From https://github.com/SaberMage/spt-core
2026-06-13T11:05:52.6963696Z  * [new ref]         3d7b98a8d6bfdc30c6b2bb37c61f7bbd7b95bad5 -> pull/9/merge
2026-06-13T11:05:52.6979896Z ##[endgroup]
2026-06-13T11:05:52.6980371Z ##[group]Determining the checkout info
2026-06-13T11:05:52.6981599Z ##[endgroup]
2026-06-13T11:05:52.6985365Z [command]/usr/bin/git sparse-checkout disable
2026-06-13T11:05:52.7026179Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-13T11:05:52.7055929Z ##[group]Checking out the ref
2026-06-13T11:05:52.7058623Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/9/merge
2026-06-13T11:05:52.7179584Z Previous HEAD position was 6b98561 Merge 77e0fb1bc77f8f2f500c9bdadcd65e158b5d4c11 into b189513c697e4305452b836bcdc14ce1b573c7b4
2026-06-13T11:05:52.7181339Z HEAD is now at 3d7b98a Merge 1588525c4f950730e89bd4f73d1acef2e1c6e6c6 into 77e0fb1bc77f8f2f500c9bdadcd65e158b5d4c11
2026-06-13T11:05:52.7188402Z ##[endgroup]
2026-06-13T11:05:52.7226106Z [command]/usr/bin/git log -1 --format=%H
2026-06-13T11:05:52.7249667Z 3d7b98a8d6bfdc30c6b2bb37c61f7bbd7b95bad5
2026-06-13T11:05:52.7448461Z ##[group]Run WANT=0.1.2
2026-06-13T11:05:52.7448809Z [36;1mWANT=0.1.2[0m
2026-06-13T11:05:52.7449166Z [36;1mBIN="$HOME/.local/bin/traceable-reqs"[0m
2026-06-13T11:05:52.7449537Z [36;1mif [ -x "$BIN" ] && "$BIN" --version | grep -q " $WANT\$"; then[0m
2026-06-13T11:05:52.7449867Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-13T11:05:52.7450133Z [36;1melse[0m
2026-06-13T11:05:52.7450417Z [36;1m  # Build OUTSIDE the checkout: a clone inside it gets adopted by[0m
2026-06-13T11:05:52.7450807Z [36;1m  # the spt-core cargo workspace and refuses to build.[0m
2026-06-13T11:05:52.7451127Z [36;1m  SRC="$RUNNER_TEMP/tr-src"[0m
2026-06-13T11:05:52.7451385Z [36;1m  rm -rf "$SRC"[0m
2026-06-13T11:05:52.7451638Z [36;1m  git clone --depth 1 --branch "v$WANT" \[0m
2026-06-13T11:05:52.7452066Z [36;1m    "https://x-access-token:${GH_TOKEN}@github.com/BigscreenVR/traceable-reqs" "$SRC"[0m
2026-06-13T11:05:52.7452582Z [36;1m  cargo build --release --manifest-path "$SRC/rust/Cargo.toml"[0m
2026-06-13T11:05:52.7452934Z [36;1m  mkdir -p "$HOME/.local/bin"[0m
2026-06-13T11:05:52.7453238Z [36;1m  cp "$SRC/rust/target/release/traceable-reqs" "$BIN"[0m
2026-06-13T11:05:52.7453556Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-13T11:05:52.7453805Z [36;1mfi[0m
2026-06-13T11:05:52.7454018Z [36;1m./traceable-reqs --version[0m
2026-06-13T11:05:52.7469137Z shell: /usr/bin/bash -e {0}
2026-06-13T11:05:52.7469466Z env:
2026-06-13T11:05:52.7470067Z   GH_TOKEN: ***
2026-06-13T11:05:52.7470291Z ##[endgroup]
2026-06-13T11:05:52.7542601Z traceable-reqs 0.1.2
2026-06-13T11:05:52.7593362Z ##[group]Run ./traceable-reqs check --json
2026-06-13T11:05:52.7593715Z [36;1m./traceable-reqs check --json[0m
2026-06-13T11:05:52.7606034Z shell: /usr/bin/bash -e {0}
2026-06-13T11:05:52.7606295Z ##[endgroup]
2026-06-13T11:05:52.7783323Z {
2026-06-13T11:05:52.7783797Z   "schemaVersion": 1,
2026-06-13T11:05:52.7784244Z   "summary": {
2026-06-13T11:05:52.7784985Z     "requirementCount": 190,
2026-06-13T11:05:52.7785431Z     "completeCount": 190,
2026-06-13T11:05:52.7785854Z     "incompleteCount": 0,
2026-06-13T11:05:52.7786270Z     "findingCount": 0
2026-06-13T11:05:52.7786657Z   },
2026-06-13T11:05:52.7787010Z   "requirements": [
2026-06-13T11:05:52.7787324Z     {
2026-06-13T11:05:52.7787620Z       "id": "REQ-API-1",
2026-06-13T11:05:52.7788057Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-13T11:05:52.7788546Z       "requiredStages": [
2026-06-13T11:05:52.7788861Z         "impl",
2026-06-13T11:05:52.7789247Z         "unit",
2026-06-13T11:05:52.7789576Z         "int"
2026-06-13T11:05:52.7789853Z       ],
2026-06-13T11:05:52.7790130Z       "stages": {
2026-06-13T11:05:52.7790417Z         "doc": {
2026-06-13T11:05:52.7790726Z           "complete": false,
2026-06-13T11:05:52.7791072Z           "evidence": []
2026-06-13T11:05:52.7791380Z         },
2026-06-13T11:05:52.7791670Z         "impl": {
2026-06-13T11:05:52.7792781Z           "complete": true,
2026-06-13T11:05:52.7793124Z           "evidence": [
2026-06-13T11:05:52.7793434Z             {
2026-06-13T11:05:52.7793761Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:05:52.7794165Z               "line": 15
2026-06-13T11:05:52.7794480Z             }
2026-06-13T11:05:52.7794766Z           ]
2026-06-13T11:05:52.7795043Z         },
2026-06-13T11:05:52.7795329Z         "int": {
2026-06-13T11:05:52.7795630Z           "complete": true,
2026-06-13T11:05:52.7795972Z           "evidence": [
2026-06-13T11:05:52.7796297Z             {
2026-06-13T11:05:52.7796654Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:05:52.7797063Z               "line": 13
2026-06-13T11:05:52.7797383Z             }
2026-06-13T11:05:52.7797669Z           ]
2026-06-13T11:05:52.7797951Z         },
2026-06-13T11:05:52.7798232Z         "unit": {
2026-06-13T11:05:52.7798546Z           "complete": true,
2026-06-13T11:05:52.7798887Z           "evidence": [
2026-06-13T11:05:52.7799273Z             {
2026-06-13T11:05:52.7799606Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:05:52.7800013Z               "line": 471
2026-06-13T11:05:52.7800337Z             },
2026-06-13T11:05:52.7800632Z             {
2026-06-13T11:05:52.7800957Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:05:52.7801358Z               "line": 509
2026-06-13T11:05:52.7801675Z             },
2026-06-13T11:05:52.7801964Z             {
2026-06-13T11:05:52.7802298Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:05:52.7802703Z               "line": 576
2026-06-13T11:05:52.7803022Z             }
2026-06-13T11:05:52.7803318Z           ]
2026-06-13T11:05:52.7803610Z         }
2026-06-13T11:05:52.7803910Z       }
2026-06-13T11:05:52.7804189Z     },
2026-06-13T11:05:52.7804473Z     {
2026-06-13T11:05:52.7804764Z       "id": "REQ-API-2",
2026-06-13T11:05:52.7805275Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-13T11:05:52.7805843Z       "requiredStages": [
2026-06-13T11:05:52.7806176Z         "impl",
2026-06-13T11:05:52.7806473Z         "unit",
2026-06-13T11:05:52.7806773Z         "int"
2026-06-13T11:05:52.7807056Z       ],
2026-06-13T11:05:52.7807352Z       "stages": {
2026-06-13T11:05:52.7807652Z         "doc": {
2026-06-13T11:05:52.7807957Z           "complete": false,
2026-06-13T11:05:52.7808316Z           "evidence": []
2026-06-13T11:05:52.7808636Z         },
2026-06-13T11:05:52.7808926Z         "impl": {
2026-06-13T11:05:52.7809296Z           "complete": true,
2026-06-13T11:05:52.7809643Z           "evidence": [
2026-06-13T11:05:52.7810195Z             {
2026-06-13T11:05:52.7810563Z               "path": "crates/spt-store/src/history.rs",
2026-06-13T11:05:52.7810982Z               "line": 15
2026-06-13T11:05:52.7811307Z             },
2026-06-13T11:05:52.7811598Z             {
2026-06-13T11:05:52.7811932Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.7812338Z               "line": 20
2026-06-13T11:05:52.7812800Z             },
2026-06-13T11:05:52.7813101Z             {
2026-06-13T11:05:52.7813449Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.7813855Z               "line": 139
2026-06-13T11:05:52.7814175Z             },
2026-06-13T11:05:52.7814480Z             {
2026-06-13T11:05:52.7814825Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.7815238Z               "line": 21
2026-06-13T11:05:52.7815558Z             },
2026-06-13T11:05:52.7815849Z             {
2026-06-13T11:05:52.7816197Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.7816621Z               "line": 38
2026-06-13T11:05:52.7816946Z             },
2026-06-13T11:05:52.7817251Z             {
2026-06-13T11:05:52.7817583Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.7817990Z               "line": 190
2026-06-13T11:05:52.7818318Z             },
2026-06-13T11:05:52.7818657Z             {
2026-06-13T11:05:52.7836382Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.7836869Z               "line": 232
2026-06-13T11:05:52.7837212Z             },
2026-06-13T11:05:52.7837509Z             {
2026-06-13T11:05:52.7837870Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.7838290Z               "line": 262
2026-06-13T11:05:52.7838622Z             },
2026-06-13T11:05:52.7838932Z             {
2026-06-13T11:05:52.7839372Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:05:52.7839777Z               "line": 17
2026-06-13T11:05:52.7840102Z             },
2026-06-13T11:05:52.7840397Z             {
2026-06-13T11:05:52.7840740Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:05:52.7841142Z               "line": 30
2026-06-13T11:05:52.7841480Z             },
2026-06-13T11:05:52.7841771Z             {
2026-06-13T11:05:52.7842110Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:05:52.7842510Z               "line": 63
2026-06-13T11:05:52.7842844Z             },
2026-06-13T11:05:52.7843144Z             {
2026-06-13T11:05:52.7843483Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:05:52.7843892Z               "line": 76
2026-06-13T11:05:52.7844219Z             }
2026-06-13T11:05:52.7844520Z           ]
2026-06-13T11:05:52.7844805Z         },
2026-06-13T11:05:52.7845115Z         "int": {
2026-06-13T11:05:52.7845449Z           "complete": true,
2026-06-13T11:05:52.7845692Z           "evidence": [
2026-06-13T11:05:52.7845920Z             {
2026-06-13T11:05:52.7846165Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:05:52.7846454Z               "line": 14
2026-06-13T11:05:52.7846675Z             },
2026-06-13T11:05:52.7846876Z             {
2026-06-13T11:05:52.7847115Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:05:52.7847397Z               "line": 187
2026-06-13T11:05:52.7847614Z             }
2026-06-13T11:05:52.7847820Z           ]
2026-06-13T11:05:52.7848011Z         },
2026-06-13T11:05:52.7848216Z         "unit": {
2026-06-13T11:05:52.7848430Z           "complete": true,
2026-06-13T11:05:52.7848660Z           "evidence": [
2026-06-13T11:05:52.7848879Z             {
2026-06-13T11:05:52.7849249Z               "path": "crates/spt-store/src/history.rs",
2026-06-13T11:05:52.7849540Z               "line": 42
2026-06-13T11:05:52.7849765Z             },
2026-06-13T11:05:52.7849970Z             {
2026-06-13T11:05:52.7850217Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.7850498Z               "line": 254
2026-06-13T11:05:52.7850727Z             },
2026-06-13T11:05:52.7851118Z             {
2026-06-13T11:05:52.7851385Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.7851669Z               "line": 517
2026-06-13T11:05:52.7851970Z             },
2026-06-13T11:05:52.7852184Z             {
2026-06-13T11:05:52.7852431Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.7852717Z               "line": 528
2026-06-13T11:05:52.7853055Z             },
2026-06-13T11:05:52.7853265Z             {
2026-06-13T11:05:52.7853510Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.7853791Z               "line": 660
2026-06-13T11:05:52.7854019Z             },
2026-06-13T11:05:52.7854219Z             {
2026-06-13T11:05:52.7854461Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.7854745Z               "line": 672
2026-06-13T11:05:52.7854964Z             },
2026-06-13T11:05:52.7855175Z             {
2026-06-13T11:05:52.7855414Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:05:52.7855704Z               "line": 141
2026-06-13T11:05:52.7855923Z             },
2026-06-13T11:05:52.7856132Z             {
2026-06-13T11:05:52.7856635Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:05:52.7856995Z               "line": 185
2026-06-13T11:05:52.7857336Z             }
2026-06-13T11:05:52.7857651Z           ]
2026-06-13T11:05:52.7857932Z         }
2026-06-13T11:05:52.7858276Z       }
2026-06-13T11:05:52.7858557Z     },
2026-06-13T11:05:52.7858906Z     {
2026-06-13T11:05:52.7859296Z       "id": "REQ-API-3",
2026-06-13T11:05:52.7859681Z       "title": "commune/signoff are file-drops, not commands",
2026-06-13T11:05:52.7860148Z       "requiredStages": [
2026-06-13T11:05:52.7860463Z         "impl",
2026-06-13T11:05:52.7860748Z         "unit",
2026-06-13T11:05:52.7861097Z         "int"
2026-06-13T11:05:52.7890877Z       ],
2026-06-13T11:05:52.7891143Z       "stages": {
2026-06-13T11:05:52.7891357Z         "doc": {
2026-06-13T11:05:52.7891576Z           "complete": false,
2026-06-13T11:05:52.7891833Z           "evidence": []
2026-06-13T11:05:52.7892047Z         },
2026-06-13T11:05:52.7892248Z         "impl": {
2026-06-13T11:05:52.7892468Z           "complete": true,
2026-06-13T11:05:52.7892700Z           "evidence": [
2026-06-13T11:05:52.7892911Z             {
2026-06-13T11:05:52.7893155Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:05:52.7893431Z               "line": 27
2026-06-13T11:05:52.7893640Z             },
2026-06-13T11:05:52.7893839Z             {
2026-06-13T11:05:52.7894090Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.7894386Z               "line": 374
2026-06-13T11:05:52.7894605Z             }
2026-06-13T11:05:52.7894811Z           ]
2026-06-13T11:05:52.7895005Z         },
2026-06-13T11:05:52.7895215Z         "int": {
2026-06-13T11:05:52.7895440Z           "complete": true,
2026-06-13T11:05:52.7895683Z           "evidence": [
2026-06-13T11:05:52.7895907Z             {
2026-06-13T11:05:52.7896173Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:05:52.7896460Z               "line": 261
2026-06-13T11:05:52.7896678Z             }
2026-06-13T11:05:52.7896876Z           ]
2026-06-13T11:05:52.7897072Z         },
2026-06-13T11:05:52.7897272Z         "unit": {
2026-06-13T11:05:52.7897491Z           "complete": true,
2026-06-13T11:05:52.7897725Z           "evidence": [
2026-06-13T11:05:52.7897959Z             {
2026-06-13T11:05:52.7898216Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:05:52.7898492Z               "line": 280
2026-06-13T11:05:52.7898707Z             },
2026-06-13T11:05:52.7898909Z             {
2026-06-13T11:05:52.7899226Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.7899514Z               "line": 701
2026-06-13T11:05:52.7899738Z             }
2026-06-13T11:05:52.7899939Z           ]
2026-06-13T11:05:52.7900143Z         }
2026-06-13T11:05:52.7900335Z       }
2026-06-13T11:05:52.7900526Z     },
2026-06-13T11:05:52.7900715Z     {
2026-06-13T11:05:52.7901102Z       "id": "REQ-ARCH-1",
2026-06-13T11:05:52.7901393Z       "title": "Many small acyclically-layered crates",
2026-06-13T11:05:52.7901684Z       "requiredStages": [
2026-06-13T11:05:52.7901908Z         "impl"
2026-06-13T11:05:52.7902112Z       ],
2026-06-13T11:05:52.7902312Z       "stages": {
2026-06-13T11:05:52.7902517Z         "doc": {
2026-06-13T11:05:52.7902866Z           "complete": false,
2026-06-13T11:05:52.7903110Z           "evidence": []
2026-06-13T11:05:52.7903328Z         },
2026-06-13T11:05:52.7903528Z         "impl": {
2026-06-13T11:05:52.7903754Z           "complete": true,
2026-06-13T11:05:52.7903991Z           "evidence": [
2026-06-13T11:05:52.7904204Z             {
2026-06-13T11:05:52.7904446Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-13T11:05:52.7904713Z               "line": 16
2026-06-13T11:05:52.7904921Z             },
2026-06-13T11:05:52.7905122Z             {
2026-06-13T11:05:52.7905347Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-13T11:05:52.7905619Z               "line": 12
2026-06-13T11:05:52.7905827Z             },
2026-06-13T11:05:52.7906023Z             {
2026-06-13T11:05:52.7906258Z               "path": "crates/spt-store/src/lib.rs",
2026-06-13T11:05:52.7906524Z               "line": 12
2026-06-13T11:05:52.7906729Z             }
2026-06-13T11:05:52.7906926Z           ]
2026-06-13T11:05:52.7907123Z         },
2026-06-13T11:05:52.7907313Z         "int": {
2026-06-13T11:05:52.7907522Z           "complete": false,
2026-06-13T11:05:52.7907746Z           "evidence": []
2026-06-13T11:05:52.7907961Z         },
2026-06-13T11:05:52.7908161Z         "unit": {
2026-06-13T11:05:52.7908375Z           "complete": false,
2026-06-13T11:05:52.7908609Z           "evidence": []
2026-06-13T11:05:52.7908820Z         }
2026-06-13T11:05:52.7909067Z       }
2026-06-13T11:05:52.7909253Z     },
2026-06-13T11:05:52.7909445Z     {
2026-06-13T11:05:52.7909643Z       "id": "REQ-ARCH-2",
2026-06-13T11:05:52.7909965Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-13T11:05:52.7910294Z       "requiredStages": [
2026-06-13T11:05:52.7910505Z         "impl"
2026-06-13T11:05:52.7910699Z       ],
2026-06-13T11:05:52.7910876Z       "stages": {
2026-06-13T11:05:52.7911077Z         "doc": {
2026-06-13T11:05:52.7911276Z           "complete": false,
2026-06-13T11:05:52.7911500Z           "evidence": []
2026-06-13T11:05:52.7911716Z         },
2026-06-13T11:05:52.7911906Z         "impl": {
2026-06-13T11:05:52.7912111Z           "complete": true,
2026-06-13T11:05:52.7912331Z           "evidence": [
2026-06-13T11:05:52.7912543Z             {
2026-06-13T11:05:52.7912774Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-13T11:05:52.7913045Z               "line": 18
2026-06-13T11:05:52.7913249Z             }
2026-06-13T11:05:52.7913436Z           ]
2026-06-13T11:05:52.7913626Z         },
2026-06-13T11:05:52.7913821Z         "int": {
2026-06-13T11:05:52.7914032Z           "complete": false,
2026-06-13T11:05:52.7914261Z           "evidence": []
2026-06-13T11:05:52.7914479Z         },
2026-06-13T11:05:52.7914666Z         "unit": {
2026-06-13T11:05:52.7914879Z           "complete": false,
2026-06-13T11:05:52.7915110Z           "evidence": []
2026-06-13T11:05:52.7915321Z         }
2026-06-13T11:05:52.7915496Z       }
2026-06-13T11:05:52.7915687Z     },
2026-06-13T11:05:52.7915869Z     {
2026-06-13T11:05:52.7916073Z       "id": "REQ-ARCH-3",
2026-06-13T11:05:52.7916426Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-13T11:05:52.7916804Z       "requiredStages": [
2026-06-13T11:05:52.7917027Z         "impl",
2026-06-13T11:05:52.7917232Z         "unit"
2026-06-13T11:05:52.7917424Z       ],
2026-06-13T11:05:52.7917627Z       "stages": {
2026-06-13T11:05:52.7917832Z         "doc": {
2026-06-13T11:05:52.7918043Z           "complete": false,
2026-06-13T11:05:52.7918273Z           "evidence": []
2026-06-13T11:05:52.7918493Z         },
2026-06-13T11:05:52.7918682Z         "impl": {
2026-06-13T11:05:52.7919236Z           "complete": true,
2026-06-13T11:05:52.7919484Z           "evidence": [
2026-06-13T11:05:52.7919695Z             {
2026-06-13T11:05:52.7919946Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T11:05:52.7920227Z               "line": 34
2026-06-13T11:05:52.7920445Z             },
2026-06-13T11:05:52.7920634Z             {
2026-06-13T11:05:52.7920983Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T11:05:52.7921254Z               "line": 41
2026-06-13T11:05:52.7921465Z             }
2026-06-13T11:05:52.7921656Z           ]
2026-06-13T11:05:52.7921855Z         },
2026-06-13T11:05:52.7922032Z         "int": {
2026-06-13T11:05:52.7922237Z           "complete": false,
2026-06-13T11:05:52.7922470Z           "evidence": []
2026-06-13T11:05:52.7922676Z         },
2026-06-13T11:05:52.7922862Z         "unit": {
2026-06-13T11:05:52.7923071Z           "complete": true,
2026-06-13T11:05:52.7923309Z           "evidence": [
2026-06-13T11:05:52.7923508Z             {
2026-06-13T11:05:52.7923761Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T11:05:52.7924038Z               "line": 51
2026-06-13T11:05:52.7924244Z             },
2026-06-13T11:05:52.7924434Z             {
2026-06-13T11:05:52.7924668Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T11:05:52.7924944Z               "line": 71
2026-06-13T11:05:52.7925165Z             },
2026-06-13T11:05:52.7925363Z             {
2026-06-13T11:05:52.7925604Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T11:05:52.7925876Z               "line": 83
2026-06-13T11:05:52.7926085Z             }
2026-06-13T11:05:52.7926285Z           ]
2026-06-13T11:05:52.7926477Z         }
2026-06-13T11:05:52.7926666Z       }
2026-06-13T11:05:52.7926858Z     },
2026-06-13T11:05:52.7927044Z     {
2026-06-13T11:05:52.7927248Z       "id": "REQ-ARCH-4",
2026-06-13T11:05:52.7927573Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-13T11:05:52.7927926Z       "requiredStages": [
2026-06-13T11:05:52.7928149Z         "impl",
2026-06-13T11:05:52.7928363Z         "unit"
2026-06-13T11:05:52.7928561Z       ],
2026-06-13T11:05:52.7928762Z       "stages": {
2026-06-13T11:05:52.7929029Z         "doc": {
2026-06-13T11:05:52.7929247Z           "complete": false,
2026-06-13T11:05:52.7929481Z           "evidence": []
2026-06-13T11:05:52.7929692Z         },
2026-06-13T11:05:52.7929891Z         "impl": {
2026-06-13T11:05:52.7930101Z           "complete": true,
2026-06-13T11:05:52.7930331Z           "evidence": [
2026-06-13T11:05:52.7930536Z             {
2026-06-13T11:05:52.7930773Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7931047Z               "line": 157
2026-06-13T11:05:52.7931266Z             },
2026-06-13T11:05:52.7931470Z             {
2026-06-13T11:05:52.7931705Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7931977Z               "line": 180
2026-06-13T11:05:52.7932192Z             },
2026-06-13T11:05:52.7932401Z             {
2026-06-13T11:05:52.7932635Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7932911Z               "line": 200
2026-06-13T11:05:52.7933127Z             },
2026-06-13T11:05:52.7933326Z             {
2026-06-13T11:05:52.7933560Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7933831Z               "line": 215
2026-06-13T11:05:52.7934045Z             },
2026-06-13T11:05:52.7934279Z             {
2026-06-13T11:05:52.7934513Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7934780Z               "line": 265
2026-06-13T11:05:52.7934994Z             }
2026-06-13T11:05:52.7935190Z           ]
2026-06-13T11:05:52.7935372Z         },
2026-06-13T11:05:52.7935566Z         "int": {
2026-06-13T11:05:52.7935777Z           "complete": false,
2026-06-13T11:05:52.7936009Z           "evidence": []
2026-06-13T11:05:52.7936216Z         },
2026-06-13T11:05:52.7936422Z         "unit": {
2026-06-13T11:05:52.7936741Z           "complete": true,
2026-06-13T11:05:52.7936980Z           "evidence": [
2026-06-13T11:05:52.7937193Z             {
2026-06-13T11:05:52.7937427Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7937704Z               "line": 326
2026-06-13T11:05:52.7937909Z             },
2026-06-13T11:05:52.7938114Z             {
2026-06-13T11:05:52.7938353Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7938728Z               "line": 336
2026-06-13T11:05:52.7939036Z             },
2026-06-13T11:05:52.7939260Z             {
2026-06-13T11:05:52.7939497Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7939774Z               "line": 347
2026-06-13T11:05:52.7939990Z             },
2026-06-13T11:05:52.7940176Z             {
2026-06-13T11:05:52.7940413Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7940690Z               "line": 358
2026-06-13T11:05:52.7940914Z             },
2026-06-13T11:05:52.7941111Z             {
2026-06-13T11:05:52.7941361Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7941626Z               "line": 370
2026-06-13T11:05:52.7941836Z             },
2026-06-13T11:05:52.7942031Z             {
2026-06-13T11:05:52.7942265Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7942532Z               "line": 383
2026-06-13T11:05:52.7942738Z             },
2026-06-13T11:05:52.7942937Z             {
2026-06-13T11:05:52.7943157Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7943416Z               "line": 394
2026-06-13T11:05:52.7943619Z             },
2026-06-13T11:05:52.7943805Z             {
2026-06-13T11:05:52.7944031Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7944295Z               "line": 411
2026-06-13T11:05:52.7944505Z             },
2026-06-13T11:05:52.7944692Z             {
2026-06-13T11:05:52.7944934Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.7945210Z               "line": 539
2026-06-13T11:05:52.7945421Z             }
2026-06-13T11:05:52.7945617Z           ]
2026-06-13T11:05:52.7945802Z         }
2026-06-13T11:05:52.7945979Z       }
2026-06-13T11:05:52.7946169Z     },
2026-06-13T11:05:52.7946356Z     {
2026-06-13T11:05:52.7946554Z       "id": "REQ-CLI-1",
2026-06-13T11:05:52.7947855Z       "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-13T11:05:52.7949114Z       "requiredStages": [
2026-06-13T11:05:52.7949345Z         "impl",
2026-06-13T11:05:52.7949540Z         "unit"
2026-06-13T11:05:52.7949733Z       ],
2026-06-13T11:05:52.7949925Z       "stages": {
2026-06-13T11:05:52.7950140Z         "doc": {
2026-06-13T11:05:52.7950363Z           "complete": false,
2026-06-13T11:05:52.7950597Z           "evidence": []
2026-06-13T11:05:52.7950808Z         },
2026-06-13T11:05:52.7951002Z         "impl": {
2026-06-13T11:05:52.7951236Z           "complete": true,
2026-06-13T11:05:52.7951461Z           "evidence": [
2026-06-13T11:05:52.7951671Z             {
2026-06-13T11:05:52.7951893Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.7952158Z               "line": 200
2026-06-13T11:05:52.7952372Z             },
2026-06-13T11:05:52.7952567Z             {
2026-06-13T11:05:52.7952783Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.7953045Z               "line": 864
2026-06-13T11:05:52.7953249Z             },
2026-06-13T11:05:52.7953440Z             {
2026-06-13T11:05:52.7953656Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.7953927Z               "line": 1244
2026-06-13T11:05:52.7954141Z             },
2026-06-13T11:05:52.7954328Z             {
2026-06-13T11:05:52.7954648Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.7954918Z               "line": 2447
2026-06-13T11:05:52.7955127Z             }
2026-06-13T11:05:52.7955328Z           ]
2026-06-13T11:05:52.7955523Z         },
2026-06-13T11:05:52.7955704Z         "int": {
2026-06-13T11:05:52.7955914Z           "complete": false,
2026-06-13T11:05:52.7956153Z           "evidence": []
2026-06-13T11:05:52.7956473Z         },
2026-06-13T11:05:52.7956667Z         "unit": {
2026-06-13T11:05:52.7956873Z           "complete": true,
2026-06-13T11:05:52.7957095Z           "evidence": [
2026-06-13T11:05:52.7957303Z             {
2026-06-13T11:05:52.7957528Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.7957790Z               "line": 5811
2026-06-13T11:05:52.7958003Z             }
2026-06-13T11:05:52.7958190Z           ]
2026-06-13T11:05:52.7958381Z         }
2026-06-13T11:05:52.7958562Z       }
2026-06-13T11:05:52.7958749Z     },
2026-06-13T11:05:52.7958939Z     {
2026-06-13T11:05:52.7959229Z       "id": "REQ-CLI-2",
2026-06-13T11:05:52.7960105Z       "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-13T11:05:52.7960952Z       "requiredStages": [
2026-06-13T11:05:52.7961195Z         "impl",
2026-06-13T11:05:52.7961401Z         "unit"
2026-06-13T11:05:52.7961591Z       ],
2026-06-13T11:05:52.7961781Z       "stages": {
2026-06-13T11:05:52.7961983Z         "doc": {
2026-06-13T11:05:52.7962187Z           "complete": false,
2026-06-13T11:05:52.7962425Z           "evidence": []
2026-06-13T11:05:52.7962649Z         },
2026-06-13T11:05:52.7962846Z         "impl": {
2026-06-13T11:05:52.7963066Z           "complete": true,
2026-06-13T11:05:52.7963295Z           "evidence": [
2026-06-13T11:05:52.7963499Z             {
2026-06-13T11:05:52.7963757Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.7964043Z               "line": 345
2026-06-13T11:05:52.7964259Z             },
2026-06-13T11:05:52.7964463Z             {
2026-06-13T11:05:52.7964706Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-13T11:05:52.7964992Z               "line": 78
2026-06-13T11:05:52.7965208Z             },
2026-06-13T11:05:52.7965405Z             {
2026-06-13T11:05:52.7965654Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:05:52.7965931Z               "line": 239
2026-06-13T11:05:52.7966155Z             },
2026-06-13T11:05:52.7966359Z             {
2026-06-13T11:05:52.7966593Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.7966851Z               "line": 358
2026-06-13T11:05:52.7967057Z             },
2026-06-13T11:05:52.7967256Z             {
2026-06-13T11:05:52.7967476Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.7967742Z               "line": 908
2026-06-13T11:05:52.7967958Z             },
2026-06-13T11:05:52.7968173Z             {
2026-06-13T11:05:52.7975919Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.7976228Z               "line": 1435
2026-06-13T11:05:52.7976463Z             },
2026-06-13T11:05:52.7976663Z             {
2026-06-13T11:05:52.7976896Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.7977167Z               "line": 1514
2026-06-13T11:05:52.7977401Z             },
2026-06-13T11:05:52.7977603Z             {
2026-06-13T11:05:52.7977830Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.7978102Z               "line": 1575
2026-06-13T11:05:52.7978325Z             }
2026-06-13T11:05:52.7978527Z           ]
2026-06-13T11:05:52.7978724Z         },
2026-06-13T11:05:52.7978919Z         "int": {
2026-06-13T11:05:52.7979215Z           "complete": false,
2026-06-13T11:05:52.7979462Z           "evidence": []
2026-06-13T11:05:52.7979701Z         },
2026-06-13T11:05:52.7979912Z         "unit": {
2026-06-13T11:05:52.7980278Z           "complete": true,
2026-06-13T11:05:52.7980532Z           "evidence": [
2026-06-13T11:05:52.7980745Z             {
2026-06-13T11:05:52.7980997Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:05:52.7981295Z               "line": 309
2026-06-13T11:05:52.7981515Z             },
2026-06-13T11:05:52.7981719Z             {
2026-06-13T11:05:52.7981948Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.7982353Z               "line": 5949
2026-06-13T11:05:52.7982573Z             }
2026-06-13T11:05:52.7982774Z           ]
2026-06-13T11:05:52.7982969Z         }
2026-06-13T11:05:52.7983165Z       }
2026-06-13T11:05:52.7983351Z     },
2026-06-13T11:05:52.7983536Z     {
2026-06-13T11:05:52.7983745Z       "id": "REQ-CLI-3",
2026-06-13T11:05:52.7984649Z       "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-13T11:05:52.7985507Z       "requiredStages": [
2026-06-13T11:05:52.7985736Z         "impl",
2026-06-13T11:05:52.7985942Z         "unit"
2026-06-13T11:05:52.7986141Z       ],
2026-06-13T11:05:52.7986328Z       "stages": {
2026-06-13T11:05:52.7986540Z         "doc": {
2026-06-13T11:05:52.7986750Z           "complete": false,
2026-06-13T11:05:52.7987013Z           "evidence": []
2026-06-13T11:05:52.7987233Z         },
2026-06-13T11:05:52.7987432Z         "impl": {
2026-06-13T11:05:52.7987661Z           "complete": true,
2026-06-13T11:05:52.7987896Z           "evidence": [
2026-06-13T11:05:52.7988114Z             {
2026-06-13T11:05:52.7988333Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.7988596Z               "line": 858
2026-06-13T11:05:52.7988823Z             }
2026-06-13T11:05:52.7989102Z           ]
2026-06-13T11:05:52.7989293Z         },
2026-06-13T11:05:52.7989494Z         "int": {
2026-06-13T11:05:52.7989698Z           "complete": false,
2026-06-13T11:05:52.7989932Z           "evidence": []
2026-06-13T11:05:52.7990148Z         },
2026-06-13T11:05:52.7990337Z         "unit": {
2026-06-13T11:05:52.7990542Z           "complete": true,
2026-06-13T11:05:52.7990773Z           "evidence": [
2026-06-13T11:05:52.7990976Z             {
2026-06-13T11:05:52.7991205Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.7991468Z               "line": 5776
2026-06-13T11:05:52.7991681Z             }
2026-06-13T11:05:52.7991884Z           ]
2026-06-13T11:05:52.7992061Z         }
2026-06-13T11:05:52.7992241Z       }
2026-06-13T11:05:52.7992428Z     },
2026-06-13T11:05:52.7992618Z     {
2026-06-13T11:05:52.7992819Z       "id": "REQ-CONSENT-1",
2026-06-13T11:05:52.7993892Z       "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-13T11:05:52.7994928Z       "requiredStages": [
2026-06-13T11:05:52.7995170Z         "impl",
2026-06-13T11:05:52.7995376Z         "unit"
2026-06-13T11:05:52.7995576Z       ],
2026-06-13T11:05:52.7995771Z       "stages": {
2026-06-13T11:05:52.7995981Z         "doc": {
2026-06-13T11:05:52.7996192Z           "complete": false,
2026-06-13T11:05:52.7996434Z           "evidence": []
2026-06-13T11:05:52.7996644Z         },
2026-06-13T11:05:52.7996836Z         "impl": {
2026-06-13T11:05:52.7997048Z           "complete": true,
2026-06-13T11:05:52.7997283Z           "evidence": [
2026-06-13T11:05:52.7997497Z             {
2026-06-13T11:05:52.7997749Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.7998030Z               "line": 27
2026-06-13T11:05:52.7998240Z             },
2026-06-13T11:05:52.7998442Z             {
2026-06-13T11:05:52.7998684Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.7999124Z               "line": 75
2026-06-13T11:05:52.7999355Z             },
2026-06-13T11:05:52.7999558Z             {
2026-06-13T11:05:52.7999807Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8000092Z               "line": 98
2026-06-13T11:05:52.8000316Z             },
2026-06-13T11:05:52.8000516Z             {
2026-06-13T11:05:52.8000845Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:05:52.8001122Z               "line": 82
2026-06-13T11:05:52.8001333Z             },
2026-06-13T11:05:52.8001532Z             {
2026-06-13T11:05:52.8001779Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:05:52.8002056Z               "line": 109
2026-06-13T11:05:52.8002279Z             },
2026-06-13T11:05:52.8002472Z             {
2026-06-13T11:05:52.8002707Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:05:52.8002983Z               "line": 127
2026-06-13T11:05:52.8003198Z             },
2026-06-13T11:05:52.8003402Z             {
2026-06-13T11:05:52.8003636Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:05:52.8003913Z               "line": 142
2026-06-13T11:05:52.8004127Z             },
2026-06-13T11:05:52.8004322Z             {
2026-06-13T11:05:52.8004543Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8004812Z               "line": 5413
2026-06-13T11:05:52.8005039Z             }
2026-06-13T11:05:52.8005236Z           ]
2026-06-13T11:05:52.8005435Z         },
2026-06-13T11:05:52.8005635Z         "int": {
2026-06-13T11:05:52.8005855Z           "complete": false,
2026-06-13T11:05:52.8006089Z           "evidence": []
2026-06-13T11:05:52.8006307Z         },
2026-06-13T11:05:52.8006503Z         "unit": {
2026-06-13T11:05:52.8006713Z           "complete": true,
2026-06-13T11:05:52.8006947Z           "evidence": [
2026-06-13T11:05:52.8007161Z             {
2026-06-13T11:05:52.8007401Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8007694Z               "line": 334
2026-06-13T11:05:52.8007908Z             },
2026-06-13T11:05:52.8008105Z             {
2026-06-13T11:05:52.8008348Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8008624Z               "line": 380
2026-06-13T11:05:52.8008853Z             },
2026-06-13T11:05:52.8009110Z             {
2026-06-13T11:05:52.8009350Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8009641Z               "line": 391
2026-06-13T11:05:52.8009858Z             },
2026-06-13T11:05:52.8010057Z             {
2026-06-13T11:05:52.8010294Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:05:52.8010566Z               "line": 165
2026-06-13T11:05:52.8010780Z             },
2026-06-13T11:05:52.8010977Z             {
2026-06-13T11:05:52.8011211Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:05:52.8011486Z               "line": 184
2026-06-13T11:05:52.8011697Z             },
2026-06-13T11:05:52.8011888Z             {
2026-06-13T11:05:52.8012121Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:05:52.8012387Z               "line": 204
2026-06-13T11:05:52.8012598Z             },
2026-06-13T11:05:52.8012792Z             {
2026-06-13T11:05:52.8013018Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8013281Z               "line": 6129
2026-06-13T11:05:52.8013501Z             }
2026-06-13T11:05:52.8013705Z           ]
2026-06-13T11:05:52.8013896Z         }
2026-06-13T11:05:52.8014082Z       }
2026-06-13T11:05:52.8014268Z     },
2026-06-13T11:05:52.8014455Z     {
2026-06-13T11:05:52.8014664Z       "id": "REQ-CONSENT-2",
2026-06-13T11:05:52.8015767Z       "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-13T11:05:52.8016835Z       "requiredStages": [
2026-06-13T11:05:52.8017063Z         "impl",
2026-06-13T11:05:52.8017269Z         "unit"
2026-06-13T11:05:52.8017468Z       ],
2026-06-13T11:05:52.8017665Z       "stages": {
2026-06-13T11:05:52.8017874Z         "doc": {
2026-06-13T11:05:52.8018088Z           "complete": false,
2026-06-13T11:05:52.8018322Z           "evidence": []
2026-06-13T11:05:52.8018646Z         },
2026-06-13T11:05:52.8018845Z         "impl": {
2026-06-13T11:05:52.8019126Z           "complete": true,
2026-06-13T11:05:52.8019351Z           "evidence": [
2026-06-13T11:05:52.8019566Z             {
2026-06-13T11:05:52.8019814Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8020095Z               "line": 140
2026-06-13T11:05:52.8020309Z             },
2026-06-13T11:05:52.8020504Z             {
2026-06-13T11:05:52.8020730Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8021016Z               "line": 165
2026-06-13T11:05:52.8021236Z             },
2026-06-13T11:05:52.8021446Z             {
2026-06-13T11:05:52.8021688Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8021966Z               "line": 199
2026-06-13T11:05:52.8022181Z             },
2026-06-13T11:05:52.8022371Z             {
2026-06-13T11:05:52.8022600Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8022876Z               "line": 241
2026-06-13T11:05:52.8023082Z             },
2026-06-13T11:05:52.8023276Z             {
2026-06-13T11:05:52.8023513Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8023784Z               "line": 269
2026-06-13T11:05:52.8023988Z             },
2026-06-13T11:05:52.8024180Z             {
2026-06-13T11:05:52.8024404Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8024681Z               "line": 300
2026-06-13T11:05:52.8024894Z             },
2026-06-13T11:05:52.8025085Z             {
2026-06-13T11:05:52.8025301Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8025577Z               "line": 5278
2026-06-13T11:05:52.8025795Z             },
2026-06-13T11:05:52.8025990Z             {
2026-06-13T11:05:52.8026211Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8026469Z               "line": 5336
2026-06-13T11:05:52.8026684Z             }
2026-06-13T11:05:52.8026880Z           ]
2026-06-13T11:05:52.8027066Z         },
2026-06-13T11:05:52.8027257Z         "int": {
2026-06-13T11:05:52.8027471Z           "complete": false,
2026-06-13T11:05:52.8027709Z           "evidence": []
2026-06-13T11:05:52.8027925Z         },
2026-06-13T11:05:52.8028119Z         "unit": {
2026-06-13T11:05:52.8028333Z           "complete": true,
2026-06-13T11:05:52.8028559Z           "evidence": [
2026-06-13T11:05:52.8028766Z             {
2026-06-13T11:05:52.8029057Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8029339Z               "line": 419
2026-06-13T11:05:52.8029554Z             },
2026-06-13T11:05:52.8029745Z             {
2026-06-13T11:05:52.8029973Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8030240Z               "line": 436
2026-06-13T11:05:52.8030442Z             },
2026-06-13T11:05:52.8030636Z             {
2026-06-13T11:05:52.8030855Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8031140Z               "line": 472
2026-06-13T11:05:52.8031367Z             },
2026-06-13T11:05:52.8031553Z             {
2026-06-13T11:05:52.8031773Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.8032040Z               "line": 516
2026-06-13T11:05:52.8032244Z             },
2026-06-13T11:05:52.8032436Z             {
2026-06-13T11:05:52.8032650Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8032911Z               "line": 7196
2026-06-13T11:05:52.8033131Z             },
2026-06-13T11:05:52.8033328Z             {
2026-06-13T11:05:52.8033551Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8033812Z               "line": 7278
2026-06-13T11:05:52.8034134Z             }
2026-06-13T11:05:52.8034340Z           ]
2026-06-13T11:05:52.8034539Z         }
2026-06-13T11:05:52.8034726Z       }
2026-06-13T11:05:52.8034917Z     },
2026-06-13T11:05:52.8035101Z     {
2026-06-13T11:05:52.8035303Z       "id": "REQ-CONV-1",
2026-06-13T11:05:52.8037029Z       "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-13T11:05:52.8038457Z       "requiredStages": [
2026-06-13T11:05:52.8038679Z         "impl",
2026-06-13T11:05:52.8038884Z         "unit"
2026-06-13T11:05:52.8039222Z       ],
2026-06-13T11:05:52.8039418Z       "stages": {
2026-06-13T11:05:52.8039622Z         "doc": {
2026-06-13T11:05:52.8039828Z           "complete": false,
2026-06-13T11:05:52.8040057Z           "evidence": []
2026-06-13T11:05:52.8040266Z         },
2026-06-13T11:05:52.8040467Z         "impl": {
2026-06-13T11:05:52.8040687Z           "complete": true,
2026-06-13T11:05:52.8040910Z           "evidence": [
2026-06-13T11:05:52.8041129Z             {
2026-06-13T11:05:52.8041364Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.8041653Z               "line": 696
2026-06-13T11:05:52.8041864Z             },
2026-06-13T11:05:52.8042057Z             {
2026-06-13T11:05:52.8042299Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.8042586Z               "line": 94
2026-06-13T11:05:52.8042799Z             },
2026-06-13T11:05:52.8042991Z             {
2026-06-13T11:05:52.8043225Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.8043501Z               "line": 345
2026-06-13T11:05:52.8043725Z             },
2026-06-13T11:05:52.8043916Z             {
2026-06-13T11:05:52.8044155Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.8044429Z               "line": 387
2026-06-13T11:05:52.8044642Z             },
2026-06-13T11:05:52.8044837Z             {
2026-06-13T11:05:52.8045070Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.8045352Z               "line": 472
2026-06-13T11:05:52.8045567Z             },
2026-06-13T11:05:52.8045757Z             {
2026-06-13T11:05:52.8045995Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8046277Z               "line": 667
2026-06-13T11:05:52.8046488Z             },
2026-06-13T11:05:52.8046683Z             {
2026-06-13T11:05:52.8046920Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8047204Z               "line": 693
2026-06-13T11:05:52.8047413Z             },
2026-06-13T11:05:52.8047613Z             {
2026-06-13T11:05:52.8047862Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.8048153Z               "line": 369
2026-06-13T11:05:52.8048373Z             },
2026-06-13T11:05:52.8048581Z             {
2026-06-13T11:05:52.8048825Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-13T11:05:52.8049177Z               "line": 19
2026-06-13T11:05:52.8049393Z             }
2026-06-13T11:05:52.8049599Z           ]
2026-06-13T11:05:52.8049796Z         },
2026-06-13T11:05:52.8049993Z         "int": {
2026-06-13T11:05:52.8050220Z           "complete": false,
2026-06-13T11:05:52.8050454Z           "evidence": []
2026-06-13T11:05:52.8050669Z         },
2026-06-13T11:05:52.8050865Z         "unit": {
2026-06-13T11:05:52.8051074Z           "complete": true,
2026-06-13T11:05:52.8051308Z           "evidence": [
2026-06-13T11:05:52.8051514Z             {
2026-06-13T11:05:52.8051761Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8052051Z               "line": 1263
2026-06-13T11:05:52.8052383Z             },
2026-06-13T11:05:52.8052579Z             {
2026-06-13T11:05:52.8052816Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-13T11:05:52.8053097Z               "line": 108
2026-06-13T11:05:52.8053307Z             },
2026-06-13T11:05:52.8053499Z             {
2026-06-13T11:05:52.8053736Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-13T11:05:52.8054110Z               "line": 134
2026-06-13T11:05:52.8054333Z             },
2026-06-13T11:05:52.8054528Z             {
2026-06-13T11:05:52.8054773Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-13T11:05:52.8055051Z               "line": 144
2026-06-13T11:05:52.8055273Z             }
2026-06-13T11:05:52.8055460Z           ]
2026-06-13T11:05:52.8055650Z         }
2026-06-13T11:05:52.8055837Z       }
2026-06-13T11:05:52.8056028Z     },
2026-06-13T11:05:52.8056227Z     {
2026-06-13T11:05:52.8056428Z       "id": "REQ-CONV-2",
2026-06-13T11:05:52.8057708Z       "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-13T11:05:52.8058774Z       "requiredStages": [
2026-06-13T11:05:52.8059080Z         "impl",
2026-06-13T11:05:52.8059295Z         "unit"
2026-06-13T11:05:52.8110414Z       ],
2026-06-13T11:05:52.8110856Z       "stages": {
2026-06-13T11:05:52.8111099Z         "doc": {
2026-06-13T11:05:52.8111351Z           "complete": false,
2026-06-13T11:05:52.8111603Z           "evidence": []
2026-06-13T11:05:52.8111828Z         },
2026-06-13T11:05:52.8112024Z         "impl": {
2026-06-13T11:05:52.8112238Z           "complete": true,
2026-06-13T11:05:52.8112485Z           "evidence": [
2026-06-13T11:05:52.8112711Z             {
2026-06-13T11:05:52.8113002Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8113300Z               "line": 359
2026-06-13T11:05:52.8113515Z             },
2026-06-13T11:05:52.8113716Z             {
2026-06-13T11:05:52.8113969Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:05:52.8114254Z               "line": 119
2026-06-13T11:05:52.8114463Z             },
2026-06-13T11:05:52.8114660Z             {
2026-06-13T11:05:52.8114913Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8115199Z               "line": 789
2026-06-13T11:05:52.8115412Z             },
2026-06-13T11:05:52.8115602Z             {
2026-06-13T11:05:52.8115848Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8116129Z               "line": 800
2026-06-13T11:05:52.8116344Z             },
2026-06-13T11:05:52.8116540Z             {
2026-06-13T11:05:52.8116778Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.8117054Z               "line": 334
2026-06-13T11:05:52.8117274Z             },
2026-06-13T11:05:52.8117470Z             {
2026-06-13T11:05:52.8117688Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8117945Z               "line": 2402
2026-06-13T11:05:52.8118162Z             },
2026-06-13T11:05:52.8118360Z             {
2026-06-13T11:05:52.8118587Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8118849Z               "line": 2418
2026-06-13T11:05:52.8119455Z             },
2026-06-13T11:05:52.8119659Z             {
2026-06-13T11:05:52.8119879Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8120136Z               "line": 2475
2026-06-13T11:05:52.8120351Z             }
2026-06-13T11:05:52.8120551Z           ]
2026-06-13T11:05:52.8120747Z         },
2026-06-13T11:05:52.8120945Z         "int": {
2026-06-13T11:05:52.8121172Z           "complete": false,
2026-06-13T11:05:52.8121412Z           "evidence": []
2026-06-13T11:05:52.8121683Z         },
2026-06-13T11:05:52.8121878Z         "unit": {
2026-06-13T11:05:52.8122397Z           "complete": true,
2026-06-13T11:05:52.8122656Z           "evidence": [
2026-06-13T11:05:52.8122875Z             {
2026-06-13T11:05:52.8123122Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8123408Z               "line": 889
2026-06-13T11:05:52.8123619Z             },
2026-06-13T11:05:52.8123827Z             {
2026-06-13T11:05:52.8124190Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8124471Z               "line": 1014
2026-06-13T11:05:52.8124680Z             },
2026-06-13T11:05:52.8124881Z             {
2026-06-13T11:05:52.8125134Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:05:52.8125425Z               "line": 215
2026-06-13T11:05:52.8125643Z             }
2026-06-13T11:05:52.8125849Z           ]
2026-06-13T11:05:52.8126043Z         }
2026-06-13T11:05:52.8126232Z       }
2026-06-13T11:05:52.8126418Z     },
2026-06-13T11:05:52.8126604Z     {
2026-06-13T11:05:52.8126814Z       "id": "REQ-DAEMON-1",
2026-06-13T11:05:52.8127129Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-13T11:05:52.8127467Z       "requiredStages": [
2026-06-13T11:05:52.8127691Z         "impl",
2026-06-13T11:05:52.8127901Z         "unit",
2026-06-13T11:05:52.8128101Z         "int"
2026-06-13T11:05:52.8128297Z       ],
2026-06-13T11:05:52.8128496Z       "stages": {
2026-06-13T11:05:52.8128707Z         "doc": {
2026-06-13T11:05:52.8128929Z           "complete": false,
2026-06-13T11:05:52.8129251Z           "evidence": []
2026-06-13T11:05:52.8129481Z         },
2026-06-13T11:05:52.8129681Z         "impl": {
2026-06-13T11:05:52.8129895Z           "complete": true,
2026-06-13T11:05:52.8130124Z           "evidence": [
2026-06-13T11:05:52.8130320Z             {
2026-06-13T11:05:52.8130563Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:05:52.8130854Z               "line": 12
2026-06-13T11:05:52.8131077Z             },
2026-06-13T11:05:52.8131279Z             {
2026-06-13T11:05:52.8131544Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8131842Z               "line": 16
2026-06-13T11:05:52.8132051Z             },
2026-06-13T11:05:52.8132253Z             {
2026-06-13T11:05:52.8132491Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8132781Z               "line": 259
2026-06-13T11:05:52.8133001Z             },
2026-06-13T11:05:52.8133197Z             {
2026-06-13T11:05:52.8133435Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-13T11:05:52.8133711Z               "line": 15
2026-06-13T11:05:52.8133925Z             },
2026-06-13T11:05:52.8134127Z             {
2026-06-13T11:05:52.8134358Z               "path": "crates/spt/src/api/live.rs",
2026-06-13T11:05:52.8134635Z               "line": 13
2026-06-13T11:05:52.8134855Z             }
2026-06-13T11:05:52.8135046Z           ]
2026-06-13T11:05:52.8135236Z         },
2026-06-13T11:05:52.8135428Z         "int": {
2026-06-13T11:05:52.8135650Z           "complete": true,
2026-06-13T11:05:52.8135884Z           "evidence": [
2026-06-13T11:05:52.8136095Z             {
2026-06-13T11:05:52.8136343Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-13T11:05:52.8136627Z               "line": 32
2026-06-13T11:05:52.8136844Z             }
2026-06-13T11:05:52.8137040Z           ]
2026-06-13T11:05:52.8137234Z         },
2026-06-13T11:05:52.8137436Z         "unit": {
2026-06-13T11:05:52.8137656Z           "complete": true,
2026-06-13T11:05:52.8137913Z           "evidence": [
2026-06-13T11:05:52.8138127Z             {
2026-06-13T11:05:52.8138360Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:05:52.8138643Z               "line": 285
2026-06-13T11:05:52.8138857Z             },
2026-06-13T11:05:52.8139347Z             {
2026-06-13T11:05:52.8139745Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:05:52.8140055Z               "line": 293
2026-06-13T11:05:52.8140289Z             },
2026-06-13T11:05:52.8140698Z             {
2026-06-13T11:05:52.8140961Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:05:52.8141252Z               "line": 309
2026-06-13T11:05:52.8141472Z             },
2026-06-13T11:05:52.8141719Z             {
2026-06-13T11:05:52.8141966Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:05:52.8142264Z               "line": 317
2026-06-13T11:05:52.8142607Z             },
2026-06-13T11:05:52.8142808Z             {
2026-06-13T11:05:52.8143051Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8143341Z               "line": 609
2026-06-13T11:05:52.8143552Z             },
2026-06-13T11:05:52.8143748Z             {
2026-06-13T11:05:52.8143985Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8144271Z               "line": 679
2026-06-13T11:05:52.8144481Z             },
2026-06-13T11:05:52.8144673Z             {
2026-06-13T11:05:52.8144909Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-13T11:05:52.8145185Z               "line": 104
2026-06-13T11:05:52.8145391Z             },
2026-06-13T11:05:52.8145576Z             {
2026-06-13T11:05:52.8145810Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-13T11:05:52.8146072Z               "line": 129
2026-06-13T11:05:52.8146177Z             }
2026-06-13T11:05:52.8146283Z           ]
2026-06-13T11:05:52.8146387Z         }
2026-06-13T11:05:52.8146492Z       }
2026-06-13T11:05:52.8146593Z     },
2026-06-13T11:05:52.8146692Z     {
2026-06-13T11:05:52.8146807Z       "id": "REQ-DAEMON-2",
2026-06-13T11:05:52.8146979Z       "title": "Broker/brain split for seamless self-update",
2026-06-13T11:05:52.8147097Z       "requiredStages": [
2026-06-13T11:05:52.8147202Z         "impl",
2026-06-13T11:05:52.8147297Z         "unit",
2026-06-13T11:05:52.8147404Z         "int"
2026-06-13T11:05:52.8147509Z       ],
2026-06-13T11:05:52.8147605Z       "stages": {
2026-06-13T11:05:52.8147705Z         "doc": {
2026-06-13T11:05:52.8147834Z           "complete": true,
2026-06-13T11:05:52.8147939Z           "evidence": [
2026-06-13T11:05:52.8148043Z             {
2026-06-13T11:05:52.8148221Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-13T11:05:52.8148334Z               "line": 250
2026-06-13T11:05:52.8148438Z             }
2026-06-13T11:05:52.8148545Z           ]
2026-06-13T11:05:52.8148645Z         },
2026-06-13T11:05:52.8148749Z         "impl": {
2026-06-13T11:05:52.8148865Z           "complete": true,
2026-06-13T11:05:52.8149045Z           "evidence": [
2026-06-13T11:05:52.8149151Z             {
2026-06-13T11:05:52.8149312Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8149417Z               "line": 23
2026-06-13T11:05:52.8149513Z             },
2026-06-13T11:05:52.8149612Z             {
2026-06-13T11:05:52.8149752Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8149861Z               "line": 730
2026-06-13T11:05:52.8149969Z             },
2026-06-13T11:05:52.8150069Z             {
2026-06-13T11:05:52.8150215Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8150324Z               "line": 783
2026-06-13T11:05:52.8150419Z             },
2026-06-13T11:05:52.8150520Z             {
2026-06-13T11:05:52.8150657Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8150773Z               "line": 968
2026-06-13T11:05:52.8150887Z             },
2026-06-13T11:05:52.8150986Z             {
2026-06-13T11:05:52.8151126Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8151230Z               "line": 32
2026-06-13T11:05:52.8151335Z             },
2026-06-13T11:05:52.8151435Z             {
2026-06-13T11:05:52.8151578Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8151683Z               "line": 255
2026-06-13T11:05:52.8151788Z             },
2026-06-13T11:05:52.8151888Z             {
2026-06-13T11:05:52.8152032Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8152236Z               "line": 687
2026-06-13T11:05:52.8152333Z             },
2026-06-13T11:05:52.8152437Z             {
2026-06-13T11:05:52.8152578Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8152684Z               "line": 953
2026-06-13T11:05:52.8152787Z             },
2026-06-13T11:05:52.8152885Z             {
2026-06-13T11:05:52.8153029Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-13T11:05:52.8153229Z               "line": 11
2026-06-13T11:05:52.8153406Z             },
2026-06-13T11:05:52.8153534Z             {
2026-06-13T11:05:52.8153863Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8154007Z               "line": 146
2026-06-13T11:05:52.8154163Z             },
2026-06-13T11:05:52.8154327Z             {
2026-06-13T11:05:52.8154492Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8154731Z               "line": 274
2026-06-13T11:05:52.8154856Z             },
2026-06-13T11:05:52.8155013Z             {
2026-06-13T11:05:52.8155180Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:05:52.8155351Z               "line": 13
2026-06-13T11:05:52.8155555Z             },
2026-06-13T11:05:52.8155685Z             {
2026-06-13T11:05:52.8155889Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.8156028Z               "line": 27
2026-06-13T11:05:52.8156185Z             },
2026-06-13T11:05:52.8156408Z             {
2026-06-13T11:05:52.8156576Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.8156742Z               "line": 109
2026-06-13T11:05:52.8156886Z             },
2026-06-13T11:05:52.8157033Z             {
2026-06-13T11:05:52.8157239Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.8157540Z               "line": 447
2026-06-13T11:05:52.8157700Z             },
2026-06-13T11:05:52.8157843Z             {
2026-06-13T11:05:52.8158031Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.8158204Z               "line": 614
2026-06-13T11:05:52.8158379Z             },
2026-06-13T11:05:52.8158509Z             {
2026-06-13T11:05:52.8158728Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.8158876Z               "line": 715
2026-06-13T11:05:52.8159129Z             },
2026-06-13T11:05:52.8159323Z             {
2026-06-13T11:05:52.8159495Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.8159687Z               "line": 764
2026-06-13T11:05:52.8159833Z             },
2026-06-13T11:05:52.8159997Z             {
2026-06-13T11:05:52.8160215Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.8160364Z               "line": 812
2026-06-13T11:05:52.8160524Z             },
2026-06-13T11:05:52.8160652Z             {
2026-06-13T11:05:52.8160889Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T11:05:52.8161066Z               "line": 10
2026-06-13T11:05:52.8161208Z             }
2026-06-13T11:05:52.8161371Z           ]
2026-06-13T11:05:52.8161499Z         },
2026-06-13T11:05:52.8161686Z         "int": {
2026-06-13T11:05:52.8161890Z           "complete": true,
2026-06-13T11:05:52.8162029Z           "evidence": [
2026-06-13T11:05:52.8162186Z             {
2026-06-13T11:05:52.8162367Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-13T11:05:52.8162554Z               "line": 17
2026-06-13T11:05:52.8162701Z             },
2026-06-13T11:05:52.8162878Z             {
2026-06-13T11:05:52.8163091Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T11:05:52.8163229Z               "line": 71
2026-06-13T11:05:52.8163413Z             },
2026-06-13T11:05:52.8163570Z             {
2026-06-13T11:05:52.8163779Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T11:05:52.8163914Z               "line": 91
2026-06-13T11:05:52.8164075Z             },
2026-06-13T11:05:52.8164257Z             {
2026-06-13T11:05:52.8164705Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T11:05:52.8164982Z               "line": 167
2026-06-13T11:05:52.8165115Z             },
2026-06-13T11:05:52.8165282Z             {
2026-06-13T11:05:52.8165531Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T11:05:52.8165678Z               "line": 209
2026-06-13T11:05:52.8165841Z             },
2026-06-13T11:05:52.8165967Z             {
2026-06-13T11:05:52.8166292Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-13T11:05:52.8166421Z               "line": 128
2026-06-13T11:05:52.8166634Z             },
2026-06-13T11:05:52.8166798Z             {
2026-06-13T11:05:52.8166973Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-13T11:05:52.8167155Z               "line": 59
2026-06-13T11:05:52.8167274Z             }
2026-06-13T11:05:52.8167484Z           ]
2026-06-13T11:05:52.8167612Z         },
2026-06-13T11:05:52.8167775Z         "unit": {
2026-06-13T11:05:52.8167956Z           "complete": true,
2026-06-13T11:05:52.8168076Z           "evidence": [
2026-06-13T11:05:52.8168302Z             {
2026-06-13T11:05:52.8168478Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-13T11:05:52.8168649Z               "line": 62
2026-06-13T11:05:52.8168811Z             },
2026-06-13T11:05:52.8168925Z             {
2026-06-13T11:05:52.8169283Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-13T11:05:52.8169416Z               "line": 76
2026-06-13T11:05:52.8169603Z             },
2026-06-13T11:05:52.8169731Z             {
2026-06-13T11:05:52.8169907Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-13T11:05:52.8170122Z               "line": 88
2026-06-13T11:05:52.8170247Z             },
2026-06-13T11:05:52.8170417Z             {
2026-06-13T11:05:52.8170585Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T11:05:52.8170736Z               "line": 294
2026-06-13T11:05:52.8170963Z             },
2026-06-13T11:05:52.8171089Z             {
2026-06-13T11:05:52.8171303Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:05:52.8171439Z               "line": 620
2026-06-13T11:05:52.8171583Z             },
2026-06-13T11:05:52.8171754Z             {
2026-06-13T11:05:52.8171984Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:05:52.8172150Z               "line": 628
2026-06-13T11:05:52.8172274Z             },
2026-06-13T11:05:52.8172421Z             {
2026-06-13T11:05:52.8172622Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:05:52.8172818Z               "line": 645
2026-06-13T11:05:52.8172941Z             },
2026-06-13T11:05:52.8173099Z             {
2026-06-13T11:05:52.8173270Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:05:52.8173453Z               "line": 699
2026-06-13T11:05:52.8173642Z             },
2026-06-13T11:05:52.8173774Z             {
2026-06-13T11:05:52.8173973Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.8174131Z               "line": 883
2026-06-13T11:05:52.8174292Z             },
2026-06-13T11:05:52.8174484Z             {
2026-06-13T11:05:52.8174654Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.8174822Z               "line": 895
2026-06-13T11:05:52.8174945Z             },
2026-06-13T11:05:52.8175132Z             {
2026-06-13T11:05:52.8175361Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T11:05:52.8175489Z               "line": 110
2026-06-13T11:05:52.8175651Z             },
2026-06-13T11:05:52.8175776Z             {
2026-06-13T11:05:52.8176015Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-13T11:05:52.8176185Z               "line": 142
2026-06-13T11:05:52.8176310Z             }
2026-06-13T11:05:52.8176466Z           ]
2026-06-13T11:05:52.8176594Z         }
2026-06-13T11:05:52.8176805Z       }
2026-06-13T11:05:52.8176947Z     },
2026-06-13T11:05:52.8177105Z     {
2026-06-13T11:05:52.8177286Z       "id": "REQ-DAEMON-3",
2026-06-13T11:05:52.8177495Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-13T11:05:52.8177815Z       "requiredStages": [
2026-06-13T11:05:52.8177968Z         "impl",
2026-06-13T11:05:52.8178608Z         "unit",
2026-06-13T11:05:52.8178735Z         "int"
2026-06-13T11:05:52.8178896Z       ],
2026-06-13T11:05:52.8179184Z       "stages": {
2026-06-13T11:05:52.8179348Z         "doc": {
2026-06-13T11:05:52.8179518Z           "complete": false,
2026-06-13T11:05:52.8179776Z           "evidence": []
2026-06-13T11:05:52.8179930Z         },
2026-06-13T11:05:52.8180048Z         "impl": {
2026-06-13T11:05:52.8180277Z           "complete": true,
2026-06-13T11:05:52.8180453Z           "evidence": [
2026-06-13T11:05:52.8180569Z             {
2026-06-13T11:05:52.8180777Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8180898Z               "line": 14
2026-06-13T11:05:52.8181107Z             },
2026-06-13T11:05:52.8181236Z             {
2026-06-13T11:05:52.8181456Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-13T11:05:52.8181630Z               "line": 11
2026-06-13T11:05:52.8181739Z             },
2026-06-13T11:05:52.8181942Z             {
2026-06-13T11:05:52.8182124Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:05:52.8182285Z               "line": 262
2026-06-13T11:05:52.8182449Z             },
2026-06-13T11:05:52.8182563Z             {
2026-06-13T11:05:52.8182797Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8182962Z               "line": 1433
2026-06-13T11:05:52.8183121Z             },
2026-06-13T11:05:52.8183249Z             {
2026-06-13T11:05:52.8183422Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8183654Z               "line": 3362
2026-06-13T11:05:52.8183784Z             },
2026-06-13T11:05:52.8183945Z             {
2026-06-13T11:05:52.8184098Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8184249Z               "line": 3383
2026-06-13T11:05:52.8184462Z             }
2026-06-13T11:05:52.8184594Z           ]
2026-06-13T11:05:52.8184753Z         },
2026-06-13T11:05:52.8184881Z         "int": {
2026-06-13T11:05:52.8185029Z           "complete": true,
2026-06-13T11:05:52.8185195Z           "evidence": [
2026-06-13T11:05:52.8185382Z             {
2026-06-13T11:05:52.8185587Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:05:52.8185716Z               "line": 49
2026-06-13T11:05:52.8185863Z             },
2026-06-13T11:05:52.8186045Z             {
2026-06-13T11:05:52.8186265Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:05:52.8186388Z               "line": 439
2026-06-13T11:05:52.8186546Z             }
2026-06-13T11:05:52.8186693Z           ]
2026-06-13T11:05:52.8186866Z         },
2026-06-13T11:05:52.8187045Z         "unit": {
2026-06-13T11:05:52.8187183Z           "complete": true,
2026-06-13T11:05:52.8187351Z           "evidence": [
2026-06-13T11:05:52.8187473Z             {
2026-06-13T11:05:52.8187717Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8187894Z               "line": 767
2026-06-13T11:05:52.8188032Z             },
2026-06-13T11:05:52.8188185Z             {
2026-06-13T11:05:52.8188352Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8188543Z               "line": 8277
2026-06-13T11:05:52.8188714Z             }
2026-06-13T11:05:52.8188834Z           ]
2026-06-13T11:05:52.8189071Z         }
2026-06-13T11:05:52.8189206Z       }
2026-06-13T11:05:52.8189409Z     },
2026-06-13T11:05:52.8189551Z     {
2026-06-13T11:05:52.8189726Z       "id": "REQ-DAEMON-4",
2026-06-13T11:05:52.8189950Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-13T11:05:52.8190088Z       "requiredStages": [
2026-06-13T11:05:52.8190270Z         "impl",
2026-06-13T11:05:52.8190418Z         "unit",
2026-06-13T11:05:52.8190570Z         "int"
2026-06-13T11:05:52.8190689Z       ],
2026-06-13T11:05:52.8190865Z       "stages": {
2026-06-13T11:05:52.8191052Z         "doc": {
2026-06-13T11:05:52.8191209Z           "complete": false,
2026-06-13T11:05:52.8191377Z           "evidence": []
2026-06-13T11:05:52.8191628Z         },
2026-06-13T11:05:52.8191796Z         "impl": {
2026-06-13T11:05:52.8191905Z           "complete": true,
2026-06-13T11:05:52.8192125Z           "evidence": [
2026-06-13T11:05:52.8192294Z             {
2026-06-13T11:05:52.8192475Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8192646Z               "line": 414
2026-06-13T11:05:52.8192846Z             },
2026-06-13T11:05:52.8193079Z             {
2026-06-13T11:05:52.8193280Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8193408Z               "line": 479
2026-06-13T11:05:52.8193570Z             },
2026-06-13T11:05:52.8193681Z             {
2026-06-13T11:05:52.8193948Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8194080Z               "line": 501
2026-06-13T11:05:52.8194234Z             }
2026-06-13T11:05:52.8194395Z           ]
2026-06-13T11:05:52.8194500Z         },
2026-06-13T11:05:52.8194724Z         "int": {
2026-06-13T11:05:52.8194871Z           "complete": true,
2026-06-13T11:05:52.8195036Z           "evidence": [
2026-06-13T11:05:52.8195164Z             {
2026-06-13T11:05:52.8195361Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-13T11:05:52.8195595Z               "line": 37
2026-06-13T11:05:52.8195722Z             }
2026-06-13T11:05:52.8195881Z           ]
2026-06-13T11:05:52.8196009Z         },
2026-06-13T11:05:52.8196152Z         "unit": {
2026-06-13T11:05:52.8196394Z           "complete": true,
2026-06-13T11:05:52.8196530Z           "evidence": [
2026-06-13T11:05:52.8196681Z             {
2026-06-13T11:05:52.8196849Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:05:52.8197015Z               "line": 428
2026-06-13T11:05:52.8197183Z             },
2026-06-13T11:05:52.8197353Z             {
2026-06-13T11:05:52.8197549Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8197686Z               "line": 907
2026-06-13T11:05:52.8197844Z             },
2026-06-13T11:05:52.8198001Z             {
2026-06-13T11:05:52.8198221Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8198357Z               "line": 977
2026-06-13T11:05:52.8198516Z             },
2026-06-13T11:05:52.8198677Z             {
2026-06-13T11:05:52.8198883Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8199160Z               "line": 1007
2026-06-13T11:05:52.8199307Z             },
2026-06-13T11:05:52.8199470Z             {
2026-06-13T11:05:52.8199655Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8199826Z               "line": 1040
2026-06-13T11:05:52.8200007Z             }
2026-06-13T11:05:52.8200125Z           ]
2026-06-13T11:05:52.8200290Z         }
2026-06-13T11:05:52.8200411Z       }
2026-06-13T11:05:52.8200591Z     },
2026-06-13T11:05:52.8200764Z     {
2026-06-13T11:05:52.8200896Z       "id": "REQ-DAEMON-5",
2026-06-13T11:05:52.8202508Z       "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-13T11:05:52.8202671Z       "requiredStages": [
2026-06-13T11:05:52.8202888Z         "impl",
2026-06-13T11:05:52.8203068Z         "unit"
2026-06-13T11:05:52.8203191Z       ],
2026-06-13T11:05:52.8203373Z       "stages": {
2026-06-13T11:05:52.8203496Z         "doc": {
2026-06-13T11:05:52.8203697Z           "complete": false,
2026-06-13T11:05:52.8203883Z           "evidence": []
2026-06-13T11:05:52.8204022Z         },
2026-06-13T11:05:52.8204179Z         "impl": {
2026-06-13T11:05:52.8204316Z           "complete": true,
2026-06-13T11:05:52.8204513Z           "evidence": [
2026-06-13T11:05:52.8204654Z             {
2026-06-13T11:05:52.8204993Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8205176Z               "line": 476
2026-06-13T11:05:52.8205303Z             },
2026-06-13T11:05:52.8205488Z             {
2026-06-13T11:05:52.8205696Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8205863Z               "line": 769
2026-06-13T11:05:52.8206092Z             },
2026-06-13T11:05:52.8206259Z             {
2026-06-13T11:05:52.8212615Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8212783Z               "line": 782
2026-06-13T11:05:52.8212888Z             },
2026-06-13T11:05:52.8213006Z             {
2026-06-13T11:05:52.8213184Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8213306Z               "line": 800
2026-06-13T11:05:52.8213420Z             },
2026-06-13T11:05:52.8213515Z             {
2026-06-13T11:05:52.8213679Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8213809Z               "line": 841
2026-06-13T11:05:52.8213914Z             }
2026-06-13T11:05:52.8214013Z           ]
2026-06-13T11:05:52.8214119Z         },
2026-06-13T11:05:52.8214229Z         "int": {
2026-06-13T11:05:52.8214342Z           "complete": false,
2026-06-13T11:05:52.8214458Z           "evidence": []
2026-06-13T11:05:52.8214558Z         },
2026-06-13T11:05:52.8214676Z         "unit": {
2026-06-13T11:05:52.8214792Z           "complete": true,
2026-06-13T11:05:52.8214911Z           "evidence": [
2026-06-13T11:05:52.8215015Z             {
2026-06-13T11:05:52.8215163Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8215282Z               "line": 1189
2026-06-13T11:05:52.8215379Z             },
2026-06-13T11:05:52.8215488Z             {
2026-06-13T11:05:52.8215635Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8215751Z               "line": 1213
2026-06-13T11:05:52.8215854Z             },
2026-06-13T11:05:52.8215958Z             {
2026-06-13T11:05:52.8216106Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8216213Z               "line": 1239
2026-06-13T11:05:52.8216318Z             }
2026-06-13T11:05:52.8216414Z           ]
2026-06-13T11:05:52.8216523Z         }
2026-06-13T11:05:52.8216623Z       }
2026-06-13T11:05:52.8216725Z     },
2026-06-13T11:05:52.8216824Z     {
2026-06-13T11:05:52.8216942Z       "id": "REQ-DAEMON-6",
2026-06-13T11:05:52.8219182Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-13T11:05:52.8219331Z       "requiredStages": [
2026-06-13T11:05:52.8219435Z         "impl",
2026-06-13T11:05:52.8219541Z         "unit"
2026-06-13T11:05:52.8219636Z       ],
2026-06-13T11:05:52.8219750Z       "stages": {
2026-06-13T11:05:52.8219856Z         "doc": {
2026-06-13T11:05:52.8219975Z           "complete": false,
2026-06-13T11:05:52.8220084Z           "evidence": []
2026-06-13T11:05:52.8220190Z         },
2026-06-13T11:05:52.8220298Z         "impl": {
2026-06-13T11:05:52.8220408Z           "complete": true,
2026-06-13T11:05:52.8220519Z           "evidence": [
2026-06-13T11:05:52.8220623Z             {
2026-06-13T11:05:52.8220775Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8220891Z               "line": 426
2026-06-13T11:05:52.8220990Z             },
2026-06-13T11:05:52.8221093Z             {
2026-06-13T11:05:52.8221410Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8221531Z               "line": 457
2026-06-13T11:05:52.8221635Z             },
2026-06-13T11:05:52.8221735Z             {
2026-06-13T11:05:52.8221884Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:05:52.8221988Z               "line": 55
2026-06-13T11:05:52.8222093Z             },
2026-06-13T11:05:52.8222198Z             {
2026-06-13T11:05:52.8222437Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:05:52.8222546Z               "line": 70
2026-06-13T11:05:52.8222646Z             },
2026-06-13T11:05:52.8222752Z             {
2026-06-13T11:05:52.8222880Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8222980Z               "line": 1487
2026-06-13T11:05:52.8223086Z             },
2026-06-13T11:05:52.8223185Z             {
2026-06-13T11:05:52.8223313Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8223425Z               "line": 1513
2026-06-13T11:05:52.8223528Z             }
2026-06-13T11:05:52.8223633Z           ]
2026-06-13T11:05:52.8223735Z         },
2026-06-13T11:05:52.8223842Z         "int": {
2026-06-13T11:05:52.8223956Z           "complete": false,
2026-06-13T11:05:52.8224066Z           "evidence": []
2026-06-13T11:05:52.8224164Z         },
2026-06-13T11:05:52.8224268Z         "unit": {
2026-06-13T11:05:52.8224374Z           "complete": true,
2026-06-13T11:05:52.8224484Z           "evidence": [
2026-06-13T11:05:52.8224592Z             {
2026-06-13T11:05:52.8224732Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:05:52.8224841Z               "line": 288
2026-06-13T11:05:52.8224946Z             },
2026-06-13T11:05:52.8225051Z             {
2026-06-13T11:05:52.8225189Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:05:52.8225294Z               "line": 299
2026-06-13T11:05:52.8225404Z             },
2026-06-13T11:05:52.8225504Z             {
2026-06-13T11:05:52.8225643Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:05:52.8225752Z               "line": 325
2026-06-13T11:05:52.8225856Z             },
2026-06-13T11:05:52.8225958Z             {
2026-06-13T11:05:52.8226099Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:05:52.8226205Z               "line": 351
2026-06-13T11:05:52.8226301Z             }
2026-06-13T11:05:52.8226409Z           ]
2026-06-13T11:05:52.8226508Z         }
2026-06-13T11:05:52.8226613Z       }
2026-06-13T11:05:52.8226712Z     },
2026-06-13T11:05:52.8226816Z     {
2026-06-13T11:05:52.8226935Z       "id": "REQ-DAEMON-7",
2026-06-13T11:05:52.8228376Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-13T11:05:52.8228501Z       "requiredStages": [
2026-06-13T11:05:52.8228600Z         "impl",
2026-06-13T11:05:52.8228705Z         "unit"
2026-06-13T11:05:52.8228806Z       ],
2026-06-13T11:05:52.8228910Z       "stages": {
2026-06-13T11:05:52.8229082Z         "doc": {
2026-06-13T11:05:52.8229202Z           "complete": false,
2026-06-13T11:05:52.8229323Z           "evidence": []
2026-06-13T11:05:52.8229418Z         },
2026-06-13T11:05:52.8229525Z         "impl": {
2026-06-13T11:05:52.8229629Z           "complete": true,
2026-06-13T11:05:52.8229733Z           "evidence": [
2026-06-13T11:05:52.8229835Z             {
2026-06-13T11:05:52.8229976Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8230092Z               "line": 476
2026-06-13T11:05:52.8230187Z             },
2026-06-13T11:05:52.8230291Z             {
2026-06-13T11:05:52.8230445Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.8230549Z               "line": 601
2026-06-13T11:05:52.8231721Z             },
2026-06-13T11:05:52.8231829Z             {
2026-06-13T11:05:52.8231966Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:05:52.8232077Z               "line": 89
2026-06-13T11:05:52.8232181Z             },
2026-06-13T11:05:52.8232285Z             {
2026-06-13T11:05:52.8232410Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8232614Z               "line": 1434
2026-06-13T11:05:52.8232716Z             }
2026-06-13T11:05:52.8232815Z           ]
2026-06-13T11:05:52.8232915Z         },
2026-06-13T11:05:52.8233021Z         "int": {
2026-06-13T11:05:52.8233140Z           "complete": false,
2026-06-13T11:05:52.8233239Z           "evidence": []
2026-06-13T11:05:52.8233341Z         },
2026-06-13T11:05:52.8233440Z         "unit": {
2026-06-13T11:05:52.8233554Z           "complete": true,
2026-06-13T11:05:52.8233665Z           "evidence": [
2026-06-13T11:05:52.8233768Z             {
2026-06-13T11:05:52.8233922Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:05:52.8234022Z               "line": 314
2026-06-13T11:05:52.8234122Z             },
2026-06-13T11:05:52.8234218Z             {
2026-06-13T11:05:52.8234351Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8234460Z               "line": 5949
2026-06-13T11:05:52.8234569Z             }
2026-06-13T11:05:52.8234673Z           ]
2026-06-13T11:05:52.8234772Z         }
2026-06-13T11:05:52.8234867Z       }
2026-06-13T11:05:52.8234968Z     },
2026-06-13T11:05:52.8235067Z     {
2026-06-13T11:05:52.8235177Z       "id": "REQ-DAEMON-8",
2026-06-13T11:05:52.8236155Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-13T11:05:52.8236279Z       "requiredStages": [
2026-06-13T11:05:52.8236374Z         "impl",
2026-06-13T11:05:52.8236484Z         "unit"
2026-06-13T11:05:52.8236584Z       ],
2026-06-13T11:05:52.8236688Z       "stages": {
2026-06-13T11:05:52.8236799Z         "doc": {
2026-06-13T11:05:52.8236913Z           "complete": false,
2026-06-13T11:05:52.8237021Z           "evidence": []
2026-06-13T11:05:52.8237121Z         },
2026-06-13T11:05:52.8237226Z         "impl": {
2026-06-13T11:05:52.8237348Z           "complete": true,
2026-06-13T11:05:52.8237453Z           "evidence": [
2026-06-13T11:05:52.8237549Z             {
2026-06-13T11:05:52.8237690Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8237806Z               "line": 376
2026-06-13T11:05:52.8237906Z             },
2026-06-13T11:05:52.8238010Z             {
2026-06-13T11:05:52.8238145Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:05:52.8238254Z               "line": 56
2026-06-13T11:05:52.8238358Z             }
2026-06-13T11:05:52.8238459Z           ]
2026-06-13T11:05:52.8238563Z         },
2026-06-13T11:05:52.8238654Z         "int": {
2026-06-13T11:05:52.8238770Z           "complete": false,
2026-06-13T11:05:52.8238864Z           "evidence": []
2026-06-13T11:05:52.8239046Z         },
2026-06-13T11:05:52.8239151Z         "unit": {
2026-06-13T11:05:52.8239270Z           "complete": true,
2026-06-13T11:05:52.8239381Z           "evidence": [
2026-06-13T11:05:52.8239494Z             {
2026-06-13T11:05:52.8239637Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:05:52.8239743Z               "line": 288
2026-06-13T11:05:52.8239851Z             },
2026-06-13T11:05:52.8239950Z             {
2026-06-13T11:05:52.8240090Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:05:52.8240198Z               "line": 325
2026-06-13T11:05:52.8240298Z             }
2026-06-13T11:05:52.8240400Z           ]
2026-06-13T11:05:52.8240504Z         }
2026-06-13T11:05:52.8240613Z       }
2026-06-13T11:05:52.8240714Z     },
2026-06-13T11:05:52.8240810Z     {
2026-06-13T11:05:52.8241029Z       "id": "REQ-DAEMON-9",
2026-06-13T11:05:52.8247111Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-13T11:05:52.8247408Z       "requiredStages": [
2026-06-13T11:05:52.8247520Z         "impl",
2026-06-13T11:05:52.8247628Z         "unit"
2026-06-13T11:05:52.8247729Z       ],
2026-06-13T11:05:52.8247837Z       "stages": {
2026-06-13T11:05:52.8247941Z         "doc": {
2026-06-13T11:05:52.8248056Z           "complete": false,
2026-06-13T11:05:52.8248161Z           "evidence": []
2026-06-13T11:05:52.8248270Z         },
2026-06-13T11:05:52.8248371Z         "impl": {
2026-06-13T11:05:52.8248486Z           "complete": true,
2026-06-13T11:05:52.8248604Z           "evidence": [
2026-06-13T11:05:52.8248705Z             {
2026-06-13T11:05:52.8248866Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8249077Z               "line": 262
2026-06-13T11:05:52.8249181Z             },
2026-06-13T11:05:52.8249291Z             {
2026-06-13T11:05:52.8249429Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8249534Z               "line": 306
2026-06-13T11:05:52.8249636Z             },
2026-06-13T11:05:52.8249734Z             {
2026-06-13T11:05:52.8249882Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8249998Z               "line": 190
2026-06-13T11:05:52.8250101Z             },
2026-06-13T11:05:52.8250197Z             {
2026-06-13T11:05:52.8250345Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8250444Z               "line": 275
2026-06-13T11:05:52.8250544Z             },
2026-06-13T11:05:52.8250645Z             {
2026-06-13T11:05:52.8250791Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8250907Z               "line": 312
2026-06-13T11:05:52.8251002Z             },
2026-06-13T11:05:52.8251106Z             {
2026-06-13T11:05:52.8251231Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8251350Z               "line": 1542
2026-06-13T11:05:52.8251444Z             }
2026-06-13T11:05:52.8251546Z           ]
2026-06-13T11:05:52.8251651Z         },
2026-06-13T11:05:52.8251755Z         "int": {
2026-06-13T11:05:52.8251871Z           "complete": false,
2026-06-13T11:05:52.8251970Z           "evidence": []
2026-06-13T11:05:52.8252060Z         },
2026-06-13T11:05:52.8252161Z         "unit": {
2026-06-13T11:05:52.8252285Z           "complete": true,
2026-06-13T11:05:52.8252403Z           "evidence": [
2026-06-13T11:05:52.8252500Z             {
2026-06-13T11:05:52.8252642Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8252751Z               "line": 723
2026-06-13T11:05:52.8252855Z             },
2026-06-13T11:05:52.8252954Z             {
2026-06-13T11:05:52.8253086Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8253197Z               "line": 8142
2026-06-13T11:05:52.8253292Z             }
2026-06-13T11:05:52.8253401Z           ]
2026-06-13T11:05:52.8253497Z         }
2026-06-13T11:05:52.8253598Z       }
2026-06-13T11:05:52.8253692Z     },
2026-06-13T11:05:52.8253793Z     {
2026-06-13T11:05:52.8253907Z       "id": "REQ-DOCS-1",
2026-06-13T11:05:52.8254132Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-13T11:05:52.8254355Z       "requiredStages": [
2026-06-13T11:05:52.8254461Z         "doc",
2026-06-13T11:05:52.8254560Z         "impl"
2026-06-13T11:05:52.8254655Z       ],
2026-06-13T11:05:52.8254766Z       "stages": {
2026-06-13T11:05:52.8254874Z         "doc": {
2026-06-13T11:05:52.8254984Z           "complete": true,
2026-06-13T11:05:52.8255096Z           "evidence": [
2026-06-13T11:05:52.8255290Z             {
2026-06-13T11:05:52.8255429Z               "path": "docs-site/src/index.md",
2026-06-13T11:05:52.8255532Z               "line": 50
2026-06-13T11:05:52.8255636Z             }
2026-06-13T11:05:52.8255737Z           ]
2026-06-13T11:05:52.8255835Z         },
2026-06-13T11:05:52.8255935Z         "impl": {
2026-06-13T11:05:52.8256045Z           "complete": true,
2026-06-13T11:05:52.8256155Z           "evidence": [
2026-06-13T11:05:52.8256254Z             {
2026-06-13T11:05:52.8256412Z               "path": ".github/workflows/docs-publish.yml",
2026-06-13T11:05:52.8256516Z               "line": 12
2026-06-13T11:05:52.8256631Z             },
2026-06-13T11:05:52.8256732Z             {
2026-06-13T11:05:52.8256859Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:52.8256970Z               "line": 14
2026-06-13T11:05:52.8257065Z             }
2026-06-13T11:05:52.8257169Z           ]
2026-06-13T11:05:52.8257270Z         },
2026-06-13T11:05:52.8257371Z         "int": {
2026-06-13T11:05:52.8257489Z           "complete": false,
2026-06-13T11:05:52.8257595Z           "evidence": []
2026-06-13T11:05:52.8257695Z         },
2026-06-13T11:05:52.8257799Z         "unit": {
2026-06-13T11:05:52.8257915Z           "complete": false,
2026-06-13T11:05:52.8258019Z           "evidence": []
2026-06-13T11:05:52.8258118Z         }
2026-06-13T11:05:52.8258217Z       }
2026-06-13T11:05:52.8258313Z     },
2026-06-13T11:05:52.8258411Z     {
2026-06-13T11:05:52.8258520Z       "id": "REQ-DOCS-2",
2026-06-13T11:05:52.8258707Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-13T11:05:52.8258830Z       "requiredStages": [
2026-06-13T11:05:52.8258932Z         "doc",
2026-06-13T11:05:52.8259121Z         "int"
2026-06-13T11:05:52.8259222Z       ],
2026-06-13T11:05:52.8259332Z       "stages": {
2026-06-13T11:05:52.8259431Z         "doc": {
2026-06-13T11:05:52.8259542Z           "complete": true,
2026-06-13T11:05:52.8259651Z           "evidence": [
2026-06-13T11:05:52.8259750Z             {
2026-06-13T11:05:52.8259956Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-13T11:05:52.8260061Z               "line": 3
2026-06-13T11:05:52.8260161Z             },
2026-06-13T11:05:52.8260261Z             {
2026-06-13T11:05:52.8260418Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-13T11:05:52.8260525Z               "line": 3
2026-06-13T11:05:52.8260623Z             },
2026-06-13T11:05:52.8260729Z             {
2026-06-13T11:05:52.8260882Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-13T11:05:52.8260990Z               "line": 3
2026-06-13T11:05:52.8261099Z             }
2026-06-13T11:05:52.8261195Z           ]
2026-06-13T11:05:52.8261309Z         },
2026-06-13T11:05:52.8261409Z         "impl": {
2026-06-13T11:05:52.8261529Z           "complete": false,
2026-06-13T11:05:52.8261638Z           "evidence": []
2026-06-13T11:05:52.8261743Z         },
2026-06-13T11:05:52.8261849Z         "int": {
2026-06-13T11:05:52.8261962Z           "complete": true,
2026-06-13T11:05:52.8262077Z           "evidence": [
2026-06-13T11:05:52.8262172Z             {
2026-06-13T11:05:52.8262329Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-13T11:05:52.8262431Z               "line": 14
2026-06-13T11:05:52.8262539Z             }
2026-06-13T11:05:52.8262639Z           ]
2026-06-13T11:05:52.8262741Z         },
2026-06-13T11:05:52.8262845Z         "unit": {
2026-06-13T11:05:52.8262954Z           "complete": false,
2026-06-13T11:05:52.8263070Z           "evidence": []
2026-06-13T11:05:52.8263169Z         }
2026-06-13T11:05:52.8263268Z       }
2026-06-13T11:05:52.8263449Z     },
2026-06-13T11:05:52.8263556Z     {
2026-06-13T11:05:52.8263665Z       "id": "REQ-DOCS-3",
2026-06-13T11:05:52.8263899Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-13T11:05:52.8264019Z       "requiredStages": [
2026-06-13T11:05:52.8264115Z         "doc"
2026-06-13T11:05:52.8264219Z       ],
2026-06-13T11:05:52.8264319Z       "stages": {
2026-06-13T11:05:52.8264524Z         "doc": {
2026-06-13T11:05:52.8264634Z           "complete": true,
2026-06-13T11:05:52.8264730Z           "evidence": [
2026-06-13T11:05:52.8264834Z             {
2026-06-13T11:05:52.8264968Z               "path": "docs-site/src/index.md",
2026-06-13T11:05:52.8265068Z               "line": 42
2026-06-13T11:05:52.8265168Z             }
2026-06-13T11:05:52.8265268Z           ]
2026-06-13T11:05:52.8265369Z         },
2026-06-13T11:05:52.8265463Z         "impl": {
2026-06-13T11:05:52.8265574Z           "complete": false,
2026-06-13T11:05:52.8265679Z           "evidence": []
2026-06-13T11:05:52.8265787Z         },
2026-06-13T11:05:52.8265889Z         "int": {
2026-06-13T11:05:52.8266004Z           "complete": false,
2026-06-13T11:05:52.8266116Z           "evidence": []
2026-06-13T11:05:52.8266210Z         },
2026-06-13T11:05:52.8266311Z         "unit": {
2026-06-13T11:05:52.8266424Z           "complete": false,
2026-06-13T11:05:52.8266523Z           "evidence": []
2026-06-13T11:05:52.8266624Z         }
2026-06-13T11:05:52.8266729Z       }
2026-06-13T11:05:52.8266828Z     },
2026-06-13T11:05:52.8266925Z     {
2026-06-13T11:05:52.8267044Z       "id": "REQ-DOCS-4",
2026-06-13T11:05:52.8267264Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-13T11:05:52.8267368Z       "requiredStages": [
2026-06-13T11:05:52.8267472Z         "doc",
2026-06-13T11:05:52.8267573Z         "impl",
2026-06-13T11:05:52.8267682Z         "unit"
2026-06-13T11:05:52.8267782Z       ],
2026-06-13T11:05:52.8267879Z       "stages": {
2026-06-13T11:05:52.8267982Z         "doc": {
2026-06-13T11:05:52.8268102Z           "complete": true,
2026-06-13T11:05:52.8268203Z           "evidence": [
2026-06-13T11:05:52.8268302Z             {
2026-06-13T11:05:52.8268445Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-13T11:05:52.8268552Z               "line": 35
2026-06-13T11:05:52.8268654Z             }
2026-06-13T11:05:52.8268749Z           ]
2026-06-13T11:05:52.8268859Z         },
2026-06-13T11:05:52.8269042Z         "impl": {
2026-06-13T11:05:52.8269152Z           "complete": true,
2026-06-13T11:05:52.8269267Z           "evidence": [
2026-06-13T11:05:52.8269367Z             {
2026-06-13T11:05:52.8269515Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.8269629Z               "line": 596
2026-06-13T11:05:52.8269733Z             },
2026-06-13T11:05:52.8269830Z             {
2026-06-13T11:05:52.8269967Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:52.8270073Z               "line": 15
2026-06-13T11:05:52.8270164Z             }
2026-06-13T11:05:52.8270273Z           ]
2026-06-13T11:05:52.8270368Z         },
2026-06-13T11:05:52.8270474Z         "int": {
2026-06-13T11:05:52.8270578Z           "complete": false,
2026-06-13T11:05:52.8270692Z           "evidence": []
2026-06-13T11:05:52.8270794Z         },
2026-06-13T11:05:52.8270902Z         "unit": {
2026-06-13T11:05:52.8271012Z           "complete": true,
2026-06-13T11:05:52.8271122Z           "evidence": [
2026-06-13T11:05:52.8271221Z             {
2026-06-13T11:05:52.8271375Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.8271484Z               "line": 1102
2026-06-13T11:05:52.8271579Z             }
2026-06-13T11:05:52.8271678Z           ]
2026-06-13T11:05:52.8271779Z         }
2026-06-13T11:05:52.8271874Z       }
2026-06-13T11:05:52.8271979Z     },
2026-06-13T11:05:52.8272070Z     {
2026-06-13T11:05:52.8272184Z       "id": "REQ-DOCS-5",
2026-06-13T11:05:52.8272409Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-13T11:05:52.8272608Z       "requiredStages": [
2026-06-13T11:05:52.8272714Z         "impl",
2026-06-13T11:05:52.8272808Z         "int"
2026-06-13T11:05:52.8272913Z       ],
2026-06-13T11:05:52.8273015Z       "stages": {
2026-06-13T11:05:52.8273119Z         "doc": {
2026-06-13T11:05:52.8273232Z           "complete": false,
2026-06-13T11:05:52.8273343Z           "evidence": []
2026-06-13T11:05:52.8273538Z         },
2026-06-13T11:05:52.8273640Z         "impl": {
2026-06-13T11:05:52.8273752Z           "complete": true,
2026-06-13T11:05:52.8273861Z           "evidence": [
2026-06-13T11:05:52.8273962Z             {
2026-06-13T11:05:52.8274112Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.8274216Z               "line": 597
2026-06-13T11:05:52.8274322Z             },
2026-06-13T11:05:52.8274422Z             {
2026-06-13T11:05:52.8274564Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:52.8274670Z               "line": 113
2026-06-13T11:05:52.8274770Z             }
2026-06-13T11:05:52.8274879Z           ]
2026-06-13T11:05:52.8274976Z         },
2026-06-13T11:05:52.8275079Z         "int": {
2026-06-13T11:05:52.8275189Z           "complete": true,
2026-06-13T11:05:52.8275299Z           "evidence": [
2026-06-13T11:05:52.8275399Z             {
2026-06-13T11:05:52.8275528Z               "path": ".github/workflows/ci.yml",
2026-06-13T11:05:52.8275642Z               "line": 86
2026-06-13T11:05:52.8275747Z             },
2026-06-13T11:05:52.8275853Z             {
2026-06-13T11:05:52.8276000Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.8276109Z               "line": 1139
2026-06-13T11:05:52.8276211Z             }
2026-06-13T11:05:52.8276314Z           ]
2026-06-13T11:05:52.8276414Z         },
2026-06-13T11:05:52.8276516Z         "unit": {
2026-06-13T11:05:52.8276629Z           "complete": false,
2026-06-13T11:05:52.8276738Z           "evidence": []
2026-06-13T11:05:52.8276838Z         }
2026-06-13T11:05:52.8276937Z       }
2026-06-13T11:05:52.8277035Z     },
2026-06-13T11:05:52.8277141Z     {
2026-06-13T11:05:52.8277251Z       "id": "REQ-DOCS-6",
2026-06-13T11:05:52.8277609Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-13T11:05:52.8277722Z       "requiredStages": [
2026-06-13T11:05:52.8277828Z         "impl",
2026-06-13T11:05:52.8277929Z         "unit",
2026-06-13T11:05:52.8278042Z         "int"
2026-06-13T11:05:52.8278143Z       ],
2026-06-13T11:05:52.8278247Z       "stages": {
2026-06-13T11:05:52.8278352Z         "doc": {
2026-06-13T11:05:52.8278458Z           "complete": true,
2026-06-13T11:05:52.8278571Z           "evidence": [
2026-06-13T11:05:52.8278672Z             {
2026-06-13T11:05:52.8278830Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-13T11:05:52.8278939Z               "line": 4
2026-06-13T11:05:52.8279140Z             }
2026-06-13T11:05:52.8279247Z           ]
2026-06-13T11:05:52.8279357Z         },
2026-06-13T11:05:52.8279471Z         "impl": {
2026-06-13T11:05:52.8279579Z           "complete": true,
2026-06-13T11:05:52.8279694Z           "evidence": [
2026-06-13T11:05:52.8279804Z             {
2026-06-13T11:05:52.8279931Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8280047Z               "line": 4245
2026-06-13T11:05:52.8280147Z             }
2026-06-13T11:05:52.8280251Z           ]
2026-06-13T11:05:52.8280362Z         },
2026-06-13T11:05:52.8280471Z         "int": {
2026-06-13T11:05:52.8280589Z           "complete": true,
2026-06-13T11:05:52.8280696Z           "evidence": [
2026-06-13T11:05:52.8280804Z             {
2026-06-13T11:05:52.8280947Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-13T11:05:52.8281058Z               "line": 39
2026-06-13T11:05:52.8281157Z             }
2026-06-13T11:05:52.8281262Z           ]
2026-06-13T11:05:52.8281368Z         },
2026-06-13T11:05:52.8281467Z         "unit": {
2026-06-13T11:05:52.8281582Z           "complete": true,
2026-06-13T11:05:52.8281806Z           "evidence": [
2026-06-13T11:05:52.8281912Z             {
2026-06-13T11:05:52.8282040Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8282153Z               "line": 8304
2026-06-13T11:05:52.8282257Z             }
2026-06-13T11:05:52.8282364Z           ]
2026-06-13T11:05:52.8282462Z         }
2026-06-13T11:05:52.8282563Z       }
2026-06-13T11:05:52.8282763Z     },
2026-06-13T11:05:52.8282863Z     {
2026-06-13T11:05:52.8282978Z       "id": "REQ-EP-1",
2026-06-13T11:05:52.8283135Z       "title": "Day-one endpoint types; open type system",
2026-06-13T11:05:52.8283246Z       "requiredStages": [
2026-06-13T11:05:52.8283350Z         "impl",
2026-06-13T11:05:52.8283445Z         "unit"
2026-06-13T11:05:52.8283551Z       ],
2026-06-13T11:05:52.8283655Z       "stages": {
2026-06-13T11:05:52.8283760Z         "doc": {
2026-06-13T11:05:52.8283875Z           "complete": false,
2026-06-13T11:05:52.8283979Z           "evidence": []
2026-06-13T11:05:52.8284084Z         },
2026-06-13T11:05:52.8284185Z         "impl": {
2026-06-13T11:05:52.8284303Z           "complete": true,
2026-06-13T11:05:52.8284402Z           "evidence": [
2026-06-13T11:05:52.8284497Z             {
2026-06-13T11:05:52.8284639Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:05:52.8284767Z               "line": 77
2026-06-13T11:05:52.8284902Z             },
2026-06-13T11:05:52.8285011Z             {
2026-06-13T11:05:52.8285154Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:05:52.8285259Z               "line": 94
2026-06-13T11:05:52.8285363Z             }
2026-06-13T11:05:52.8285464Z           ]
2026-06-13T11:05:52.8285564Z         },
2026-06-13T11:05:52.8285663Z         "int": {
2026-06-13T11:05:52.8285769Z           "complete": false,
2026-06-13T11:05:52.8285883Z           "evidence": []
2026-06-13T11:05:52.8285983Z         },
2026-06-13T11:05:52.8286083Z         "unit": {
2026-06-13T11:05:52.8286193Z           "complete": true,
2026-06-13T11:05:52.8286303Z           "evidence": [
2026-06-13T11:05:52.8286413Z             {
2026-06-13T11:05:52.8286551Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:05:52.8286669Z               "line": 161
2026-06-13T11:05:52.8286762Z             },
2026-06-13T11:05:52.8286865Z             {
2026-06-13T11:05:52.8287009Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:05:52.8287114Z               "line": 178
2026-06-13T11:05:52.8287218Z             }
2026-06-13T11:05:52.8287317Z           ]
2026-06-13T11:05:52.8287417Z         }
2026-06-13T11:05:52.8287511Z       }
2026-06-13T11:05:52.8287610Z     },
2026-06-13T11:05:52.8287711Z     {
2026-06-13T11:05:52.8287811Z       "id": "REQ-EP-2",
2026-06-13T11:05:52.8287991Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-13T11:05:52.8288107Z       "requiredStages": [
2026-06-13T11:05:52.8288202Z         "impl",
2026-06-13T11:05:52.8288302Z         "unit"
2026-06-13T11:05:52.8288403Z       ],
2026-06-13T11:05:52.8288507Z       "stages": {
2026-06-13T11:05:52.8288607Z         "doc": {
2026-06-13T11:05:52.8288717Z           "complete": false,
2026-06-13T11:05:52.8288822Z           "evidence": []
2026-06-13T11:05:52.8288927Z         },
2026-06-13T11:05:52.8289150Z         "impl": {
2026-06-13T11:05:52.8289270Z           "complete": true,
2026-06-13T11:05:52.8289376Z           "evidence": [
2026-06-13T11:05:52.8289479Z             {
2026-06-13T11:05:52.8289638Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:05:52.8289747Z               "line": 114
2026-06-13T11:05:52.8289855Z             },
2026-06-13T11:05:52.8289951Z             {
2026-06-13T11:05:52.8290092Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:05:52.8290201Z               "line": 131
2026-06-13T11:05:52.8290301Z             },
2026-06-13T11:05:52.8290407Z             {
2026-06-13T11:05:52.8290544Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:05:52.8290664Z               "line": 138
2026-06-13T11:05:52.8290863Z             }
2026-06-13T11:05:52.8290969Z           ]
2026-06-13T11:05:52.8291074Z         },
2026-06-13T11:05:52.8291173Z         "int": {
2026-06-13T11:05:52.8291284Z           "complete": false,
2026-06-13T11:05:52.8291384Z           "evidence": []
2026-06-13T11:05:52.8291488Z         },
2026-06-13T11:05:52.8291590Z         "unit": {
2026-06-13T11:05:52.8291699Z           "complete": true,
2026-06-13T11:05:52.8291900Z           "evidence": [
2026-06-13T11:05:52.8291998Z             {
2026-06-13T11:05:52.8292132Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:05:52.8292243Z               "line": 190
2026-06-13T11:05:52.8292346Z             },
2026-06-13T11:05:52.8292442Z             {
2026-06-13T11:05:52.8292591Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:05:52.8292694Z               "line": 208
2026-06-13T11:05:52.8292794Z             },
2026-06-13T11:05:52.8292895Z             {
2026-06-13T11:05:52.8293042Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:05:52.8293156Z               "line": 221
2026-06-13T11:05:52.8293257Z             }
2026-06-13T11:05:52.8293361Z           ]
2026-06-13T11:05:52.8293462Z         }
2026-06-13T11:05:52.8293552Z       }
2026-06-13T11:05:52.8293656Z     },
2026-06-13T11:05:52.8293753Z     {
2026-06-13T11:05:52.8293867Z       "id": "REQ-EP-3",
2026-06-13T11:05:52.8294077Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-13T11:05:52.8294187Z       "requiredStages": [
2026-06-13T11:05:52.8294291Z         "impl",
2026-06-13T11:05:52.8294382Z         "unit"
2026-06-13T11:05:52.8294492Z       ],
2026-06-13T11:05:52.8294591Z       "stages": {
2026-06-13T11:05:52.8294696Z         "doc": {
2026-06-13T11:05:52.8294802Z           "complete": false,
2026-06-13T11:05:52.8294915Z           "evidence": []
2026-06-13T11:05:52.8295024Z         },
2026-06-13T11:05:52.8295134Z         "impl": {
2026-06-13T11:05:52.8295266Z           "complete": true,
2026-06-13T11:05:52.8295375Z           "evidence": [
2026-06-13T11:05:52.8295481Z             {
2026-06-13T11:05:52.8295632Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:05:52.8295791Z               "line": 31
2026-06-13T11:05:52.8295961Z             },
2026-06-13T11:05:52.8296062Z             {
2026-06-13T11:05:52.8296204Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:05:52.8296319Z               "line": 49
2026-06-13T11:05:52.8296419Z             }
2026-06-13T11:05:52.8296524Z           ]
2026-06-13T11:05:52.8296658Z         },
2026-06-13T11:05:52.8296762Z         "int": {
2026-06-13T11:05:52.8296877Z           "complete": false,
2026-06-13T11:05:52.8296988Z           "evidence": []
2026-06-13T11:05:52.8297091Z         },
2026-06-13T11:05:52.8297192Z         "unit": {
2026-06-13T11:05:52.8297298Z           "complete": true,
2026-06-13T11:05:52.8297406Z           "evidence": [
2026-06-13T11:05:52.8297511Z             {
2026-06-13T11:05:52.8297651Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:05:52.8297759Z               "line": 156
2026-06-13T11:05:52.8297853Z             },
2026-06-13T11:05:52.8297963Z             {
2026-06-13T11:05:52.8298094Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:05:52.8298203Z               "line": 164
2026-06-13T11:05:52.8298304Z             },
2026-06-13T11:05:52.8298405Z             {
2026-06-13T11:05:52.8305475Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:05:52.8305618Z               "line": 177
2026-06-13T11:05:52.8305722Z             },
2026-06-13T11:05:52.8305821Z             {
2026-06-13T11:05:52.8306022Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:05:52.8306145Z               "line": 200
2026-06-13T11:05:52.8306245Z             },
2026-06-13T11:05:52.8306346Z             {
2026-06-13T11:05:52.8306511Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:05:52.8306641Z               "line": 216
2026-06-13T11:05:52.8306889Z             },
2026-06-13T11:05:52.8306994Z             {
2026-06-13T11:05:52.8307160Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:05:52.8307280Z               "line": 233
2026-06-13T11:05:52.8307371Z             }
2026-06-13T11:05:52.8307466Z           ]
2026-06-13T11:05:52.8307567Z         }
2026-06-13T11:05:52.8307666Z       }
2026-06-13T11:05:52.8307771Z     },
2026-06-13T11:05:52.8307957Z     {
2026-06-13T11:05:52.8308081Z       "id": "REQ-EP-4",
2026-06-13T11:05:52.8308249Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-13T11:05:52.8308361Z       "requiredStages": [
2026-06-13T11:05:52.8308466Z         "impl",
2026-06-13T11:05:52.8308566Z         "unit"
2026-06-13T11:05:52.8308669Z       ],
2026-06-13T11:05:52.8308768Z       "stages": {
2026-06-13T11:05:52.8308874Z         "doc": {
2026-06-13T11:05:52.8309088Z           "complete": false,
2026-06-13T11:05:52.8309189Z           "evidence": []
2026-06-13T11:05:52.8309294Z         },
2026-06-13T11:05:52.8309417Z         "impl": {
2026-06-13T11:05:52.8309532Z           "complete": true,
2026-06-13T11:05:52.8309632Z           "evidence": [
2026-06-13T11:05:52.8309737Z             {
2026-06-13T11:05:52.8309885Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8309985Z               "line": 673
2026-06-13T11:05:52.8310085Z             },
2026-06-13T11:05:52.8310181Z             {
2026-06-13T11:05:52.8310328Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8310434Z               "line": 990
2026-06-13T11:05:52.8310533Z             },
2026-06-13T11:05:52.8310638Z             {
2026-06-13T11:05:52.8310777Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8310886Z               "line": 970
2026-06-13T11:05:52.8310985Z             },
2026-06-13T11:05:52.8311090Z             {
2026-06-13T11:05:52.8311221Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:05:52.8311326Z               "line": 83
2026-06-13T11:05:52.8311426Z             },
2026-06-13T11:05:52.8311522Z             {
2026-06-13T11:05:52.8311660Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:05:52.8311761Z               "line": 497
2026-06-13T11:05:52.8311861Z             },
2026-06-13T11:05:52.8311955Z             {
2026-06-13T11:05:52.8312085Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:05:52.8312190Z               "line": 583
2026-06-13T11:05:52.8312284Z             },
2026-06-13T11:05:52.8312390Z             {
2026-06-13T11:05:52.8312528Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.8312637Z               "line": 196
2026-06-13T11:05:52.8312743Z             },
2026-06-13T11:05:52.8312843Z             {
2026-06-13T11:05:52.8312987Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.8313086Z               "line": 337
2026-06-13T11:05:52.8313181Z             },
2026-06-13T11:05:52.8313277Z             {
2026-06-13T11:05:52.8313419Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.8313529Z               "line": 847
2026-06-13T11:05:52.8313621Z             }
2026-06-13T11:05:52.8313730Z           ]
2026-06-13T11:05:52.8313828Z         },
2026-06-13T11:05:52.8313928Z         "int": {
2026-06-13T11:05:52.8314044Z           "complete": false,
2026-06-13T11:05:52.8314157Z           "evidence": []
2026-06-13T11:05:52.8314263Z         },
2026-06-13T11:05:52.8314362Z         "unit": {
2026-06-13T11:05:52.8314471Z           "complete": true,
2026-06-13T11:05:52.8314573Z           "evidence": [
2026-06-13T11:05:52.8314673Z             {
2026-06-13T11:05:52.8314805Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:05:52.8314911Z               "line": 674
2026-06-13T11:05:52.8315016Z             },
2026-06-13T11:05:52.8315115Z             {
2026-06-13T11:05:52.8315274Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-13T11:05:52.8315373Z               "line": 76
2026-06-13T11:05:52.8315478Z             },
2026-06-13T11:05:52.8315678Z             {
2026-06-13T11:05:52.8315821Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-13T11:05:52.8315932Z               "line": 147
2026-06-13T11:05:52.8316026Z             }
2026-06-13T11:05:52.8316134Z           ]
2026-06-13T11:05:52.8316231Z         }
2026-06-13T11:05:52.8316333Z       }
2026-06-13T11:05:52.8316433Z     },
2026-06-13T11:05:52.8316625Z     {
2026-06-13T11:05:52.8316733Z       "id": "REQ-EP-5",
2026-06-13T11:05:52.8317440Z       "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-13T11:05:52.8317559Z       "requiredStages": [
2026-06-13T11:05:52.8317658Z         "impl",
2026-06-13T11:05:52.8317764Z         "unit",
2026-06-13T11:05:52.8317864Z         "int"
2026-06-13T11:05:52.8317964Z       ],
2026-06-13T11:05:52.8318064Z       "stages": {
2026-06-13T11:05:52.8318165Z         "doc": {
2026-06-13T11:05:52.8318283Z           "complete": false,
2026-06-13T11:05:52.8318384Z           "evidence": []
2026-06-13T11:05:52.8318485Z         },
2026-06-13T11:05:52.8318588Z         "impl": {
2026-06-13T11:05:52.8318704Z           "complete": true,
2026-06-13T11:05:52.8318809Z           "evidence": [
2026-06-13T11:05:52.8318903Z             {
2026-06-13T11:05:52.8319140Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8319243Z               "line": 367
2026-06-13T11:05:52.8319348Z             },
2026-06-13T11:05:52.8319444Z             {
2026-06-13T11:05:52.8319596Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:05:52.8319696Z               "line": 18
2026-06-13T11:05:52.8319792Z             },
2026-06-13T11:05:52.8319891Z             {
2026-06-13T11:05:52.8320036Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:05:52.8320140Z               "line": 63
2026-06-13T11:05:52.8320244Z             },
2026-06-13T11:05:52.8320345Z             {
2026-06-13T11:05:52.8320488Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:05:52.8320587Z               "line": 92
2026-06-13T11:05:52.8320689Z             },
2026-06-13T11:05:52.8320788Z             {
2026-06-13T11:05:52.8320931Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:05:52.8321046Z               "line": 167
2026-06-13T11:05:52.8321150Z             },
2026-06-13T11:05:52.8321251Z             {
2026-06-13T11:05:52.8321394Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:05:52.8321502Z               "line": 179
2026-06-13T11:05:52.8321602Z             },
2026-06-13T11:05:52.8321702Z             {
2026-06-13T11:05:52.8321847Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8321948Z               "line": 114
2026-06-13T11:05:52.8322049Z             },
2026-06-13T11:05:52.8322148Z             {
2026-06-13T11:05:52.8322292Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.8322392Z               "line": 22
2026-06-13T11:05:52.8322491Z             },
2026-06-13T11:05:52.8322593Z             {
2026-06-13T11:05:52.8322730Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.8322839Z               "line": 145
2026-06-13T11:05:52.8322940Z             },
2026-06-13T11:05:52.8323049Z             {
2026-06-13T11:05:52.8323193Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.8323303Z               "line": 174
2026-06-13T11:05:52.8323403Z             },
2026-06-13T11:05:52.8323498Z             {
2026-06-13T11:05:52.8323641Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.8323741Z               "line": 196
2026-06-13T11:05:52.8323842Z             },
2026-06-13T11:05:52.8323928Z             {
2026-06-13T11:05:52.8324066Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.8324266Z               "line": 221
2026-06-13T11:05:52.8324374Z             },
2026-06-13T11:05:52.8324479Z             {
2026-06-13T11:05:52.8324619Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.8324726Z               "line": 247
2026-06-13T11:05:52.8324832Z             },
2026-06-13T11:05:52.8324937Z             {
2026-06-13T11:05:52.8325084Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.8325305Z               "line": 270
2026-06-13T11:05:52.8325409Z             },
2026-06-13T11:05:52.8325510Z             {
2026-06-13T11:05:52.8325652Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.8325762Z               "line": 81
2026-06-13T11:05:52.8325863Z             },
2026-06-13T11:05:52.8325963Z             {
2026-06-13T11:05:52.8326097Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8326210Z               "line": 4653
2026-06-13T11:05:52.8326310Z             },
2026-06-13T11:05:52.8326411Z             {
2026-06-13T11:05:52.8326548Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8326657Z               "line": 4787
2026-06-13T11:05:52.8326762Z             },
2026-06-13T11:05:52.8326861Z             {
2026-06-13T11:05:52.8326988Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8327089Z               "line": 4953
2026-06-13T11:05:52.8327199Z             },
2026-06-13T11:05:52.8327303Z             {
2026-06-13T11:05:52.8327433Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8327537Z               "line": 5335
2026-06-13T11:05:52.8327642Z             }
2026-06-13T11:05:52.8327738Z           ]
2026-06-13T11:05:52.8327838Z         },
2026-06-13T11:05:52.8327942Z         "int": {
2026-06-13T11:05:52.8328062Z           "complete": true,
2026-06-13T11:05:52.8328167Z           "evidence": [
2026-06-13T11:05:52.8328271Z             {
2026-06-13T11:05:52.8328420Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-13T11:05:52.8328529Z               "line": 16
2026-06-13T11:05:52.8328634Z             },
2026-06-13T11:05:52.8328739Z             {
2026-06-13T11:05:52.8328876Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-13T11:05:52.8329064Z               "line": 15
2026-06-13T11:05:52.8329168Z             }
2026-06-13T11:05:52.8329269Z           ]
2026-06-13T11:05:52.8329379Z         },
2026-06-13T11:05:52.8329477Z         "unit": {
2026-06-13T11:05:52.8329601Z           "complete": true,
2026-06-13T11:05:52.8329710Z           "evidence": [
2026-06-13T11:05:52.8329808Z             {
2026-06-13T11:05:52.8329951Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:05:52.8330057Z               "line": 246
2026-06-13T11:05:52.8330165Z             },
2026-06-13T11:05:52.8330261Z             {
2026-06-13T11:05:52.8330404Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:05:52.8330509Z               "line": 306
2026-06-13T11:05:52.8330610Z             },
2026-06-13T11:05:52.8330710Z             {
2026-06-13T11:05:52.8330857Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:05:52.8330963Z               "line": 363
2026-06-13T11:05:52.8331062Z             },
2026-06-13T11:05:52.8331167Z             {
2026-06-13T11:05:52.8331315Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.8331419Z               "line": 286
2026-06-13T11:05:52.8331525Z             },
2026-06-13T11:05:52.8331625Z             {
2026-06-13T11:05:52.8331768Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.8331869Z               "line": 338
2026-06-13T11:05:52.8331968Z             },
2026-06-13T11:05:52.8332072Z             {
2026-06-13T11:05:52.8332210Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.8332323Z               "line": 570
2026-06-13T11:05:52.8332422Z             },
2026-06-13T11:05:52.8332523Z             {
2026-06-13T11:05:52.8332642Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8332755Z               "line": 6364
2026-06-13T11:05:52.8332967Z             },
2026-06-13T11:05:52.8333065Z             {
2026-06-13T11:05:52.8333195Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8333300Z               "line": 6488
2026-06-13T11:05:52.8333409Z             },
2026-06-13T11:05:52.8333505Z             {
2026-06-13T11:05:52.8333629Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8333877Z               "line": 7075
2026-06-13T11:05:52.8333963Z             },
2026-06-13T11:05:52.8334063Z             {
2026-06-13T11:05:52.8334182Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8334292Z               "line": 7191
2026-06-13T11:05:52.8334388Z             }
2026-06-13T11:05:52.8334488Z           ]
2026-06-13T11:05:52.8334587Z         }
2026-06-13T11:05:52.8334678Z       }
2026-06-13T11:05:52.8334788Z     },
2026-06-13T11:05:52.8334901Z     {
2026-06-13T11:05:52.8335015Z       "id": "REQ-EP-6",
2026-06-13T11:05:52.8336546Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-13T11:05:52.8336667Z       "requiredStages": [
2026-06-13T11:05:52.8336775Z         "doc",
2026-06-13T11:05:52.8336870Z         "impl",
2026-06-13T11:05:52.8336971Z         "unit"
2026-06-13T11:05:52.8337066Z       ],
2026-06-13T11:05:52.8337160Z       "stages": {
2026-06-13T11:05:52.8337259Z         "doc": {
2026-06-13T11:05:52.8337365Z           "complete": true,
2026-06-13T11:05:52.8337473Z           "evidence": [
2026-06-13T11:05:52.8337567Z             {
2026-06-13T11:05:52.8337688Z               "path": "CONTEXT.md",
2026-06-13T11:05:52.8337797Z               "line": 206
2026-06-13T11:05:52.8337896Z             }
2026-06-13T11:05:52.8337998Z           ]
2026-06-13T11:05:52.8338088Z         },
2026-06-13T11:05:52.8338197Z         "impl": {
2026-06-13T11:05:52.8338298Z           "complete": true,
2026-06-13T11:05:52.8338408Z           "evidence": [
2026-06-13T11:05:52.8338502Z             {
2026-06-13T11:05:52.8338646Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.8338760Z               "line": 174
2026-06-13T11:05:52.8338855Z             }
2026-06-13T11:05:52.8339041Z           ]
2026-06-13T11:05:52.8339141Z         },
2026-06-13T11:05:52.8339247Z         "int": {
2026-06-13T11:05:52.8339360Z           "complete": true,
2026-06-13T11:05:52.8339470Z           "evidence": [
2026-06-13T11:05:52.8339577Z             {
2026-06-13T11:05:52.8339723Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-13T11:05:52.8339834Z               "line": 18
2026-06-13T11:05:52.8339930Z             }
2026-06-13T11:05:52.8340032Z           ]
2026-06-13T11:05:52.8340141Z         },
2026-06-13T11:05:52.8340242Z         "unit": {
2026-06-13T11:05:52.8340358Z           "complete": true,
2026-06-13T11:05:52.8340463Z           "evidence": [
2026-06-13T11:05:52.8340569Z             {
2026-06-13T11:05:52.8340716Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.8340826Z               "line": 525
2026-06-13T11:05:52.8340931Z             },
2026-06-13T11:05:52.8341030Z             {
2026-06-13T11:05:52.8341165Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.8341270Z               "line": 599
2026-06-13T11:05:52.8341374Z             }
2026-06-13T11:05:52.8341475Z           ]
2026-06-13T11:05:52.8341574Z         }
2026-06-13T11:05:52.8341679Z       }
2026-06-13T11:05:52.8341771Z     },
2026-06-13T11:05:52.8341880Z     {
2026-06-13T11:05:52.8341984Z       "id": "REQ-EP-7",
2026-06-13T11:05:52.8343779Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-13T11:05:52.8343999Z       "requiredStages": [
2026-06-13T11:05:52.8344098Z         "doc",
2026-06-13T11:05:52.8344203Z         "impl",
2026-06-13T11:05:52.8344308Z         "unit"
2026-06-13T11:05:52.8344409Z       ],
2026-06-13T11:05:52.8344504Z       "stages": {
2026-06-13T11:05:52.8344613Z         "doc": {
2026-06-13T11:05:52.8344724Z           "complete": true,
2026-06-13T11:05:52.8344842Z           "evidence": [
2026-06-13T11:05:52.8344977Z             {
2026-06-13T11:05:52.8345109Z               "path": "CONTEXT.md",
2026-06-13T11:05:52.8345228Z               "line": 379
2026-06-13T11:05:52.8345330Z             }
2026-06-13T11:05:52.8345424Z           ]
2026-06-13T11:05:52.8345527Z         },
2026-06-13T11:05:52.8345628Z         "impl": {
2026-06-13T11:05:52.8345753Z           "complete": true,
2026-06-13T11:05:52.8345866Z           "evidence": [
2026-06-13T11:05:52.8345972Z             {
2026-06-13T11:05:52.8346114Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.8346234Z               "line": 505
2026-06-13T11:05:52.8346339Z             },
2026-06-13T11:05:52.8346439Z             {
2026-06-13T11:05:52.8346577Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:05:52.8346682Z               "line": 87
2026-06-13T11:05:52.8346791Z             },
2026-06-13T11:05:52.8346887Z             {
2026-06-13T11:05:52.8347039Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8347153Z               "line": 81
2026-06-13T11:05:52.8347259Z             },
2026-06-13T11:05:52.8347363Z             {
2026-06-13T11:05:52.8347517Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8347626Z               "line": 166
2026-06-13T11:05:52.8347725Z             },
2026-06-13T11:05:52.8347829Z             {
2026-06-13T11:05:52.8347963Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8348061Z               "line": 1172
2026-06-13T11:05:52.8348166Z             }
2026-06-13T11:05:52.8348262Z           ]
2026-06-13T11:05:52.8348366Z         },
2026-06-13T11:05:52.8348471Z         "int": {
2026-06-13T11:05:52.8348586Z           "complete": false,
2026-06-13T11:05:52.8348700Z           "evidence": []
2026-06-13T11:05:52.8348795Z         },
2026-06-13T11:05:52.8348901Z         "unit": {
2026-06-13T11:05:52.8349071Z           "complete": true,
2026-06-13T11:05:52.8349182Z           "evidence": [
2026-06-13T11:05:52.8349282Z             {
2026-06-13T11:05:52.8349444Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.8349559Z               "line": 623
2026-06-13T11:05:52.8349659Z             },
2026-06-13T11:05:52.8349754Z             {
2026-06-13T11:05:52.8349888Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:05:52.8349997Z               "line": 212
2026-06-13T11:05:52.8350108Z             },
2026-06-13T11:05:52.8350203Z             {
2026-06-13T11:05:52.8350340Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:05:52.8350451Z               "line": 299
2026-06-13T11:05:52.8350560Z             },
2026-06-13T11:05:52.8350659Z             {
2026-06-13T11:05:52.8350788Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8350905Z               "line": 5653
2026-06-13T11:05:52.8351004Z             },
2026-06-13T11:05:52.8351105Z             {
2026-06-13T11:05:52.8351229Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8351342Z               "line": 5680
2026-06-13T11:05:52.8351444Z             }
2026-06-13T11:05:52.8351553Z           ]
2026-06-13T11:05:52.8351657Z         }
2026-06-13T11:05:52.8351859Z       }
2026-06-13T11:05:52.8351963Z     },
2026-06-13T11:05:52.8352064Z     {
2026-06-13T11:05:52.8352178Z       "id": "REQ-FRONT-1",
2026-06-13T11:05:52.8352374Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-13T11:05:52.8352492Z       "requiredStages": [],
2026-06-13T11:05:52.8352602Z       "stages": {
2026-06-13T11:05:52.8352801Z         "doc": {
2026-06-13T11:05:52.8352917Z           "complete": false,
2026-06-13T11:05:52.8353023Z           "evidence": []
2026-06-13T11:05:52.8353126Z         },
2026-06-13T11:05:52.8353230Z         "impl": {
2026-06-13T11:05:52.8353345Z           "complete": false,
2026-06-13T11:05:52.8353457Z           "evidence": []
2026-06-13T11:05:52.8353556Z         },
2026-06-13T11:05:52.8353662Z         "int": {
2026-06-13T11:05:52.8353767Z           "complete": false,
2026-06-13T11:05:52.8353881Z           "evidence": []
2026-06-13T11:05:52.8353978Z         },
2026-06-13T11:05:52.8354087Z         "unit": {
2026-06-13T11:05:52.8354210Z           "complete": false,
2026-06-13T11:05:52.8354316Z           "evidence": []
2026-06-13T11:05:52.8354425Z         }
2026-06-13T11:05:52.8354524Z       }
2026-06-13T11:05:52.8354626Z     },
2026-06-13T11:05:52.8354725Z     {
2026-06-13T11:05:52.8354897Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-13T11:05:52.8357467Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-13T11:05:52.8357595Z       "requiredStages": [
2026-06-13T11:05:52.8357695Z         "doc",
2026-06-13T11:05:52.8357806Z         "impl",
2026-06-13T11:05:52.8357905Z         "unit",
2026-06-13T11:05:52.8358019Z         "int"
2026-06-13T11:05:52.8358121Z       ],
2026-06-13T11:05:52.8358224Z       "stages": {
2026-06-13T11:05:52.8358328Z         "doc": {
2026-06-13T11:05:52.8358438Z           "complete": true,
2026-06-13T11:05:52.8358551Z           "evidence": [
2026-06-13T11:05:52.8358645Z             {
2026-06-13T11:05:52.8358783Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8358893Z               "line": 319
2026-06-13T11:05:52.8359423Z             }
2026-06-13T11:05:52.8359532Z           ]
2026-06-13T11:05:52.8359631Z         },
2026-06-13T11:05:52.8359742Z         "impl": {
2026-06-13T11:05:52.8359861Z           "complete": true,
2026-06-13T11:05:52.8359976Z           "evidence": [
2026-06-13T11:05:52.8360081Z             {
2026-06-13T11:05:52.8360228Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8360339Z               "line": 480
2026-06-13T11:05:52.8360438Z             },
2026-06-13T11:05:52.8360539Z             {
2026-06-13T11:05:52.8360682Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8360795Z               "line": 485
2026-06-13T11:05:52.8360895Z             },
2026-06-13T11:05:52.8360988Z             {
2026-06-13T11:05:52.8361139Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8361238Z               "line": 860
2026-06-13T11:05:52.8361333Z             },
2026-06-13T11:05:52.8361432Z             {
2026-06-13T11:05:52.8361574Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8361675Z               "line": 901
2026-06-13T11:05:52.8361775Z             },
2026-06-13T11:05:52.8361995Z             {
2026-06-13T11:05:52.8362141Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8362247Z               "line": 912
2026-06-13T11:05:52.8362347Z             },
2026-06-13T11:05:52.8362447Z             {
2026-06-13T11:05:52.8362600Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:52.8362695Z               "line": 358
2026-06-13T11:05:52.8362881Z             }
2026-06-13T11:05:52.8362982Z           ]
2026-06-13T11:05:52.8363081Z         },
2026-06-13T11:05:52.8363186Z         "int": {
2026-06-13T11:05:52.8363306Z           "complete": true,
2026-06-13T11:05:52.8363410Z           "evidence": [
2026-06-13T11:05:52.8363511Z             {
2026-06-13T11:05:52.8363677Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-13T11:05:52.8363786Z               "line": 30
2026-06-13T11:05:52.8363890Z             }
2026-06-13T11:05:52.8363989Z           ]
2026-06-13T11:05:52.8364088Z         },
2026-06-13T11:05:52.8364203Z         "unit": {
2026-06-13T11:05:52.8364314Z           "complete": true,
2026-06-13T11:05:52.8364427Z           "evidence": [
2026-06-13T11:05:52.8364528Z             {
2026-06-13T11:05:52.8364675Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8364779Z               "line": 1453
2026-06-13T11:05:52.8364886Z             },
2026-06-13T11:05:52.8364995Z             {
2026-06-13T11:05:52.8365133Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8365242Z               "line": 1478
2026-06-13T11:05:52.8365342Z             },
2026-06-13T11:05:52.8365453Z             {
2026-06-13T11:05:52.8365590Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8365700Z               "line": 1495
2026-06-13T11:05:52.8365806Z             },
2026-06-13T11:05:52.8365905Z             {
2026-06-13T11:05:52.8366053Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8366159Z               "line": 1538
2026-06-13T11:05:52.8366272Z             }
2026-06-13T11:05:52.8366368Z           ]
2026-06-13T11:05:52.8366474Z         }
2026-06-13T11:05:52.8366581Z       }
2026-06-13T11:05:52.8366676Z     },
2026-06-13T11:05:52.8366782Z     {
2026-06-13T11:05:52.8366925Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-13T11:05:52.8370102Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-13T11:05:52.8370270Z       "requiredStages": [
2026-06-13T11:05:52.8370384Z         "doc",
2026-06-13T11:05:52.8370488Z         "impl",
2026-06-13T11:05:52.8370594Z         "unit",
2026-06-13T11:05:52.8370693Z         "int"
2026-06-13T11:05:52.8370803Z       ],
2026-06-13T11:05:52.8370909Z       "stages": {
2026-06-13T11:05:52.8371012Z         "doc": {
2026-06-13T11:05:52.8371132Z           "complete": true,
2026-06-13T11:05:52.8371243Z           "evidence": [
2026-06-13T11:05:52.8371351Z             {
2026-06-13T11:05:52.8371490Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8371600Z               "line": 288
2026-06-13T11:05:52.8371699Z             }
2026-06-13T11:05:52.8371807Z           ]
2026-06-13T11:05:52.8371907Z         },
2026-06-13T11:05:52.8372011Z         "impl": {
2026-06-13T11:05:52.8372129Z           "complete": true,
2026-06-13T11:05:52.8372429Z           "evidence": [
2026-06-13T11:05:52.8372545Z             {
2026-06-13T11:05:52.8372702Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:52.8372822Z               "line": 108
2026-06-13T11:05:52.8372922Z             },
2026-06-13T11:05:52.8373021Z             {
2026-06-13T11:05:52.8373165Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8373369Z               "line": 729
2026-06-13T11:05:52.8373475Z             },
2026-06-13T11:05:52.8373579Z             {
2026-06-13T11:05:52.8373717Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8373828Z               "line": 936
2026-06-13T11:05:52.8373927Z             },
2026-06-13T11:05:52.8374027Z             {
2026-06-13T11:05:52.8374171Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8374279Z               "line": 23
2026-06-13T11:05:52.8374388Z             },
2026-06-13T11:05:52.8374484Z             {
2026-06-13T11:05:52.8374629Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8374740Z               "line": 113
2026-06-13T11:05:52.8374835Z             },
2026-06-13T11:05:52.8374934Z             {
2026-06-13T11:05:52.8375083Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8375188Z               "line": 158
2026-06-13T11:05:52.8375287Z             },
2026-06-13T11:05:52.8375398Z             {
2026-06-13T11:05:52.8375546Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8375655Z               "line": 215
2026-06-13T11:05:52.8375756Z             },
2026-06-13T11:05:52.8375860Z             {
2026-06-13T11:05:52.8375998Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8376108Z               "line": 247
2026-06-13T11:05:52.8376208Z             },
2026-06-13T11:05:52.8376308Z             {
2026-06-13T11:05:52.8376451Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8376565Z               "line": 261
2026-06-13T11:05:52.8376671Z             },
2026-06-13T11:05:52.8376775Z             {
2026-06-13T11:05:52.8376909Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8377015Z               "line": 306
2026-06-13T11:05:52.8377114Z             },
2026-06-13T11:05:52.8377218Z             {
2026-06-13T11:05:52.8377352Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8377470Z               "line": 333
2026-06-13T11:05:52.8377580Z             },
2026-06-13T11:05:52.8377676Z             {
2026-06-13T11:05:52.8377823Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8377929Z               "line": 345
2026-06-13T11:05:52.8378028Z             },
2026-06-13T11:05:52.8378119Z             {
2026-06-13T11:05:52.8378272Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8378377Z               "line": 359
2026-06-13T11:05:52.8378476Z             },
2026-06-13T11:05:52.8378587Z             {
2026-06-13T11:05:52.8378729Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8378843Z               "line": 386
2026-06-13T11:05:52.8379001Z             },
2026-06-13T11:05:52.8379154Z             {
2026-06-13T11:05:52.8379302Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8379410Z               "line": 629
2026-06-13T11:05:52.8379520Z             },
2026-06-13T11:05:52.8379610Z             {
2026-06-13T11:05:52.8379756Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8379870Z               "line": 958
2026-06-13T11:05:52.8379971Z             },
2026-06-13T11:05:52.8380075Z             {
2026-06-13T11:05:52.8380214Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8380319Z               "line": 111
2026-06-13T11:05:52.8380418Z             },
2026-06-13T11:05:52.8380529Z             {
2026-06-13T11:05:52.8380676Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8380877Z               "line": 296
2026-06-13T11:05:52.8380981Z             },
2026-06-13T11:05:52.8381081Z             {
2026-06-13T11:05:52.8381215Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8381320Z               "line": 368
2026-06-13T11:05:52.8381420Z             },
2026-06-13T11:05:52.8381526Z             {
2026-06-13T11:05:52.8381745Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8381859Z               "line": 380
2026-06-13T11:05:52.8381958Z             },
2026-06-13T11:05:52.8382065Z             {
2026-06-13T11:05:52.8382198Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8382301Z               "line": 716
2026-06-13T11:05:52.8382410Z             },
2026-06-13T11:05:52.8382501Z             {
2026-06-13T11:05:52.8382628Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8382737Z               "line": 181
2026-06-13T11:05:52.8382834Z             },
2026-06-13T11:05:52.8382938Z             {
2026-06-13T11:05:52.8383077Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8383186Z               "line": 223
2026-06-13T11:05:52.8383281Z             },
2026-06-13T11:05:52.8383387Z             {
2026-06-13T11:05:52.8383515Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8383623Z               "line": 234
2026-06-13T11:05:52.8383730Z             },
2026-06-13T11:05:52.8383839Z             {
2026-06-13T11:05:52.8383977Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8384083Z               "line": 260
2026-06-13T11:05:52.8384186Z             },
2026-06-13T11:05:52.8384277Z             {
2026-06-13T11:05:52.8384417Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8384525Z               "line": 56
2026-06-13T11:05:52.8384626Z             },
2026-06-13T11:05:52.8384731Z             {
2026-06-13T11:05:52.8384858Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8384963Z               "line": 188
2026-06-13T11:05:52.8385063Z             },
2026-06-13T11:05:52.8385166Z             {
2026-06-13T11:05:52.8385304Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-13T11:05:52.8385405Z               "line": 63
2026-06-13T11:05:52.8385499Z             },
2026-06-13T11:05:52.8385599Z             {
2026-06-13T11:05:52.8385753Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8385852Z               "line": 258
2026-06-13T11:05:52.8385953Z             },
2026-06-13T11:05:52.8386057Z             {
2026-06-13T11:05:52.8386190Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.8386297Z               "line": 424
2026-06-13T11:05:52.8386396Z             },
2026-06-13T11:05:52.8386501Z             {
2026-06-13T11:05:52.8386631Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8386735Z               "line": 1473
2026-06-13T11:05:52.8386840Z             }
2026-06-13T11:05:52.8386945Z           ]
2026-06-13T11:05:52.8387049Z         },
2026-06-13T11:05:52.8387140Z         "int": {
2026-06-13T11:05:52.8387251Z           "complete": true,
2026-06-13T11:05:52.8387354Z           "evidence": [
2026-06-13T11:05:52.8387459Z             {
2026-06-13T11:05:52.8387609Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-13T11:05:52.8387711Z               "line": 57
2026-06-13T11:05:52.8387815Z             },
2026-06-13T11:05:52.8387917Z             {
2026-06-13T11:05:52.8388068Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-13T11:05:52.8388169Z               "line": 41
2026-06-13T11:05:52.8388274Z             }
2026-06-13T11:05:52.8388378Z           ]
2026-06-13T11:05:52.8388479Z         },
2026-06-13T11:05:52.8388584Z         "unit": {
2026-06-13T11:05:52.8388693Z           "complete": true,
2026-06-13T11:05:52.8388798Z           "evidence": [
2026-06-13T11:05:52.8388899Z             {
2026-06-13T11:05:52.8389284Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:52.8393770Z               "line": 532
2026-06-13T11:05:52.8393903Z             },
2026-06-13T11:05:52.8394018Z             {
2026-06-13T11:05:52.8394189Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:52.8394304Z               "line": 754
2026-06-13T11:05:52.8394404Z             },
2026-06-13T11:05:52.8394513Z             {
2026-06-13T11:05:52.8394818Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8394930Z               "line": 1027
2026-06-13T11:05:52.8395038Z             },
2026-06-13T11:05:52.8395133Z             {
2026-06-13T11:05:52.8395291Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8395404Z               "line": 1061
2026-06-13T11:05:52.8395513Z             },
2026-06-13T11:05:52.8395618Z             {
2026-06-13T11:05:52.8395759Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8395869Z               "line": 1103
2026-06-13T11:05:52.8395980Z             },
2026-06-13T11:05:52.8396088Z             {
2026-06-13T11:05:52.8396237Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8396356Z               "line": 1175
2026-06-13T11:05:52.8396455Z             },
2026-06-13T11:05:52.8396552Z             {
2026-06-13T11:05:52.8396699Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8396809Z               "line": 1188
2026-06-13T11:05:52.8396909Z             },
2026-06-13T11:05:52.8397009Z             {
2026-06-13T11:05:52.8397158Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8397266Z               "line": 1211
2026-06-13T11:05:52.8397366Z             },
2026-06-13T11:05:52.8397472Z             {
2026-06-13T11:05:52.8397614Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8397734Z               "line": 1237
2026-06-13T11:05:52.8397835Z             },
2026-06-13T11:05:52.8397938Z             {
2026-06-13T11:05:52.8398092Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8398201Z               "line": 1251
2026-06-13T11:05:52.8398314Z             },
2026-06-13T11:05:52.8398409Z             {
2026-06-13T11:05:52.8398563Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8398676Z               "line": 1275
2026-06-13T11:05:52.8398777Z             },
2026-06-13T11:05:52.8398887Z             {
2026-06-13T11:05:52.8399149Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8399281Z               "line": 1407
2026-06-13T11:05:52.8399378Z             },
2026-06-13T11:05:52.8399487Z             {
2026-06-13T11:05:52.8399635Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8399746Z               "line": 1583
2026-06-13T11:05:52.8399849Z             },
2026-06-13T11:05:52.8399945Z             {
2026-06-13T11:05:52.8400089Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8400202Z               "line": 1638
2026-06-13T11:05:52.8400312Z             },
2026-06-13T11:05:52.8400418Z             {
2026-06-13T11:05:52.8400554Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8400664Z               "line": 1684
2026-06-13T11:05:52.8400768Z             },
2026-06-13T11:05:52.8400871Z             {
2026-06-13T11:05:52.8401010Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8401129Z               "line": 1729
2026-06-13T11:05:52.8401238Z             },
2026-06-13T11:05:52.8401334Z             {
2026-06-13T11:05:52.8401481Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8401591Z               "line": 1773
2026-06-13T11:05:52.8401692Z             },
2026-06-13T11:05:52.8401787Z             {
2026-06-13T11:05:52.8401935Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8402049Z               "line": 1815
2026-06-13T11:05:52.8402149Z             },
2026-06-13T11:05:52.8402259Z             {
2026-06-13T11:05:52.8402507Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8402623Z               "line": 1029
2026-06-13T11:05:52.8402726Z             },
2026-06-13T11:05:52.8402831Z             {
2026-06-13T11:05:52.8402970Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8403084Z               "line": 217
2026-06-13T11:05:52.8403299Z             },
2026-06-13T11:05:52.8403398Z             {
2026-06-13T11:05:52.8403540Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8403649Z               "line": 233
2026-06-13T11:05:52.8403748Z             },
2026-06-13T11:05:52.8403853Z             {
2026-06-13T11:05:52.8403996Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8404110Z               "line": 254
2026-06-13T11:05:52.8404212Z             },
2026-06-13T11:05:52.8404316Z             {
2026-06-13T11:05:52.8404458Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8404564Z               "line": 265
2026-06-13T11:05:52.8404668Z             },
2026-06-13T11:05:52.8404768Z             {
2026-06-13T11:05:52.8404907Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8405011Z               "line": 278
2026-06-13T11:05:52.8405117Z             },
2026-06-13T11:05:52.8405217Z             {
2026-06-13T11:05:52.8405360Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8405475Z               "line": 289
2026-06-13T11:05:52.8405570Z             },
2026-06-13T11:05:52.8405665Z             {
2026-06-13T11:05:52.8405805Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8405917Z               "line": 301
2026-06-13T11:05:52.8406021Z             },
2026-06-13T11:05:52.8406117Z             {
2026-06-13T11:05:52.8406258Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8406362Z               "line": 312
2026-06-13T11:05:52.8406463Z             },
2026-06-13T11:05:52.8406587Z             {
2026-06-13T11:05:52.8406754Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8406863Z               "line": 323
2026-06-13T11:05:52.8406963Z             },
2026-06-13T11:05:52.8407064Z             {
2026-06-13T11:05:52.8407202Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8407315Z               "line": 332
2026-06-13T11:05:52.8407417Z             },
2026-06-13T11:05:52.8407512Z             {
2026-06-13T11:05:52.8407655Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8407760Z               "line": 342
2026-06-13T11:05:52.8407869Z             },
2026-06-13T11:05:52.8407964Z             {
2026-06-13T11:05:52.8408103Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:05:52.8408218Z               "line": 358
2026-06-13T11:05:52.8408313Z             },
2026-06-13T11:05:52.8408418Z             {
2026-06-13T11:05:52.8408566Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8408672Z               "line": 708
2026-06-13T11:05:52.8408775Z             },
2026-06-13T11:05:52.8408874Z             {
2026-06-13T11:05:52.8409118Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8409231Z               "line": 744
2026-06-13T11:05:52.8409332Z             },
2026-06-13T11:05:52.8409428Z             {
2026-06-13T11:05:52.8409575Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.8409681Z               "line": 951
2026-06-13T11:05:52.8409776Z             },
2026-06-13T11:05:52.8409885Z             {
2026-06-13T11:05:52.8410014Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-13T11:05:52.8410129Z               "line": 142
2026-06-13T11:05:52.8410224Z             },
2026-06-13T11:05:52.8410320Z             {
2026-06-13T11:05:52.8410458Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-13T11:05:52.8410563Z               "line": 221
2026-06-13T11:05:52.8410673Z             },
2026-06-13T11:05:52.8410872Z             {
2026-06-13T11:05:52.8411029Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-13T11:05:52.8411129Z               "line": 290
2026-06-13T11:05:52.8411238Z             },
2026-06-13T11:05:52.8411338Z             {
2026-06-13T11:05:52.8411479Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-13T11:05:52.8411680Z               "line": 17
2026-06-13T11:05:52.8411784Z             },
2026-06-13T11:05:52.8411884Z             {
2026-06-13T11:05:52.8412018Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-13T11:05:52.8412127Z               "line": 104
2026-06-13T11:05:52.8412219Z             }
2026-06-13T11:05:52.8412324Z           ]
2026-06-13T11:05:52.8412428Z         }
2026-06-13T11:05:52.8412524Z       }
2026-06-13T11:05:52.8412633Z     },
2026-06-13T11:05:52.8412728Z     {
2026-06-13T11:05:52.8412872Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-13T11:05:52.8413081Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-13T11:05:52.8413192Z       "requiredStages": [
2026-06-13T11:05:52.8413300Z         "impl",
2026-06-13T11:05:52.8413401Z         "unit"
2026-06-13T11:05:52.8413502Z       ],
2026-06-13T11:05:52.8413600Z       "stages": {
2026-06-13T11:05:52.8413706Z         "doc": {
2026-06-13T11:05:52.8413817Z           "complete": false,
2026-06-13T11:05:52.8413939Z           "evidence": []
2026-06-13T11:05:52.8414033Z         },
2026-06-13T11:05:52.8414129Z         "impl": {
2026-06-13T11:05:52.8414242Z           "complete": true,
2026-06-13T11:05:52.8414351Z           "evidence": [
2026-06-13T11:05:52.8414451Z             {
2026-06-13T11:05:52.8414594Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.8414699Z               "line": 149
2026-06-13T11:05:52.8414795Z             },
2026-06-13T11:05:52.8414886Z             {
2026-06-13T11:05:52.8415023Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:05:52.8415133Z               "line": 18
2026-06-13T11:05:52.8415238Z             },
2026-06-13T11:05:52.8415333Z             {
2026-06-13T11:05:52.8415472Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:05:52.8415576Z               "line": 98
2026-06-13T11:05:52.8415677Z             }
2026-06-13T11:05:52.8415782Z           ]
2026-06-13T11:05:52.8415877Z         },
2026-06-13T11:05:52.8415982Z         "int": {
2026-06-13T11:05:52.8416097Z           "complete": false,
2026-06-13T11:05:52.8416206Z           "evidence": []
2026-06-13T11:05:52.8416307Z         },
2026-06-13T11:05:52.8416412Z         "unit": {
2026-06-13T11:05:52.8416525Z           "complete": true,
2026-06-13T11:05:52.8416629Z           "evidence": [
2026-06-13T11:05:52.8416729Z             {
2026-06-13T11:05:52.8416870Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.8416980Z               "line": 644
2026-06-13T11:05:52.8417086Z             },
2026-06-13T11:05:52.8417180Z             {
2026-06-13T11:05:52.8417309Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:05:52.8417409Z               "line": 159
2026-06-13T11:05:52.8417509Z             },
2026-06-13T11:05:52.8417604Z             {
2026-06-13T11:05:52.8417743Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:05:52.8417857Z               "line": 231
2026-06-13T11:05:52.8417954Z             }
2026-06-13T11:05:52.8418057Z           ]
2026-06-13T11:05:52.8418162Z         }
2026-06-13T11:05:52.8418263Z       }
2026-06-13T11:05:52.8418363Z     },
2026-06-13T11:05:52.8418463Z     {
2026-06-13T11:05:52.8418602Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-13T11:05:52.8419140Z       "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-13T11:05:52.8419260Z       "requiredStages": [
2026-06-13T11:05:52.8419363Z         "impl",
2026-06-13T11:05:52.8419467Z         "unit"
2026-06-13T11:05:52.8419568Z       ],
2026-06-13T11:05:52.8419763Z       "stages": {
2026-06-13T11:05:52.8419883Z         "doc": {
2026-06-13T11:05:52.8419988Z           "complete": true,
2026-06-13T11:05:52.8420096Z           "evidence": [
2026-06-13T11:05:52.8420194Z             {
2026-06-13T11:05:52.8420336Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8420445Z               "line": 220
2026-06-13T11:05:52.8420541Z             }
2026-06-13T11:05:52.8420736Z           ]
2026-06-13T11:05:52.8420833Z         },
2026-06-13T11:05:52.8420937Z         "impl": {
2026-06-13T11:05:52.8421041Z           "complete": true,
2026-06-13T11:05:52.8421148Z           "evidence": [
2026-06-13T11:05:52.8421252Z             {
2026-06-13T11:05:52.8421394Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.8421495Z               "line": 302
2026-06-13T11:05:52.8421599Z             },
2026-06-13T11:05:52.8421698Z             {
2026-06-13T11:05:52.8421832Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.8421949Z               "line": 257
2026-06-13T11:05:52.8422053Z             },
2026-06-13T11:05:52.8422149Z             {
2026-06-13T11:05:52.8422287Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.8422387Z               "line": 405
2026-06-13T11:05:52.8422493Z             },
2026-06-13T11:05:52.8422593Z             {
2026-06-13T11:05:52.8422741Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:05:52.8422855Z               "line": 77
2026-06-13T11:05:52.8422959Z             }
2026-06-13T11:05:52.8423051Z           ]
2026-06-13T11:05:52.8423151Z         },
2026-06-13T11:05:52.8423251Z         "int": {
2026-06-13T11:05:52.8423350Z           "complete": false,
2026-06-13T11:05:52.8423456Z           "evidence": []
2026-06-13T11:05:52.8423556Z         },
2026-06-13T11:05:52.8423656Z         "unit": {
2026-06-13T11:05:52.8423771Z           "complete": true,
2026-06-13T11:05:52.8423899Z           "evidence": [
2026-06-13T11:05:52.8423995Z             {
2026-06-13T11:05:52.8424142Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.8424256Z               "line": 478
2026-06-13T11:05:52.8424358Z             },
2026-06-13T11:05:52.8424457Z             {
2026-06-13T11:05:52.8424608Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.8424713Z               "line": 516
2026-06-13T11:05:52.8424821Z             },
2026-06-13T11:05:52.8424925Z             {
2026-06-13T11:05:52.8425059Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:05:52.8425164Z               "line": 166
2026-06-13T11:05:52.8425259Z             }
2026-06-13T11:05:52.8425360Z           ]
2026-06-13T11:05:52.8425455Z         }
2026-06-13T11:05:52.8425555Z       }
2026-06-13T11:05:52.8425651Z     },
2026-06-13T11:05:52.8425751Z     {
2026-06-13T11:05:52.8425898Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-13T11:05:52.8426504Z       "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-13T11:05:52.8426624Z       "requiredStages": [
2026-06-13T11:05:52.8426722Z         "impl",
2026-06-13T11:05:52.8426828Z         "unit"
2026-06-13T11:05:52.8426930Z       ],
2026-06-13T11:05:52.8427033Z       "stages": {
2026-06-13T11:05:52.8427137Z         "doc": {
2026-06-13T11:05:52.8427242Z           "complete": false,
2026-06-13T11:05:52.8427359Z           "evidence": []
2026-06-13T11:05:52.8427454Z         },
2026-06-13T11:05:52.8427559Z         "impl": {
2026-06-13T11:05:52.8427655Z           "complete": true,
2026-06-13T11:05:52.8427764Z           "evidence": [
2026-06-13T11:05:52.8427864Z             {
2026-06-13T11:05:52.8428012Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-13T11:05:52.8428126Z               "line": 22
2026-06-13T11:05:52.8428218Z             },
2026-06-13T11:05:52.8428322Z             {
2026-06-13T11:05:52.8428533Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.8428632Z               "line": 487
2026-06-13T11:05:52.8428737Z             },
2026-06-13T11:05:52.8428833Z             {
2026-06-13T11:05:52.8429056Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T11:05:52.8429167Z               "line": 17
2026-06-13T11:05:52.8429266Z             },
2026-06-13T11:05:52.8429501Z             {
2026-06-13T11:05:52.8429642Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T11:05:52.8429758Z               "line": 147
2026-06-13T11:05:52.8429858Z             },
2026-06-13T11:05:52.8429957Z             {
2026-06-13T11:05:52.8430104Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8430210Z               "line": 226
2026-06-13T11:05:52.8430314Z             },
2026-06-13T11:05:52.8430404Z             {
2026-06-13T11:05:52.8430558Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8430666Z               "line": 251
2026-06-13T11:05:52.8430773Z             },
2026-06-13T11:05:52.8430872Z             {
2026-06-13T11:05:52.8431020Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8431120Z               "line": 277
2026-06-13T11:05:52.8431220Z             },
2026-06-13T11:05:52.8431324Z             {
2026-06-13T11:05:52.8431469Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:05:52.8431587Z               "line": 124
2026-06-13T11:05:52.8431683Z             },
2026-06-13T11:05:52.8431788Z             {
2026-06-13T11:05:52.8431935Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:05:52.8432037Z               "line": 224
2026-06-13T11:05:52.8432140Z             }
2026-06-13T11:05:52.8432239Z           ]
2026-06-13T11:05:52.8432339Z         },
2026-06-13T11:05:52.8432448Z         "int": {
2026-06-13T11:05:52.8432566Z           "complete": false,
2026-06-13T11:05:52.8432681Z           "evidence": []
2026-06-13T11:05:52.8432782Z         },
2026-06-13T11:05:52.8432890Z         "unit": {
2026-06-13T11:05:52.8432996Z           "complete": true,
2026-06-13T11:05:52.8433100Z           "evidence": [
2026-06-13T11:05:52.8433195Z             {
2026-06-13T11:05:52.8433339Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-13T11:05:52.8433439Z               "line": 63
2026-06-13T11:05:52.8433543Z             },
2026-06-13T11:05:52.8433649Z             {
2026-06-13T11:05:52.8433792Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-13T11:05:52.8433897Z               "line": 73
2026-06-13T11:05:52.8433997Z             },
2026-06-13T11:05:52.8434102Z             {
2026-06-13T11:05:52.8434250Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-13T11:05:52.8434350Z               "line": 85
2026-06-13T11:05:52.8434450Z             },
2026-06-13T11:05:52.8434555Z             {
2026-06-13T11:05:52.8434702Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T11:05:52.8434802Z               "line": 346
2026-06-13T11:05:52.8434904Z             },
2026-06-13T11:05:52.8435008Z             {
2026-06-13T11:05:52.8435144Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T11:05:52.8435245Z               "line": 281
2026-06-13T11:05:52.8435348Z             },
2026-06-13T11:05:52.8435447Z             {
2026-06-13T11:05:52.8435591Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T11:05:52.8435705Z               "line": 322
2026-06-13T11:05:52.8435805Z             },
2026-06-13T11:05:52.8435901Z             {
2026-06-13T11:05:52.8436034Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T11:05:52.8436138Z               "line": 360
2026-06-13T11:05:52.8436240Z             },
2026-06-13T11:05:52.8436345Z             {
2026-06-13T11:05:52.8436492Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8436597Z               "line": 688
2026-06-13T11:05:52.8436692Z             },
2026-06-13T11:05:52.8436797Z             {
2026-06-13T11:05:52.8437054Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:05:52.8437170Z               "line": 397
2026-06-13T11:05:52.8437273Z             },
2026-06-13T11:05:52.8437374Z             {
2026-06-13T11:05:52.8437518Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:05:52.8437621Z               "line": 440
2026-06-13T11:05:52.8437720Z             }
2026-06-13T11:05:52.8437887Z           ]
2026-06-13T11:05:52.8437990Z         }
2026-06-13T11:05:52.8438095Z       }
2026-06-13T11:05:52.8438191Z     },
2026-06-13T11:05:52.8438295Z     {
2026-06-13T11:05:52.8438459Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-13T11:05:52.8438705Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-13T11:05:52.8438820Z       "requiredStages": [
2026-06-13T11:05:52.8438920Z         "impl",
2026-06-13T11:05:52.8439149Z         "unit"
2026-06-13T11:05:52.8439249Z       ],
2026-06-13T11:05:52.8439359Z       "stages": {
2026-06-13T11:05:52.8439469Z         "doc": {
2026-06-13T11:05:52.8439587Z           "complete": false,
2026-06-13T11:05:52.8439693Z           "evidence": []
2026-06-13T11:05:52.8439798Z         },
2026-06-13T11:05:52.8439907Z         "impl": {
2026-06-13T11:05:52.8440018Z           "complete": true,
2026-06-13T11:05:52.8440122Z           "evidence": [
2026-06-13T11:05:52.8440222Z             {
2026-06-13T11:05:52.8440366Z               "path": "crates/spt-term/src/reader.rs",
2026-06-13T11:05:52.8440469Z               "line": 169
2026-06-13T11:05:52.8440578Z             }
2026-06-13T11:05:52.8440679Z           ]
2026-06-13T11:05:52.8440780Z         },
2026-06-13T11:05:52.8440879Z         "int": {
2026-06-13T11:05:52.8440979Z           "complete": true,
2026-06-13T11:05:52.8441084Z           "evidence": [
2026-06-13T11:05:52.8441179Z             {
2026-06-13T11:05:52.8441324Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-13T11:05:52.8441428Z               "line": 44
2026-06-13T11:05:52.8441527Z             },
2026-06-13T11:05:52.8441633Z             {
2026-06-13T11:05:52.8441766Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-13T11:05:52.8441875Z               "line": 66
2026-06-13T11:05:52.8441977Z             }
2026-06-13T11:05:52.8442076Z           ]
2026-06-13T11:05:52.8442181Z         },
2026-06-13T11:05:52.8442277Z         "unit": {
2026-06-13T11:05:52.8442386Z           "complete": true,
2026-06-13T11:05:52.8442491Z           "evidence": [
2026-06-13T11:05:52.8442592Z             {
2026-06-13T11:05:52.8442719Z               "path": "crates/spt-term/src/reader.rs",
2026-06-13T11:05:52.8442833Z               "line": 186
2026-06-13T11:05:52.8442938Z             },
2026-06-13T11:05:52.8443032Z             {
2026-06-13T11:05:52.8443169Z               "path": "crates/spt-term/src/reader.rs",
2026-06-13T11:05:52.8443269Z               "line": 238
2026-06-13T11:05:52.8443379Z             },
2026-06-13T11:05:52.8443478Z             {
2026-06-13T11:05:52.8443618Z               "path": "crates/spt-term/src/reader.rs",
2026-06-13T11:05:52.8443727Z               "line": 266
2026-06-13T11:05:52.8443822Z             }
2026-06-13T11:05:52.8443923Z           ]
2026-06-13T11:05:52.8444023Z         }
2026-06-13T11:05:52.8444122Z       }
2026-06-13T11:05:52.8444219Z     },
2026-06-13T11:05:52.8444318Z     {
2026-06-13T11:05:52.8444471Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-13T11:05:52.8444929Z       "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-13T11:05:52.8445052Z       "requiredStages": [
2026-06-13T11:05:52.8445154Z         "impl",
2026-06-13T11:05:52.8445253Z         "unit",
2026-06-13T11:05:52.8445363Z         "int"
2026-06-13T11:05:52.8445459Z       ],
2026-06-13T11:05:52.8445563Z       "stages": {
2026-06-13T11:05:52.8445662Z         "doc": {
2026-06-13T11:05:52.8445776Z           "complete": false,
2026-06-13T11:05:52.8445885Z           "evidence": []
2026-06-13T11:05:52.8446098Z         },
2026-06-13T11:05:52.8446203Z         "impl": {
2026-06-13T11:05:52.8446322Z           "complete": true,
2026-06-13T11:05:52.8446433Z           "evidence": [
2026-06-13T11:05:52.8446532Z             {
2026-06-13T11:05:52.8446684Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8446790Z               "line": 152
2026-06-13T11:05:52.8446989Z             },
2026-06-13T11:05:52.8447095Z             {
2026-06-13T11:05:52.8447238Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8447352Z               "line": 176
2026-06-13T11:05:52.8447453Z             },
2026-06-13T11:05:52.8447552Z             {
2026-06-13T11:05:52.8447687Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.8447797Z               "line": 79
2026-06-13T11:05:52.8447901Z             },
2026-06-13T11:05:52.8448002Z             {
2026-06-13T11:05:52.8448139Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:05:52.8448248Z               "line": 51
2026-06-13T11:05:52.8448357Z             },
2026-06-13T11:05:52.8448452Z             {
2026-06-13T11:05:52.8448593Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.8448698Z               "line": 154
2026-06-13T11:05:52.8448799Z             },
2026-06-13T11:05:52.8448903Z             {
2026-06-13T11:05:52.8449161Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:05:52.8449285Z               "line": 27
2026-06-13T11:05:52.8449385Z             },
2026-06-13T11:05:52.8449490Z             {
2026-06-13T11:05:52.8449634Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:05:52.8449737Z               "line": 79
2026-06-13T11:05:52.8449842Z             },
2026-06-13T11:05:52.8449948Z             {
2026-06-13T11:05:52.8450091Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:05:52.8450196Z               "line": 102
2026-06-13T11:05:52.8450302Z             },
2026-06-13T11:05:52.8450405Z             {
2026-06-13T11:05:52.8450549Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8450659Z               "line": 116
2026-06-13T11:05:52.8450758Z             }
2026-06-13T11:05:52.8450859Z           ]
2026-06-13T11:05:52.8450965Z         },
2026-06-13T11:05:52.8451067Z         "int": {
2026-06-13T11:05:52.8451186Z           "complete": true,
2026-06-13T11:05:52.8451292Z           "evidence": [
2026-06-13T11:05:52.8451401Z             {
2026-06-13T11:05:52.8451549Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-13T11:05:52.8451664Z               "line": 38
2026-06-13T11:05:52.8451763Z             }
2026-06-13T11:05:52.8451874Z           ]
2026-06-13T11:05:52.8451973Z         },
2026-06-13T11:05:52.8452073Z         "unit": {
2026-06-13T11:05:52.8452193Z           "complete": true,
2026-06-13T11:05:52.8452298Z           "evidence": [
2026-06-13T11:05:52.8452402Z             {
2026-06-13T11:05:52.8452542Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8452660Z               "line": 628
2026-06-13T11:05:52.8452769Z             },
2026-06-13T11:05:52.8452866Z             {
2026-06-13T11:05:52.8453007Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.8453113Z               "line": 351
2026-06-13T11:05:52.8453223Z             },
2026-06-13T11:05:52.8453322Z             {
2026-06-13T11:05:52.8453474Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:05:52.8453587Z               "line": 124
2026-06-13T11:05:52.8453686Z             },
2026-06-13T11:05:52.8453796Z             {
2026-06-13T11:05:52.8453934Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:05:52.8454038Z               "line": 143
2026-06-13T11:05:52.8454140Z             },
2026-06-13T11:05:52.8454244Z             {
2026-06-13T11:05:52.8454382Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:05:52.8454488Z               "line": 160
2026-06-13T11:05:52.8454592Z             },
2026-06-13T11:05:52.8454803Z             {
2026-06-13T11:05:52.8454940Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:05:52.8455055Z               "line": 187
2026-06-13T11:05:52.8455155Z             },
2026-06-13T11:05:52.8455260Z             {
2026-06-13T11:05:52.8455395Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:05:52.8455503Z               "line": 206
2026-06-13T11:05:52.8455700Z             },
2026-06-13T11:05:52.8455804Z             {
2026-06-13T11:05:52.8455942Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8456053Z               "line": 229
2026-06-13T11:05:52.8456151Z             }
2026-06-13T11:05:52.8469292Z           ]
2026-06-13T11:05:52.8469439Z         }
2026-06-13T11:05:52.8469539Z       }
2026-06-13T11:05:52.8469652Z     },
2026-06-13T11:05:52.8469761Z     {
2026-06-13T11:05:52.8469934Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-13T11:05:52.8470662Z       "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-13T11:05:52.8470787Z       "requiredStages": [
2026-06-13T11:05:52.8470901Z         "impl",
2026-06-13T11:05:52.8471006Z         "unit"
2026-06-13T11:05:52.8471107Z       ],
2026-06-13T11:05:52.8471230Z       "stages": {
2026-06-13T11:05:52.8471340Z         "doc": {
2026-06-13T11:05:52.8471464Z           "complete": false,
2026-06-13T11:05:52.8471574Z           "evidence": []
2026-06-13T11:05:52.8471684Z         },
2026-06-13T11:05:52.8471798Z         "impl": {
2026-06-13T11:05:52.8471917Z           "complete": true,
2026-06-13T11:05:52.8472037Z           "evidence": [
2026-06-13T11:05:52.8472141Z             {
2026-06-13T11:05:52.8472306Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8472417Z               "line": 327
2026-06-13T11:05:52.8472530Z             },
2026-06-13T11:05:52.8472640Z             {
2026-06-13T11:05:52.8472789Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8472912Z               "line": 530
2026-06-13T11:05:52.8473018Z             }
2026-06-13T11:05:52.8473123Z           ]
2026-06-13T11:05:52.8473226Z         },
2026-06-13T11:05:52.8473342Z         "int": {
2026-06-13T11:05:52.8473461Z           "complete": false,
2026-06-13T11:05:52.8473575Z           "evidence": []
2026-06-13T11:05:52.8473686Z         },
2026-06-13T11:05:52.8473790Z         "unit": {
2026-06-13T11:05:52.8473909Z           "complete": true,
2026-06-13T11:05:52.8474029Z           "evidence": [
2026-06-13T11:05:52.8474133Z             {
2026-06-13T11:05:52.8474301Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-13T11:05:52.8474409Z               "line": 161
2026-06-13T11:05:52.8474518Z             }
2026-06-13T11:05:52.8474623Z           ]
2026-06-13T11:05:52.8474735Z         }
2026-06-13T11:05:52.8474839Z       }
2026-06-13T11:05:52.8474955Z     },
2026-06-13T11:05:52.8475073Z     {
2026-06-13T11:05:52.8475217Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-13T11:05:52.8475445Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-13T11:05:52.8475566Z       "requiredStages": [
2026-06-13T11:05:52.8475680Z         "impl",
2026-06-13T11:05:52.8475789Z         "unit"
2026-06-13T11:05:52.8475909Z       ],
2026-06-13T11:05:52.8476027Z       "stages": {
2026-06-13T11:05:52.8476132Z         "doc": {
2026-06-13T11:05:52.8476252Z           "complete": false,
2026-06-13T11:05:52.8476365Z           "evidence": []
2026-06-13T11:05:52.8476476Z         },
2026-06-13T11:05:52.8476585Z         "impl": {
2026-06-13T11:05:52.8476704Z           "complete": true,
2026-06-13T11:05:52.8476815Z           "evidence": [
2026-06-13T11:05:52.8476924Z             {
2026-06-13T11:05:52.8477076Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8477188Z               "line": 40
2026-06-13T11:05:52.8477476Z             },
2026-06-13T11:05:52.8477588Z             {
2026-06-13T11:05:52.8477750Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8477870Z               "line": 100
2026-06-13T11:05:52.8477974Z             },
2026-06-13T11:05:52.8478084Z             {
2026-06-13T11:05:52.8478232Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8478457Z               "line": 215
2026-06-13T11:05:52.8478566Z             },
2026-06-13T11:05:52.8478674Z             {
2026-06-13T11:05:52.8478819Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8478923Z               "line": 314
2026-06-13T11:05:52.8479105Z             }
2026-06-13T11:05:52.8479214Z           ]
2026-06-13T11:05:52.8479314Z         },
2026-06-13T11:05:52.8479411Z         "int": {
2026-06-13T11:05:52.8479538Z           "complete": false,
2026-06-13T11:05:52.8479653Z           "evidence": []
2026-06-13T11:05:52.8479754Z         },
2026-06-13T11:05:52.8479867Z         "unit": {
2026-06-13T11:05:52.8479985Z           "complete": true,
2026-06-13T11:05:52.8480104Z           "evidence": [
2026-06-13T11:05:52.8480203Z             {
2026-06-13T11:05:52.8480360Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8480470Z               "line": 352
2026-06-13T11:05:52.8480583Z             },
2026-06-13T11:05:52.8480689Z             {
2026-06-13T11:05:52.8480832Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8480946Z               "line": 409
2026-06-13T11:05:52.8481051Z             },
2026-06-13T11:05:52.8481166Z             {
2026-06-13T11:05:52.8481314Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8481423Z               "line": 458
2026-06-13T11:05:52.8481532Z             },
2026-06-13T11:05:52.8481639Z             {
2026-06-13T11:05:52.8481781Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8481895Z               "line": 479
2026-06-13T11:05:52.8482006Z             }
2026-06-13T11:05:52.8482124Z           ]
2026-06-13T11:05:52.8482229Z         }
2026-06-13T11:05:52.8482344Z       }
2026-06-13T11:05:52.8482448Z     },
2026-06-13T11:05:52.8482559Z     {
2026-06-13T11:05:52.8482710Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-13T11:05:52.8482871Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-13T11:05:52.8482996Z       "requiredStages": [
2026-06-13T11:05:52.8483109Z         "impl",
2026-06-13T11:05:52.8483225Z         "unit"
2026-06-13T11:05:52.8483329Z       ],
2026-06-13T11:05:52.8483443Z       "stages": {
2026-06-13T11:05:52.8483549Z         "doc": {
2026-06-13T11:05:52.8487883Z           "complete": false,
2026-06-13T11:05:52.8488031Z           "evidence": []
2026-06-13T11:05:52.8488139Z         },
2026-06-13T11:05:52.8488262Z         "impl": {
2026-06-13T11:05:52.8488382Z           "complete": true,
2026-06-13T11:05:52.8488501Z           "evidence": [
2026-06-13T11:05:52.8488605Z             {
2026-06-13T11:05:52.8488783Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8488906Z               "line": 113
2026-06-13T11:05:52.8489073Z             },
2026-06-13T11:05:52.8489187Z             {
2026-06-13T11:05:52.8489336Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8489459Z               "line": 208
2026-06-13T11:05:52.8489564Z             }
2026-06-13T11:05:52.8489675Z           ]
2026-06-13T11:05:52.8489788Z         },
2026-06-13T11:05:52.8489898Z         "int": {
2026-06-13T11:05:52.8490018Z           "complete": false,
2026-06-13T11:05:52.8490131Z           "evidence": []
2026-06-13T11:05:52.8490242Z         },
2026-06-13T11:05:52.8490347Z         "unit": {
2026-06-13T11:05:52.8490464Z           "complete": true,
2026-06-13T11:05:52.8490583Z           "evidence": [
2026-06-13T11:05:52.8490687Z             {
2026-06-13T11:05:52.8490833Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8490944Z               "line": 373
2026-06-13T11:05:52.8491054Z             },
2026-06-13T11:05:52.8491330Z             {
2026-06-13T11:05:52.8491492Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8491607Z               "line": 436
2026-06-13T11:05:52.8491716Z             }
2026-06-13T11:05:52.8491826Z           ]
2026-06-13T11:05:52.8491931Z         }
2026-06-13T11:05:52.8492036Z       }
2026-06-13T11:05:52.8492140Z     },
2026-06-13T11:05:52.8492251Z     {
2026-06-13T11:05:52.8492509Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-13T11:05:52.8493833Z       "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-13T11:05:52.8493956Z       "requiredStages": [
2026-06-13T11:05:52.8494056Z         "impl",
2026-06-13T11:05:52.8494162Z         "unit"
2026-06-13T11:05:52.8494267Z       ],
2026-06-13T11:05:52.8494376Z       "stages": {
2026-06-13T11:05:52.8494477Z         "doc": {
2026-06-13T11:05:52.8494596Z           "complete": true,
2026-06-13T11:05:52.8494719Z           "evidence": [
2026-06-13T11:05:52.8494820Z             {
2026-06-13T11:05:52.8494971Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8495073Z               "line": 206
2026-06-13T11:05:52.8495182Z             }
2026-06-13T11:05:52.8495295Z           ]
2026-06-13T11:05:52.8495388Z         },
2026-06-13T11:05:52.8495501Z         "impl": {
2026-06-13T11:05:52.8495619Z           "complete": true,
2026-06-13T11:05:52.8495738Z           "evidence": [
2026-06-13T11:05:52.8495842Z             {
2026-06-13T11:05:52.8495988Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8496099Z               "line": 593
2026-06-13T11:05:52.8496208Z             },
2026-06-13T11:05:52.8496322Z             {
2026-06-13T11:05:52.8496471Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8496594Z               "line": 685
2026-06-13T11:05:52.8496710Z             },
2026-06-13T11:05:52.8496814Z             {
2026-06-13T11:05:52.8496967Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.8497086Z               "line": 183
2026-06-13T11:05:52.8497185Z             }
2026-06-13T11:05:52.8497291Z           ]
2026-06-13T11:05:52.8497414Z         },
2026-06-13T11:05:52.8497519Z         "int": {
2026-06-13T11:05:52.8497635Z           "complete": false,
2026-06-13T11:05:52.8497757Z           "evidence": []
2026-06-13T11:05:52.8497862Z         },
2026-06-13T11:05:52.8497964Z         "unit": {
2026-06-13T11:05:52.8498081Z           "complete": true,
2026-06-13T11:05:52.8498202Z           "evidence": [
2026-06-13T11:05:52.8498303Z             {
2026-06-13T11:05:52.8498453Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8498572Z               "line": 734
2026-06-13T11:05:52.8498672Z             },
2026-06-13T11:05:52.8498775Z             {
2026-06-13T11:05:52.8498928Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-13T11:05:52.8499142Z               "line": 44
2026-06-13T11:05:52.8499248Z             },
2026-06-13T11:05:52.8499348Z             {
2026-06-13T11:05:52.8499494Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-13T11:05:52.8499605Z               "line": 57
2026-06-13T11:05:52.8499714Z             },
2026-06-13T11:05:52.8499814Z             {
2026-06-13T11:05:52.8499976Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-13T11:05:52.8500096Z               "line": 54
2026-06-13T11:05:52.8500202Z             }
2026-06-13T11:05:52.8500305Z           ]
2026-06-13T11:05:52.8500410Z         }
2026-06-13T11:05:52.8500512Z       }
2026-06-13T11:05:52.8500611Z     },
2026-06-13T11:05:52.8500716Z     {
2026-06-13T11:05:52.8500874Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-13T11:05:52.8501219Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-13T11:05:52.8501342Z       "requiredStages": [
2026-06-13T11:05:52.8501465Z         "impl",
2026-06-13T11:05:52.8501571Z         "unit"
2026-06-13T11:05:52.8501675Z       ],
2026-06-13T11:05:52.8501785Z       "stages": {
2026-06-13T11:05:52.8501895Z         "doc": {
2026-06-13T11:05:52.8502009Z           "complete": false,
2026-06-13T11:05:52.8502210Z           "evidence": []
2026-06-13T11:05:52.8502309Z         },
2026-06-13T11:05:52.8502415Z         "impl": {
2026-06-13T11:05:52.8502534Z           "complete": true,
2026-06-13T11:05:52.8502648Z           "evidence": [
2026-06-13T11:05:52.8502764Z             {
2026-06-13T11:05:52.8502901Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:05:52.8503015Z               "line": 26
2026-06-13T11:05:52.8503121Z             },
2026-06-13T11:05:52.8503239Z             {
2026-06-13T11:05:52.8503374Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:05:52.8503497Z               "line": 135
2026-06-13T11:05:52.8503597Z             },
2026-06-13T11:05:52.8503693Z             {
2026-06-13T11:05:52.8503849Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T11:05:52.8503958Z               "line": 26
2026-06-13T11:05:52.8504063Z             },
2026-06-13T11:05:52.8504164Z             {
2026-06-13T11:05:52.8504320Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T11:05:52.8504445Z               "line": 237
2026-06-13T11:05:52.8504545Z             }
2026-06-13T11:05:52.8504655Z           ]
2026-06-13T11:05:52.8504760Z         },
2026-06-13T11:05:52.8504864Z         "int": {
2026-06-13T11:05:52.8504984Z           "complete": false,
2026-06-13T11:05:52.8505108Z           "evidence": []
2026-06-13T11:05:52.8505250Z         },
2026-06-13T11:05:52.8505361Z         "unit": {
2026-06-13T11:05:52.8505480Z           "complete": true,
2026-06-13T11:05:52.8505590Z           "evidence": [
2026-06-13T11:05:52.8505699Z             {
2026-06-13T11:05:52.8505847Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:05:52.8505967Z               "line": 161
2026-06-13T11:05:52.8506075Z             },
2026-06-13T11:05:52.8506184Z             {
2026-06-13T11:05:52.8506332Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:05:52.8506444Z               "line": 170
2026-06-13T11:05:52.8506558Z             },
2026-06-13T11:05:52.8506664Z             {
2026-06-13T11:05:52.8506806Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:05:52.8506926Z               "line": 179
2026-06-13T11:05:52.8507026Z             },
2026-06-13T11:05:52.8507135Z             {
2026-06-13T11:05:52.8507275Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:05:52.8507393Z               "line": 190
2026-06-13T11:05:52.8507507Z             },
2026-06-13T11:05:52.8507613Z             {
2026-06-13T11:05:52.8507755Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:05:52.8507871Z               "line": 199
2026-06-13T11:05:52.8507989Z             },
2026-06-13T11:05:52.8508098Z             {
2026-06-13T11:05:52.8508238Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:05:52.8508356Z               "line": 216
2026-06-13T11:05:52.8508461Z             },
2026-06-13T11:05:52.8508567Z             {
2026-06-13T11:05:52.8508704Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:05:52.8508829Z               "line": 242
2026-06-13T11:05:52.8508938Z             },
2026-06-13T11:05:52.8509118Z             {
2026-06-13T11:05:52.8509269Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:05:52.8509378Z               "line": 295
2026-06-13T11:05:52.8509492Z             },
2026-06-13T11:05:52.8509594Z             {
2026-06-13T11:05:52.8509740Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:05:52.8509851Z               "line": 244
2026-06-13T11:05:52.8509960Z             },
2026-06-13T11:05:52.8510069Z             {
2026-06-13T11:05:52.8510317Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T11:05:52.8510437Z               "line": 265
2026-06-13T11:05:52.8510541Z             },
2026-06-13T11:05:52.8510651Z             {
2026-06-13T11:05:52.8510805Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T11:05:52.8510923Z               "line": 293
2026-06-13T11:05:52.8511033Z             },
2026-06-13T11:05:52.8511232Z             {
2026-06-13T11:05:52.8511386Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T11:05:52.8511500Z               "line": 317
2026-06-13T11:05:52.8511609Z             },
2026-06-13T11:05:52.8511713Z             {
2026-06-13T11:05:52.8511863Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T11:05:52.8511977Z               "line": 327
2026-06-13T11:05:52.8512083Z             },
2026-06-13T11:05:52.8512188Z             {
2026-06-13T11:05:52.8512336Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:05:52.8512455Z               "line": 540
2026-06-13T11:05:52.8512564Z             }
2026-06-13T11:05:52.8512675Z           ]
2026-06-13T11:05:52.8512784Z         }
2026-06-13T11:05:52.8512888Z       }
2026-06-13T11:05:52.8513004Z     },
2026-06-13T11:05:52.8513103Z     {
2026-06-13T11:05:52.8513256Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-13T11:05:52.8513432Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-13T11:05:52.8513565Z       "requiredStages": [
2026-06-13T11:05:52.8513677Z         "impl",
2026-06-13T11:05:52.8513780Z         "unit"
2026-06-13T11:05:52.8513885Z       ],
2026-06-13T11:05:52.8513992Z       "stages": {
2026-06-13T11:05:52.8514104Z         "doc": {
2026-06-13T11:05:52.8514220Z           "complete": false,
2026-06-13T11:05:52.8514344Z           "evidence": []
2026-06-13T11:05:52.8514452Z         },
2026-06-13T11:05:52.8514557Z         "impl": {
2026-06-13T11:05:52.8514677Z           "complete": true,
2026-06-13T11:05:52.8514785Z           "evidence": [
2026-06-13T11:05:52.8514895Z             {
2026-06-13T11:05:52.8515039Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:05:52.8515157Z               "line": 25
2026-06-13T11:05:52.8515268Z             },
2026-06-13T11:05:52.8515373Z             {
2026-06-13T11:05:52.8515515Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:05:52.8515625Z               "line": 26
2026-06-13T11:05:52.8515739Z             },
2026-06-13T11:05:52.8515844Z             {
2026-06-13T11:05:52.8515982Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:05:52.8516097Z               "line": 159
2026-06-13T11:05:52.8516198Z             }
2026-06-13T11:05:52.8516311Z           ]
2026-06-13T11:05:52.8516426Z         },
2026-06-13T11:05:52.8516537Z         "int": {
2026-06-13T11:05:52.8516654Z           "complete": false,
2026-06-13T11:05:52.8516773Z           "evidence": []
2026-06-13T11:05:52.8516882Z         },
2026-06-13T11:05:52.8516981Z         "unit": {
2026-06-13T11:05:52.8517109Z           "complete": true,
2026-06-13T11:05:52.8517215Z           "evidence": [
2026-06-13T11:05:52.8517319Z             {
2026-06-13T11:05:52.8517452Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:05:52.8517572Z               "line": 184
2026-06-13T11:05:52.8517685Z             },
2026-06-13T11:05:52.8517787Z             {
2026-06-13T11:05:52.8517934Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:05:52.8518048Z               "line": 236
2026-06-13T11:05:52.8518154Z             },
2026-06-13T11:05:52.8518263Z             {
2026-06-13T11:05:52.8518396Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:05:52.8518511Z               "line": 186
2026-06-13T11:05:52.8518616Z             }
2026-06-13T11:05:52.8518726Z           ]
2026-06-13T11:05:52.8518836Z         }
2026-06-13T11:05:52.8519036Z       }
2026-06-13T11:05:52.8519141Z     },
2026-06-13T11:05:52.8519245Z     {
2026-06-13T11:05:52.8519380Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-13T11:05:52.8519678Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-13T11:05:52.8519811Z       "requiredStages": [
2026-06-13T11:05:52.8519918Z         "impl",
2026-06-13T11:05:52.8520019Z         "unit"
2026-06-13T11:05:52.8520120Z       ],
2026-06-13T11:05:52.8520228Z       "stages": {
2026-06-13T11:05:52.8520344Z         "doc": {
2026-06-13T11:05:52.8520453Z           "complete": false,
2026-06-13T11:05:52.8520687Z           "evidence": []
2026-06-13T11:05:52.8520797Z         },
2026-06-13T11:05:52.8520910Z         "impl": {
2026-06-13T11:05:52.8521021Z           "complete": true,
2026-06-13T11:05:52.8521140Z           "evidence": [
2026-06-13T11:05:52.8521250Z             {
2026-06-13T11:05:52.8521388Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:05:52.8521507Z               "line": 48
2026-06-13T11:05:52.8521613Z             },
2026-06-13T11:05:52.8521722Z             {
2026-06-13T11:05:52.8521874Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:05:52.8521990Z               "line": 55
2026-06-13T11:05:52.8522097Z             },
2026-06-13T11:05:52.8522201Z             {
2026-06-13T11:05:52.8522345Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:05:52.8522457Z               "line": 74
2026-06-13T11:05:52.8522567Z             },
2026-06-13T11:05:52.8522677Z             {
2026-06-13T11:05:52.8522805Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:05:52.8522925Z               "line": 91
2026-06-13T11:05:52.8523030Z             }
2026-06-13T11:05:52.8523139Z           ]
2026-06-13T11:05:52.8523240Z         },
2026-06-13T11:05:52.8523349Z         "int": {
2026-06-13T11:05:52.8523472Z           "complete": false,
2026-06-13T11:05:52.8523583Z           "evidence": []
2026-06-13T11:05:52.8523692Z         },
2026-06-13T11:05:52.8523802Z         "unit": {
2026-06-13T11:05:52.8523917Z           "complete": true,
2026-06-13T11:05:52.8524031Z           "evidence": [
2026-06-13T11:05:52.8524135Z             {
2026-06-13T11:05:52.8524279Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:05:52.8524388Z               "line": 149
2026-06-13T11:05:52.8524499Z             },
2026-06-13T11:05:52.8524608Z             {
2026-06-13T11:05:52.8524741Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:05:52.8524852Z               "line": 166
2026-06-13T11:05:52.8524964Z             },
2026-06-13T11:05:52.8525073Z             {
2026-06-13T11:05:52.8525203Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:05:52.8525317Z               "line": 176
2026-06-13T11:05:52.8525422Z             },
2026-06-13T11:05:52.8525532Z             {
2026-06-13T11:05:52.8525660Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:05:52.8525775Z               "line": 194
2026-06-13T11:05:52.8525890Z             },
2026-06-13T11:05:52.8525994Z             {
2026-06-13T11:05:52.8526134Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:05:52.8526247Z               "line": 207
2026-06-13T11:05:52.8526356Z             }
2026-06-13T11:05:52.8526463Z           ]
2026-06-13T11:05:52.8526571Z         }
2026-06-13T11:05:52.8526685Z       }
2026-06-13T11:05:52.8526791Z     },
2026-06-13T11:05:52.8526900Z     {
2026-06-13T11:05:52.8527039Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-13T11:05:52.8527266Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-13T11:05:52.8527414Z       "requiredStages": [
2026-06-13T11:05:52.8527531Z         "impl",
2026-06-13T11:05:52.8527640Z         "unit"
2026-06-13T11:05:52.8527746Z       ],
2026-06-13T11:05:52.8527860Z       "stages": {
2026-06-13T11:05:52.8527969Z         "doc": {
2026-06-13T11:05:52.8528094Z           "complete": false,
2026-06-13T11:05:52.8528208Z           "evidence": []
2026-06-13T11:05:52.8528322Z         },
2026-06-13T11:05:52.8528437Z         "impl": {
2026-06-13T11:05:52.8528551Z           "complete": true,
2026-06-13T11:05:52.8528662Z           "evidence": [
2026-06-13T11:05:52.8528852Z             {
2026-06-13T11:05:52.8529085Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8529195Z               "line": 416
2026-06-13T11:05:52.8529301Z             },
2026-06-13T11:05:52.8529414Z             {
2026-06-13T11:05:52.8529557Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:05:52.8529673Z               "line": 26
2026-06-13T11:05:52.8529892Z             }
2026-06-13T11:05:52.8529992Z           ]
2026-06-13T11:05:52.8530101Z         },
2026-06-13T11:05:52.8530214Z         "int": {
2026-06-13T11:05:52.8530343Z           "complete": false,
2026-06-13T11:05:52.8530455Z           "evidence": []
2026-06-13T11:05:52.8530560Z         },
2026-06-13T11:05:52.8530661Z         "unit": {
2026-06-13T11:05:52.8530779Z           "complete": true,
2026-06-13T11:05:52.8530889Z           "evidence": [
2026-06-13T11:05:52.8530995Z             {
2026-06-13T11:05:52.8531132Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:05:52.8531247Z               "line": 150
2026-06-13T11:05:52.8531352Z             },
2026-06-13T11:05:52.8531451Z             {
2026-06-13T11:05:52.8531600Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:05:52.8531700Z               "line": 208
2026-06-13T11:05:52.8531810Z             }
2026-06-13T11:05:52.8531915Z           ]
2026-06-13T11:05:52.8532018Z         }
2026-06-13T11:05:52.8532124Z       }
2026-06-13T11:05:52.8532225Z     },
2026-06-13T11:05:52.8532329Z     {
2026-06-13T11:05:52.8532473Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-13T11:05:52.8533966Z       "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-13T11:05:52.8534091Z       "requiredStages": [
2026-06-13T11:05:52.8534191Z         "doc",
2026-06-13T11:05:52.8534304Z         "impl",
2026-06-13T11:05:52.8534410Z         "unit"
2026-06-13T11:05:52.8534515Z       ],
2026-06-13T11:05:52.8534633Z       "stages": {
2026-06-13T11:05:52.8534735Z         "doc": {
2026-06-13T11:05:52.8534858Z           "complete": true,
2026-06-13T11:05:52.8534982Z           "evidence": [
2026-06-13T11:05:52.8535083Z             {
2026-06-13T11:05:52.8535224Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8535345Z               "line": 214
2026-06-13T11:05:52.8535451Z             }
2026-06-13T11:05:52.8535553Z           ]
2026-06-13T11:05:52.8535662Z         },
2026-06-13T11:05:52.8535773Z         "impl": {
2026-06-13T11:05:52.8535891Z           "complete": true,
2026-06-13T11:05:52.8536006Z           "evidence": [
2026-06-13T11:05:52.8536121Z             {
2026-06-13T11:05:52.8536273Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8536393Z               "line": 54
2026-06-13T11:05:52.8536497Z             },
2026-06-13T11:05:52.8536602Z             {
2026-06-13T11:05:52.8536764Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8536883Z               "line": 511
2026-06-13T11:05:52.8536999Z             },
2026-06-13T11:05:52.8537107Z             {
2026-06-13T11:05:52.8537265Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.8537389Z               "line": 36
2026-06-13T11:05:52.8537498Z             },
2026-06-13T11:05:52.8537609Z             {
2026-06-13T11:05:52.8537760Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.8537869Z               "line": 59
2026-06-13T11:05:52.8537974Z             },
2026-06-13T11:05:52.8538077Z             {
2026-06-13T11:05:52.8538224Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.8538330Z               "line": 83
2026-06-13T11:05:52.8538444Z             },
2026-06-13T11:05:52.8538669Z             {
2026-06-13T11:05:52.8538811Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.8538931Z               "line": 140
2026-06-13T11:05:52.8539116Z             },
2026-06-13T11:05:52.8539222Z             {
2026-06-13T11:05:52.8539364Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.8539584Z               "line": 159
2026-06-13T11:05:52.8539698Z             },
2026-06-13T11:05:52.8539802Z             {
2026-06-13T11:05:52.8539965Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.8540070Z               "line": 384
2026-06-13T11:05:52.8540176Z             },
2026-06-13T11:05:52.8540280Z             {
2026-06-13T11:05:52.8540432Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.8540552Z               "line": 526
2026-06-13T11:05:52.8540661Z             },
2026-06-13T11:05:52.8540774Z             {
2026-06-13T11:05:52.8540931Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.8541048Z               "line": 572
2026-06-13T11:05:52.8541154Z             },
2026-06-13T11:05:52.8541259Z             {
2026-06-13T11:05:52.8541406Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:05:52.8541517Z               "line": 145
2026-06-13T11:05:52.8541626Z             },
2026-06-13T11:05:52.8541730Z             {
2026-06-13T11:05:52.8541860Z               "path": "crates/spt/src/main.rs",
2026-06-13T11:05:52.8541969Z               "line": 39
2026-06-13T11:05:52.8542083Z             }
2026-06-13T11:05:52.8542198Z           ]
2026-06-13T11:05:52.8542303Z         },
2026-06-13T11:05:52.8542403Z         "int": {
2026-06-13T11:05:52.8542523Z           "complete": false,
2026-06-13T11:05:52.8542641Z           "evidence": []
2026-06-13T11:05:52.8542748Z         },
2026-06-13T11:05:52.8542847Z         "unit": {
2026-06-13T11:05:52.8542970Z           "complete": true,
2026-06-13T11:05:52.8543081Z           "evidence": [
2026-06-13T11:05:52.8543181Z             {
2026-06-13T11:05:52.8543331Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.8543451Z               "line": 785
2026-06-13T11:05:52.8543558Z             },
2026-06-13T11:05:52.8543658Z             {
2026-06-13T11:05:52.8543812Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.8543915Z               "line": 826
2026-06-13T11:05:52.8544036Z             },
2026-06-13T11:05:52.8544140Z             {
2026-06-13T11:05:52.8544288Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.8544394Z               "line": 900
2026-06-13T11:05:52.8544498Z             }
2026-06-13T11:05:52.8544612Z           ]
2026-06-13T11:05:52.8544718Z         }
2026-06-13T11:05:52.8544822Z       }
2026-06-13T11:05:52.8544927Z     },
2026-06-13T11:05:52.8545028Z     {
2026-06-13T11:05:52.8545170Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-13T11:05:52.8546944Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-13T11:05:52.8547076Z       "requiredStages": [
2026-06-13T11:05:52.8547181Z         "impl",
2026-06-13T11:05:52.8547287Z         "unit"
2026-06-13T11:05:52.8547405Z       ],
2026-06-13T11:05:52.8547505Z       "stages": {
2026-06-13T11:05:52.8547625Z         "doc": {
2026-06-13T11:05:52.8547743Z           "complete": false,
2026-06-13T11:05:52.8547864Z           "evidence": []
2026-06-13T11:05:52.8547968Z         },
2026-06-13T11:05:52.8548077Z         "impl": {
2026-06-13T11:05:52.8548301Z           "complete": true,
2026-06-13T11:05:52.8548419Z           "evidence": [
2026-06-13T11:05:52.8548520Z             {
2026-06-13T11:05:52.8548670Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:05:52.8548794Z               "line": 31
2026-06-13T11:05:52.8548900Z             }
2026-06-13T11:05:52.8549133Z           ]
2026-06-13T11:05:52.8549438Z         },
2026-06-13T11:05:52.8549543Z         "int": {
2026-06-13T11:05:52.8549666Z           "complete": false,
2026-06-13T11:05:52.8549782Z           "evidence": []
2026-06-13T11:05:52.8549891Z         },
2026-06-13T11:05:52.8549991Z         "unit": {
2026-06-13T11:05:52.8550116Z           "complete": true,
2026-06-13T11:05:52.8550234Z           "evidence": [
2026-06-13T11:05:52.8550339Z             {
2026-06-13T11:05:52.8550506Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:05:52.8550611Z               "line": 181
2026-06-13T11:05:52.8550717Z             }
2026-06-13T11:05:52.8550826Z           ]
2026-06-13T11:05:52.8550935Z         }
2026-06-13T11:05:52.8551046Z       }
2026-06-13T11:05:52.8551150Z     },
2026-06-13T11:05:52.8551254Z     {
2026-06-13T11:05:52.8551402Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-13T11:05:52.8551604Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-13T11:05:52.8551709Z       "requiredStages": [
2026-06-13T11:05:52.8551834Z         "impl",
2026-06-13T11:05:52.8551942Z         "unit"
2026-06-13T11:05:52.8552044Z       ],
2026-06-13T11:05:52.8552163Z       "stages": {
2026-06-13T11:05:52.8552257Z         "doc": {
2026-06-13T11:05:52.8552382Z           "complete": false,
2026-06-13T11:05:52.8552496Z           "evidence": []
2026-06-13T11:05:52.8552610Z         },
2026-06-13T11:05:52.8552725Z         "impl": {
2026-06-13T11:05:52.8552839Z           "complete": true,
2026-06-13T11:05:52.8552954Z           "evidence": [
2026-06-13T11:05:52.8553054Z             {
2026-06-13T11:05:52.8553220Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:05:52.8553327Z               "line": 49
2026-06-13T11:05:52.8553435Z             },
2026-06-13T11:05:52.8553549Z             {
2026-06-13T11:05:52.8553698Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:05:52.8553806Z               "line": 81
2026-06-13T11:05:52.8553906Z             }
2026-06-13T11:05:52.8554006Z           ]
2026-06-13T11:05:52.8554109Z         },
2026-06-13T11:05:52.8554213Z         "int": {
2026-06-13T11:05:52.8554329Z           "complete": false,
2026-06-13T11:05:52.8554438Z           "evidence": []
2026-06-13T11:05:52.8554547Z         },
2026-06-13T11:05:52.8554658Z         "unit": {
2026-06-13T11:05:52.8554781Z           "complete": true,
2026-06-13T11:05:52.8554886Z           "evidence": [
2026-06-13T11:05:52.8554996Z             {
2026-06-13T11:05:52.8555138Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:05:52.8555254Z               "line": 156
2026-06-13T11:05:52.8555358Z             },
2026-06-13T11:05:52.8555463Z             {
2026-06-13T11:05:52.8555612Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:05:52.8555716Z               "line": 173
2026-06-13T11:05:52.8555821Z             },
2026-06-13T11:05:52.8555931Z             {
2026-06-13T11:05:52.8556078Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:05:52.8556194Z               "line": 196
2026-06-13T11:05:52.8556302Z             }
2026-06-13T11:05:52.8556412Z           ]
2026-06-13T11:05:52.8556518Z         }
2026-06-13T11:05:52.8556622Z       }
2026-06-13T11:05:52.8556721Z     },
2026-06-13T11:05:52.8556826Z     {
2026-06-13T11:05:52.8556988Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-13T11:05:52.8557199Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-13T11:05:52.8557322Z       "requiredStages": [
2026-06-13T11:05:52.8557426Z         "impl",
2026-06-13T11:05:52.8557537Z         "unit"
2026-06-13T11:05:52.8557641Z       ],
2026-06-13T11:05:52.8557875Z       "stages": {
2026-06-13T11:05:52.8557998Z         "doc": {
2026-06-13T11:05:52.8558119Z           "complete": false,
2026-06-13T11:05:52.8558237Z           "evidence": []
2026-06-13T11:05:52.8558342Z         },
2026-06-13T11:05:52.8558458Z         "impl": {
2026-06-13T11:05:52.8558575Z           "complete": true,
2026-06-13T11:05:52.8558686Z           "evidence": [
2026-06-13T11:05:52.8558909Z             {
2026-06-13T11:05:52.8559161Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:05:52.8559306Z               "line": 120
2026-06-13T11:05:52.8559407Z             }
2026-06-13T11:05:52.8559522Z           ]
2026-06-13T11:05:52.8559631Z         },
2026-06-13T11:05:52.8559741Z         "int": {
2026-06-13T11:05:52.8559865Z           "complete": false,
2026-06-13T11:05:52.8559978Z           "evidence": []
2026-06-13T11:05:52.8560089Z         },
2026-06-13T11:05:52.8560198Z         "unit": {
2026-06-13T11:05:52.8560318Z           "complete": true,
2026-06-13T11:05:52.8560446Z           "evidence": [
2026-06-13T11:05:52.8560551Z             {
2026-06-13T11:05:52.8560705Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:05:52.8560819Z               "line": 212
2026-06-13T11:05:52.8560932Z             },
2026-06-13T11:05:52.8561039Z             {
2026-06-13T11:05:52.8561190Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:05:52.8561315Z               "line": 221
2026-06-13T11:05:52.8561423Z             },
2026-06-13T11:05:52.8561538Z             {
2026-06-13T11:05:52.8561683Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:05:52.8561804Z               "line": 229
2026-06-13T11:05:52.8561909Z             },
2026-06-13T11:05:52.8562018Z             {
2026-06-13T11:05:52.8562169Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:05:52.8562279Z               "line": 239
2026-06-13T11:05:52.8562398Z             },
2026-06-13T11:05:52.8562502Z             {
2026-06-13T11:05:52.8562675Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:05:52.8562789Z               "line": 249
2026-06-13T11:05:52.8562899Z             }
2026-06-13T11:05:52.8563013Z           ]
2026-06-13T11:05:52.8563118Z         }
2026-06-13T11:05:52.8563228Z       }
2026-06-13T11:05:52.8563328Z     },
2026-06-13T11:05:52.8563442Z     {
2026-06-13T11:05:52.8563591Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-13T11:05:52.8563795Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-13T11:05:52.8563920Z       "requiredStages": [
2026-06-13T11:05:52.8564024Z         "impl",
2026-06-13T11:05:52.8564134Z         "unit"
2026-06-13T11:05:52.8564239Z       ],
2026-06-13T11:05:52.8564357Z       "stages": {
2026-06-13T11:05:52.8564461Z         "doc": {
2026-06-13T11:05:52.8564590Z           "complete": false,
2026-06-13T11:05:52.8564707Z           "evidence": []
2026-06-13T11:05:52.8564812Z         },
2026-06-13T11:05:52.8564927Z         "impl": {
2026-06-13T11:05:52.8565045Z           "complete": true,
2026-06-13T11:05:52.8565166Z           "evidence": [
2026-06-13T11:05:52.8565275Z             {
2026-06-13T11:05:52.8565441Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:05:52.8565566Z               "line": 14
2026-06-13T11:05:52.8565670Z             },
2026-06-13T11:05:52.8565781Z             {
2026-06-13T11:05:52.8565918Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:05:52.8566042Z               "line": 62
2026-06-13T11:05:52.8566143Z             }
2026-06-13T11:05:52.8566252Z           ]
2026-06-13T11:05:52.8566357Z         },
2026-06-13T11:05:52.8566467Z         "int": {
2026-06-13T11:05:52.8566590Z           "complete": false,
2026-06-13T11:05:52.8566701Z           "evidence": []
2026-06-13T11:05:52.8566811Z         },
2026-06-13T11:05:52.8566919Z         "unit": {
2026-06-13T11:05:52.8567040Z           "complete": true,
2026-06-13T11:05:52.8567168Z           "evidence": [
2026-06-13T11:05:52.8567271Z             {
2026-06-13T11:05:52.8567553Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:05:52.8567671Z               "line": 160
2026-06-13T11:05:52.8567783Z             },
2026-06-13T11:05:52.8567891Z             {
2026-06-13T11:05:52.8568026Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:05:52.8568144Z               "line": 197
2026-06-13T11:05:52.8568248Z             },
2026-06-13T11:05:52.8568454Z             {
2026-06-13T11:05:52.8568587Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:05:52.8568708Z               "line": 219
2026-06-13T11:05:52.8568811Z             }
2026-06-13T11:05:52.8568921Z           ]
2026-06-13T11:05:52.8569126Z         }
2026-06-13T11:05:52.8569231Z       }
2026-06-13T11:05:52.8569337Z     },
2026-06-13T11:05:52.8569436Z     {
2026-06-13T11:05:52.8569559Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-13T11:05:52.8570941Z       "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-13T11:05:52.8571064Z       "requiredStages": [],
2026-06-13T11:05:52.8571187Z       "stages": {
2026-06-13T11:05:52.8571307Z         "doc": {
2026-06-13T11:05:52.8571430Z           "complete": true,
2026-06-13T11:05:52.8571551Z           "evidence": [
2026-06-13T11:05:52.8571659Z             {
2026-06-13T11:05:52.8571798Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8571904Z               "line": 165
2026-06-13T11:05:52.8572007Z             }
2026-06-13T11:05:52.8572098Z           ]
2026-06-13T11:05:52.8572200Z         },
2026-06-13T11:05:52.8576907Z         "impl": {
2026-06-13T11:05:52.8577075Z           "complete": false,
2026-06-13T11:05:52.8577198Z           "evidence": []
2026-06-13T11:05:52.8577324Z         },
2026-06-13T11:05:52.8577432Z         "int": {
2026-06-13T11:05:52.8577551Z           "complete": false,
2026-06-13T11:05:52.8577667Z           "evidence": []
2026-06-13T11:05:52.8577779Z         },
2026-06-13T11:05:52.8577884Z         "unit": {
2026-06-13T11:05:52.8578009Z           "complete": false,
2026-06-13T11:05:52.8578128Z           "evidence": []
2026-06-13T11:05:52.8578241Z         }
2026-06-13T11:05:52.8578348Z       }
2026-06-13T11:05:52.8578451Z     },
2026-06-13T11:05:52.8578556Z     {
2026-06-13T11:05:52.8578719Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-13T11:05:52.8579081Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-13T11:05:52.8579210Z       "requiredStages": [
2026-06-13T11:05:52.8579325Z         "impl",
2026-06-13T11:05:52.8579429Z         "unit"
2026-06-13T11:05:52.8579530Z       ],
2026-06-13T11:05:52.8579640Z       "stages": {
2026-06-13T11:05:52.8579744Z         "doc": {
2026-06-13T11:05:52.8579878Z           "complete": false,
2026-06-13T11:05:52.8579996Z           "evidence": []
2026-06-13T11:05:52.8580096Z         },
2026-06-13T11:05:52.8580196Z         "impl": {
2026-06-13T11:05:52.8580309Z           "complete": true,
2026-06-13T11:05:52.8580422Z           "evidence": [
2026-06-13T11:05:52.8580527Z             {
2026-06-13T11:05:52.8580684Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:05:52.8580799Z               "line": 76
2026-06-13T11:05:52.8580914Z             },
2026-06-13T11:05:52.8581013Z             {
2026-06-13T11:05:52.8581162Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:05:52.8581286Z               "line": 167
2026-06-13T11:05:52.8581385Z             },
2026-06-13T11:05:52.8581496Z             {
2026-06-13T11:05:52.8581629Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:05:52.8581738Z               "line": 233
2026-06-13T11:05:52.8581849Z             },
2026-06-13T11:05:52.8581953Z             {
2026-06-13T11:05:52.8582282Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:05:52.8582407Z               "line": 272
2026-06-13T11:05:52.8582516Z             }
2026-06-13T11:05:52.8582616Z           ]
2026-06-13T11:05:52.8582722Z         },
2026-06-13T11:05:52.8582822Z         "int": {
2026-06-13T11:05:52.8582953Z           "complete": false,
2026-06-13T11:05:52.8583067Z           "evidence": []
2026-06-13T11:05:52.8583265Z         },
2026-06-13T11:05:52.8583375Z         "unit": {
2026-06-13T11:05:52.8583495Z           "complete": true,
2026-06-13T11:05:52.8583613Z           "evidence": [
2026-06-13T11:05:52.8583719Z             {
2026-06-13T11:05:52.8583876Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:05:52.8583990Z               "line": 321
2026-06-13T11:05:52.8584096Z             },
2026-06-13T11:05:52.8584200Z             {
2026-06-13T11:05:52.8584343Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:05:52.8584462Z               "line": 329
2026-06-13T11:05:52.8584572Z             },
2026-06-13T11:05:52.8584678Z             {
2026-06-13T11:05:52.8584824Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:05:52.8584934Z               "line": 356
2026-06-13T11:05:52.8585045Z             },
2026-06-13T11:05:52.8585153Z             {
2026-06-13T11:05:52.8585302Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:05:52.8585421Z               "line": 395
2026-06-13T11:05:52.8585534Z             },
2026-06-13T11:05:52.8585639Z             {
2026-06-13T11:05:52.8585775Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:05:52.8585898Z               "line": 406
2026-06-13T11:05:52.8586004Z             },
2026-06-13T11:05:52.8586113Z             {
2026-06-13T11:05:52.8586252Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:05:52.8586376Z               "line": 418
2026-06-13T11:05:52.8586480Z             },
2026-06-13T11:05:52.8586586Z             {
2026-06-13T11:05:52.8586738Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:05:52.8586847Z               "line": 442
2026-06-13T11:05:52.8586963Z             }
2026-06-13T11:05:52.8587067Z           ]
2026-06-13T11:05:52.8587186Z         }
2026-06-13T11:05:52.8587296Z       }
2026-06-13T11:05:52.8587396Z     },
2026-06-13T11:05:52.8587506Z     {
2026-06-13T11:05:52.8587635Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-13T11:05:52.8587821Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-13T11:05:52.8587945Z       "requiredStages": [
2026-06-13T11:05:52.8588054Z         "impl",
2026-06-13T11:05:52.8588165Z         "int"
2026-06-13T11:05:52.8588274Z       ],
2026-06-13T11:05:52.8588382Z       "stages": {
2026-06-13T11:05:52.8588487Z         "doc": {
2026-06-13T11:05:52.8588617Z           "complete": false,
2026-06-13T11:05:52.8588734Z           "evidence": []
2026-06-13T11:05:52.8588884Z         },
2026-06-13T11:05:52.8589092Z         "impl": {
2026-06-13T11:05:52.8589213Z           "complete": true,
2026-06-13T11:05:52.8589340Z           "evidence": [
2026-06-13T11:05:52.8589445Z             {
2026-06-13T11:05:52.8589598Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8589712Z               "line": 22
2026-06-13T11:05:52.8589823Z             }
2026-06-13T11:05:52.8589932Z           ]
2026-06-13T11:05:52.8590036Z         },
2026-06-13T11:05:52.8590147Z         "int": {
2026-06-13T11:05:52.8590270Z           "complete": true,
2026-06-13T11:05:52.8590385Z           "evidence": [
2026-06-13T11:05:52.8590495Z             {
2026-06-13T11:05:52.8590651Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-13T11:05:52.8590770Z               "line": 18
2026-06-13T11:05:52.8590874Z             }
2026-06-13T11:05:52.8590982Z           ]
2026-06-13T11:05:52.8591087Z         },
2026-06-13T11:05:52.8591198Z         "unit": {
2026-06-13T11:05:52.8591316Z           "complete": false,
2026-06-13T11:05:52.8591436Z           "evidence": []
2026-06-13T11:05:52.8591545Z         }
2026-06-13T11:05:52.8591765Z       }
2026-06-13T11:05:52.8591879Z     },
2026-06-13T11:05:52.8591979Z     {
2026-06-13T11:05:52.8592136Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-13T11:05:52.8592356Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-13T11:05:52.8592479Z       "requiredStages": [
2026-06-13T11:05:52.8592598Z         "impl",
2026-06-13T11:05:52.8592799Z         "unit"
2026-06-13T11:05:52.8592913Z       ],
2026-06-13T11:05:52.8593020Z       "stages": {
2026-06-13T11:05:52.8593137Z         "doc": {
2026-06-13T11:05:52.8593253Z           "complete": false,
2026-06-13T11:05:52.8593373Z           "evidence": []
2026-06-13T11:05:52.8593480Z         },
2026-06-13T11:05:52.8593594Z         "impl": {
2026-06-13T11:05:52.8593718Z           "complete": true,
2026-06-13T11:05:52.8593835Z           "evidence": [
2026-06-13T11:05:52.8593945Z             {
2026-06-13T11:05:52.8594103Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8594235Z               "line": 415
2026-06-13T11:05:52.8594350Z             },
2026-06-13T11:05:52.8594459Z             {
2026-06-13T11:05:52.8594613Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:05:52.8594728Z               "line": 27
2026-06-13T11:05:52.8594841Z             }
2026-06-13T11:05:52.8594947Z           ]
2026-06-13T11:05:52.8595061Z         },
2026-06-13T11:05:52.8595180Z         "int": {
2026-06-13T11:05:52.8595300Z           "complete": false,
2026-06-13T11:05:52.8595423Z           "evidence": []
2026-06-13T11:05:52.8595529Z         },
2026-06-13T11:05:52.8595647Z         "unit": {
2026-06-13T11:05:52.8595766Z           "complete": true,
2026-06-13T11:05:52.8595887Z           "evidence": [
2026-06-13T11:05:52.8596004Z             {
2026-06-13T11:05:52.8596156Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8596275Z               "line": 940
2026-06-13T11:05:52.8596383Z             },
2026-06-13T11:05:52.8596493Z             {
2026-06-13T11:05:52.8596645Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:05:52.8596773Z               "line": 181
2026-06-13T11:05:52.8596884Z             }
2026-06-13T11:05:52.8596993Z           ]
2026-06-13T11:05:52.8597107Z         }
2026-06-13T11:05:52.8597217Z       }
2026-06-13T11:05:52.8597327Z     },
2026-06-13T11:05:52.8597437Z     {
2026-06-13T11:05:52.8597603Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-13T11:05:52.8597800Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-13T11:05:52.8597923Z       "requiredStages": [
2026-06-13T11:05:52.8598042Z         "impl",
2026-06-13T11:05:52.8598148Z         "unit"
2026-06-13T11:05:52.8598261Z       ],
2026-06-13T11:05:52.8598376Z       "stages": {
2026-06-13T11:05:52.8598496Z         "doc": {
2026-06-13T11:05:52.8598619Z           "complete": false,
2026-06-13T11:05:52.8598734Z           "evidence": []
2026-06-13T11:05:52.8598848Z         },
2026-06-13T11:05:52.8599047Z         "impl": {
2026-06-13T11:05:52.8599186Z           "complete": true,
2026-06-13T11:05:52.8599299Z           "evidence": [
2026-06-13T11:05:52.8599420Z             {
2026-06-13T11:05:52.8599576Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8599686Z               "line": 73
2026-06-13T11:05:52.8599787Z             },
2026-06-13T11:05:52.8599896Z             {
2026-06-13T11:05:52.8600059Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8600173Z               "line": 941
2026-06-13T11:05:52.8600286Z             },
2026-06-13T11:05:52.8600393Z             {
2026-06-13T11:05:52.8600540Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:05:52.8600655Z               "line": 20
2026-06-13T11:05:52.8600764Z             },
2026-06-13T11:05:52.8600869Z             {
2026-06-13T11:05:52.8601009Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:05:52.8601121Z               "line": 100
2026-06-13T11:05:52.8601225Z             },
2026-06-13T11:05:52.8601481Z             {
2026-06-13T11:05:52.8601628Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:05:52.8601739Z               "line": 443
2026-06-13T11:05:52.8601842Z             },
2026-06-13T11:05:52.8601943Z             {
2026-06-13T11:05:52.8602096Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T11:05:52.8602209Z               "line": 68
2026-06-13T11:05:52.8602439Z             },
2026-06-13T11:05:52.8602549Z             {
2026-06-13T11:05:52.8602692Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T11:05:52.8602815Z               "line": 80
2026-06-13T11:05:52.8602950Z             }
2026-06-13T11:05:52.8603054Z           ]
2026-06-13T11:05:52.8603168Z         },
2026-06-13T11:05:52.8603279Z         "int": {
2026-06-13T11:05:52.8603407Z           "complete": true,
2026-06-13T11:05:52.8603517Z           "evidence": [
2026-06-13T11:05:52.8603632Z             {
2026-06-13T11:05:52.8603788Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-13T11:05:52.8603904Z               "line": 44
2026-06-13T11:05:52.8604017Z             }
2026-06-13T11:05:52.8604126Z           ]
2026-06-13T11:05:52.8604235Z         },
2026-06-13T11:05:52.8604348Z         "unit": {
2026-06-13T11:05:52.8604471Z           "complete": true,
2026-06-13T11:05:52.8604582Z           "evidence": [
2026-06-13T11:05:52.8604700Z             {
2026-06-13T11:05:52.8604863Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8604982Z               "line": 1141
2026-06-13T11:05:52.8605096Z             },
2026-06-13T11:05:52.8605202Z             {
2026-06-13T11:05:52.8605358Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.8605474Z               "line": 1157
2026-06-13T11:05:52.8605582Z             },
2026-06-13T11:05:52.8605701Z             {
2026-06-13T11:05:52.8605850Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8605969Z               "line": 1069
2026-06-13T11:05:52.8606084Z             },
2026-06-13T11:05:52.8606198Z             {
2026-06-13T11:05:52.8606345Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:05:52.8606461Z               "line": 152
2026-06-13T11:05:52.8606574Z             },
2026-06-13T11:05:52.8606678Z             {
2026-06-13T11:05:52.8606826Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:05:52.8606948Z               "line": 175
2026-06-13T11:05:52.8607062Z             },
2026-06-13T11:05:52.8607183Z             {
2026-06-13T11:05:52.8607329Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:05:52.8607449Z               "line": 186
2026-06-13T11:05:52.8607558Z             },
2026-06-13T11:05:52.8607672Z             {
2026-06-13T11:05:52.8607811Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:05:52.8607934Z               "line": 202
2026-06-13T11:05:52.8608050Z             },
2026-06-13T11:05:52.8608154Z             {
2026-06-13T11:05:52.8608306Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:05:52.8608422Z               "line": 216
2026-06-13T11:05:52.8608535Z             },
2026-06-13T11:05:52.8608646Z             {
2026-06-13T11:05:52.8608802Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T11:05:52.8608927Z               "line": 137
2026-06-13T11:05:52.8609103Z             },
2026-06-13T11:05:52.8609227Z             {
2026-06-13T11:05:52.8609362Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8609483Z               "line": 5988
2026-06-13T11:05:52.8609588Z             },
2026-06-13T11:05:52.8609708Z             {
2026-06-13T11:05:52.8609855Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-13T11:05:52.8609975Z               "line": 30
2026-06-13T11:05:52.8610089Z             },
2026-06-13T11:05:52.8610193Z             {
2026-06-13T11:05:52.8610337Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-13T11:05:52.8610451Z               "line": 73
2026-06-13T11:05:52.8610561Z             }
2026-06-13T11:05:52.8610789Z           ]
2026-06-13T11:05:52.8610900Z         }
2026-06-13T11:05:52.8611014Z       }
2026-06-13T11:05:52.8611119Z     },
2026-06-13T11:05:52.8611225Z     {
2026-06-13T11:05:52.8611357Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-13T11:05:52.8611649Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-13T11:05:52.8611871Z       "requiredStages": [
2026-06-13T11:05:52.8611980Z         "impl",
2026-06-13T11:05:52.8612088Z         "unit"
2026-06-13T11:05:52.8612198Z       ],
2026-06-13T11:05:52.8612313Z       "stages": {
2026-06-13T11:05:52.8612421Z         "doc": {
2026-06-13T11:05:52.8612546Z           "complete": true,
2026-06-13T11:05:52.8612665Z           "evidence": [
2026-06-13T11:05:52.8612769Z             {
2026-06-13T11:05:52.8612914Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8613027Z               "line": 133
2026-06-13T11:05:52.8613143Z             }
2026-06-13T11:05:52.8613243Z           ]
2026-06-13T11:05:52.8613356Z         },
2026-06-13T11:05:52.8613472Z         "impl": {
2026-06-13T11:05:52.8613590Z           "complete": true,
2026-06-13T11:05:52.8613709Z           "evidence": [
2026-06-13T11:05:52.8613820Z             {
2026-06-13T11:05:52.8613967Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:05:52.8614082Z               "line": 65
2026-06-13T11:05:52.8614201Z             },
2026-06-13T11:05:52.8614315Z             {
2026-06-13T11:05:52.8614455Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:05:52.8614572Z               "line": 17
2026-06-13T11:05:52.8614676Z             },
2026-06-13T11:05:52.8614781Z             {
2026-06-13T11:05:52.8614927Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.8615051Z               "line": 146
2026-06-13T11:05:52.8615156Z             },
2026-06-13T11:05:52.8615265Z             {
2026-06-13T11:05:52.8615409Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.8615524Z               "line": 233
2026-06-13T11:05:52.8615632Z             },
2026-06-13T11:05:52.8615743Z             {
2026-06-13T11:05:52.8615885Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.8616009Z               "line": 334
2026-06-13T11:05:52.8616119Z             },
2026-06-13T11:05:52.8616229Z             {
2026-06-13T11:05:52.8616368Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:05:52.8616500Z               "line": 32
2026-06-13T11:05:52.8616615Z             },
2026-06-13T11:05:52.8616721Z             {
2026-06-13T11:05:52.8616858Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8616983Z               "line": 4746
2026-06-13T11:05:52.8617102Z             },
2026-06-13T11:05:52.8617205Z             {
2026-06-13T11:05:52.8617348Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8617470Z               "line": 5028
2026-06-13T11:05:52.8617574Z             }
2026-06-13T11:05:52.8617690Z           ]
2026-06-13T11:05:52.8617794Z         },
2026-06-13T11:05:52.8617918Z         "int": {
2026-06-13T11:05:52.8618037Z           "complete": false,
2026-06-13T11:05:52.8618160Z           "evidence": []
2026-06-13T11:05:52.8618267Z         },
2026-06-13T11:05:52.8618371Z         "unit": {
2026-06-13T11:05:52.8618494Z           "complete": true,
2026-06-13T11:05:52.8618596Z           "evidence": [
2026-06-13T11:05:52.8618714Z             {
2026-06-13T11:05:52.8618857Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:05:52.8619043Z               "line": 94
2026-06-13T11:05:52.8619158Z             },
2026-06-13T11:05:52.8619254Z             {
2026-06-13T11:05:52.8619391Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:05:52.8619501Z               "line": 111
2026-06-13T11:05:52.8619612Z             },
2026-06-13T11:05:52.8619715Z             {
2026-06-13T11:05:52.8619851Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:05:52.8619978Z               "line": 124
2026-06-13T11:05:52.8620191Z             },
2026-06-13T11:05:52.8620311Z             {
2026-06-13T11:05:52.8620443Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:05:52.8620569Z               "line": 134
2026-06-13T11:05:52.8620673Z             },
2026-06-13T11:05:52.8620772Z             {
2026-06-13T11:05:52.8620911Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:05:52.8621126Z               "line": 144
2026-06-13T11:05:52.8621236Z             },
2026-06-13T11:05:52.8621340Z             {
2026-06-13T11:05:52.8621475Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:05:52.8621583Z               "line": 156
2026-06-13T11:05:52.8621698Z             },
2026-06-13T11:05:52.8621809Z             {
2026-06-13T11:05:52.8621970Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8622109Z               "line": 746
2026-06-13T11:05:52.8622227Z             },
2026-06-13T11:05:52.8622345Z             {
2026-06-13T11:05:52.8622498Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.8622615Z               "line": 309
2026-06-13T11:05:52.8622729Z             }
2026-06-13T11:05:52.8622835Z           ]
2026-06-13T11:05:52.8622949Z         }
2026-06-13T11:05:52.8623053Z       }
2026-06-13T11:05:52.8623164Z     },
2026-06-13T11:05:52.8623268Z     {
2026-06-13T11:05:52.8623408Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-13T11:05:52.8623592Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-13T11:05:52.8623713Z       "requiredStages": [
2026-06-13T11:05:52.8623831Z         "impl",
2026-06-13T11:05:52.8623940Z         "unit"
2026-06-13T11:05:52.8624051Z       ],
2026-06-13T11:05:52.8624165Z       "stages": {
2026-06-13T11:05:52.8624283Z         "doc": {
2026-06-13T11:05:52.8624409Z           "complete": false,
2026-06-13T11:05:52.8624527Z           "evidence": []
2026-06-13T11:05:52.8624638Z         },
2026-06-13T11:05:52.8624747Z         "impl": {
2026-06-13T11:05:52.8624875Z           "complete": true,
2026-06-13T11:05:52.8624991Z           "evidence": [
2026-06-13T11:05:52.8625104Z             {
2026-06-13T11:05:52.8625255Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.8625365Z               "line": 128
2026-06-13T11:05:52.8625482Z             }
2026-06-13T11:05:52.8625587Z           ]
2026-06-13T11:05:52.8625702Z         },
2026-06-13T11:05:52.8625811Z         "int": {
2026-06-13T11:05:52.8625950Z           "complete": false,
2026-06-13T11:05:52.8626069Z           "evidence": []
2026-06-13T11:05:52.8626178Z         },
2026-06-13T11:05:52.8626298Z         "unit": {
2026-06-13T11:05:52.8626417Z           "complete": true,
2026-06-13T11:05:52.8626536Z           "evidence": [
2026-06-13T11:05:52.8626646Z             {
2026-06-13T11:05:52.8626803Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.8626923Z               "line": 205
2026-06-13T11:05:52.8627032Z             }
2026-06-13T11:05:52.8627146Z           ]
2026-06-13T11:05:52.8627257Z         }
2026-06-13T11:05:52.8627375Z       }
2026-06-13T11:05:52.8627485Z     },
2026-06-13T11:05:52.8627596Z     {
2026-06-13T11:05:52.8627746Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-13T11:05:52.8627927Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-13T11:05:52.8628053Z       "requiredStages": [
2026-06-13T11:05:52.8628163Z         "impl",
2026-06-13T11:05:52.8628288Z         "unit"
2026-06-13T11:05:52.8628396Z       ],
2026-06-13T11:05:52.8628517Z       "stages": {
2026-06-13T11:05:52.8628636Z         "doc": {
2026-06-13T11:05:52.8628754Z           "complete": false,
2026-06-13T11:05:52.8628879Z           "evidence": []
2026-06-13T11:05:52.8629064Z         },
2026-06-13T11:05:52.8629189Z         "impl": {
2026-06-13T11:05:52.8629303Z           "complete": true,
2026-06-13T11:05:52.8629422Z           "evidence": [
2026-06-13T11:05:52.8629533Z             {
2026-06-13T11:05:52.8629675Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.8629795Z               "line": 246
2026-06-13T11:05:52.8630028Z             },
2026-06-13T11:05:52.8630143Z             {
2026-06-13T11:05:52.8630285Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.8630406Z               "line": 257
2026-06-13T11:05:52.8630520Z             },
2026-06-13T11:05:52.8630627Z             {
2026-06-13T11:05:52.8630771Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.8630975Z               "line": 275
2026-06-13T11:05:52.8631090Z             }
2026-06-13T11:05:52.8631201Z           ]
2026-06-13T11:05:52.8631314Z         },
2026-06-13T11:05:52.8631425Z         "int": {
2026-06-13T11:05:52.8631544Z           "complete": false,
2026-06-13T11:05:52.8631662Z           "evidence": []
2026-06-13T11:05:52.8631768Z         },
2026-06-13T11:05:52.8631882Z         "unit": {
2026-06-13T11:05:52.8631996Z           "complete": true,
2026-06-13T11:05:52.8632120Z           "evidence": [
2026-06-13T11:05:52.8632234Z             {
2026-06-13T11:05:52.8632379Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.8632501Z               "line": 299
2026-06-13T11:05:52.8632607Z             },
2026-06-13T11:05:52.8632722Z             {
2026-06-13T11:05:52.8632858Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.8632982Z               "line": 320
2026-06-13T11:05:52.8633095Z             },
2026-06-13T11:05:52.8633209Z             {
2026-06-13T11:05:52.8633357Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.8633471Z               "line": 547
2026-06-13T11:05:52.8633580Z             },
2026-06-13T11:05:52.8633686Z             {
2026-06-13T11:05:52.8633823Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.8633953Z               "line": 558
2026-06-13T11:05:52.8634062Z             },
2026-06-13T11:05:52.8634176Z             {
2026-06-13T11:05:52.8634306Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.8634429Z               "line": 571
2026-06-13T11:05:52.8634539Z             }
2026-06-13T11:05:52.8634644Z           ]
2026-06-13T11:05:52.8634763Z         }
2026-06-13T11:05:52.8634868Z       }
2026-06-13T11:05:52.8634987Z     },
2026-06-13T11:05:52.8635092Z     {
2026-06-13T11:05:52.8635246Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-13T11:05:52.8635930Z       "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-13T11:05:52.8636052Z       "requiredStages": [
2026-06-13T11:05:52.8636171Z         "impl",
2026-06-13T11:05:52.8636277Z         "unit"
2026-06-13T11:05:52.8636381Z       ],
2026-06-13T11:05:52.8636495Z       "stages": {
2026-06-13T11:05:52.8636615Z         "doc": {
2026-06-13T11:05:52.8636738Z           "complete": false,
2026-06-13T11:05:52.8636854Z           "evidence": []
2026-06-13T11:05:52.8636973Z         },
2026-06-13T11:05:52.8637081Z         "impl": {
2026-06-13T11:05:52.8637216Z           "complete": true,
2026-06-13T11:05:52.8637330Z           "evidence": [
2026-06-13T11:05:52.8637435Z             {
2026-06-13T11:05:52.8637582Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8637701Z               "line": 759
2026-06-13T11:05:52.8637822Z             }
2026-06-13T11:05:52.8637925Z           ]
2026-06-13T11:05:52.8638050Z         },
2026-06-13T11:05:52.8638156Z         "int": {
2026-06-13T11:05:52.8638283Z           "complete": false,
2026-06-13T11:05:52.8638411Z           "evidence": []
2026-06-13T11:05:52.8638515Z         },
2026-06-13T11:05:52.8638637Z         "unit": {
2026-06-13T11:05:52.8638762Z           "complete": true,
2026-06-13T11:05:52.8638886Z           "evidence": [
2026-06-13T11:05:52.8639072Z             {
2026-06-13T11:05:52.8639234Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8639348Z               "line": 873
2026-06-13T11:05:52.8639458Z             }
2026-06-13T11:05:52.8639572Z           ]
2026-06-13T11:05:52.8639858Z         }
2026-06-13T11:05:52.8639978Z       }
2026-06-13T11:05:52.8640088Z     },
2026-06-13T11:05:52.8640202Z     {
2026-06-13T11:05:52.8640351Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-13T11:05:52.8640592Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-13T11:05:52.8640718Z       "requiredStages": [
2026-06-13T11:05:52.8640927Z         "impl",
2026-06-13T11:05:52.8641042Z         "unit"
2026-06-13T11:05:52.8641145Z       ],
2026-06-13T11:05:52.8641268Z       "stages": {
2026-06-13T11:05:52.8641384Z         "doc": {
2026-06-13T11:05:52.8641506Z           "complete": false,
2026-06-13T11:05:52.8641632Z           "evidence": []
2026-06-13T11:05:52.8641741Z         },
2026-06-13T11:05:52.8641864Z         "impl": {
2026-06-13T11:05:52.8641975Z           "complete": true,
2026-06-13T11:05:52.8642104Z           "evidence": [
2026-06-13T11:05:52.8642227Z             {
2026-06-13T11:05:52.8642380Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:05:52.8642493Z               "line": 14
2026-06-13T11:05:52.8642604Z             },
2026-06-13T11:05:52.8642708Z             {
2026-06-13T11:05:52.8642857Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:05:52.8642972Z               "line": 440
2026-06-13T11:05:52.8643075Z             }
2026-06-13T11:05:52.8643185Z           ]
2026-06-13T11:05:52.8643306Z         },
2026-06-13T11:05:52.8643409Z         "int": {
2026-06-13T11:05:52.8643523Z           "complete": false,
2026-06-13T11:05:52.8643628Z           "evidence": []
2026-06-13T11:05:52.8643735Z         },
2026-06-13T11:05:52.8643850Z         "unit": {
2026-06-13T11:05:52.8643960Z           "complete": true,
2026-06-13T11:05:52.8644073Z           "evidence": [
2026-06-13T11:05:52.8644179Z             {
2026-06-13T11:05:52.8644313Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:05:52.8644431Z               "line": 130
2026-06-13T11:05:52.8644537Z             },
2026-06-13T11:05:52.8644647Z             {
2026-06-13T11:05:52.8644779Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:05:52.8644908Z               "line": 138
2026-06-13T11:05:52.8645013Z             },
2026-06-13T11:05:52.8645118Z             {
2026-06-13T11:05:52.8645251Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:05:52.8645375Z               "line": 146
2026-06-13T11:05:52.8645501Z             },
2026-06-13T11:05:52.8645609Z             {
2026-06-13T11:05:52.8645748Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:05:52.8645872Z               "line": 154
2026-06-13T11:05:52.8646024Z             },
2026-06-13T11:05:52.8646164Z             {
2026-06-13T11:05:52.8646295Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:05:52.8646423Z               "line": 162
2026-06-13T11:05:52.8646532Z             },
2026-06-13T11:05:52.8646655Z             {
2026-06-13T11:05:52.8646794Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:05:52.8646922Z               "line": 170
2026-06-13T11:05:52.8647046Z             }
2026-06-13T11:05:52.8647156Z           ]
2026-06-13T11:05:52.8647270Z         }
2026-06-13T11:05:52.8647390Z       }
2026-06-13T11:05:52.8647504Z     },
2026-06-13T11:05:52.8647608Z     {
2026-06-13T11:05:52.8647785Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-13T11:05:52.8648895Z       "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-13T11:05:52.8649089Z       "requiredStages": [
2026-06-13T11:05:52.8649207Z         "impl",
2026-06-13T11:05:52.8649317Z         "unit"
2026-06-13T11:05:52.8649437Z       ],
2026-06-13T11:05:52.8649545Z       "stages": {
2026-06-13T11:05:52.8649651Z         "doc": {
2026-06-13T11:05:52.8649775Z           "complete": false,
2026-06-13T11:05:52.8650013Z           "evidence": []
2026-06-13T11:05:52.8650137Z         },
2026-06-13T11:05:52.8650242Z         "impl": {
2026-06-13T11:05:52.8650371Z           "complete": true,
2026-06-13T11:05:52.8650475Z           "evidence": [
2026-06-13T11:05:52.8650586Z             {
2026-06-13T11:05:52.8650776Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:05:52.8650886Z               "line": 34
2026-06-13T11:05:52.8651110Z             }
2026-06-13T11:05:52.8651216Z           ]
2026-06-13T11:05:52.8651329Z         },
2026-06-13T11:05:52.8651444Z         "int": {
2026-06-13T11:05:52.8651569Z           "complete": false,
2026-06-13T11:05:52.8651696Z           "evidence": []
2026-06-13T11:05:52.8651800Z         },
2026-06-13T11:05:52.8651910Z         "unit": {
2026-06-13T11:05:52.8652029Z           "complete": true,
2026-06-13T11:05:52.8652153Z           "evidence": [
2026-06-13T11:05:52.8652259Z             {
2026-06-13T11:05:52.8652434Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:05:52.8652550Z               "line": 188
2026-06-13T11:05:52.8652655Z             },
2026-06-13T11:05:52.8652773Z             {
2026-06-13T11:05:52.8652945Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:05:52.8653068Z               "line": 200
2026-06-13T11:05:52.8653184Z             },
2026-06-13T11:05:52.8653297Z             {
2026-06-13T11:05:52.8653484Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:05:52.8653598Z               "line": 211
2026-06-13T11:05:52.8653712Z             },
2026-06-13T11:05:52.8653814Z             {
2026-06-13T11:05:52.8653983Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:05:52.8654107Z               "line": 253
2026-06-13T11:05:52.8654211Z             },
2026-06-13T11:05:52.8654319Z             {
2026-06-13T11:05:52.8654482Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:05:52.8654591Z               "line": 277
2026-06-13T11:05:52.8654691Z             },
2026-06-13T11:05:52.8654802Z             {
2026-06-13T11:05:52.8654967Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:05:52.8655078Z               "line": 300
2026-06-13T11:05:52.8655178Z             },
2026-06-13T11:05:52.8655282Z             {
2026-06-13T11:05:52.8655446Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:05:52.8655569Z               "line": 316
2026-06-13T11:05:52.8655673Z             }
2026-06-13T11:05:52.8655779Z           ]
2026-06-13T11:05:52.8655883Z         }
2026-06-13T11:05:52.8655983Z       }
2026-06-13T11:05:52.8656090Z     },
2026-06-13T11:05:52.8656198Z     {
2026-06-13T11:05:52.8656356Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-13T11:05:52.8656950Z       "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-13T11:05:52.8657083Z       "requiredStages": [
2026-06-13T11:05:52.8657191Z         "impl",
2026-06-13T11:05:52.8657305Z         "unit"
2026-06-13T11:05:52.8657406Z       ],
2026-06-13T11:05:52.8657525Z       "stages": {
2026-06-13T11:05:52.8657630Z         "doc": {
2026-06-13T11:05:52.8657755Z           "complete": false,
2026-06-13T11:05:52.8657873Z           "evidence": []
2026-06-13T11:05:52.8657984Z         },
2026-06-13T11:05:52.8658102Z         "impl": {
2026-06-13T11:05:52.8658221Z           "complete": true,
2026-06-13T11:05:52.8658345Z           "evidence": [
2026-06-13T11:05:52.8658450Z             {
2026-06-13T11:05:52.8658604Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8658726Z               "line": 29
2026-06-13T11:05:52.8658836Z             },
2026-06-13T11:05:52.8659045Z             {
2026-06-13T11:05:52.8659190Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8659299Z               "line": 174
2026-06-13T11:05:52.8659531Z             },
2026-06-13T11:05:52.8659635Z             {
2026-06-13T11:05:52.8664191Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8664355Z               "line": 194
2026-06-13T11:05:52.8664463Z             },
2026-06-13T11:05:52.8664572Z             {
2026-06-13T11:05:52.8664739Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8665057Z               "line": 222
2026-06-13T11:05:52.8665166Z             }
2026-06-13T11:05:52.8665275Z           ]
2026-06-13T11:05:52.8665381Z         },
2026-06-13T11:05:52.8665499Z         "int": {
2026-06-13T11:05:52.8665624Z           "complete": false,
2026-06-13T11:05:52.8665752Z           "evidence": []
2026-06-13T11:05:52.8665861Z         },
2026-06-13T11:05:52.8665967Z         "unit": {
2026-06-13T11:05:52.8666096Z           "complete": true,
2026-06-13T11:05:52.8666205Z           "evidence": [
2026-06-13T11:05:52.8666311Z             {
2026-06-13T11:05:52.8666476Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8666626Z               "line": 329
2026-06-13T11:05:52.8666738Z             },
2026-06-13T11:05:52.8666844Z             {
2026-06-13T11:05:52.8666993Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8667111Z               "line": 344
2026-06-13T11:05:52.8667222Z             },
2026-06-13T11:05:52.8667331Z             {
2026-06-13T11:05:52.8667486Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8667611Z               "line": 417
2026-06-13T11:05:52.8667713Z             },
2026-06-13T11:05:52.8667822Z             {
2026-06-13T11:05:52.8667966Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8668089Z               "line": 433
2026-06-13T11:05:52.8668195Z             },
2026-06-13T11:05:52.8668305Z             {
2026-06-13T11:05:52.8668456Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8668568Z               "line": 492
2026-06-13T11:05:52.8668681Z             },
2026-06-13T11:05:52.8668796Z             {
2026-06-13T11:05:52.8669038Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8669159Z               "line": 506
2026-06-13T11:05:52.8669267Z             },
2026-06-13T11:05:52.8669372Z             {
2026-06-13T11:05:52.8669522Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8669644Z               "line": 517
2026-06-13T11:05:52.8669760Z             },
2026-06-13T11:05:52.8669864Z             {
2026-06-13T11:05:52.8670006Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8670130Z               "line": 528
2026-06-13T11:05:52.8670237Z             }
2026-06-13T11:05:52.8670346Z           ]
2026-06-13T11:05:52.8670447Z         }
2026-06-13T11:05:52.8670557Z       }
2026-06-13T11:05:52.8670666Z     },
2026-06-13T11:05:52.8670772Z     {
2026-06-13T11:05:52.8670919Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-13T11:05:52.8671672Z       "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-13T11:05:52.8671791Z       "requiredStages": [
2026-06-13T11:05:52.8671906Z         "impl",
2026-06-13T11:05:52.8672011Z         "unit"
2026-06-13T11:05:52.8672111Z       ],
2026-06-13T11:05:52.8672221Z       "stages": {
2026-06-13T11:05:52.8672341Z         "doc": {
2026-06-13T11:05:52.8672468Z           "complete": false,
2026-06-13T11:05:52.8672588Z           "evidence": []
2026-06-13T11:05:52.8672694Z         },
2026-06-13T11:05:52.8672797Z         "impl": {
2026-06-13T11:05:52.8672920Z           "complete": true,
2026-06-13T11:05:52.8673040Z           "evidence": [
2026-06-13T11:05:52.8673154Z             {
2026-06-13T11:05:52.8673326Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.8673431Z               "line": 27
2026-06-13T11:05:52.8673544Z             },
2026-06-13T11:05:52.8673651Z             {
2026-06-13T11:05:52.8673936Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.8674065Z               "line": 110
2026-06-13T11:05:52.8674165Z             },
2026-06-13T11:05:52.8674281Z             {
2026-06-13T11:05:52.8674437Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.8674561Z               "line": 153
2026-06-13T11:05:52.8674837Z             },
2026-06-13T11:05:52.8674943Z             {
2026-06-13T11:05:52.8675094Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.8675208Z               "line": 182
2026-06-13T11:05:52.8675317Z             },
2026-06-13T11:05:52.8675420Z             {
2026-06-13T11:05:52.8675602Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:05:52.8675716Z               "line": 31
2026-06-13T11:05:52.8675830Z             },
2026-06-13T11:05:52.8675932Z             {
2026-06-13T11:05:52.8676106Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:05:52.8676232Z               "line": 113
2026-06-13T11:05:52.8676341Z             },
2026-06-13T11:05:52.8676455Z             {
2026-06-13T11:05:52.8676641Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:05:52.8676784Z               "line": 138
2026-06-13T11:05:52.8676895Z             }
2026-06-13T11:05:52.8677013Z           ]
2026-06-13T11:05:52.8677133Z         },
2026-06-13T11:05:52.8677242Z         "int": {
2026-06-13T11:05:52.8677375Z           "complete": false,
2026-06-13T11:05:52.8677491Z           "evidence": []
2026-06-13T11:05:52.8677609Z         },
2026-06-13T11:05:52.8677719Z         "unit": {
2026-06-13T11:05:52.8677839Z           "complete": true,
2026-06-13T11:05:52.8677956Z           "evidence": [
2026-06-13T11:05:52.8678065Z             {
2026-06-13T11:05:52.8678227Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.8678344Z               "line": 261
2026-06-13T11:05:52.8678464Z             },
2026-06-13T11:05:52.8678579Z             {
2026-06-13T11:05:52.8678736Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.8678860Z               "line": 276
2026-06-13T11:05:52.8679099Z             },
2026-06-13T11:05:52.8679218Z             {
2026-06-13T11:05:52.8679375Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.8679499Z               "line": 293
2026-06-13T11:05:52.8679613Z             },
2026-06-13T11:05:52.8679724Z             {
2026-06-13T11:05:52.8679885Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.8679995Z               "line": 310
2026-06-13T11:05:52.8680105Z             },
2026-06-13T11:05:52.8680214Z             {
2026-06-13T11:05:52.8680363Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.8680490Z               "line": 327
2026-06-13T11:05:52.8680594Z             },
2026-06-13T11:05:52.8680709Z             {
2026-06-13T11:05:52.8680854Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.8680974Z               "line": 366
2026-06-13T11:05:52.8681079Z             },
2026-06-13T11:05:52.8681178Z             {
2026-06-13T11:05:52.8681351Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:05:52.8681460Z               "line": 179
2026-06-13T11:05:52.8681578Z             },
2026-06-13T11:05:52.8681680Z             {
2026-06-13T11:05:52.8681855Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:05:52.8681981Z               "line": 194
2026-06-13T11:05:52.8682089Z             },
2026-06-13T11:05:52.8682199Z             {
2026-06-13T11:05:52.8682366Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:05:52.8682490Z               "line": 204
2026-06-13T11:05:52.8682591Z             },
2026-06-13T11:05:52.8682699Z             {
2026-06-13T11:05:52.8683005Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:05:52.8683124Z               "line": 259
2026-06-13T11:05:52.8683230Z             },
2026-06-13T11:05:52.8683334Z             {
2026-06-13T11:05:52.8683494Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:05:52.8683615Z               "line": 269
2026-06-13T11:05:52.8683729Z             },
2026-06-13T11:05:52.8683848Z             {
2026-06-13T11:05:52.8684119Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:05:52.8684239Z               "line": 283
2026-06-13T11:05:52.8684344Z             }
2026-06-13T11:05:52.8684458Z           ]
2026-06-13T11:05:52.8684568Z         }
2026-06-13T11:05:52.8684668Z       }
2026-06-13T11:05:52.8684777Z     },
2026-06-13T11:05:52.8684883Z     {
2026-06-13T11:05:52.8685030Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-13T11:05:52.8685241Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-13T11:05:52.8685364Z       "requiredStages": [],
2026-06-13T11:05:52.8685480Z       "stages": {
2026-06-13T11:05:52.8685578Z         "doc": {
2026-06-13T11:05:52.8685701Z           "complete": false,
2026-06-13T11:05:52.8685816Z           "evidence": []
2026-06-13T11:05:52.8685924Z         },
2026-06-13T11:05:52.8686037Z         "impl": {
2026-06-13T11:05:52.8686157Z           "complete": false,
2026-06-13T11:05:52.8686296Z           "evidence": []
2026-06-13T11:05:52.8686395Z         },
2026-06-13T11:05:52.8686511Z         "int": {
2026-06-13T11:05:52.8686629Z           "complete": false,
2026-06-13T11:05:52.8686749Z           "evidence": []
2026-06-13T11:05:52.8686854Z         },
2026-06-13T11:05:52.8686967Z         "unit": {
2026-06-13T11:05:52.8687088Z           "complete": false,
2026-06-13T11:05:52.8687211Z           "evidence": []
2026-06-13T11:05:52.8687325Z         }
2026-06-13T11:05:52.8687431Z       }
2026-06-13T11:05:52.8687540Z     },
2026-06-13T11:05:52.8687635Z     {
2026-06-13T11:05:52.8687802Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-13T11:05:52.8688782Z       "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-13T11:05:52.8688909Z       "requiredStages": [
2026-06-13T11:05:52.8689106Z         "impl",
2026-06-13T11:05:52.8689229Z         "unit"
2026-06-13T11:05:52.8689340Z       ],
2026-06-13T11:05:52.8689435Z       "stages": {
2026-06-13T11:05:52.8689543Z         "doc": {
2026-06-13T11:05:52.8689669Z           "complete": false,
2026-06-13T11:05:52.8689769Z           "evidence": []
2026-06-13T11:05:52.8689882Z         },
2026-06-13T11:05:52.8689988Z         "impl": {
2026-06-13T11:05:52.8690107Z           "complete": true,
2026-06-13T11:05:52.8690216Z           "evidence": [
2026-06-13T11:05:52.8690322Z             {
2026-06-13T11:05:52.8690487Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:05:52.8690594Z               "line": 26
2026-06-13T11:05:52.8690703Z             },
2026-06-13T11:05:52.8690807Z             {
2026-06-13T11:05:52.8690966Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:05:52.8691078Z               "line": 95
2026-06-13T11:05:52.8691173Z             },
2026-06-13T11:05:52.8691283Z             {
2026-06-13T11:05:52.8691429Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:05:52.8691553Z               "line": 166
2026-06-13T11:05:52.8691659Z             },
2026-06-13T11:05:52.8691767Z             {
2026-06-13T11:05:52.8691916Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:05:52.8692025Z               "line": 19
2026-06-13T11:05:52.8692134Z             },
2026-06-13T11:05:52.8692245Z             {
2026-06-13T11:05:52.8692386Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:05:52.8692502Z               "line": 50
2026-06-13T11:05:52.8692606Z             },
2026-06-13T11:05:52.8692898Z             {
2026-06-13T11:05:52.8693045Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T11:05:52.8693165Z               "line": 18
2026-06-13T11:05:52.8693264Z             },
2026-06-13T11:05:52.8693379Z             {
2026-06-13T11:05:52.8693519Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T11:05:52.8693641Z               "line": 71
2026-06-13T11:05:52.8693848Z             },
2026-06-13T11:05:52.8693950Z             {
2026-06-13T11:05:52.8694102Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.8694209Z               "line": 79
2026-06-13T11:05:52.8694327Z             }
2026-06-13T11:05:52.8694427Z           ]
2026-06-13T11:05:52.8694532Z         },
2026-06-13T11:05:52.8694651Z         "int": {
2026-06-13T11:05:52.8694771Z           "complete": false,
2026-06-13T11:05:52.8694895Z           "evidence": []
2026-06-13T11:05:52.8694994Z         },
2026-06-13T11:05:52.8695110Z         "unit": {
2026-06-13T11:05:52.8695228Z           "complete": true,
2026-06-13T11:05:52.8695357Z           "evidence": [
2026-06-13T11:05:52.8695467Z             {
2026-06-13T11:05:52.8695614Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:05:52.8695740Z               "line": 289
2026-06-13T11:05:52.8695852Z             },
2026-06-13T11:05:52.8695962Z             {
2026-06-13T11:05:52.8696115Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:05:52.8696233Z               "line": 308
2026-06-13T11:05:52.8696347Z             },
2026-06-13T11:05:52.8696456Z             {
2026-06-13T11:05:52.8696597Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:05:52.8696717Z               "line": 336
2026-06-13T11:05:52.8696827Z             },
2026-06-13T11:05:52.8696936Z             {
2026-06-13T11:05:52.8697094Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:05:52.8697217Z               "line": 399
2026-06-13T11:05:52.8697319Z             },
2026-06-13T11:05:52.8697428Z             {
2026-06-13T11:05:52.8697575Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:05:52.8697700Z               "line": 410
2026-06-13T11:05:52.8697809Z             },
2026-06-13T11:05:52.8697924Z             {
2026-06-13T11:05:52.8698076Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:05:52.8698181Z               "line": 441
2026-06-13T11:05:52.8698297Z             },
2026-06-13T11:05:52.8698405Z             {
2026-06-13T11:05:52.8698568Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:05:52.8698691Z               "line": 452
2026-06-13T11:05:52.8698796Z             },
2026-06-13T11:05:52.8698912Z             {
2026-06-13T11:05:52.8699167Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:05:52.8699276Z               "line": 77
2026-06-13T11:05:52.8699375Z             },
2026-06-13T11:05:52.8699484Z             {
2026-06-13T11:05:52.8699633Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:05:52.8699746Z               "line": 97
2026-06-13T11:05:52.8699856Z             },
2026-06-13T11:05:52.8699957Z             {
2026-06-13T11:05:52.8700103Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:05:52.8700224Z               "line": 112
2026-06-13T11:05:52.8700362Z             },
2026-06-13T11:05:52.8700471Z             {
2026-06-13T11:05:52.8700610Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:05:52.8700728Z               "line": 123
2026-06-13T11:05:52.8700835Z             },
2026-06-13T11:05:52.8700948Z             {
2026-06-13T11:05:52.8701086Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:05:52.8701211Z               "line": 130
2026-06-13T11:05:52.8701324Z             },
2026-06-13T11:05:52.8701430Z             {
2026-06-13T11:05:52.8701569Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:05:52.8701686Z               "line": 145
2026-06-13T11:05:52.8701796Z             },
2026-06-13T11:05:52.8701904Z             {
2026-06-13T11:05:52.8702180Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T11:05:52.8702303Z               "line": 115
2026-06-13T11:05:52.8702408Z             },
2026-06-13T11:05:52.8702528Z             {
2026-06-13T11:05:52.8702665Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T11:05:52.8702781Z               "line": 130
2026-06-13T11:05:52.8702980Z             },
2026-06-13T11:05:52.8703096Z             {
2026-06-13T11:05:52.8703243Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.8703357Z               "line": 420
2026-06-13T11:05:52.8703472Z             }
2026-06-13T11:05:52.8703577Z           ]
2026-06-13T11:05:52.8703692Z         }
2026-06-13T11:05:52.8703797Z       }
2026-06-13T11:05:52.8703906Z     },
2026-06-13T11:05:52.8704021Z     {
2026-06-13T11:05:52.8704158Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-13T11:05:52.8705036Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-13T11:05:52.8705159Z       "requiredStages": [
2026-06-13T11:05:52.8705273Z         "doc",
2026-06-13T11:05:52.8705388Z         "impl",
2026-06-13T11:05:52.8705497Z         "unit"
2026-06-13T11:05:52.8705660Z       ],
2026-06-13T11:05:52.8705774Z       "stages": {
2026-06-13T11:05:52.8705893Z         "doc": {
2026-06-13T11:05:52.8706008Z           "complete": true,
2026-06-13T11:05:52.8706131Z           "evidence": [
2026-06-13T11:05:52.8706242Z             {
2026-06-13T11:05:52.8706384Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8706498Z               "line": 360
2026-06-13T11:05:52.8706610Z             }
2026-06-13T11:05:52.8706727Z           ]
2026-06-13T11:05:52.8706831Z         },
2026-06-13T11:05:52.8706951Z         "impl": {
2026-06-13T11:05:52.8707072Z           "complete": true,
2026-06-13T11:05:52.8707201Z           "evidence": [
2026-06-13T11:05:52.8707321Z             {
2026-06-13T11:05:52.8707467Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8707588Z               "line": 180
2026-06-13T11:05:52.8707697Z             },
2026-06-13T11:05:52.8707810Z             {
2026-06-13T11:05:52.8707959Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8708083Z               "line": 284
2026-06-13T11:05:52.8708199Z             },
2026-06-13T11:05:52.8708303Z             {
2026-06-13T11:05:52.8708455Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8708565Z               "line": 496
2026-06-13T11:05:52.8708684Z             },
2026-06-13T11:05:52.8708799Z             {
2026-06-13T11:05:52.8709023Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8709138Z               "line": 511
2026-06-13T11:05:52.8709251Z             },
2026-06-13T11:05:52.8709361Z             {
2026-06-13T11:05:52.8709505Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8709632Z               "line": 1038
2026-06-13T11:05:52.8709746Z             },
2026-06-13T11:05:52.8709851Z             {
2026-06-13T11:05:52.8710006Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8710116Z               "line": 443
2026-06-13T11:05:52.8710236Z             },
2026-06-13T11:05:52.8710344Z             {
2026-06-13T11:05:52.8710493Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8710616Z               "line": 590
2026-06-13T11:05:52.8710721Z             },
2026-06-13T11:05:52.8710831Z             {
2026-06-13T11:05:52.8710974Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8711099Z               "line": 731
2026-06-13T11:05:52.8711203Z             }
2026-06-13T11:05:52.8711312Z           ]
2026-06-13T11:05:52.8711428Z         },
2026-06-13T11:05:52.8711536Z         "int": {
2026-06-13T11:05:52.8711661Z           "complete": false,
2026-06-13T11:05:52.8711899Z           "evidence": []
2026-06-13T11:05:52.8712020Z         },
2026-06-13T11:05:52.8712129Z         "unit": {
2026-06-13T11:05:52.8712251Z           "complete": true,
2026-06-13T11:05:52.8712375Z           "evidence": [
2026-06-13T11:05:52.8712478Z             {
2026-06-13T11:05:52.8712634Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.8712882Z               "line": 1155
2026-06-13T11:05:52.8712998Z             },
2026-06-13T11:05:52.8713122Z             {
2026-06-13T11:05:52.8713303Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-13T11:05:52.8713426Z               "line": 30
2026-06-13T11:05:52.8713530Z             }
2026-06-13T11:05:52.8713642Z           ]
2026-06-13T11:05:52.8713741Z         }
2026-06-13T11:05:52.8713845Z       }
2026-06-13T11:05:52.8713952Z     },
2026-06-13T11:05:52.8714061Z     {
2026-06-13T11:05:52.8714208Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-13T11:05:52.8714494Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-13T11:05:52.8714620Z       "requiredStages": [
2026-06-13T11:05:52.8714723Z         "impl",
2026-06-13T11:05:52.8714823Z         "unit"
2026-06-13T11:05:52.8714929Z       ],
2026-06-13T11:05:52.8715043Z       "stages": {
2026-06-13T11:05:52.8715161Z         "doc": {
2026-06-13T11:05:52.8715286Z           "complete": true,
2026-06-13T11:05:52.8715409Z           "evidence": [
2026-06-13T11:05:52.8715518Z             {
2026-06-13T11:05:52.8715657Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8715771Z               "line": 139
2026-06-13T11:05:52.8715877Z             }
2026-06-13T11:05:52.8715986Z           ]
2026-06-13T11:05:52.8716081Z         },
2026-06-13T11:05:52.8716191Z         "impl": {
2026-06-13T11:05:52.8716310Z           "complete": true,
2026-06-13T11:05:52.8716434Z           "evidence": [
2026-06-13T11:05:52.8716550Z             {
2026-06-13T11:05:52.8716701Z               "path": "crates/spt-store/src/db.rs",
2026-06-13T11:05:52.8716831Z               "line": 29
2026-06-13T11:05:52.8716935Z             },
2026-06-13T11:05:52.8717049Z             {
2026-06-13T11:05:52.8717199Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.8717325Z               "line": 101
2026-06-13T11:05:52.8717439Z             },
2026-06-13T11:05:52.8717549Z             {
2026-06-13T11:05:52.8717713Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8717814Z               "line": 30
2026-06-13T11:05:52.8717933Z             },
2026-06-13T11:05:52.8718042Z             {
2026-06-13T11:05:52.8718191Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8718314Z               "line": 48
2026-06-13T11:05:52.8718424Z             }
2026-06-13T11:05:52.8718539Z           ]
2026-06-13T11:05:52.8718648Z         },
2026-06-13T11:05:52.8718763Z         "int": {
2026-06-13T11:05:52.8718882Z           "complete": false,
2026-06-13T11:05:52.8719092Z           "evidence": []
2026-06-13T11:05:52.8719206Z         },
2026-06-13T11:05:52.8719316Z         "unit": {
2026-06-13T11:05:52.8719441Z           "complete": true,
2026-06-13T11:05:52.8719554Z           "evidence": [
2026-06-13T11:05:52.8719664Z             {
2026-06-13T11:05:52.8719816Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8719936Z               "line": 162
2026-06-13T11:05:52.8720051Z             }
2026-06-13T11:05:52.8720159Z           ]
2026-06-13T11:05:52.8720267Z         }
2026-06-13T11:05:52.8720373Z       }
2026-06-13T11:05:52.8720485Z     },
2026-06-13T11:05:52.8720589Z     {
2026-06-13T11:05:52.8720739Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-13T11:05:52.8721153Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-13T11:05:52.8721272Z       "requiredStages": [
2026-06-13T11:05:52.8721387Z         "doc",
2026-06-13T11:05:52.8721496Z         "impl",
2026-06-13T11:05:52.8721739Z         "unit"
2026-06-13T11:05:52.8721849Z       ],
2026-06-13T11:05:52.8721970Z       "stages": {
2026-06-13T11:05:52.8722087Z         "doc": {
2026-06-13T11:05:52.8722206Z           "complete": true,
2026-06-13T11:05:52.8722322Z           "evidence": [
2026-06-13T11:05:52.8722430Z             {
2026-06-13T11:05:52.8722570Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8722787Z               "line": 151
2026-06-13T11:05:52.8722906Z             }
2026-06-13T11:05:52.8723015Z           ]
2026-06-13T11:05:52.8723118Z         },
2026-06-13T11:05:52.8723233Z         "impl": {
2026-06-13T11:05:52.8723349Z           "complete": true,
2026-06-13T11:05:52.8723471Z           "evidence": [
2026-06-13T11:05:52.8723577Z             {
2026-06-13T11:05:52.8723729Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8723853Z               "line": 22
2026-06-13T11:05:52.8723963Z             }
2026-06-13T11:05:52.8724077Z           ]
2026-06-13T11:05:52.8724188Z         },
2026-06-13T11:05:52.8724306Z         "int": {
2026-06-13T11:05:52.8724420Z           "complete": false,
2026-06-13T11:05:52.8724545Z           "evidence": []
2026-06-13T11:05:52.8724659Z         },
2026-06-13T11:05:52.8724764Z         "unit": {
2026-06-13T11:05:52.8724884Z           "complete": true,
2026-06-13T11:05:52.8724997Z           "evidence": [
2026-06-13T11:05:52.8725117Z             {
2026-06-13T11:05:52.8725264Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8725383Z               "line": 298
2026-06-13T11:05:52.8725504Z             }
2026-06-13T11:05:52.8725607Z           ]
2026-06-13T11:05:52.8725721Z         }
2026-06-13T11:05:52.8725826Z       }
2026-06-13T11:05:52.8725946Z     },
2026-06-13T11:05:52.8726045Z     {
2026-06-13T11:05:52.8726198Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-13T11:05:52.8726679Z       "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-13T11:05:52.8726800Z       "requiredStages": [
2026-06-13T11:05:52.8726919Z         "impl",
2026-06-13T11:05:52.8727027Z         "unit"
2026-06-13T11:05:52.8727138Z       ],
2026-06-13T11:05:52.8727252Z       "stages": {
2026-06-13T11:05:52.8727367Z         "doc": {
2026-06-13T11:05:52.8727491Z           "complete": true,
2026-06-13T11:05:52.8727609Z           "evidence": [
2026-06-13T11:05:52.8727725Z             {
2026-06-13T11:05:52.8727861Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8727984Z               "line": 145
2026-06-13T11:05:52.8728095Z             }
2026-06-13T11:05:52.8728211Z           ]
2026-06-13T11:05:52.8728326Z         },
2026-06-13T11:05:52.8728441Z         "impl": {
2026-06-13T11:05:52.8728559Z           "complete": true,
2026-06-13T11:05:52.8728674Z           "evidence": [
2026-06-13T11:05:52.8728784Z             {
2026-06-13T11:05:52.8729018Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-13T11:05:52.8729151Z               "line": 160
2026-06-13T11:05:52.8729260Z             },
2026-06-13T11:05:52.8729366Z             {
2026-06-13T11:05:52.8729532Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8729643Z               "line": 200
2026-06-13T11:05:52.8729761Z             },
2026-06-13T11:05:52.8729861Z             {
2026-06-13T11:05:52.8730015Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8730143Z               "line": 298
2026-06-13T11:05:52.8730249Z             },
2026-06-13T11:05:52.8730362Z             {
2026-06-13T11:05:52.8730505Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-13T11:05:52.8730616Z               "line": 20
2026-06-13T11:05:52.8730728Z             }
2026-06-13T11:05:52.8730837Z           ]
2026-06-13T11:05:52.8730938Z         },
2026-06-13T11:05:52.8731041Z         "int": {
2026-06-13T11:05:52.8731173Z           "complete": false,
2026-06-13T11:05:52.8731284Z           "evidence": []
2026-06-13T11:05:52.8731503Z         },
2026-06-13T11:05:52.8731613Z         "unit": {
2026-06-13T11:05:52.8731736Z           "complete": true,
2026-06-13T11:05:52.8731856Z           "evidence": [
2026-06-13T11:05:52.8731961Z             {
2026-06-13T11:05:52.8732118Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8732229Z               "line": 885
2026-06-13T11:05:52.8732437Z             },
2026-06-13T11:05:52.8732539Z             {
2026-06-13T11:05:52.8732704Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-13T11:05:52.8732825Z               "line": 88
2026-06-13T11:05:52.8732934Z             },
2026-06-13T11:05:52.8733048Z             {
2026-06-13T11:05:52.8733192Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8733305Z               "line": 819
2026-06-13T11:05:52.8733404Z             },
2026-06-13T11:05:52.8733510Z             {
2026-06-13T11:05:52.8733669Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8733779Z               "line": 838
2026-06-13T11:05:52.8733894Z             },
2026-06-13T11:05:52.8734003Z             {
2026-06-13T11:05:52.8734166Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:05:52.8734289Z               "line": 279
2026-06-13T11:05:52.8734394Z             },
2026-06-13T11:05:52.8734499Z             {
2026-06-13T11:05:52.8734642Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-13T11:05:52.8734767Z               "line": 82
2026-06-13T11:05:52.8734876Z             },
2026-06-13T11:05:52.8734985Z             {
2026-06-13T11:05:52.8735138Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-13T11:05:52.8735253Z               "line": 99
2026-06-13T11:05:52.8735367Z             },
2026-06-13T11:05:52.8735472Z             {
2026-06-13T11:05:52.8735619Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-13T11:05:52.8735735Z               "line": 119
2026-06-13T11:05:52.8735848Z             }
2026-06-13T11:05:52.8735958Z           ]
2026-06-13T11:05:52.8736069Z         }
2026-06-13T11:05:52.8736186Z       }
2026-06-13T11:05:52.8736290Z     },
2026-06-13T11:05:52.8736406Z     {
2026-06-13T11:05:52.8736553Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-13T11:05:52.8737932Z       "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-13T11:05:52.8738060Z       "requiredStages": [
2026-06-13T11:05:52.8738169Z         "doc",
2026-06-13T11:05:52.8738285Z         "impl",
2026-06-13T11:05:52.8738398Z         "unit"
2026-06-13T11:05:52.8738512Z       ],
2026-06-13T11:05:52.8738631Z       "stages": {
2026-06-13T11:05:52.8738743Z         "doc": {
2026-06-13T11:05:52.8738876Z           "complete": true,
2026-06-13T11:05:52.8739058Z           "evidence": [
2026-06-13T11:05:52.8739177Z             {
2026-06-13T11:05:52.8739316Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8739434Z               "line": 157
2026-06-13T11:05:52.8739549Z             }
2026-06-13T11:05:52.8739659Z           ]
2026-06-13T11:05:52.8739782Z         },
2026-06-13T11:05:52.8739888Z         "impl": {
2026-06-13T11:05:52.8740017Z           "complete": true,
2026-06-13T11:05:52.8740126Z           "evidence": [
2026-06-13T11:05:52.8740241Z             {
2026-06-13T11:05:52.8740416Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:05:52.8740532Z               "line": 137
2026-06-13T11:05:52.8740645Z             },
2026-06-13T11:05:52.8740755Z             {
2026-06-13T11:05:52.8740923Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8741036Z               "line": 512
2026-06-13T11:05:52.8741152Z             },
2026-06-13T11:05:52.8741397Z             {
2026-06-13T11:05:52.8741560Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8741681Z               "line": 519
2026-06-13T11:05:52.8741796Z             },
2026-06-13T11:05:52.8741907Z             {
2026-06-13T11:05:52.8742058Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8742268Z               "line": 227
2026-06-13T11:05:52.8742387Z             }
2026-06-13T11:05:52.8742493Z           ]
2026-06-13T11:05:52.8742602Z         },
2026-06-13T11:05:52.8742712Z         "int": {
2026-06-13T11:05:52.8742836Z           "complete": false,
2026-06-13T11:05:52.8742950Z           "evidence": []
2026-06-13T11:05:52.8743065Z         },
2026-06-13T11:05:52.8743179Z         "unit": {
2026-06-13T11:05:52.8743293Z           "complete": true,
2026-06-13T11:05:52.8743414Z           "evidence": [
2026-06-13T11:05:52.8743526Z             {
2026-06-13T11:05:52.8743695Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8743813Z               "line": 1515
2026-06-13T11:05:52.8743926Z             },
2026-06-13T11:05:52.8744036Z             {
2026-06-13T11:05:52.8744191Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8744315Z               "line": 1573
2026-06-13T11:05:52.8744421Z             },
2026-06-13T11:05:52.8744539Z             {
2026-06-13T11:05:52.8744707Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8744826Z               "line": 851
2026-06-13T11:05:52.8744935Z             }
2026-06-13T11:05:52.8745040Z           ]
2026-06-13T11:05:52.8745155Z         }
2026-06-13T11:05:52.8745264Z       }
2026-06-13T11:05:52.8745374Z     },
2026-06-13T11:05:52.8745474Z     {
2026-06-13T11:05:52.8745652Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-13T11:05:52.8745903Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-13T11:05:52.8746027Z       "requiredStages": [
2026-06-13T11:05:52.8746165Z         "impl",
2026-06-13T11:05:52.8746286Z         "unit"
2026-06-13T11:05:52.8746403Z       ],
2026-06-13T11:05:52.8746528Z       "stages": {
2026-06-13T11:05:52.8746643Z         "doc": {
2026-06-13T11:05:52.8746770Z           "complete": false,
2026-06-13T11:05:52.8746893Z           "evidence": []
2026-06-13T11:05:52.8747014Z         },
2026-06-13T11:05:52.8747146Z         "impl": {
2026-06-13T11:05:52.8747310Z           "complete": true,
2026-06-13T11:05:52.8747442Z           "evidence": [
2026-06-13T11:05:52.8747567Z             {
2026-06-13T11:05:52.8747747Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T11:05:52.8747877Z               "line": 15
2026-06-13T11:05:52.8748024Z             },
2026-06-13T11:05:52.8748143Z             {
2026-06-13T11:05:52.8748343Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8748477Z               "line": 55
2026-06-13T11:05:52.8748606Z             },
2026-06-13T11:05:52.8748753Z             {
2026-06-13T11:05:52.8748926Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8749210Z               "line": 66
2026-06-13T11:05:52.8749360Z             },
2026-06-13T11:05:52.8749528Z             {
2026-06-13T11:05:52.8749722Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8749857Z               "line": 115
2026-06-13T11:05:52.8750013Z             },
2026-06-13T11:05:52.8750162Z             {
2026-06-13T11:05:52.8750356Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8750496Z               "line": 138
2026-06-13T11:05:52.8757278Z             }
2026-06-13T11:05:52.8757430Z           ]
2026-06-13T11:05:52.8757531Z         },
2026-06-13T11:05:52.8757645Z         "int": {
2026-06-13T11:05:52.8757773Z           "complete": false,
2026-06-13T11:05:52.8757898Z           "evidence": []
2026-06-13T11:05:52.8758002Z         },
2026-06-13T11:05:52.8758127Z         "unit": {
2026-06-13T11:05:52.8758256Z           "complete": true,
2026-06-13T11:05:52.8758542Z           "evidence": [
2026-06-13T11:05:52.8758660Z             {
2026-06-13T11:05:52.8758823Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T11:05:52.8759042Z               "line": 149
2026-06-13T11:05:52.8759147Z             },
2026-06-13T11:05:52.8759261Z             {
2026-06-13T11:05:52.8759424Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T11:05:52.8759646Z               "line": 155
2026-06-13T11:05:52.8759760Z             },
2026-06-13T11:05:52.8759892Z             {
2026-06-13T11:05:52.8760054Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T11:05:52.8760165Z               "line": 169
2026-06-13T11:05:52.8760278Z             },
2026-06-13T11:05:52.8760383Z             {
2026-06-13T11:05:52.8760522Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T11:05:52.8760636Z               "line": 178
2026-06-13T11:05:52.8760746Z             },
2026-06-13T11:05:52.8760850Z             {
2026-06-13T11:05:52.8761008Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8761132Z               "line": 195
2026-06-13T11:05:52.8761251Z             },
2026-06-13T11:05:52.8761356Z             {
2026-06-13T11:05:52.8761532Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8761662Z               "line": 208
2026-06-13T11:05:52.8761775Z             },
2026-06-13T11:05:52.8761890Z             {
2026-06-13T11:05:52.8762043Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8762162Z               "line": 271
2026-06-13T11:05:52.8762268Z             },
2026-06-13T11:05:52.8762381Z             {
2026-06-13T11:05:52.8762528Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8762642Z               "line": 290
2026-06-13T11:05:52.8762750Z             },
2026-06-13T11:05:52.8762873Z             {
2026-06-13T11:05:52.8763017Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.8763126Z               "line": 319
2026-06-13T11:05:52.8763236Z             }
2026-06-13T11:05:52.8763341Z           ]
2026-06-13T11:05:52.8763445Z         }
2026-06-13T11:05:52.8763551Z       }
2026-06-13T11:05:52.8763655Z     },
2026-06-13T11:05:52.8763764Z     {
2026-06-13T11:05:52.8763904Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-13T11:05:52.8764205Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-13T11:05:52.8764332Z       "requiredStages": [
2026-06-13T11:05:52.8764447Z         "impl",
2026-06-13T11:05:52.8764558Z         "unit",
2026-06-13T11:05:52.8764656Z         "int"
2026-06-13T11:05:52.8764772Z       ],
2026-06-13T11:05:52.8764878Z       "stages": {
2026-06-13T11:05:52.8764990Z         "doc": {
2026-06-13T11:05:52.8765108Z           "complete": false,
2026-06-13T11:05:52.8765223Z           "evidence": []
2026-06-13T11:05:52.8765335Z         },
2026-06-13T11:05:52.8765435Z         "impl": {
2026-06-13T11:05:52.8765565Z           "complete": true,
2026-06-13T11:05:52.8765688Z           "evidence": [
2026-06-13T11:05:52.8765803Z             {
2026-06-13T11:05:52.8765955Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8766079Z               "line": 428
2026-06-13T11:05:52.8766194Z             },
2026-06-13T11:05:52.8766307Z             {
2026-06-13T11:05:52.8766457Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8766575Z               "line": 830
2026-06-13T11:05:52.8766689Z             },
2026-06-13T11:05:52.8766800Z             {
2026-06-13T11:05:52.8766947Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8767067Z               "line": 854
2026-06-13T11:05:52.8767180Z             },
2026-06-13T11:05:52.8767290Z             {
2026-06-13T11:05:52.8767425Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.8767542Z               "line": 879
2026-06-13T11:05:52.8767658Z             },
2026-06-13T11:05:52.8767764Z             {
2026-06-13T11:05:52.8768028Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8768148Z               "line": 633
2026-06-13T11:05:52.8768257Z             },
2026-06-13T11:05:52.8768362Z             {
2026-06-13T11:05:52.8768519Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8768629Z               "line": 745
2026-06-13T11:05:52.8768739Z             },
2026-06-13T11:05:52.8768924Z             {
2026-06-13T11:05:52.8769149Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8769263Z               "line": 855
2026-06-13T11:05:52.8769373Z             },
2026-06-13T11:05:52.8769483Z             {
2026-06-13T11:05:52.8769627Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.8769740Z               "line": 903
2026-06-13T11:05:52.8769859Z             },
2026-06-13T11:05:52.8769966Z             {
2026-06-13T11:05:52.8770107Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T11:05:52.8770220Z               "line": 46
2026-06-13T11:05:52.8770349Z             },
2026-06-13T11:05:52.8770452Z             {
2026-06-13T11:05:52.8770605Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T11:05:52.8770725Z               "line": 167
2026-06-13T11:05:52.8770828Z             },
2026-06-13T11:05:52.8770934Z             {
2026-06-13T11:05:52.8771077Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:05:52.8771201Z               "line": 132
2026-06-13T11:05:52.8771306Z             },
2026-06-13T11:05:52.8771415Z             {
2026-06-13T11:05:52.8771560Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8771668Z               "line": 134
2026-06-13T11:05:52.8771773Z             },
2026-06-13T11:05:52.8771874Z             {
2026-06-13T11:05:52.8772021Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8772140Z               "line": 180
2026-06-13T11:05:52.8772246Z             }
2026-06-13T11:05:52.8772349Z           ]
2026-06-13T11:05:52.8772450Z         },
2026-06-13T11:05:52.8772565Z         "int": {
2026-06-13T11:05:52.8772678Z           "complete": true,
2026-06-13T11:05:52.8772789Z           "evidence": [
2026-06-13T11:05:52.8772899Z             {
2026-06-13T11:05:52.8773064Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-13T11:05:52.8773188Z               "line": 27
2026-06-13T11:05:52.8773300Z             },
2026-06-13T11:05:52.8773409Z             {
2026-06-13T11:05:52.8773554Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T11:05:52.8773662Z               "line": 129
2026-06-13T11:05:52.8773767Z             },
2026-06-13T11:05:52.8773873Z             {
2026-06-13T11:05:52.8774039Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-13T11:05:52.8774145Z               "line": 200
2026-06-13T11:05:52.8774255Z             }
2026-06-13T11:05:52.8774358Z           ]
2026-06-13T11:05:52.8774464Z         },
2026-06-13T11:05:52.8774573Z         "unit": {
2026-06-13T11:05:52.8774693Z           "complete": true,
2026-06-13T11:05:52.8774817Z           "evidence": [
2026-06-13T11:05:52.8774921Z             {
2026-06-13T11:05:52.8775070Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T11:05:52.8775175Z               "line": 313
2026-06-13T11:05:52.8775279Z             },
2026-06-13T11:05:52.8775381Z             {
2026-06-13T11:05:52.8775527Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T11:05:52.8775654Z               "line": 345
2026-06-13T11:05:52.8775755Z             },
2026-06-13T11:05:52.8775862Z             {
2026-06-13T11:05:52.8775995Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T11:05:52.8776101Z               "line": 366
2026-06-13T11:05:52.8776210Z             },
2026-06-13T11:05:52.8776315Z             {
2026-06-13T11:05:52.8776468Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-13T11:05:52.8776577Z               "line": 254
2026-06-13T11:05:52.8776688Z             },
2026-06-13T11:05:52.8776797Z             {
2026-06-13T11:05:52.8777064Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-13T11:05:52.8777187Z               "line": 289
2026-06-13T11:05:52.8777298Z             },
2026-06-13T11:05:52.8777407Z             {
2026-06-13T11:05:52.8777555Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-13T11:05:52.8777675Z               "line": 230
2026-06-13T11:05:52.8777884Z             },
2026-06-13T11:05:52.8777995Z             {
2026-06-13T11:05:52.8778151Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8778266Z               "line": 488
2026-06-13T11:05:52.8778380Z             },
2026-06-13T11:05:52.8778489Z             {
2026-06-13T11:05:52.8778637Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.8778746Z               "line": 518
2026-06-13T11:05:52.8778865Z             }
2026-06-13T11:05:52.8779061Z           ]
2026-06-13T11:05:52.8779160Z         }
2026-06-13T11:05:52.8779267Z       }
2026-06-13T11:05:52.8779371Z     },
2026-06-13T11:05:52.8779475Z     {
2026-06-13T11:05:52.8779676Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-13T11:05:52.8781580Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-13T11:05:52.8781708Z       "requiredStages": [
2026-06-13T11:05:52.8781814Z         "doc",
2026-06-13T11:05:52.8781928Z         "impl",
2026-06-13T11:05:52.8782041Z         "unit"
2026-06-13T11:05:52.8782148Z       ],
2026-06-13T11:05:52.8782252Z       "stages": {
2026-06-13T11:05:52.8782361Z         "doc": {
2026-06-13T11:05:52.8782491Z           "complete": true,
2026-06-13T11:05:52.8782609Z           "evidence": [
2026-06-13T11:05:52.8782715Z             {
2026-06-13T11:05:52.8782862Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8782967Z               "line": 300
2026-06-13T11:05:52.8783073Z             }
2026-06-13T11:05:52.8783182Z           ]
2026-06-13T11:05:52.8783310Z         },
2026-06-13T11:05:52.8783417Z         "impl": {
2026-06-13T11:05:52.8783525Z           "complete": true,
2026-06-13T11:05:52.8783652Z           "evidence": [
2026-06-13T11:05:52.8783762Z             {
2026-06-13T11:05:52.8783945Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-13T11:05:52.8784065Z               "line": 33
2026-06-13T11:05:52.8784185Z             },
2026-06-13T11:05:52.8784284Z             {
2026-06-13T11:05:52.8784457Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-13T11:05:52.8784579Z               "line": 39
2026-06-13T11:05:52.8784691Z             }
2026-06-13T11:05:52.8784800Z           ]
2026-06-13T11:05:52.8784908Z         },
2026-06-13T11:05:52.8785029Z         "int": {
2026-06-13T11:05:52.8785133Z           "complete": false,
2026-06-13T11:05:52.8785248Z           "evidence": []
2026-06-13T11:05:52.8785354Z         },
2026-06-13T11:05:52.8785457Z         "unit": {
2026-06-13T11:05:52.8785582Z           "complete": true,
2026-06-13T11:05:52.8785702Z           "evidence": [
2026-06-13T11:05:52.8785810Z             {
2026-06-13T11:05:52.8785969Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-13T11:05:52.8786087Z               "line": 95
2026-06-13T11:05:52.8786191Z             }
2026-06-13T11:05:52.8786296Z           ]
2026-06-13T11:05:52.8786413Z         }
2026-06-13T11:05:52.8786517Z       }
2026-06-13T11:05:52.8786627Z     },
2026-06-13T11:05:52.8786728Z     {
2026-06-13T11:05:52.8786880Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-13T11:05:52.8787214Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-13T11:05:52.8787328Z       "requiredStages": [
2026-06-13T11:05:52.8787442Z         "impl",
2026-06-13T11:05:52.8787548Z         "unit"
2026-06-13T11:05:52.8787653Z       ],
2026-06-13T11:05:52.8787761Z       "stages": {
2026-06-13T11:05:52.8787882Z         "doc": {
2026-06-13T11:05:52.8788005Z           "complete": false,
2026-06-13T11:05:52.8788216Z           "evidence": []
2026-06-13T11:05:52.8788324Z         },
2026-06-13T11:05:52.8788430Z         "impl": {
2026-06-13T11:05:52.8788555Z           "complete": true,
2026-06-13T11:05:52.8788667Z           "evidence": [
2026-06-13T11:05:52.8788774Z             {
2026-06-13T11:05:52.8789034Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8789192Z               "line": 62
2026-06-13T11:05:52.8789302Z             },
2026-06-13T11:05:52.8789406Z             {
2026-06-13T11:05:52.8789568Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8789692Z               "line": 71
2026-06-13T11:05:52.8789808Z             },
2026-06-13T11:05:52.8789917Z             {
2026-06-13T11:05:52.8790059Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8790184Z               "line": 80
2026-06-13T11:05:52.8790293Z             },
2026-06-13T11:05:52.8790408Z             {
2026-06-13T11:05:52.8790555Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8790679Z               "line": 88
2026-06-13T11:05:52.8790785Z             },
2026-06-13T11:05:52.8790888Z             {
2026-06-13T11:05:52.8791037Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8791152Z               "line": 33
2026-06-13T11:05:52.8791255Z             },
2026-06-13T11:05:52.8791355Z             {
2026-06-13T11:05:52.8791506Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8791624Z               "line": 65
2026-06-13T11:05:52.8791730Z             },
2026-06-13T11:05:52.8791840Z             {
2026-06-13T11:05:52.8791992Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8792117Z               "line": 74
2026-06-13T11:05:52.8792220Z             },
2026-06-13T11:05:52.8792331Z             {
2026-06-13T11:05:52.8792479Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8792583Z               "line": 93
2026-06-13T11:05:52.8792689Z             },
2026-06-13T11:05:52.8792798Z             {
2026-06-13T11:05:52.8792936Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8793046Z               "line": 102
2026-06-13T11:05:52.8793155Z             },
2026-06-13T11:05:52.8793260Z             {
2026-06-13T11:05:52.8793394Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8793518Z               "line": 111
2026-06-13T11:05:52.8793619Z             },
2026-06-13T11:05:52.8793723Z             {
2026-06-13T11:05:52.8793861Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8793968Z               "line": 122
2026-06-13T11:05:52.8794089Z             },
2026-06-13T11:05:52.8794198Z             {
2026-06-13T11:05:52.8794346Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8794459Z               "line": 140
2026-06-13T11:05:52.8794568Z             },
2026-06-13T11:05:52.8794674Z             {
2026-06-13T11:05:52.8794816Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8794936Z               "line": 149
2026-06-13T11:05:52.8795046Z             },
2026-06-13T11:05:52.8795149Z             {
2026-06-13T11:05:52.8795289Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8795403Z               "line": 158
2026-06-13T11:05:52.8795508Z             },
2026-06-13T11:05:52.8795613Z             {
2026-06-13T11:05:52.8795760Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8795876Z               "line": 169
2026-06-13T11:05:52.8795989Z             },
2026-06-13T11:05:52.8796103Z             {
2026-06-13T11:05:52.8796428Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8796553Z               "line": 177
2026-06-13T11:05:52.8796656Z             },
2026-06-13T11:05:52.8796770Z             {
2026-06-13T11:05:52.8796917Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8797034Z               "line": 186
2026-06-13T11:05:52.8797145Z             },
2026-06-13T11:05:52.8797354Z             {
2026-06-13T11:05:52.8797498Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8797613Z               "line": 195
2026-06-13T11:05:52.8797726Z             },
2026-06-13T11:05:52.8797832Z             {
2026-06-13T11:05:52.8797979Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8798094Z               "line": 204
2026-06-13T11:05:52.8798208Z             },
2026-06-13T11:05:52.8798322Z             {
2026-06-13T11:05:52.8798461Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8798580Z               "line": 216
2026-06-13T11:05:52.8798699Z             },
2026-06-13T11:05:52.8798810Z             {
2026-06-13T11:05:52.8799019Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8799143Z               "line": 223
2026-06-13T11:05:52.8799252Z             },
2026-06-13T11:05:52.8799358Z             {
2026-06-13T11:05:52.8799505Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8799623Z               "line": 232
2026-06-13T11:05:52.8799752Z             },
2026-06-13T11:05:52.8799867Z             {
2026-06-13T11:05:52.8800009Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8800128Z               "line": 239
2026-06-13T11:05:52.8800237Z             },
2026-06-13T11:05:52.8800353Z             {
2026-06-13T11:05:52.8800492Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8800615Z               "line": 306
2026-06-13T11:05:52.8800725Z             },
2026-06-13T11:05:52.8800835Z             {
2026-06-13T11:05:52.8800983Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8801096Z               "line": 318
2026-06-13T11:05:52.8801206Z             },
2026-06-13T11:05:52.8801312Z             {
2026-06-13T11:05:52.8801463Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8801583Z               "line": 405
2026-06-13T11:05:52.8801689Z             }
2026-06-13T11:05:52.8801811Z           ]
2026-06-13T11:05:52.8801920Z         },
2026-06-13T11:05:52.8802030Z         "int": {
2026-06-13T11:05:52.8802147Z           "complete": false,
2026-06-13T11:05:52.8802266Z           "evidence": []
2026-06-13T11:05:52.8802377Z         },
2026-06-13T11:05:52.8802485Z         "unit": {
2026-06-13T11:05:52.8802609Z           "complete": true,
2026-06-13T11:05:52.8802720Z           "evidence": [
2026-06-13T11:05:52.8802833Z             {
2026-06-13T11:05:52.8802972Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8803090Z               "line": 487
2026-06-13T11:05:52.8803206Z             },
2026-06-13T11:05:52.8803315Z             {
2026-06-13T11:05:52.8803462Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8803573Z               "line": 528
2026-06-13T11:05:52.8803687Z             },
2026-06-13T11:05:52.8803792Z             {
2026-06-13T11:05:52.8803940Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8804059Z               "line": 541
2026-06-13T11:05:52.8804174Z             },
2026-06-13T11:05:52.8804283Z             {
2026-06-13T11:05:52.8804421Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8804542Z               "line": 627
2026-06-13T11:05:52.8804645Z             }
2026-06-13T11:05:52.8804758Z           ]
2026-06-13T11:05:52.8804869Z         }
2026-06-13T11:05:52.8804976Z       }
2026-06-13T11:05:52.8805085Z     },
2026-06-13T11:05:52.8805186Z     {
2026-06-13T11:05:52.8805329Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-13T11:05:52.8805662Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-13T11:05:52.8805787Z       "requiredStages": [
2026-06-13T11:05:52.8805906Z         "impl",
2026-06-13T11:05:52.8806005Z         "unit"
2026-06-13T11:05:52.8806111Z       ],
2026-06-13T11:05:52.8806225Z       "stages": {
2026-06-13T11:05:52.8806340Z         "doc": {
2026-06-13T11:05:52.8806460Z           "complete": false,
2026-06-13T11:05:52.8806673Z           "evidence": []
2026-06-13T11:05:52.8806789Z         },
2026-06-13T11:05:52.8806897Z         "impl": {
2026-06-13T11:05:52.8807022Z           "complete": true,
2026-06-13T11:05:52.8807136Z           "evidence": [
2026-06-13T11:05:52.8807254Z             {
2026-06-13T11:05:52.8807387Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:05:52.8807515Z               "line": 143
2026-06-13T11:05:52.8807628Z             },
2026-06-13T11:05:52.8807734Z             {
2026-06-13T11:05:52.8807891Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.8808005Z               "line": 148
2026-06-13T11:05:52.8808120Z             }
2026-06-13T11:05:52.8808219Z           ]
2026-06-13T11:05:52.8808320Z         },
2026-06-13T11:05:52.8808444Z         "int": {
2026-06-13T11:05:52.8808553Z           "complete": false,
2026-06-13T11:05:52.8808669Z           "evidence": []
2026-06-13T11:05:52.8808778Z         },
2026-06-13T11:05:52.8808896Z         "unit": {
2026-06-13T11:05:52.8809088Z           "complete": true,
2026-06-13T11:05:52.8809202Z           "evidence": [
2026-06-13T11:05:52.8809318Z             {
2026-06-13T11:05:52.8809488Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:05:52.8809608Z               "line": 264
2026-06-13T11:05:52.8809717Z             },
2026-06-13T11:05:52.8809832Z             {
2026-06-13T11:05:52.8809990Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.8810140Z               "line": 623
2026-06-13T11:05:52.8810250Z             },
2026-06-13T11:05:52.8810351Z             {
2026-06-13T11:05:52.8810507Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.8810622Z               "line": 636
2026-06-13T11:05:52.8810737Z             }
2026-06-13T11:05:52.8810845Z           ]
2026-06-13T11:05:52.8810956Z         }
2026-06-13T11:05:52.8811066Z       }
2026-06-13T11:05:52.8811165Z     },
2026-06-13T11:05:52.8811276Z     {
2026-06-13T11:05:52.8811414Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-13T11:05:52.8811581Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-13T11:05:52.8811699Z       "requiredStages": [
2026-06-13T11:05:52.8811814Z         "impl",
2026-06-13T11:05:52.8811920Z         "unit"
2026-06-13T11:05:52.8812028Z       ],
2026-06-13T11:05:52.8812134Z       "stages": {
2026-06-13T11:05:52.8812244Z         "doc": {
2026-06-13T11:05:52.8812361Z           "complete": false,
2026-06-13T11:05:52.8812480Z           "evidence": []
2026-06-13T11:05:52.8812585Z         },
2026-06-13T11:05:52.8812702Z         "impl": {
2026-06-13T11:05:52.8812812Z           "complete": true,
2026-06-13T11:05:52.8812922Z           "evidence": [
2026-06-13T11:05:52.8813031Z             {
2026-06-13T11:05:52.8813179Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.8813294Z               "line": 114
2026-06-13T11:05:52.8813398Z             },
2026-06-13T11:05:52.8813519Z             {
2026-06-13T11:05:52.8813679Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.8813795Z               "line": 481
2026-06-13T11:05:52.8813894Z             }
2026-06-13T11:05:52.8814003Z           ]
2026-06-13T11:05:52.8814105Z         },
2026-06-13T11:05:52.8814218Z         "int": {
2026-06-13T11:05:52.8814333Z           "complete": false,
2026-06-13T11:05:52.8814448Z           "evidence": []
2026-06-13T11:05:52.8814566Z         },
2026-06-13T11:05:52.8814666Z         "unit": {
2026-06-13T11:05:52.8814792Z           "complete": true,
2026-06-13T11:05:52.8814900Z           "evidence": [
2026-06-13T11:05:52.8815010Z             {
2026-06-13T11:05:52.8815271Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.8815385Z               "line": 515
2026-06-13T11:05:52.8815499Z             }
2026-06-13T11:05:52.8815602Z           ]
2026-06-13T11:05:52.8815712Z         }
2026-06-13T11:05:52.8815818Z       }
2026-06-13T11:05:52.8815931Z     },
2026-06-13T11:05:52.8816037Z     {
2026-06-13T11:05:52.8816180Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-13T11:05:52.8816471Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-13T11:05:52.8816585Z       "requiredStages": [
2026-06-13T11:05:52.8816686Z         "impl",
2026-06-13T11:05:52.8816795Z         "unit"
2026-06-13T11:05:52.8816914Z       ],
2026-06-13T11:05:52.8817030Z       "stages": {
2026-06-13T11:05:52.8817128Z         "doc": {
2026-06-13T11:05:52.8817257Z           "complete": false,
2026-06-13T11:05:52.8817368Z           "evidence": []
2026-06-13T11:05:52.8817476Z         },
2026-06-13T11:05:52.8817587Z         "impl": {
2026-06-13T11:05:52.8817711Z           "complete": true,
2026-06-13T11:05:52.8817829Z           "evidence": [
2026-06-13T11:05:52.8817938Z             {
2026-06-13T11:05:52.8818103Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8818216Z               "line": 502
2026-06-13T11:05:52.8818327Z             },
2026-06-13T11:05:52.8818436Z             {
2026-06-13T11:05:52.8818584Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:05:52.8818699Z               "line": 28
2026-06-13T11:05:52.8818803Z             }
2026-06-13T11:05:52.8818914Z           ]
2026-06-13T11:05:52.8819080Z         },
2026-06-13T11:05:52.8819200Z         "int": {
2026-06-13T11:05:52.8819309Z           "complete": false,
2026-06-13T11:05:52.8819433Z           "evidence": []
2026-06-13T11:05:52.8819548Z         },
2026-06-13T11:05:52.8819657Z         "unit": {
2026-06-13T11:05:52.8819776Z           "complete": true,
2026-06-13T11:05:52.8819887Z           "evidence": [
2026-06-13T11:05:52.8820005Z             {
2026-06-13T11:05:52.8820149Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:05:52.8820277Z               "line": 229
2026-06-13T11:05:52.8820382Z             }
2026-06-13T11:05:52.8820483Z           ]
2026-06-13T11:05:52.8820588Z         }
2026-06-13T11:05:52.8820696Z       }
2026-06-13T11:05:52.8820800Z     },
2026-06-13T11:05:52.8820906Z     {
2026-06-13T11:05:52.8821048Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-13T11:05:52.8821226Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-13T11:05:52.8821339Z       "requiredStages": [],
2026-06-13T11:05:52.8821454Z       "stages": {
2026-06-13T11:05:52.8821564Z         "doc": {
2026-06-13T11:05:52.8821682Z           "complete": false,
2026-06-13T11:05:52.8821798Z           "evidence": []
2026-06-13T11:05:52.8821912Z         },
2026-06-13T11:05:52.8822030Z         "impl": {
2026-06-13T11:05:52.8822136Z           "complete": false,
2026-06-13T11:05:52.8822259Z           "evidence": []
2026-06-13T11:05:52.8822364Z         },
2026-06-13T11:05:52.8822475Z         "int": {
2026-06-13T11:05:52.8822592Z           "complete": false,
2026-06-13T11:05:52.8822717Z           "evidence": []
2026-06-13T11:05:52.8822828Z         },
2026-06-13T11:05:52.8822931Z         "unit": {
2026-06-13T11:05:52.8823055Z           "complete": false,
2026-06-13T11:05:52.8823169Z           "evidence": []
2026-06-13T11:05:52.8823272Z         }
2026-06-13T11:05:52.8823377Z       }
2026-06-13T11:05:52.8823482Z     },
2026-06-13T11:05:52.8823581Z     {
2026-06-13T11:05:52.8823720Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-13T11:05:52.8823896Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-13T11:05:52.8824016Z       "requiredStages": [
2026-06-13T11:05:52.8824126Z         "impl",
2026-06-13T11:05:52.8824244Z         "unit"
2026-06-13T11:05:52.8824355Z       ],
2026-06-13T11:05:52.8824464Z       "stages": {
2026-06-13T11:05:52.8824568Z         "doc": {
2026-06-13T11:05:52.8824693Z           "complete": false,
2026-06-13T11:05:52.8824912Z           "evidence": []
2026-06-13T11:05:52.8825028Z         },
2026-06-13T11:05:52.8825135Z         "impl": {
2026-06-13T11:05:52.8825260Z           "complete": true,
2026-06-13T11:05:52.8825376Z           "evidence": [
2026-06-13T11:05:52.8825479Z             {
2026-06-13T11:05:52.8825624Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T11:05:52.8825733Z               "line": 19
2026-06-13T11:05:52.8825960Z             },
2026-06-13T11:05:52.8826064Z             {
2026-06-13T11:05:52.8826219Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.8826340Z               "line": 347
2026-06-13T11:05:52.8826444Z             },
2026-06-13T11:05:52.8826548Z             {
2026-06-13T11:05:52.8826697Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.8826820Z               "line": 383
2026-06-13T11:05:52.8826922Z             },
2026-06-13T11:05:52.8827031Z             {
2026-06-13T11:05:52.8827183Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:05:52.8827289Z               "line": 15
2026-06-13T11:05:52.8827407Z             },
2026-06-13T11:05:52.8827517Z             {
2026-06-13T11:05:52.8827664Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:05:52.8827784Z               "line": 48
2026-06-13T11:05:52.8827890Z             },
2026-06-13T11:05:52.8827998Z             {
2026-06-13T11:05:52.8828137Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:05:52.8828257Z               "line": 119
2026-06-13T11:05:52.8828360Z             },
2026-06-13T11:05:52.8828474Z             {
2026-06-13T11:05:52.8828611Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8828729Z               "line": 3075
2026-06-13T11:05:52.8828844Z             }
2026-06-13T11:05:52.8829020Z           ]
2026-06-13T11:05:52.8829139Z         },
2026-06-13T11:05:52.8829250Z         "int": {
2026-06-13T11:05:52.8829373Z           "complete": false,
2026-06-13T11:05:52.8829489Z           "evidence": []
2026-06-13T11:05:52.8829612Z         },
2026-06-13T11:05:52.8829725Z         "unit": {
2026-06-13T11:05:52.8829841Z           "complete": true,
2026-06-13T11:05:52.8829960Z           "evidence": [
2026-06-13T11:05:52.8830069Z             {
2026-06-13T11:05:52.8830217Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.8830332Z               "line": 496
2026-06-13T11:05:52.8830452Z             },
2026-06-13T11:05:52.8830565Z             {
2026-06-13T11:05:52.8830704Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:05:52.8830823Z               "line": 165
2026-06-13T11:05:52.8830932Z             },
2026-06-13T11:05:52.8831043Z             {
2026-06-13T11:05:52.8831185Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:05:52.8831303Z               "line": 175
2026-06-13T11:05:52.8831414Z             }
2026-06-13T11:05:52.8831519Z           ]
2026-06-13T11:05:52.8831636Z         }
2026-06-13T11:05:52.8831742Z       }
2026-06-13T11:05:52.8831848Z     },
2026-06-13T11:05:52.8831961Z     {
2026-06-13T11:05:52.8832110Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-13T11:05:52.8833115Z       "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-13T11:05:52.8833239Z       "requiredStages": [
2026-06-13T11:05:52.8833350Z         "impl",
2026-06-13T11:05:52.8833458Z         "unit"
2026-06-13T11:05:52.8833572Z       ],
2026-06-13T11:05:52.8833686Z       "stages": {
2026-06-13T11:05:52.8833794Z         "doc": {
2026-06-13T11:05:52.8833917Z           "complete": false,
2026-06-13T11:05:52.8834028Z           "evidence": []
2026-06-13T11:05:52.8834132Z         },
2026-06-13T11:05:52.8834237Z         "impl": {
2026-06-13T11:05:52.8834357Z           "complete": true,
2026-06-13T11:05:52.8834480Z           "evidence": [
2026-06-13T11:05:52.8834757Z             {
2026-06-13T11:05:52.8834901Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8835019Z               "line": 2817
2026-06-13T11:05:52.8835133Z             },
2026-06-13T11:05:52.8835239Z             {
2026-06-13T11:05:52.8835387Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:05:52.8835501Z               "line": 103
2026-06-13T11:05:52.8835705Z             },
2026-06-13T11:05:52.8835821Z             {
2026-06-13T11:05:52.8835959Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:05:52.8836082Z               "line": 135
2026-06-13T11:05:52.8836189Z             }
2026-06-13T11:05:52.8836298Z           ]
2026-06-13T11:05:52.8836411Z         },
2026-06-13T11:05:52.8836515Z         "int": {
2026-06-13T11:05:52.8836638Z           "complete": false,
2026-06-13T11:05:52.8836751Z           "evidence": []
2026-06-13T11:05:52.8836861Z         },
2026-06-13T11:05:52.8836967Z         "unit": {
2026-06-13T11:05:52.8837099Z           "complete": true,
2026-06-13T11:05:52.8837220Z           "evidence": [
2026-06-13T11:05:52.8837328Z             {
2026-06-13T11:05:52.8837472Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:05:52.8837586Z               "line": 258
2026-06-13T11:05:52.8837695Z             },
2026-06-13T11:05:52.8837801Z             {
2026-06-13T11:05:52.8837944Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:05:52.8838067Z               "line": 283
2026-06-13T11:05:52.8838173Z             },
2026-06-13T11:05:52.8838287Z             {
2026-06-13T11:05:52.8838421Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:05:52.8838540Z               "line": 296
2026-06-13T11:05:52.8838649Z             },
2026-06-13T11:05:52.8838760Z             {
2026-06-13T11:05:52.8838901Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:05:52.8839092Z               "line": 308
2026-06-13T11:05:52.8839195Z             }
2026-06-13T11:05:52.8839304Z           ]
2026-06-13T11:05:52.8839419Z         }
2026-06-13T11:05:52.8839519Z       }
2026-06-13T11:05:52.8839633Z     },
2026-06-13T11:05:52.8839739Z     {
2026-06-13T11:05:52.8839876Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-13T11:05:52.8840054Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-13T11:05:52.8844406Z       "requiredStages": [
2026-06-13T11:05:52.8844579Z         "impl",
2026-06-13T11:05:52.8844683Z         "unit"
2026-06-13T11:05:52.8844788Z       ],
2026-06-13T11:05:52.8844908Z       "stages": {
2026-06-13T11:05:52.8845017Z         "doc": {
2026-06-13T11:05:52.8845146Z           "complete": false,
2026-06-13T11:05:52.8845251Z           "evidence": []
2026-06-13T11:05:52.8845369Z         },
2026-06-13T11:05:52.8845471Z         "impl": {
2026-06-13T11:05:52.8845603Z           "complete": true,
2026-06-13T11:05:52.8845722Z           "evidence": [
2026-06-13T11:05:52.8845828Z             {
2026-06-13T11:05:52.8845994Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:05:52.8846115Z               "line": 35
2026-06-13T11:05:52.8846228Z             }
2026-06-13T11:05:52.8846337Z           ]
2026-06-13T11:05:52.8846448Z         },
2026-06-13T11:05:52.8846566Z         "int": {
2026-06-13T11:05:52.8846686Z           "complete": false,
2026-06-13T11:05:52.8846806Z           "evidence": []
2026-06-13T11:05:52.8846909Z         },
2026-06-13T11:05:52.8847037Z         "unit": {
2026-06-13T11:05:52.8847156Z           "complete": true,
2026-06-13T11:05:52.8847278Z           "evidence": [
2026-06-13T11:05:52.8847388Z             {
2026-06-13T11:05:52.8847536Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:05:52.8847655Z               "line": 220
2026-06-13T11:05:52.8847766Z             }
2026-06-13T11:05:52.8847875Z           ]
2026-06-13T11:05:52.8847984Z         }
2026-06-13T11:05:52.8848090Z       }
2026-06-13T11:05:52.8848199Z     },
2026-06-13T11:05:52.8848303Z     {
2026-06-13T11:05:52.8848447Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-13T11:05:52.8848894Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-13T11:05:52.8849105Z       "requiredStages": [
2026-06-13T11:05:52.8849214Z         "impl",
2026-06-13T11:05:52.8849330Z         "unit"
2026-06-13T11:05:52.8849443Z       ],
2026-06-13T11:05:52.8849552Z       "stages": {
2026-06-13T11:05:52.8849661Z         "doc": {
2026-06-13T11:05:52.8849897Z           "complete": false,
2026-06-13T11:05:52.8850012Z           "evidence": []
2026-06-13T11:05:52.8850117Z         },
2026-06-13T11:05:52.8850226Z         "impl": {
2026-06-13T11:05:52.8850346Z           "complete": true,
2026-06-13T11:05:52.8850455Z           "evidence": [
2026-06-13T11:05:52.8850560Z             {
2026-06-13T11:05:52.8850723Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:52.8850851Z               "line": 405
2026-06-13T11:05:52.8850957Z             },
2026-06-13T11:05:52.8851071Z             {
2026-06-13T11:05:52.8851228Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:52.8851333Z               "line": 409
2026-06-13T11:05:52.8851447Z             },
2026-06-13T11:05:52.8851548Z             {
2026-06-13T11:05:52.8851704Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:05:52.8851819Z               "line": 156
2026-06-13T11:05:52.8851930Z             }
2026-06-13T11:05:52.8852057Z           ]
2026-06-13T11:05:52.8852159Z         },
2026-06-13T11:05:52.8852273Z         "int": {
2026-06-13T11:05:52.8852390Z           "complete": false,
2026-06-13T11:05:52.8852543Z           "evidence": []
2026-06-13T11:05:52.8852653Z         },
2026-06-13T11:05:52.8852771Z         "unit": {
2026-06-13T11:05:52.8852887Z           "complete": true,
2026-06-13T11:05:52.8853000Z           "evidence": [
2026-06-13T11:05:52.8853115Z             {
2026-06-13T11:05:52.8853263Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:52.8853382Z               "line": 812
2026-06-13T11:05:52.8853498Z             },
2026-06-13T11:05:52.8853616Z             {
2026-06-13T11:05:52.8853764Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:52.8853874Z               "line": 826
2026-06-13T11:05:52.8853992Z             },
2026-06-13T11:05:52.8854098Z             {
2026-06-13T11:05:52.8854249Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:52.8854374Z               "line": 845
2026-06-13T11:05:52.8854484Z             },
2026-06-13T11:05:52.8854598Z             {
2026-06-13T11:05:52.8854740Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:52.8854858Z               "line": 862
2026-06-13T11:05:52.8854966Z             },
2026-06-13T11:05:52.8855076Z             {
2026-06-13T11:05:52.8855243Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T11:05:52.8855353Z               "line": 441
2026-06-13T11:05:52.8855468Z             }
2026-06-13T11:05:52.8855572Z           ]
2026-06-13T11:05:52.8855686Z         }
2026-06-13T11:05:52.8855797Z       }
2026-06-13T11:05:52.8855910Z     },
2026-06-13T11:05:52.8856021Z     {
2026-06-13T11:05:52.8856150Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-13T11:05:52.8857093Z       "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-13T11:05:52.8857217Z       "requiredStages": [
2026-06-13T11:05:52.8857333Z         "doc",
2026-06-13T11:05:52.8857441Z         "impl",
2026-06-13T11:05:52.8857554Z         "unit"
2026-06-13T11:05:52.8857664Z       ],
2026-06-13T11:05:52.8857772Z       "stages": {
2026-06-13T11:05:52.8857881Z         "doc": {
2026-06-13T11:05:52.8858001Z           "complete": true,
2026-06-13T11:05:52.8858115Z           "evidence": [
2026-06-13T11:05:52.8858220Z             {
2026-06-13T11:05:52.8858377Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:05:52.8858602Z               "line": 352
2026-06-13T11:05:52.8858711Z             }
2026-06-13T11:05:52.8858820Z           ]
2026-06-13T11:05:52.8858926Z         },
2026-06-13T11:05:52.8859121Z         "impl": {
2026-06-13T11:05:52.8859237Z           "complete": true,
2026-06-13T11:05:52.8859355Z           "evidence": [
2026-06-13T11:05:52.8859464Z             {
2026-06-13T11:05:52.8859716Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:05:52.8859837Z               "line": 85
2026-06-13T11:05:52.8859942Z             },
2026-06-13T11:05:52.8860054Z             {
2026-06-13T11:05:52.8860202Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T11:05:52.8860320Z               "line": 99
2026-06-13T11:05:52.8860429Z             },
2026-06-13T11:05:52.8860534Z             {
2026-06-13T11:05:52.8860691Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.8860801Z               "line": 55
2026-06-13T11:05:52.8860916Z             },
2026-06-13T11:05:52.8861029Z             {
2026-06-13T11:05:52.8861178Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:05:52.8861297Z               "line": 31
2026-06-13T11:05:52.8861401Z             },
2026-06-13T11:05:52.8861512Z             {
2026-06-13T11:05:52.8861659Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:05:52.8861774Z               "line": 189
2026-06-13T11:05:52.8861898Z             },
2026-06-13T11:05:52.8862002Z             {
2026-06-13T11:05:52.8862156Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:05:52.8862269Z               "line": 95
2026-06-13T11:05:52.8862384Z             },
2026-06-13T11:05:52.8862481Z             {
2026-06-13T11:05:52.8862641Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:52.8862757Z               "line": 29
2026-06-13T11:05:52.8862880Z             },
2026-06-13T11:05:52.8862998Z             {
2026-06-13T11:05:52.8863146Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:52.8863265Z               "line": 104
2026-06-13T11:05:52.8863370Z             },
2026-06-13T11:05:52.8863485Z             {
2026-06-13T11:05:52.8863646Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8863757Z               "line": 208
2026-06-13T11:05:52.8863866Z             },
2026-06-13T11:05:52.8863970Z             {
2026-06-13T11:05:52.8864114Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T11:05:52.8864218Z               "line": 28
2026-06-13T11:05:52.8864324Z             },
2026-06-13T11:05:52.8864429Z             {
2026-06-13T11:05:52.8864562Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T11:05:52.8864682Z               "line": 74
2026-06-13T11:05:52.8864791Z             },
2026-06-13T11:05:52.8864891Z             {
2026-06-13T11:05:52.8865045Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T11:05:52.8865167Z               "line": 32
2026-06-13T11:05:52.8865276Z             },
2026-06-13T11:05:52.8865381Z             {
2026-06-13T11:05:52.8865531Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.8865641Z               "line": 40
2026-06-13T11:05:52.8865752Z             },
2026-06-13T11:05:52.8865851Z             {
2026-06-13T11:05:52.8865999Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.8866123Z               "line": 184
2026-06-13T11:05:52.8866232Z             },
2026-06-13T11:05:52.8866343Z             {
2026-06-13T11:05:52.8866485Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:05:52.8866610Z               "line": 61
2026-06-13T11:05:52.8866714Z             },
2026-06-13T11:05:52.8866833Z             {
2026-06-13T11:05:52.8866972Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:05:52.8867090Z               "line": 131
2026-06-13T11:05:52.8867206Z             },
2026-06-13T11:05:52.8867306Z             {
2026-06-13T11:05:52.8867550Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:05:52.8867672Z               "line": 223
2026-06-13T11:05:52.8867782Z             },
2026-06-13T11:05:52.8867898Z             {
2026-06-13T11:05:52.8868039Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T11:05:52.8868153Z               "line": 37
2026-06-13T11:05:52.8868257Z             },
2026-06-13T11:05:52.8868361Z             {
2026-06-13T11:05:52.8868614Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:05:52.8868718Z               "line": 38
2026-06-13T11:05:52.8868823Z             },
2026-06-13T11:05:52.8868928Z             {
2026-06-13T11:05:52.8869148Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T11:05:52.8869262Z               "line": 36
2026-06-13T11:05:52.8869371Z             },
2026-06-13T11:05:52.8869477Z             {
2026-06-13T11:05:52.8869609Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T11:05:52.8869729Z               "line": 40
2026-06-13T11:05:52.8869835Z             }
2026-06-13T11:05:52.8869948Z           ]
2026-06-13T11:05:52.8870048Z         },
2026-06-13T11:05:52.8870154Z         "int": {
2026-06-13T11:05:52.8870276Z           "complete": false,
2026-06-13T11:05:52.8870388Z           "evidence": []
2026-06-13T11:05:52.8870497Z         },
2026-06-13T11:05:52.8870605Z         "unit": {
2026-06-13T11:05:52.8870729Z           "complete": true,
2026-06-13T11:05:52.8870843Z           "evidence": [
2026-06-13T11:05:52.8870955Z             {
2026-06-13T11:05:52.8871103Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:05:52.8871214Z               "line": 212
2026-06-13T11:05:52.8871318Z             },
2026-06-13T11:05:52.8871453Z             {
2026-06-13T11:05:52.8871690Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-13T11:05:52.8871843Z               "line": 136
2026-06-13T11:05:52.8872010Z             },
2026-06-13T11:05:52.8872206Z             {
2026-06-13T11:05:52.8872481Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T11:05:52.8872678Z               "line": 685
2026-06-13T11:05:52.8872873Z             },
2026-06-13T11:05:52.8873074Z             {
2026-06-13T11:05:52.8873308Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T11:05:52.8873510Z               "line": 224
2026-06-13T11:05:52.8873711Z             },
2026-06-13T11:05:52.8873892Z             {
2026-06-13T11:05:52.8874139Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-13T11:05:52.8874336Z               "line": 206
2026-06-13T11:05:52.8874531Z             },
2026-06-13T11:05:52.8874731Z             {
2026-06-13T11:05:52.8874999Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T11:05:52.8875204Z               "line": 112
2026-06-13T11:05:52.8875389Z             },
2026-06-13T11:05:52.8875586Z             {
2026-06-13T11:05:52.8875836Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T11:05:52.8876044Z               "line": 157
2026-06-13T11:05:52.8876235Z             },
2026-06-13T11:05:52.8876448Z             {
2026-06-13T11:05:52.8876711Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:05:52.8876921Z               "line": 215
2026-06-13T11:05:52.8877122Z             },
2026-06-13T11:05:52.8877312Z             {
2026-06-13T11:05:52.8877579Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T11:05:52.8877805Z               "line": 141
2026-06-13T11:05:52.8877985Z             },
2026-06-13T11:05:52.8878181Z             {
2026-06-13T11:05:52.8878410Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T11:05:52.8878608Z               "line": 162
2026-06-13T11:05:52.8878790Z             }
2026-06-13T11:05:52.8879054Z           ]
2026-06-13T11:05:52.8879230Z         }
2026-06-13T11:05:52.8879403Z       }
2026-06-13T11:05:52.8879612Z     },
2026-06-13T11:05:52.8879784Z     {
2026-06-13T11:05:52.8880042Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-13T11:05:52.8880551Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-13T11:05:52.8880771Z       "requiredStages": [
2026-06-13T11:05:52.8880957Z         "impl",
2026-06-13T11:05:52.8881133Z         "unit"
2026-06-13T11:05:52.8881303Z       ],
2026-06-13T11:05:52.8881454Z       "stages": {
2026-06-13T11:05:52.8881601Z         "doc": {
2026-06-13T11:05:52.8881760Z           "complete": false,
2026-06-13T11:05:52.8881925Z           "evidence": []
2026-06-13T11:05:52.8882221Z         },
2026-06-13T11:05:52.8882365Z         "impl": {
2026-06-13T11:05:52.8882531Z           "complete": true,
2026-06-13T11:05:52.8882680Z           "evidence": [
2026-06-13T11:05:52.8882870Z             {
2026-06-13T11:05:52.8883118Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.8883323Z               "line": 95
2026-06-13T11:05:52.8883514Z             },
2026-06-13T11:05:52.8883699Z             {
2026-06-13T11:05:52.8883949Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.8884161Z               "line": 102
2026-06-13T11:05:52.8884376Z             }
2026-06-13T11:05:52.8884558Z           ]
2026-06-13T11:05:52.8884757Z         },
2026-06-13T11:05:52.8884953Z         "int": {
2026-06-13T11:05:52.8885154Z           "complete": false,
2026-06-13T11:05:52.8885362Z           "evidence": []
2026-06-13T11:05:52.8885550Z         },
2026-06-13T11:05:52.8885754Z         "unit": {
2026-06-13T11:05:52.8885968Z           "complete": true,
2026-06-13T11:05:52.8886193Z           "evidence": [
2026-06-13T11:05:52.8886386Z             {
2026-06-13T11:05:52.8886618Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.8886833Z               "line": 250
2026-06-13T11:05:52.8887009Z             },
2026-06-13T11:05:52.8887210Z             {
2026-06-13T11:05:52.8887458Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T11:05:52.8887701Z               "line": 198
2026-06-13T11:05:52.8887910Z             },
2026-06-13T11:05:52.8888093Z             {
2026-06-13T11:05:52.8888340Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.8888511Z               "line": 459
2026-06-13T11:05:52.8888722Z             },
2026-06-13T11:05:52.8888907Z             {
2026-06-13T11:05:52.8889239Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.8889452Z               "line": 492
2026-06-13T11:05:52.8889623Z             }
2026-06-13T11:05:52.8889833Z           ]
2026-06-13T11:05:52.8890044Z         }
2026-06-13T11:05:52.8890234Z       }
2026-06-13T11:05:52.8890434Z     },
2026-06-13T11:05:52.8890617Z     {
2026-06-13T11:05:52.8890868Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-13T11:05:52.8891222Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-13T11:05:52.8891469Z       "requiredStages": [
2026-06-13T11:05:52.8891674Z         "impl",
2026-06-13T11:05:52.8891878Z         "unit"
2026-06-13T11:05:52.8892043Z       ],
2026-06-13T11:05:52.8892253Z       "stages": {
2026-06-13T11:05:52.8892447Z         "doc": {
2026-06-13T11:05:52.8892663Z           "complete": false,
2026-06-13T11:05:52.8892887Z           "evidence": []
2026-06-13T11:05:52.8893072Z         },
2026-06-13T11:05:52.8893287Z         "impl": {
2026-06-13T11:05:52.8893507Z           "complete": true,
2026-06-13T11:05:52.8893730Z           "evidence": [
2026-06-13T11:05:52.8893945Z             {
2026-06-13T11:05:52.8894184Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8894428Z               "line": 262
2026-06-13T11:05:52.8894616Z             },
2026-06-13T11:05:52.8894818Z             {
2026-06-13T11:05:52.8895070Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8895351Z               "line": 307
2026-06-13T11:05:52.8895547Z             },
2026-06-13T11:05:52.8895752Z             {
2026-06-13T11:05:52.8896034Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8896266Z               "line": 319
2026-06-13T11:05:52.8896481Z             }
2026-06-13T11:05:52.8896682Z           ]
2026-06-13T11:05:52.8896904Z         },
2026-06-13T11:05:52.8897393Z         "int": {
2026-06-13T11:05:52.8897632Z           "complete": false,
2026-06-13T11:05:52.8897874Z           "evidence": []
2026-06-13T11:05:52.8898065Z         },
2026-06-13T11:05:52.8898271Z         "unit": {
2026-06-13T11:05:52.8898475Z           "complete": true,
2026-06-13T11:05:52.8898690Z           "evidence": [
2026-06-13T11:05:52.8899167Z             {
2026-06-13T11:05:52.8899429Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8899686Z               "line": 455
2026-06-13T11:05:52.8899886Z             },
2026-06-13T11:05:52.8900083Z             {
2026-06-13T11:05:52.8900332Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.8900561Z               "line": 499
2026-06-13T11:05:52.8900789Z             }
2026-06-13T11:05:52.8900976Z           ]
2026-06-13T11:05:52.8901186Z         }
2026-06-13T11:05:52.8901357Z       }
2026-06-13T11:05:52.8901571Z     },
2026-06-13T11:05:52.8901748Z     {
2026-06-13T11:05:52.8902010Z       "id": "REQ-INFRA-1",
2026-06-13T11:05:52.8902405Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-13T11:05:52.8902603Z       "requiredStages": [],
2026-06-13T11:05:52.8902823Z       "stages": {
2026-06-13T11:05:52.8903007Z         "doc": {
2026-06-13T11:05:52.8903256Z           "complete": false,
2026-06-13T11:05:52.8903466Z           "evidence": []
2026-06-13T11:05:52.8903715Z         },
2026-06-13T11:05:52.8903947Z         "impl": {
2026-06-13T11:05:52.8904148Z           "complete": false,
2026-06-13T11:05:52.8904406Z           "evidence": []
2026-06-13T11:05:52.8904620Z         },
2026-06-13T11:05:52.8904820Z         "int": {
2026-06-13T11:05:52.8904998Z           "complete": false,
2026-06-13T11:05:52.8905248Z           "evidence": []
2026-06-13T11:05:52.8905444Z         },
2026-06-13T11:05:52.8905625Z         "unit": {
2026-06-13T11:05:52.8905862Z           "complete": false,
2026-06-13T11:05:52.8906073Z           "evidence": []
2026-06-13T11:05:52.8906274Z         }
2026-06-13T11:05:52.8906455Z       }
2026-06-13T11:05:52.8906646Z     },
2026-06-13T11:05:52.8906860Z     {
2026-06-13T11:05:52.8907064Z       "id": "REQ-INST-1",
2026-06-13T11:05:52.8907402Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-13T11:05:52.8907607Z       "requiredStages": [],
2026-06-13T11:05:52.8907829Z       "stages": {
2026-06-13T11:05:52.8908039Z         "doc": {
2026-06-13T11:05:52.8908255Z           "complete": false,
2026-06-13T11:05:52.8908453Z           "evidence": []
2026-06-13T11:05:52.8908645Z         },
2026-06-13T11:05:52.8908850Z         "impl": {
2026-06-13T11:05:52.8909126Z           "complete": false,
2026-06-13T11:05:52.8909341Z           "evidence": []
2026-06-13T11:05:52.8909504Z         },
2026-06-13T11:05:52.8909737Z         "int": {
2026-06-13T11:05:52.8909960Z           "complete": false,
2026-06-13T11:05:52.8910148Z           "evidence": []
2026-06-13T11:05:52.8910327Z         },
2026-06-13T11:05:52.8910479Z         "unit": {
2026-06-13T11:05:52.8910667Z           "complete": false,
2026-06-13T11:05:52.8910835Z           "evidence": []
2026-06-13T11:05:52.8911001Z         }
2026-06-13T11:05:52.8911168Z       }
2026-06-13T11:05:52.8911325Z     },
2026-06-13T11:05:52.8911478Z     {
2026-06-13T11:05:52.8911664Z       "id": "REQ-INST-10",
2026-06-13T11:05:52.8912071Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-13T11:05:52.8912260Z       "requiredStages": [
2026-06-13T11:05:52.8912437Z         "impl",
2026-06-13T11:05:52.8912608Z         "unit"
2026-06-13T11:05:52.8912761Z       ],
2026-06-13T11:05:52.8912936Z       "stages": {
2026-06-13T11:05:52.8913102Z         "doc": {
2026-06-13T11:05:52.8913292Z           "complete": false,
2026-06-13T11:05:52.8913468Z           "evidence": []
2026-06-13T11:05:52.8913635Z         },
2026-06-13T11:05:52.8913806Z         "impl": {
2026-06-13T11:05:52.8913984Z           "complete": true,
2026-06-13T11:05:52.8914173Z           "evidence": [
2026-06-13T11:05:52.8914531Z             {
2026-06-13T11:05:52.8914793Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8914971Z               "line": 616
2026-06-13T11:05:52.8915132Z             },
2026-06-13T11:05:52.8915286Z             {
2026-06-13T11:05:52.8915520Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8915708Z               "line": 693
2026-06-13T11:05:52.8916004Z             },
2026-06-13T11:05:52.8916180Z             {
2026-06-13T11:05:52.8916399Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T11:05:52.8916577Z               "line": 13
2026-06-13T11:05:52.8916742Z             },
2026-06-13T11:05:52.8916900Z             {
2026-06-13T11:05:52.8917124Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T11:05:52.8917291Z               "line": 67
2026-06-13T11:05:52.8917464Z             },
2026-06-13T11:05:52.8917625Z             {
2026-06-13T11:05:52.8917845Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.8918034Z               "line": 18
2026-06-13T11:05:52.8918196Z             },
2026-06-13T11:05:52.8918360Z             {
2026-06-13T11:05:52.8918575Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.8918752Z               "line": 444
2026-06-13T11:05:52.8918914Z             }
2026-06-13T11:05:52.8919172Z           ]
2026-06-13T11:05:52.8919343Z         },
2026-06-13T11:05:52.8919463Z         "int": {
2026-06-13T11:05:52.8919596Z           "complete": false,
2026-06-13T11:05:52.8919711Z           "evidence": []
2026-06-13T11:05:52.8919825Z         },
2026-06-13T11:05:52.8919934Z         "unit": {
2026-06-13T11:05:52.8920054Z           "complete": true,
2026-06-13T11:05:52.8920177Z           "evidence": [
2026-06-13T11:05:52.8920282Z             {
2026-06-13T11:05:52.8920440Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8920554Z               "line": 900
2026-06-13T11:05:52.8920670Z             },
2026-06-13T11:05:52.8920774Z             {
2026-06-13T11:05:52.8920939Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8921063Z               "line": 1233
2026-06-13T11:05:52.8921170Z             },
2026-06-13T11:05:52.8921290Z             {
2026-06-13T11:05:52.8921434Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8921566Z               "line": 1244
2026-06-13T11:05:52.8921682Z             },
2026-06-13T11:05:52.8921796Z             {
2026-06-13T11:05:52.8921948Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8922067Z               "line": 1260
2026-06-13T11:05:52.8922181Z             },
2026-06-13T11:05:52.8922297Z             {
2026-06-13T11:05:52.8922449Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8922558Z               "line": 1276
2026-06-13T11:05:52.8922696Z             },
2026-06-13T11:05:52.8922820Z             {
2026-06-13T11:05:52.8922974Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8923106Z               "line": 1298
2026-06-13T11:05:52.8923218Z             },
2026-06-13T11:05:52.8923340Z             {
2026-06-13T11:05:52.8923500Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8923621Z               "line": 1603
2026-06-13T11:05:52.8923732Z             },
2026-06-13T11:05:52.8923837Z             {
2026-06-13T11:05:52.8924005Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T11:05:52.8924118Z               "line": 130
2026-06-13T11:05:52.8924234Z             },
2026-06-13T11:05:52.8924362Z             {
2026-06-13T11:05:52.8924505Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T11:05:52.8924629Z               "line": 167
2026-06-13T11:05:52.8924733Z             },
2026-06-13T11:05:52.8924859Z             {
2026-06-13T11:05:52.8925001Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T11:05:52.8925130Z               "line": 175
2026-06-13T11:05:52.8925258Z             },
2026-06-13T11:05:52.8925573Z             {
2026-06-13T11:05:52.8925735Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T11:05:52.8925846Z               "line": 183
2026-06-13T11:05:52.8925969Z             },
2026-06-13T11:05:52.8926080Z             {
2026-06-13T11:05:52.8926235Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.8926368Z               "line": 896
2026-06-13T11:05:52.8926583Z             }
2026-06-13T11:05:52.8926711Z           ]
2026-06-13T11:05:52.8926827Z         }
2026-06-13T11:05:52.8926950Z       }
2026-06-13T11:05:52.8927060Z     },
2026-06-13T11:05:52.8927189Z     {
2026-06-13T11:05:52.8927321Z       "id": "REQ-INST-11",
2026-06-13T11:05:52.8927579Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-13T11:05:52.8927714Z       "requiredStages": [
2026-06-13T11:05:52.8927827Z         "impl",
2026-06-13T11:05:52.8927956Z         "unit"
2026-06-13T11:05:52.8928067Z       ],
2026-06-13T11:05:52.8928199Z       "stages": {
2026-06-13T11:05:52.8928329Z         "doc": {
2026-06-13T11:05:52.8928453Z           "complete": false,
2026-06-13T11:05:52.8928589Z           "evidence": []
2026-06-13T11:05:52.8928704Z         },
2026-06-13T11:05:52.8928835Z         "impl": {
2026-06-13T11:05:52.8929055Z           "complete": true,
2026-06-13T11:05:52.8929188Z           "evidence": [
2026-06-13T11:05:52.8929307Z             {
2026-06-13T11:05:52.8929479Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8929602Z               "line": 482
2026-06-13T11:05:52.8929713Z             },
2026-06-13T11:05:52.8929836Z             {
2026-06-13T11:05:52.8929994Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8930122Z               "line": 297
2026-06-13T11:05:52.8930237Z             },
2026-06-13T11:05:52.8930342Z             {
2026-06-13T11:05:52.8930489Z               "path": "crates/spt-store/src/rename.rs",
2026-06-13T11:05:52.8930605Z               "line": 59
2026-06-13T11:05:52.8930746Z             },
2026-06-13T11:05:52.8930862Z             {
2026-06-13T11:05:52.8931014Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8931143Z               "line": 4284
2026-06-13T11:05:52.8931244Z             },
2026-06-13T11:05:52.8931367Z             {
2026-06-13T11:05:52.8931504Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8931637Z               "line": 5502
2026-06-13T11:05:52.8931745Z             }
2026-06-13T11:05:52.8931864Z           ]
2026-06-13T11:05:52.8931975Z         },
2026-06-13T11:05:52.8932088Z         "int": {
2026-06-13T11:05:52.8932218Z           "complete": false,
2026-06-13T11:05:52.8932337Z           "evidence": []
2026-06-13T11:05:52.8932455Z         },
2026-06-13T11:05:52.8932561Z         "unit": {
2026-06-13T11:05:52.8932689Z           "complete": true,
2026-06-13T11:05:52.8932818Z           "evidence": [
2026-06-13T11:05:52.8932923Z             {
2026-06-13T11:05:52.8933080Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8933200Z               "line": 1403
2026-06-13T11:05:52.8933318Z             },
2026-06-13T11:05:52.8933428Z             {
2026-06-13T11:05:52.8933590Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8933709Z               "line": 1436
2026-06-13T11:05:52.8933820Z             },
2026-06-13T11:05:52.8933938Z             {
2026-06-13T11:05:52.8934109Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8934232Z               "line": 527
2026-06-13T11:05:52.8934345Z             },
2026-06-13T11:05:52.8934460Z             {
2026-06-13T11:05:52.8934612Z               "path": "crates/spt-store/src/rename.rs",
2026-06-13T11:05:52.8934726Z               "line": 160
2026-06-13T11:05:52.8934851Z             },
2026-06-13T11:05:52.8934955Z             {
2026-06-13T11:05:52.8935109Z               "path": "crates/spt-store/src/rename.rs",
2026-06-13T11:05:52.8935223Z               "line": 190
2026-06-13T11:05:52.8935337Z             },
2026-06-13T11:05:52.8935589Z             {
2026-06-13T11:05:52.8935743Z               "path": "crates/spt-store/src/rename.rs",
2026-06-13T11:05:52.8935872Z               "line": 225
2026-06-13T11:05:52.8935980Z             },
2026-06-13T11:05:52.8936110Z             {
2026-06-13T11:05:52.8936247Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8936373Z               "line": 5841
2026-06-13T11:05:52.8936606Z             }
2026-06-13T11:05:52.8936712Z           ]
2026-06-13T11:05:52.8936828Z         }
2026-06-13T11:05:52.8936932Z       }
2026-06-13T11:05:52.8937053Z     },
2026-06-13T11:05:52.8937167Z     {
2026-06-13T11:05:52.8937291Z       "id": "REQ-INST-12",
2026-06-13T11:05:52.8937630Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-13T11:05:52.8937749Z       "requiredStages": [
2026-06-13T11:05:52.8937863Z         "impl",
2026-06-13T11:05:52.8937974Z         "unit"
2026-06-13T11:05:52.8938082Z       ],
2026-06-13T11:05:52.8938211Z       "stages": {
2026-06-13T11:05:52.8938331Z         "doc": {
2026-06-13T11:05:52.8938468Z           "complete": false,
2026-06-13T11:05:52.8938584Z           "evidence": []
2026-06-13T11:05:52.8938702Z         },
2026-06-13T11:05:52.8938821Z         "impl": {
2026-06-13T11:05:52.8939045Z           "complete": true,
2026-06-13T11:05:52.8939182Z           "evidence": [
2026-06-13T11:05:52.8939292Z             {
2026-06-13T11:05:52.8939461Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8939577Z               "line": 534
2026-06-13T11:05:52.8939695Z             },
2026-06-13T11:05:52.8939804Z             {
2026-06-13T11:05:52.8939968Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8940105Z               "line": 627
2026-06-13T11:05:52.8940221Z             },
2026-06-13T11:05:52.8940344Z             {
2026-06-13T11:05:52.8940497Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8940635Z               "line": 707
2026-06-13T11:05:52.8940744Z             },
2026-06-13T11:05:52.8940865Z             {
2026-06-13T11:05:52.8941021Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8941146Z               "line": 96
2026-06-13T11:05:52.8941259Z             },
2026-06-13T11:05:52.8941360Z             {
2026-06-13T11:05:52.8941527Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8941650Z               "line": 269
2026-06-13T11:05:52.8941770Z             },
2026-06-13T11:05:52.8941894Z             {
2026-06-13T11:05:52.8942054Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:05:52.8942188Z               "line": 135
2026-06-13T11:05:52.8942300Z             }
2026-06-13T11:05:52.8942420Z           ]
2026-06-13T11:05:52.8942534Z         },
2026-06-13T11:05:52.8942657Z         "int": {
2026-06-13T11:05:52.8942783Z           "complete": false,
2026-06-13T11:05:52.8942906Z           "evidence": []
2026-06-13T11:05:52.8943025Z         },
2026-06-13T11:05:52.8943140Z         "unit": {
2026-06-13T11:05:52.8943273Z           "complete": true,
2026-06-13T11:05:52.8943388Z           "evidence": [
2026-06-13T11:05:52.8943502Z             {
2026-06-13T11:05:52.8943659Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8943779Z               "line": 1478
2026-06-13T11:05:52.8943917Z             },
2026-06-13T11:05:52.8944042Z             {
2026-06-13T11:05:52.8944212Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8944338Z               "line": 1501
2026-06-13T11:05:52.8944475Z             },
2026-06-13T11:05:52.8944602Z             {
2026-06-13T11:05:52.8944759Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8944890Z               "line": 1538
2026-06-13T11:05:52.8945001Z             },
2026-06-13T11:05:52.8945130Z             {
2026-06-13T11:05:52.8945267Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.8945524Z               "line": 457
2026-06-13T11:05:52.8945659Z             },
2026-06-13T11:05:52.8945769Z             {
2026-06-13T11:05:52.8945941Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:05:52.8946059Z               "line": 172
2026-06-13T11:05:52.8946188Z             },
2026-06-13T11:05:52.8946299Z             {
2026-06-13T11:05:52.8946464Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:05:52.8946703Z               "line": 193
2026-06-13T11:05:52.8946817Z             },
2026-06-13T11:05:52.8946943Z             {
2026-06-13T11:05:52.8947099Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:05:52.8947229Z               "line": 219
2026-06-13T11:05:52.8947375Z             }
2026-06-13T11:05:52.8953347Z           ]
2026-06-13T11:05:52.8953471Z         }
2026-06-13T11:05:52.8953585Z       }
2026-06-13T11:05:52.8953714Z     },
2026-06-13T11:05:52.8953823Z     {
2026-06-13T11:05:52.8953958Z       "id": "REQ-INST-13",
2026-06-13T11:05:52.8954210Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-13T11:05:52.8954344Z       "requiredStages": [
2026-06-13T11:05:52.8954467Z         "impl",
2026-06-13T11:05:52.8954578Z         "unit"
2026-06-13T11:05:52.8954697Z       ],
2026-06-13T11:05:52.8954806Z       "stages": {
2026-06-13T11:05:52.8954922Z         "doc": {
2026-06-13T11:05:52.8955054Z           "complete": false,
2026-06-13T11:05:52.8955191Z           "evidence": []
2026-06-13T11:05:52.8955310Z         },
2026-06-13T11:05:52.8955418Z         "impl": {
2026-06-13T11:05:52.8955551Z           "complete": true,
2026-06-13T11:05:52.8955657Z           "evidence": [
2026-06-13T11:05:52.8955779Z             {
2026-06-13T11:05:52.8955934Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.8956061Z               "line": 100
2026-06-13T11:05:52.8956191Z             },
2026-06-13T11:05:52.8956300Z             {
2026-06-13T11:05:52.8956471Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:05:52.8956586Z               "line": 158
2026-06-13T11:05:52.8956719Z             }
2026-06-13T11:05:52.8956835Z           ]
2026-06-13T11:05:52.8956958Z         },
2026-06-13T11:05:52.8957077Z         "int": {
2026-06-13T11:05:52.8957202Z           "complete": false,
2026-06-13T11:05:52.8957335Z           "evidence": []
2026-06-13T11:05:52.8957450Z         },
2026-06-13T11:05:52.8957583Z         "unit": {
2026-06-13T11:05:52.8957716Z           "complete": true,
2026-06-13T11:05:52.8957836Z           "evidence": [
2026-06-13T11:05:52.8957963Z             {
2026-06-13T11:05:52.8958125Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:05:52.8958245Z               "line": 248
2026-06-13T11:05:52.8958363Z             },
2026-06-13T11:05:52.8958498Z             {
2026-06-13T11:05:52.8958668Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:05:52.8958813Z               "line": 266
2026-06-13T11:05:52.8959045Z             }
2026-06-13T11:05:52.8959169Z           ]
2026-06-13T11:05:52.8959293Z         }
2026-06-13T11:05:52.8959404Z       }
2026-06-13T11:05:52.8959522Z     },
2026-06-13T11:05:52.8959627Z     {
2026-06-13T11:05:52.8959762Z       "id": "REQ-INST-14",
2026-06-13T11:05:52.8960189Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-13T11:05:52.8960317Z       "requiredStages": [
2026-06-13T11:05:52.8960441Z         "doc",
2026-06-13T11:05:52.8960549Z         "impl",
2026-06-13T11:05:52.8960668Z         "unit"
2026-06-13T11:05:52.8960784Z       ],
2026-06-13T11:05:52.8960892Z       "stages": {
2026-06-13T11:05:52.8961011Z         "doc": {
2026-06-13T11:05:52.8961136Z           "complete": true,
2026-06-13T11:05:52.8961258Z           "evidence": [
2026-06-13T11:05:52.8961369Z             {
2026-06-13T11:05:52.8961507Z               "path": "CONTEXT.md",
2026-06-13T11:05:52.8961637Z               "line": 477
2026-06-13T11:05:52.8961746Z             },
2026-06-13T11:05:52.8962055Z             {
2026-06-13T11:05:52.8962194Z               "path": "docs/STORAGE.md",
2026-06-13T11:05:52.8962324Z               "line": 49
2026-06-13T11:05:52.8962437Z             }
2026-06-13T11:05:52.8962567Z           ]
2026-06-13T11:05:52.8962685Z         },
2026-06-13T11:05:52.8962799Z         "impl": {
2026-06-13T11:05:52.8962934Z           "complete": true,
2026-06-13T11:05:52.8963155Z           "evidence": [
2026-06-13T11:05:52.8963280Z             {
2026-06-13T11:05:52.8963449Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8963578Z               "line": 404
2026-06-13T11:05:52.8963702Z             },
2026-06-13T11:05:52.8963811Z             {
2026-06-13T11:05:52.8963974Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8964093Z               "line": 346
2026-06-13T11:05:52.8964213Z             },
2026-06-13T11:05:52.8964322Z             {
2026-06-13T11:05:52.8964489Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.8964617Z               "line": 211
2026-06-13T11:05:52.8964722Z             },
2026-06-13T11:05:52.8964838Z             {
2026-06-13T11:05:52.8964975Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8965104Z               "line": 1104
2026-06-13T11:05:52.8965219Z             }
2026-06-13T11:05:52.8965337Z           ]
2026-06-13T11:05:52.8965467Z         },
2026-06-13T11:05:52.8965581Z         "int": {
2026-06-13T11:05:52.8965713Z           "complete": false,
2026-06-13T11:05:52.8965832Z           "evidence": []
2026-06-13T11:05:52.8965949Z         },
2026-06-13T11:05:52.8966063Z         "unit": {
2026-06-13T11:05:52.8966198Z           "complete": true,
2026-06-13T11:05:52.8966321Z           "evidence": [
2026-06-13T11:05:52.8966431Z             {
2026-06-13T11:05:52.8966607Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8966726Z               "line": 1111
2026-06-13T11:05:52.8966841Z             },
2026-06-13T11:05:52.8966950Z             {
2026-06-13T11:05:52.8967118Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8967247Z               "line": 912
2026-06-13T11:05:52.8967361Z             },
2026-06-13T11:05:52.8967485Z             {
2026-06-13T11:05:52.8967637Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.8967762Z               "line": 1173
2026-06-13T11:05:52.8967880Z             },
2026-06-13T11:05:52.8967995Z             {
2026-06-13T11:05:52.8968143Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.8968266Z               "line": 463
2026-06-13T11:05:52.8968377Z             },
2026-06-13T11:05:52.8968486Z             {
2026-06-13T11:05:52.8968627Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8968748Z               "line": 5917
2026-06-13T11:05:52.8968880Z             }
2026-06-13T11:05:52.8969077Z           ]
2026-06-13T11:05:52.8969181Z         }
2026-06-13T11:05:52.8969306Z       }
2026-06-13T11:05:52.8969439Z     },
2026-06-13T11:05:52.8969552Z     {
2026-06-13T11:05:52.8969701Z       "id": "REQ-INST-15",
2026-06-13T11:05:52.8970473Z       "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-13T11:05:52.8970613Z       "requiredStages": [
2026-06-13T11:05:52.8970726Z         "doc",
2026-06-13T11:05:52.8970839Z         "impl",
2026-06-13T11:05:52.8970949Z         "unit"
2026-06-13T11:05:52.8971066Z       ],
2026-06-13T11:05:52.8971184Z       "stages": {
2026-06-13T11:05:52.8971300Z         "doc": {
2026-06-13T11:05:52.8971423Z           "complete": true,
2026-06-13T11:05:52.8971538Z           "evidence": [
2026-06-13T11:05:52.8971657Z             {
2026-06-13T11:05:52.8971872Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-13T11:05:52.8972163Z               "line": 3
2026-06-13T11:05:52.8972277Z             }
2026-06-13T11:05:52.8972386Z           ]
2026-06-13T11:05:52.8972507Z         },
2026-06-13T11:05:52.8972620Z         "impl": {
2026-06-13T11:05:52.8972749Z           "complete": true,
2026-06-13T11:05:52.8972870Z           "evidence": [
2026-06-13T11:05:52.8972987Z             {
2026-06-13T11:05:52.8973155Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8973388Z               "line": 353
2026-06-13T11:05:52.8973509Z             },
2026-06-13T11:05:52.8973616Z             {
2026-06-13T11:05:52.8973769Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:05:52.8973887Z               "line": 60
2026-06-13T11:05:52.8974009Z             },
2026-06-13T11:05:52.8974124Z             {
2026-06-13T11:05:52.8974281Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8974410Z               "line": 368
2026-06-13T11:05:52.8974520Z             },
2026-06-13T11:05:52.8974638Z             {
2026-06-13T11:05:52.8974792Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8974915Z               "line": 417
2026-06-13T11:05:52.8975030Z             },
2026-06-13T11:05:52.8975135Z             {
2026-06-13T11:05:52.8975292Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:05:52.8975417Z               "line": 19
2026-06-13T11:05:52.8975568Z             },
2026-06-13T11:05:52.8975689Z             {
2026-06-13T11:05:52.8975854Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:05:52.8976004Z               "line": 70
2026-06-13T11:05:52.8976127Z             },
2026-06-13T11:05:52.8976277Z             {
2026-06-13T11:05:52.8976425Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:05:52.8976548Z               "line": 96
2026-06-13T11:05:52.8976657Z             },
2026-06-13T11:05:52.8976777Z             {
2026-06-13T11:05:52.8976923Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:05:52.8977049Z               "line": 121
2026-06-13T11:05:52.8977167Z             },
2026-06-13T11:05:52.8977282Z             {
2026-06-13T11:05:52.8977425Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:05:52.8977544Z               "line": 172
2026-06-13T11:05:52.8977659Z             },
2026-06-13T11:05:52.8977777Z             {
2026-06-13T11:05:52.8977921Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.8978050Z               "line": 146
2026-06-13T11:05:52.8978159Z             },
2026-06-13T11:05:52.8978275Z             {
2026-06-13T11:05:52.8978416Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8978536Z               "line": 996
2026-06-13T11:05:52.8978656Z             }
2026-06-13T11:05:52.8978769Z           ]
2026-06-13T11:05:52.8978885Z         },
2026-06-13T11:05:52.8979064Z         "int": {
2026-06-13T11:05:52.8979202Z           "complete": false,
2026-06-13T11:05:52.8979327Z           "evidence": []
2026-06-13T11:05:52.8979436Z         },
2026-06-13T11:05:52.8979570Z         "unit": {
2026-06-13T11:05:52.8979694Z           "complete": true,
2026-06-13T11:05:52.8979822Z           "evidence": [
2026-06-13T11:05:52.8979923Z             {
2026-06-13T11:05:52.8980089Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8980205Z               "line": 577
2026-06-13T11:05:52.8980318Z             },
2026-06-13T11:05:52.8980437Z             {
2026-06-13T11:05:52.8980591Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.8980723Z               "line": 638
2026-06-13T11:05:52.8980830Z             },
2026-06-13T11:05:52.8980948Z             {
2026-06-13T11:05:52.8981101Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:05:52.8981220Z               "line": 213
2026-06-13T11:05:52.8981342Z             },
2026-06-13T11:05:52.8981447Z             {
2026-06-13T11:05:52.8981599Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:05:52.8981846Z               "line": 249
2026-06-13T11:05:52.8981969Z             },
2026-06-13T11:05:52.8982088Z             {
2026-06-13T11:05:52.8982232Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:05:52.8982355Z               "line": 262
2026-06-13T11:05:52.8982461Z             },
2026-06-13T11:05:52.8982580Z             {
2026-06-13T11:05:52.8982723Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:05:52.8982960Z               "line": 338
2026-06-13T11:05:52.8983081Z             },
2026-06-13T11:05:52.8983194Z             {
2026-06-13T11:05:52.8983352Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.8983468Z               "line": 513
2026-06-13T11:05:52.8983590Z             },
2026-06-13T11:05:52.8983706Z             {
2026-06-13T11:05:52.8983843Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8983968Z               "line": 5854
2026-06-13T11:05:52.8984078Z             },
2026-06-13T11:05:52.8984209Z             {
2026-06-13T11:05:52.8984348Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.8984475Z               "line": 7419
2026-06-13T11:05:52.8984584Z             }
2026-06-13T11:05:52.8984703Z           ]
2026-06-13T11:05:52.8984818Z         }
2026-06-13T11:05:52.8984917Z       }
2026-06-13T11:05:52.8985038Z     },
2026-06-13T11:05:52.8985147Z     {
2026-06-13T11:05:52.8985275Z       "id": "REQ-INST-2",
2026-06-13T11:05:52.8985433Z       "title": "Per-node files, synced Psyche mind",
2026-06-13T11:05:52.8985556Z       "requiredStages": [
2026-06-13T11:05:52.8985682Z         "impl",
2026-06-13T11:05:52.8985795Z         "unit"
2026-06-13T11:05:52.8985919Z       ],
2026-06-13T11:05:52.8986024Z       "stages": {
2026-06-13T11:05:52.8986152Z         "doc": {
2026-06-13T11:05:52.8986273Z           "complete": false,
2026-06-13T11:05:52.8986409Z           "evidence": []
2026-06-13T11:05:52.8986525Z         },
2026-06-13T11:05:52.8986645Z         "impl": {
2026-06-13T11:05:52.8986772Z           "complete": true,
2026-06-13T11:05:52.8986904Z           "evidence": [
2026-06-13T11:05:52.8987032Z             {
2026-06-13T11:05:52.8987198Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8987333Z               "line": 88
2026-06-13T11:05:52.8987469Z             },
2026-06-13T11:05:52.8987585Z             {
2026-06-13T11:05:52.8987746Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:05:52.8987871Z               "line": 28
2026-06-13T11:05:52.8988004Z             },
2026-06-13T11:05:52.8988123Z             {
2026-06-13T11:05:52.8988290Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:05:52.8988419Z               "line": 74
2026-06-13T11:05:52.8988530Z             },
2026-06-13T11:05:52.8988653Z             {
2026-06-13T11:05:52.8988796Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:05:52.8988920Z               "line": 96
2026-06-13T11:05:52.8989091Z             },
2026-06-13T11:05:52.8989207Z             {
2026-06-13T11:05:52.8989368Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:05:52.8989479Z               "line": 86
2026-06-13T11:05:52.8989606Z             },
2026-06-13T11:05:52.8989714Z             {
2026-06-13T11:05:52.8989864Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:05:52.8989987Z               "line": 118
2026-06-13T11:05:52.8990101Z             }
2026-06-13T11:05:52.8990221Z           ]
2026-06-13T11:05:52.8990325Z         },
2026-06-13T11:05:52.8990445Z         "int": {
2026-06-13T11:05:52.8990564Z           "complete": false,
2026-06-13T11:05:52.8990697Z           "evidence": []
2026-06-13T11:05:52.8990807Z         },
2026-06-13T11:05:52.8990931Z         "unit": {
2026-06-13T11:05:52.8991065Z           "complete": true,
2026-06-13T11:05:52.8991179Z           "evidence": [
2026-06-13T11:05:52.8991293Z             {
2026-06-13T11:05:52.8991432Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:05:52.8991559Z               "line": 250
2026-06-13T11:05:52.8991670Z             },
2026-06-13T11:05:52.8991907Z             {
2026-06-13T11:05:52.8992060Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:05:52.8992182Z               "line": 272
2026-06-13T11:05:52.8992291Z             }
2026-06-13T11:05:52.8992401Z           ]
2026-06-13T11:05:52.8992520Z         }
2026-06-13T11:05:52.8992634Z       }
2026-06-13T11:05:52.8992750Z     },
2026-06-13T11:05:52.8992958Z     {
2026-06-13T11:05:52.8993074Z       "id": "REQ-INST-3",
2026-06-13T11:05:52.8993259Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-13T11:05:52.8993374Z       "requiredStages": [
2026-06-13T11:05:52.8993493Z         "doc",
2026-06-13T11:05:52.8993612Z         "impl",
2026-06-13T11:05:52.8993736Z         "unit"
2026-06-13T11:05:52.8993855Z       ],
2026-06-13T11:05:52.8993970Z       "stages": {
2026-06-13T11:05:52.8994074Z         "doc": {
2026-06-13T11:05:52.8994193Z           "complete": true,
2026-06-13T11:05:52.8994319Z           "evidence": [
2026-06-13T11:05:52.8994431Z             {
2026-06-13T11:05:52.8994586Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-13T11:05:52.8994704Z               "line": 3
2026-06-13T11:05:52.8994817Z             }
2026-06-13T11:05:52.8994936Z           ]
2026-06-13T11:05:52.8995035Z         },
2026-06-13T11:05:52.8995158Z         "impl": {
2026-06-13T11:05:52.8995273Z           "complete": true,
2026-06-13T11:05:52.8995420Z           "evidence": [
2026-06-13T11:05:52.8995535Z             {
2026-06-13T11:05:52.8995684Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T11:05:52.8995797Z               "line": 70
2026-06-13T11:05:52.8995913Z             },
2026-06-13T11:05:52.8996031Z             {
2026-06-13T11:05:52.8996189Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.8996321Z               "line": 480
2026-06-13T11:05:52.8996474Z             },
2026-06-13T11:05:52.8996585Z             {
2026-06-13T11:05:52.8996770Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8996904Z               "line": 204
2026-06-13T11:05:52.8997032Z             },
2026-06-13T11:05:52.8997148Z             {
2026-06-13T11:05:52.8997313Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8997451Z               "line": 334
2026-06-13T11:05:52.8997569Z             },
2026-06-13T11:05:52.8997696Z             {
2026-06-13T11:05:52.8997849Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.8997982Z               "line": 368
2026-06-13T11:05:52.8998102Z             },
2026-06-13T11:05:52.8998212Z             {
2026-06-13T11:05:52.8998378Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-13T11:05:52.8998493Z               "line": 74
2026-06-13T11:05:52.8998621Z             },
2026-06-13T11:05:52.8998736Z             {
2026-06-13T11:05:52.8998912Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8999137Z               "line": 234
2026-06-13T11:05:52.8999251Z             },
2026-06-13T11:05:52.8999371Z             {
2026-06-13T11:05:52.8999532Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.8999661Z               "line": 390
2026-06-13T11:05:52.8999762Z             },
2026-06-13T11:05:52.8999885Z             {
2026-06-13T11:05:52.9000044Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9000161Z               "line": 45
2026-06-13T11:05:52.9000284Z             },
2026-06-13T11:05:52.9000394Z             {
2026-06-13T11:05:52.9000556Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9000676Z               "line": 114
2026-06-13T11:05:52.9000795Z             },
2026-06-13T11:05:52.9000918Z             {
2026-06-13T11:05:52.9001062Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9001181Z               "line": 152
2026-06-13T11:05:52.9001277Z             },
2026-06-13T11:05:52.9001386Z             {
2026-06-13T11:05:52.9001650Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9001786Z               "line": 168
2026-06-13T11:05:52.9001906Z             },
2026-06-13T11:05:52.9002025Z             {
2026-06-13T11:05:52.9002187Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9002298Z               "line": 178
2026-06-13T11:05:52.9002420Z             },
2026-06-13T11:05:52.9002529Z             {
2026-06-13T11:05:52.9002813Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9002942Z               "line": 210
2026-06-13T11:05:52.9003052Z             },
2026-06-13T11:05:52.9003170Z             {
2026-06-13T11:05:52.9003315Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9003442Z               "line": 287
2026-06-13T11:05:52.9003548Z             },
2026-06-13T11:05:52.9003667Z             {
2026-06-13T11:05:52.9003829Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9003939Z               "line": 311
2026-06-13T11:05:52.9004058Z             },
2026-06-13T11:05:52.9004172Z             {
2026-06-13T11:05:52.9004339Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9004463Z               "line": 389
2026-06-13T11:05:52.9004578Z             },
2026-06-13T11:05:52.9004687Z             {
2026-06-13T11:05:52.9004827Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9004963Z               "line": 438
2026-06-13T11:05:52.9005073Z             },
2026-06-13T11:05:52.9005194Z             {
2026-06-13T11:05:52.9005363Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-13T11:05:52.9005473Z               "line": 37
2026-06-13T11:05:52.9005586Z             },
2026-06-13T11:05:52.9005694Z             {
2026-06-13T11:05:52.9005858Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9005971Z               "line": 62
2026-06-13T11:05:52.9006095Z             },
2026-06-13T11:05:52.9006229Z             {
2026-06-13T11:05:52.9006381Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.9006525Z               "line": 190
2026-06-13T11:05:52.9006647Z             },
2026-06-13T11:05:52.9006768Z             {
2026-06-13T11:05:52.9006911Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9007049Z               "line": 1325
2026-06-13T11:05:52.9007173Z             }
2026-06-13T11:05:52.9007277Z           ]
2026-06-13T11:05:52.9007402Z         },
2026-06-13T11:05:52.9007516Z         "int": {
2026-06-13T11:05:52.9007645Z           "complete": false,
2026-06-13T11:05:52.9007756Z           "evidence": []
2026-06-13T11:05:52.9007878Z         },
2026-06-13T11:05:52.9008001Z         "unit": {
2026-06-13T11:05:52.9008129Z           "complete": true,
2026-06-13T11:05:52.9008266Z           "evidence": [
2026-06-13T11:05:52.9008371Z             {
2026-06-13T11:05:52.9008528Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:05:52.9008643Z               "line": 360
2026-06-13T11:05:52.9008762Z             },
2026-06-13T11:05:52.9008890Z             {
2026-06-13T11:05:52.9009135Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.9009257Z               "line": 787
2026-06-13T11:05:52.9009368Z             },
2026-06-13T11:05:52.9009482Z             {
2026-06-13T11:05:52.9009630Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.9009749Z               "line": 844
2026-06-13T11:05:52.9009858Z             },
2026-06-13T11:05:52.9009974Z             {
2026-06-13T11:05:52.9010130Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.9010241Z               "line": 889
2026-06-13T11:05:52.9010364Z             },
2026-06-13T11:05:52.9010469Z             {
2026-06-13T11:05:52.9010628Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.9010744Z               "line": 1014
2026-06-13T11:05:52.9010853Z             },
2026-06-13T11:05:52.9010964Z             {
2026-06-13T11:05:52.9011212Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9011336Z               "line": 1212
2026-06-13T11:05:52.9011440Z             },
2026-06-13T11:05:52.9011546Z             {
2026-06-13T11:05:52.9011703Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9011807Z               "line": 1353
2026-06-13T11:05:52.9011914Z             },
2026-06-13T11:05:52.9012018Z             {
2026-06-13T11:05:52.9012266Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9012385Z               "line": 449
2026-06-13T11:05:52.9012490Z             },
2026-06-13T11:05:52.9012595Z             {
2026-06-13T11:05:52.9012747Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9012858Z               "line": 485
2026-06-13T11:05:52.9012961Z             },
2026-06-13T11:05:52.9013065Z             {
2026-06-13T11:05:52.9013208Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9013316Z               "line": 540
2026-06-13T11:05:52.9013435Z             },
2026-06-13T11:05:52.9013536Z             {
2026-06-13T11:05:52.9013683Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9013793Z               "line": 697
2026-06-13T11:05:52.9013903Z             },
2026-06-13T11:05:52.9014007Z             {
2026-06-13T11:05:52.9014146Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9014265Z               "line": 931
2026-06-13T11:05:52.9014364Z             },
2026-06-13T11:05:52.9014480Z             {
2026-06-13T11:05:52.9014613Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9014727Z               "line": 945
2026-06-13T11:05:52.9014833Z             },
2026-06-13T11:05:52.9014942Z             {
2026-06-13T11:05:52.9015096Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9015204Z               "line": 1214
2026-06-13T11:05:52.9015313Z             },
2026-06-13T11:05:52.9015415Z             {
2026-06-13T11:05:52.9015571Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.9015691Z               "line": 413
2026-06-13T11:05:52.9015787Z             },
2026-06-13T11:05:52.9015899Z             {
2026-06-13T11:05:52.9016028Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9016146Z               "line": 5878
2026-06-13T11:05:52.9016249Z             }
2026-06-13T11:05:52.9016360Z           ]
2026-06-13T11:05:52.9016480Z         }
2026-06-13T11:05:52.9016588Z       }
2026-06-13T11:05:52.9016708Z     },
2026-06-13T11:05:52.9016813Z     {
2026-06-13T11:05:52.9016941Z       "id": "REQ-INST-4",
2026-06-13T11:05:52.9017147Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-13T11:05:52.9017275Z       "requiredStages": [
2026-06-13T11:05:52.9017390Z         "impl",
2026-06-13T11:05:52.9017499Z         "unit"
2026-06-13T11:05:52.9017619Z       ],
2026-06-13T11:05:52.9017729Z       "stages": {
2026-06-13T11:05:52.9017847Z         "doc": {
2026-06-13T11:05:52.9017967Z           "complete": false,
2026-06-13T11:05:52.9018090Z           "evidence": []
2026-06-13T11:05:52.9018195Z         },
2026-06-13T11:05:52.9018301Z         "impl": {
2026-06-13T11:05:52.9018424Z           "complete": true,
2026-06-13T11:05:52.9018542Z           "evidence": [
2026-06-13T11:05:52.9018647Z             {
2026-06-13T11:05:52.9018793Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.9018926Z               "line": 335
2026-06-13T11:05:52.9019121Z             },
2026-06-13T11:05:52.9019232Z             {
2026-06-13T11:05:52.9019385Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9019498Z               "line": 202
2026-06-13T11:05:52.9019609Z             },
2026-06-13T11:05:52.9019714Z             {
2026-06-13T11:05:52.9019862Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9019980Z               "line": 234
2026-06-13T11:05:52.9020089Z             },
2026-06-13T11:05:52.9020195Z             {
2026-06-13T11:05:52.9020443Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9020563Z               "line": 274
2026-06-13T11:05:52.9020666Z             }
2026-06-13T11:05:52.9020776Z           ]
2026-06-13T11:05:52.9020883Z         },
2026-06-13T11:05:52.9020985Z         "int": {
2026-06-13T11:05:52.9021106Z           "complete": false,
2026-06-13T11:05:52.9021217Z           "evidence": []
2026-06-13T11:05:52.9021428Z         },
2026-06-13T11:05:52.9021534Z         "unit": {
2026-06-13T11:05:52.9021662Z           "complete": true,
2026-06-13T11:05:52.9021786Z           "evidence": [
2026-06-13T11:05:52.9021891Z             {
2026-06-13T11:05:52.9022057Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.9022164Z               "line": 839
2026-06-13T11:05:52.9022282Z             },
2026-06-13T11:05:52.9022387Z             {
2026-06-13T11:05:52.9022545Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9022663Z               "line": 561
2026-06-13T11:05:52.9022775Z             },
2026-06-13T11:05:52.9022888Z             {
2026-06-13T11:05:52.9023036Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9023155Z               "line": 668
2026-06-13T11:05:52.9023264Z             },
2026-06-13T11:05:52.9023365Z             {
2026-06-13T11:05:52.9023512Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9023630Z               "line": 750
2026-06-13T11:05:52.9023736Z             }
2026-06-13T11:05:52.9023839Z           ]
2026-06-13T11:05:52.9023947Z         }
2026-06-13T11:05:52.9024058Z       }
2026-06-13T11:05:52.9024163Z     },
2026-06-13T11:05:52.9024267Z     {
2026-06-13T11:05:52.9024377Z       "id": "REQ-INST-5",
2026-06-13T11:05:52.9024581Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-13T11:05:52.9024707Z       "requiredStages": [
2026-06-13T11:05:52.9024825Z         "impl",
2026-06-13T11:05:52.9024934Z         "unit",
2026-06-13T11:05:52.9025040Z         "int"
2026-06-13T11:05:52.9025159Z       ],
2026-06-13T11:05:52.9025259Z       "stages": {
2026-06-13T11:05:52.9025379Z         "doc": {
2026-06-13T11:05:52.9025497Z           "complete": false,
2026-06-13T11:05:52.9025622Z           "evidence": []
2026-06-13T11:05:52.9025726Z         },
2026-06-13T11:05:52.9025836Z         "impl": {
2026-06-13T11:05:52.9025956Z           "complete": true,
2026-06-13T11:05:52.9026083Z           "evidence": [
2026-06-13T11:05:52.9026189Z             {
2026-06-13T11:05:52.9026342Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-13T11:05:52.9026464Z               "line": 85
2026-06-13T11:05:52.9026569Z             },
2026-06-13T11:05:52.9026683Z             {
2026-06-13T11:05:52.9026833Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.9026948Z               "line": 68
2026-06-13T11:05:52.9027063Z             },
2026-06-13T11:05:52.9027172Z             {
2026-06-13T11:05:52.9027326Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.9027453Z               "line": 99
2026-06-13T11:05:52.9027564Z             },
2026-06-13T11:05:52.9027678Z             {
2026-06-13T11:05:52.9027816Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.9027936Z               "line": 183
2026-06-13T11:05:52.9028045Z             },
2026-06-13T11:05:52.9028160Z             {
2026-06-13T11:05:52.9028317Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.9028431Z               "line": 314
2026-06-13T11:05:52.9028551Z             }
2026-06-13T11:05:52.9028660Z           ]
2026-06-13T11:05:52.9028775Z         },
2026-06-13T11:05:52.9028890Z         "int": {
2026-06-13T11:05:52.9029107Z           "complete": true,
2026-06-13T11:05:52.9029236Z           "evidence": [
2026-06-13T11:05:52.9029343Z             {
2026-06-13T11:05:52.9029496Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:05:52.9029621Z               "line": 156
2026-06-13T11:05:52.9029734Z             },
2026-06-13T11:05:52.9030001Z             {
2026-06-13T11:05:52.9030160Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-13T11:05:52.9030274Z               "line": 102
2026-06-13T11:05:52.9030383Z             },
2026-06-13T11:05:52.9030503Z             {
2026-06-13T11:05:52.9030654Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9030784Z               "line": 637
2026-06-13T11:05:52.9031022Z             },
2026-06-13T11:05:52.9031151Z             {
2026-06-13T11:05:52.9031322Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9031443Z               "line": 974
2026-06-13T11:05:52.9031570Z             }
2026-06-13T11:05:52.9031686Z           ]
2026-06-13T11:05:52.9031819Z         },
2026-06-13T11:05:52.9031941Z         "unit": {
2026-06-13T11:05:52.9032080Z           "complete": true,
2026-06-13T11:05:52.9032208Z           "evidence": [
2026-06-13T11:05:52.9032322Z             {
2026-06-13T11:05:52.9032504Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.9032627Z               "line": 552
2026-06-13T11:05:52.9032747Z             },
2026-06-13T11:05:52.9032856Z             {
2026-06-13T11:05:52.9033005Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.9033133Z               "line": 595
2026-06-13T11:05:52.9033243Z             },
2026-06-13T11:05:52.9033363Z             {
2026-06-13T11:05:52.9033519Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T11:05:52.9033640Z               "line": 219
2026-06-13T11:05:52.9033743Z             }
2026-06-13T11:05:52.9033858Z           ]
2026-06-13T11:05:52.9033974Z         }
2026-06-13T11:05:52.9034077Z       }
2026-06-13T11:05:52.9034190Z     },
2026-06-13T11:05:52.9034296Z     {
2026-06-13T11:05:52.9034422Z       "id": "REQ-INST-6",
2026-06-13T11:05:52.9034632Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-13T11:05:52.9034756Z       "requiredStages": [
2026-06-13T11:05:52.9034875Z         "impl",
2026-06-13T11:05:52.9034990Z         "unit",
2026-06-13T11:05:52.9035103Z         "int"
2026-06-13T11:05:52.9035209Z       ],
2026-06-13T11:05:52.9035328Z       "stages": {
2026-06-13T11:05:52.9035432Z         "doc": {
2026-06-13T11:05:52.9035558Z           "complete": true,
2026-06-13T11:05:52.9035676Z           "evidence": [
2026-06-13T11:05:52.9035785Z             {
2026-06-13T11:05:52.9035929Z               "path": "docs/DEFERRED.md",
2026-06-13T11:05:52.9036048Z               "line": 13
2026-06-13T11:05:52.9036163Z             }
2026-06-13T11:05:52.9036272Z           ]
2026-06-13T11:05:52.9036387Z         },
2026-06-13T11:05:52.9036502Z         "impl": {
2026-06-13T11:05:52.9036620Z           "complete": true,
2026-06-13T11:05:52.9036740Z           "evidence": [
2026-06-13T11:05:52.9036851Z             {
2026-06-13T11:05:52.9037010Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.9037124Z               "line": 391
2026-06-13T11:05:52.9037243Z             },
2026-06-13T11:05:52.9037370Z             {
2026-06-13T11:05:52.9037518Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T11:05:52.9037637Z               "line": 27
2026-06-13T11:05:52.9042369Z             },
2026-06-13T11:05:52.9042543Z             {
2026-06-13T11:05:52.9042712Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T11:05:52.9042839Z               "line": 73
2026-06-13T11:05:52.9042965Z             },
2026-06-13T11:05:52.9043069Z             {
2026-06-13T11:05:52.9043231Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T11:05:52.9043345Z               "line": 182
2026-06-13T11:05:52.9043469Z             },
2026-06-13T11:05:52.9043584Z             {
2026-06-13T11:05:52.9043750Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9043875Z               "line": 426
2026-06-13T11:05:52.9043989Z             },
2026-06-13T11:05:52.9044098Z             {
2026-06-13T11:05:52.9044248Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-13T11:05:52.9044548Z               "line": 31
2026-06-13T11:05:52.9044660Z             },
2026-06-13T11:05:52.9044779Z             {
2026-06-13T11:05:52.9044936Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.9045049Z               "line": 182
2026-06-13T11:05:52.9045178Z             },
2026-06-13T11:05:52.9045292Z             {
2026-06-13T11:05:52.9045649Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:05:52.9045774Z               "line": 81
2026-06-13T11:05:52.9045888Z             },
2026-06-13T11:05:52.9046007Z             {
2026-06-13T11:05:52.9046147Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9046279Z               "line": 1326
2026-06-13T11:05:52.9046388Z             },
2026-06-13T11:05:52.9046504Z             {
2026-06-13T11:05:52.9046656Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.9046771Z               "line": 179
2026-06-13T11:05:52.9046884Z             },
2026-06-13T11:05:52.9046999Z             {
2026-06-13T11:05:52.9047143Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.9047271Z               "line": 215
2026-06-13T11:05:52.9047386Z             }
2026-06-13T11:05:52.9047509Z           ]
2026-06-13T11:05:52.9047618Z         },
2026-06-13T11:05:52.9047737Z         "int": {
2026-06-13T11:05:52.9047863Z           "complete": true,
2026-06-13T11:05:52.9047997Z           "evidence": [
2026-06-13T11:05:52.9048103Z             {
2026-06-13T11:05:52.9048264Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9048384Z               "line": 651
2026-06-13T11:05:52.9048493Z             },
2026-06-13T11:05:52.9048606Z             {
2026-06-13T11:05:52.9048755Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9048884Z               "line": 1019
2026-06-13T11:05:52.9049084Z             },
2026-06-13T11:05:52.9049203Z             {
2026-06-13T11:05:52.9049343Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.9049470Z               "line": 726
2026-06-13T11:05:52.9049580Z             }
2026-06-13T11:05:52.9049690Z           ]
2026-06-13T11:05:52.9049804Z         },
2026-06-13T11:05:52.9049920Z         "unit": {
2026-06-13T11:05:52.9050039Z           "complete": true,
2026-06-13T11:05:52.9050160Z           "evidence": [
2026-06-13T11:05:52.9050270Z             {
2026-06-13T11:05:52.9050440Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.9050554Z               "line": 661
2026-06-13T11:05:52.9050665Z             },
2026-06-13T11:05:52.9050764Z             {
2026-06-13T11:05:52.9050917Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9051041Z               "line": 899
2026-06-13T11:05:52.9051149Z             },
2026-06-13T11:05:52.9051265Z             {
2026-06-13T11:05:52.9051417Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-13T11:05:52.9051537Z               "line": 66
2026-06-13T11:05:52.9051647Z             },
2026-06-13T11:05:52.9051765Z             {
2026-06-13T11:05:52.9051928Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.9052042Z               "line": 272
2026-06-13T11:05:52.9052161Z             },
2026-06-13T11:05:52.9052271Z             {
2026-06-13T11:05:52.9052423Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:05:52.9052534Z               "line": 201
2026-06-13T11:05:52.9052662Z             }
2026-06-13T11:05:52.9052777Z           ]
2026-06-13T11:05:52.9052892Z         }
2026-06-13T11:05:52.9053000Z       }
2026-06-13T11:05:52.9053104Z     },
2026-06-13T11:05:52.9053220Z     {
2026-06-13T11:05:52.9053333Z       "id": "REQ-INST-7",
2026-06-13T11:05:52.9053500Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-13T11:05:52.9053629Z       "requiredStages": [
2026-06-13T11:05:52.9053738Z         "impl",
2026-06-13T11:05:52.9053844Z         "unit",
2026-06-13T11:05:52.9053949Z         "int"
2026-06-13T11:05:52.9054072Z       ],
2026-06-13T11:05:52.9054310Z       "stages": {
2026-06-13T11:05:52.9054426Z         "doc": {
2026-06-13T11:05:52.9054554Z           "complete": false,
2026-06-13T11:05:52.9054668Z           "evidence": []
2026-06-13T11:05:52.9054774Z         },
2026-06-13T11:05:52.9054883Z         "impl": {
2026-06-13T11:05:52.9055007Z           "complete": true,
2026-06-13T11:05:52.9055113Z           "evidence": [
2026-06-13T11:05:52.9055334Z             {
2026-06-13T11:05:52.9055492Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.9055599Z               "line": 436
2026-06-13T11:05:52.9055714Z             },
2026-06-13T11:05:52.9055820Z             {
2026-06-13T11:05:52.9055976Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9056082Z               "line": 27
2026-06-13T11:05:52.9056196Z             },
2026-06-13T11:05:52.9056309Z             {
2026-06-13T11:05:52.9056477Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9056619Z               "line": 207
2026-06-13T11:05:52.9056726Z             },
2026-06-13T11:05:52.9056835Z             {
2026-06-13T11:05:52.9056992Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9057115Z               "line": 344
2026-06-13T11:05:52.9057225Z             },
2026-06-13T11:05:52.9057331Z             {
2026-06-13T11:05:52.9057488Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-13T11:05:52.9057618Z               "line": 59
2026-06-13T11:05:52.9057726Z             },
2026-06-13T11:05:52.9057826Z             {
2026-06-13T11:05:52.9057990Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9058102Z               "line": 41
2026-06-13T11:05:52.9058211Z             },
2026-06-13T11:05:52.9058321Z             {
2026-06-13T11:05:52.9058471Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:05:52.9058586Z               "line": 27
2026-06-13T11:05:52.9058701Z             },
2026-06-13T11:05:52.9058805Z             {
2026-06-13T11:05:52.9059081Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:05:52.9059186Z               "line": 119
2026-06-13T11:05:52.9059301Z             },
2026-06-13T11:05:52.9059401Z             {
2026-06-13T11:05:52.9059564Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:05:52.9059687Z               "line": 134
2026-06-13T11:05:52.9059797Z             },
2026-06-13T11:05:52.9059913Z             {
2026-06-13T11:05:52.9060059Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:05:52.9060174Z               "line": 139
2026-06-13T11:05:52.9060284Z             }
2026-06-13T11:05:52.9060398Z           ]
2026-06-13T11:05:52.9060513Z         },
2026-06-13T11:05:52.9060613Z         "int": {
2026-06-13T11:05:52.9060740Z           "complete": true,
2026-06-13T11:05:52.9060859Z           "evidence": [
2026-06-13T11:05:52.9060967Z             {
2026-06-13T11:05:52.9061119Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-13T11:05:52.9061244Z               "line": 102
2026-06-13T11:05:52.9061362Z             },
2026-06-13T11:05:52.9061467Z             {
2026-06-13T11:05:52.9061625Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9061734Z               "line": 595
2026-06-13T11:05:52.9061854Z             },
2026-06-13T11:05:52.9061963Z             {
2026-06-13T11:05:52.9062126Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9062259Z               "line": 869
2026-06-13T11:05:52.9062358Z             }
2026-06-13T11:05:52.9062469Z           ]
2026-06-13T11:05:52.9062578Z         },
2026-06-13T11:05:52.9062697Z         "unit": {
2026-06-13T11:05:52.9062822Z           "complete": true,
2026-06-13T11:05:52.9062941Z           "evidence": [
2026-06-13T11:05:52.9063051Z             {
2026-06-13T11:05:52.9063222Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9063342Z               "line": 1082
2026-06-13T11:05:52.9063452Z             },
2026-06-13T11:05:52.9063702Z             {
2026-06-13T11:05:52.9063851Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9063979Z               "line": 1414
2026-06-13T11:05:52.9064090Z             },
2026-06-13T11:05:52.9064199Z             {
2026-06-13T11:05:52.9064361Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-13T11:05:52.9064570Z               "line": 84
2026-06-13T11:05:52.9064686Z             },
2026-06-13T11:05:52.9064790Z             {
2026-06-13T11:05:52.9064957Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9065081Z               "line": 780
2026-06-13T11:05:52.9065181Z             },
2026-06-13T11:05:52.9065291Z             {
2026-06-13T11:05:52.9065438Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9065552Z               "line": 791
2026-06-13T11:05:52.9065668Z             },
2026-06-13T11:05:52.9065781Z             {
2026-06-13T11:05:52.9065952Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9066070Z               "line": 806
2026-06-13T11:05:52.9066216Z             },
2026-06-13T11:05:52.9066317Z             {
2026-06-13T11:05:52.9066474Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:05:52.9066599Z               "line": 166
2026-06-13T11:05:52.9066698Z             },
2026-06-13T11:05:52.9066812Z             {
2026-06-13T11:05:52.9066957Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:05:52.9067075Z               "line": 181
2026-06-13T11:05:52.9067180Z             },
2026-06-13T11:05:52.9067295Z             {
2026-06-13T11:05:52.9067451Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:05:52.9067557Z               "line": 214
2026-06-13T11:05:52.9067662Z             }
2026-06-13T11:05:52.9067766Z           ]
2026-06-13T11:05:52.9067877Z         }
2026-06-13T11:05:52.9067986Z       }
2026-06-13T11:05:52.9068095Z     },
2026-06-13T11:05:52.9068211Z     {
2026-06-13T11:05:52.9068333Z       "id": "REQ-INST-8",
2026-06-13T11:05:52.9068521Z       "title": "Remote-control mode distinct from local operation",
2026-06-13T11:05:52.9068644Z       "requiredStages": [
2026-06-13T11:05:52.9068757Z         "impl",
2026-06-13T11:05:52.9068857Z         "unit",
2026-06-13T11:05:52.9069050Z         "int"
2026-06-13T11:05:52.9069160Z       ],
2026-06-13T11:05:52.9069276Z       "stages": {
2026-06-13T11:05:52.9069384Z         "doc": {
2026-06-13T11:05:52.9069509Z           "complete": false,
2026-06-13T11:05:52.9069632Z           "evidence": []
2026-06-13T11:05:52.9069732Z         },
2026-06-13T11:05:52.9069848Z         "impl": {
2026-06-13T11:05:52.9069975Z           "complete": true,
2026-06-13T11:05:52.9070090Z           "evidence": [
2026-06-13T11:05:52.9070209Z             {
2026-06-13T11:05:52.9070352Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T11:05:52.9070473Z               "line": 98
2026-06-13T11:05:52.9070585Z             },
2026-06-13T11:05:52.9070705Z             {
2026-06-13T11:05:52.9070858Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T11:05:52.9070967Z               "line": 209
2026-06-13T11:05:52.9071078Z             },
2026-06-13T11:05:52.9071187Z             {
2026-06-13T11:05:52.9071333Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T11:05:52.9071453Z               "line": 230
2026-06-13T11:05:52.9071570Z             },
2026-06-13T11:05:52.9071674Z             {
2026-06-13T11:05:52.9071819Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-13T11:05:52.9071946Z               "line": 35
2026-06-13T11:05:52.9072047Z             }
2026-06-13T11:05:52.9072166Z           ]
2026-06-13T11:05:52.9072284Z         },
2026-06-13T11:05:52.9072418Z         "int": {
2026-06-13T11:05:52.9072547Z           "complete": true,
2026-06-13T11:05:52.9072662Z           "evidence": [
2026-06-13T11:05:52.9072781Z             {
2026-06-13T11:05:52.9072933Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:05:52.9073186Z               "line": 415
2026-06-13T11:05:52.9073301Z             },
2026-06-13T11:05:52.9073415Z             {
2026-06-13T11:05:52.9073577Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9073692Z               "line": 933
2026-06-13T11:05:52.9073810Z             }
2026-06-13T11:05:52.9073917Z           ]
2026-06-13T11:05:52.9074125Z         },
2026-06-13T11:05:52.9074234Z         "unit": {
2026-06-13T11:05:52.9074364Z           "complete": true,
2026-06-13T11:05:52.9074482Z           "evidence": [
2026-06-13T11:05:52.9074587Z             {
2026-06-13T11:05:52.9074745Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-13T11:05:52.9074858Z               "line": 181
2026-06-13T11:05:52.9074974Z             },
2026-06-13T11:05:52.9075083Z             {
2026-06-13T11:05:52.9075236Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-13T11:05:52.9075355Z               "line": 259
2026-06-13T11:05:52.9075464Z             },
2026-06-13T11:05:52.9075584Z             {
2026-06-13T11:05:52.9075736Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-13T11:05:52.9075856Z               "line": 70
2026-06-13T11:05:52.9075966Z             },
2026-06-13T11:05:52.9076079Z             {
2026-06-13T11:05:52.9076233Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-13T11:05:52.9076355Z               "line": 110
2026-06-13T11:05:52.9076469Z             }
2026-06-13T11:05:52.9076574Z           ]
2026-06-13T11:05:52.9076691Z         }
2026-06-13T11:05:52.9076795Z       }
2026-06-13T11:05:52.9076907Z     },
2026-06-13T11:05:52.9077015Z     {
2026-06-13T11:05:52.9077134Z       "id": "REQ-INST-9",
2026-06-13T11:05:52.9077354Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-13T11:05:52.9077474Z       "requiredStages": [
2026-06-13T11:05:52.9077587Z         "impl",
2026-06-13T11:05:52.9077696Z         "unit"
2026-06-13T11:05:52.9077812Z       ],
2026-06-13T11:05:52.9077941Z       "stages": {
2026-06-13T11:05:52.9078050Z         "doc": {
2026-06-13T11:05:52.9078175Z           "complete": false,
2026-06-13T11:05:52.9078289Z           "evidence": []
2026-06-13T11:05:52.9078398Z         },
2026-06-13T11:05:52.9078509Z         "impl": {
2026-06-13T11:05:52.9078632Z           "complete": true,
2026-06-13T11:05:52.9078752Z           "evidence": [
2026-06-13T11:05:52.9078866Z             {
2026-06-13T11:05:52.9079119Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9079232Z               "line": 417
2026-06-13T11:05:52.9079345Z             }
2026-06-13T11:05:52.9079456Z           ]
2026-06-13T11:05:52.9079568Z         },
2026-06-13T11:05:52.9079677Z         "int": {
2026-06-13T11:05:52.9079797Z           "complete": false,
2026-06-13T11:05:52.9079915Z           "evidence": []
2026-06-13T11:05:52.9080031Z         },
2026-06-13T11:05:52.9080145Z         "unit": {
2026-06-13T11:05:52.9080263Z           "complete": true,
2026-06-13T11:05:52.9080389Z           "evidence": [
2026-06-13T11:05:52.9080503Z             {
2026-06-13T11:05:52.9080655Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9080779Z               "line": 1321
2026-06-13T11:05:52.9080888Z             },
2026-06-13T11:05:52.9081004Z             {
2026-06-13T11:05:52.9081150Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9081275Z               "line": 1330
2026-06-13T11:05:52.9081395Z             },
2026-06-13T11:05:52.9081504Z             {
2026-06-13T11:05:52.9081658Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9081770Z               "line": 1346
2026-06-13T11:05:52.9081888Z             },
2026-06-13T11:05:52.9081999Z             {
2026-06-13T11:05:52.9082158Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9082282Z               "line": 1358
2026-06-13T11:05:52.9082388Z             },
2026-06-13T11:05:52.9082501Z             {
2026-06-13T11:05:52.9082792Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9082922Z               "line": 1378
2026-06-13T11:05:52.9083036Z             }
2026-06-13T11:05:52.9083145Z           ]
2026-06-13T11:05:52.9083242Z         }
2026-06-13T11:05:52.9083350Z       }
2026-06-13T11:05:52.9083465Z     },
2026-06-13T11:05:52.9083571Z     {
2026-06-13T11:05:52.9083713Z       "id": "REQ-INSTALL-1",
2026-06-13T11:05:52.9084042Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-13T11:05:52.9084167Z       "requiredStages": [
2026-06-13T11:05:52.9084280Z         "doc",
2026-06-13T11:05:52.9084390Z         "impl",
2026-06-13T11:05:52.9084515Z         "int"
2026-06-13T11:05:52.9084623Z       ],
2026-06-13T11:05:52.9084737Z       "stages": {
2026-06-13T11:05:52.9084837Z         "doc": {
2026-06-13T11:05:52.9084966Z           "complete": true,
2026-06-13T11:05:52.9085089Z           "evidence": [
2026-06-13T11:05:52.9085195Z             {
2026-06-13T11:05:52.9085328Z               "path": "CONTEXT.md",
2026-06-13T11:05:52.9085448Z               "line": 628
2026-06-13T11:05:52.9085577Z             }
2026-06-13T11:05:52.9085686Z           ]
2026-06-13T11:05:52.9085801Z         },
2026-06-13T11:05:52.9085920Z         "impl": {
2026-06-13T11:05:52.9086038Z           "complete": true,
2026-06-13T11:05:52.9086159Z           "evidence": [
2026-06-13T11:05:52.9086267Z             {
2026-06-13T11:05:52.9086411Z               "path": "installer/install.ps1",
2026-06-13T11:05:52.9086526Z               "line": 57
2026-06-13T11:05:52.9086644Z             },
2026-06-13T11:05:52.9086755Z             {
2026-06-13T11:05:52.9086892Z               "path": "installer/install.sh",
2026-06-13T11:05:52.9087010Z               "line": 52
2026-06-13T11:05:52.9087120Z             }
2026-06-13T11:05:52.9087237Z           ]
2026-06-13T11:05:52.9087341Z         },
2026-06-13T11:05:52.9087457Z         "int": {
2026-06-13T11:05:52.9087585Z           "complete": true,
2026-06-13T11:05:52.9087699Z           "evidence": [
2026-06-13T11:05:52.9087819Z             {
2026-06-13T11:05:52.9087971Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-13T11:05:52.9088086Z               "line": 21
2026-06-13T11:05:52.9088195Z             }
2026-06-13T11:05:52.9088310Z           ]
2026-06-13T11:05:52.9088429Z         },
2026-06-13T11:05:52.9088539Z         "unit": {
2026-06-13T11:05:52.9088663Z           "complete": false,
2026-06-13T11:05:52.9088787Z           "evidence": []
2026-06-13T11:05:52.9088896Z         }
2026-06-13T11:05:52.9089101Z       }
2026-06-13T11:05:52.9089216Z     },
2026-06-13T11:05:52.9089327Z     {
2026-06-13T11:05:52.9089449Z       "id": "REQ-INSTALL-2",
2026-06-13T11:05:52.9089622Z       "title": "Marketplace-repackaging-friendly install",
2026-06-13T11:05:52.9089741Z       "requiredStages": [
2026-06-13T11:05:52.9089863Z         "doc"
2026-06-13T11:05:52.9089968Z       ],
2026-06-13T11:05:52.9090086Z       "stages": {
2026-06-13T11:05:52.9090204Z         "doc": {
2026-06-13T11:05:52.9090329Z           "complete": true,
2026-06-13T11:05:52.9090452Z           "evidence": [
2026-06-13T11:05:52.9090561Z             {
2026-06-13T11:05:52.9090695Z               "path": "CONTEXT.md",
2026-06-13T11:05:52.9090809Z               "line": 629
2026-06-13T11:05:52.9090920Z             }
2026-06-13T11:05:52.9091034Z           ]
2026-06-13T11:05:52.9091143Z         },
2026-06-13T11:05:52.9091268Z         "impl": {
2026-06-13T11:05:52.9091387Z           "complete": false,
2026-06-13T11:05:52.9091511Z           "evidence": []
2026-06-13T11:05:52.9091621Z         },
2026-06-13T11:05:52.9091740Z         "int": {
2026-06-13T11:05:52.9091865Z           "complete": false,
2026-06-13T11:05:52.9091983Z           "evidence": []
2026-06-13T11:05:52.9092097Z         },
2026-06-13T11:05:52.9092208Z         "unit": {
2026-06-13T11:05:52.9092335Z           "complete": false,
2026-06-13T11:05:52.9092448Z           "evidence": []
2026-06-13T11:05:52.9092563Z         }
2026-06-13T11:05:52.9092680Z       }
2026-06-13T11:05:52.9092910Z     },
2026-06-13T11:05:52.9093028Z     {
2026-06-13T11:05:52.9093153Z       "id": "REQ-INSTALL-3",
2026-06-13T11:05:52.9093333Z       "title": "Idempotent + interactive-optional first run",
2026-06-13T11:05:52.9093453Z       "requiredStages": [
2026-06-13T11:05:52.9093567Z         "impl",
2026-06-13T11:05:52.9093686Z         "int"
2026-06-13T11:05:52.9093792Z       ],
2026-06-13T11:05:52.9094005Z       "stages": {
2026-06-13T11:05:52.9094116Z         "doc": {
2026-06-13T11:05:52.9094249Z           "complete": false,
2026-06-13T11:05:52.9094364Z           "evidence": []
2026-06-13T11:05:52.9094479Z         },
2026-06-13T11:05:52.9094597Z         "impl": {
2026-06-13T11:05:52.9094722Z           "complete": true,
2026-06-13T11:05:52.9094845Z           "evidence": [
2026-06-13T11:05:52.9094950Z             {
2026-06-13T11:05:52.9095099Z               "path": "installer/install.ps1",
2026-06-13T11:05:52.9095216Z               "line": 100
2026-06-13T11:05:52.9095330Z             },
2026-06-13T11:05:52.9095460Z             {
2026-06-13T11:05:52.9095592Z               "path": "installer/install.ps1",
2026-06-13T11:05:52.9095717Z               "line": 111
2026-06-13T11:05:52.9095827Z             },
2026-06-13T11:05:52.9095945Z             {
2026-06-13T11:05:52.9096075Z               "path": "installer/install.sh",
2026-06-13T11:05:52.9096203Z               "line": 79
2026-06-13T11:05:52.9096327Z             }
2026-06-13T11:05:52.9096432Z           ]
2026-06-13T11:05:52.9096546Z         },
2026-06-13T11:05:52.9096656Z         "int": {
2026-06-13T11:05:52.9096785Z           "complete": true,
2026-06-13T11:05:52.9096904Z           "evidence": [
2026-06-13T11:05:52.9097010Z             {
2026-06-13T11:05:52.9097171Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-13T11:05:52.9097286Z               "line": 167
2026-06-13T11:05:52.9097395Z             }
2026-06-13T11:05:52.9097504Z           ]
2026-06-13T11:05:52.9097618Z         },
2026-06-13T11:05:52.9097727Z         "unit": {
2026-06-13T11:05:52.9097854Z           "complete": false,
2026-06-13T11:05:52.9097974Z           "evidence": []
2026-06-13T11:05:52.9098079Z         }
2026-06-13T11:05:52.9098192Z       }
2026-06-13T11:05:52.9098293Z     },
2026-06-13T11:05:52.9098398Z     {
2026-06-13T11:05:52.9098521Z       "id": "REQ-INSTALL-4",
2026-06-13T11:05:52.9099361Z       "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-13T11:05:52.9099494Z       "requiredStages": [
2026-06-13T11:05:52.9099605Z         "impl",
2026-06-13T11:05:52.9099713Z         "unit"
2026-06-13T11:05:52.9099824Z       ],
2026-06-13T11:05:52.9099944Z       "stages": {
2026-06-13T11:05:52.9100047Z         "doc": {
2026-06-13T11:05:52.9100163Z           "complete": false,
2026-06-13T11:05:52.9100277Z           "evidence": []
2026-06-13T11:05:52.9100380Z         },
2026-06-13T11:05:52.9100499Z         "impl": {
2026-06-13T11:05:52.9100618Z           "complete": true,
2026-06-13T11:05:52.9100735Z           "evidence": [
2026-06-13T11:05:52.9100846Z             {
2026-06-13T11:05:52.9101008Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:52.9101117Z               "line": 154
2026-06-13T11:05:52.9101228Z             },
2026-06-13T11:05:52.9101346Z             {
2026-06-13T11:05:52.9101499Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9101614Z               "line": 29
2026-06-13T11:05:52.9101727Z             },
2026-06-13T11:05:52.9101838Z             {
2026-06-13T11:05:52.9101995Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9102110Z               "line": 139
2026-06-13T11:05:52.9102224Z             },
2026-06-13T11:05:52.9102337Z             {
2026-06-13T11:05:52.9102501Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9102619Z               "line": 183
2026-06-13T11:05:52.9102844Z             },
2026-06-13T11:05:52.9102961Z             {
2026-06-13T11:05:52.9103104Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9103227Z               "line": 213
2026-06-13T11:05:52.9103335Z             },
2026-06-13T11:05:52.9103451Z             {
2026-06-13T11:05:52.9103607Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9103827Z               "line": 245
2026-06-13T11:05:52.9103936Z             },
2026-06-13T11:05:52.9104047Z             {
2026-06-13T11:05:52.9104190Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9104299Z               "line": 4389
2026-06-13T11:05:52.9104400Z             }
2026-06-13T11:05:52.9104519Z           ]
2026-06-13T11:05:52.9104628Z         },
2026-06-13T11:05:52.9104739Z         "int": {
2026-06-13T11:05:52.9104866Z           "complete": false,
2026-06-13T11:05:52.9104991Z           "evidence": []
2026-06-13T11:05:52.9105096Z         },
2026-06-13T11:05:52.9105209Z         "unit": {
2026-06-13T11:05:52.9105335Z           "complete": true,
2026-06-13T11:05:52.9105443Z           "evidence": [
2026-06-13T11:05:52.9105553Z             {
2026-06-13T11:05:52.9105712Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:52.9105833Z               "line": 335
2026-06-13T11:05:52.9105943Z             },
2026-06-13T11:05:52.9106064Z             {
2026-06-13T11:05:52.9106253Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9106368Z               "line": 567
2026-06-13T11:05:52.9106486Z             },
2026-06-13T11:05:52.9106597Z             {
2026-06-13T11:05:52.9106749Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9106868Z               "line": 608
2026-06-13T11:05:52.9106988Z             },
2026-06-13T11:05:52.9107101Z             {
2026-06-13T11:05:52.9107251Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9107369Z               "line": 628
2026-06-13T11:05:52.9107483Z             },
2026-06-13T11:05:52.9107589Z             {
2026-06-13T11:05:52.9107721Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9107841Z               "line": 6197
2026-06-13T11:05:52.9107956Z             }
2026-06-13T11:05:52.9108064Z           ]
2026-06-13T11:05:52.9108173Z         }
2026-06-13T11:05:52.9108282Z       }
2026-06-13T11:05:52.9108396Z     },
2026-06-13T11:05:52.9108505Z     {
2026-06-13T11:05:52.9108635Z       "id": "REQ-INSTALL-5",
2026-06-13T11:05:52.9109259Z       "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-13T11:05:52.9110146Z       "requiredStages": [
2026-06-13T11:05:52.9110404Z         "impl",
2026-06-13T11:05:52.9110622Z         "int"
2026-06-13T11:05:52.9110842Z       ],
2026-06-13T11:05:52.9111069Z       "stages": {
2026-06-13T11:05:52.9111286Z         "doc": {
2026-06-13T11:05:52.9111539Z           "complete": false,
2026-06-13T11:05:52.9111811Z           "evidence": []
2026-06-13T11:05:52.9112055Z         },
2026-06-13T11:05:52.9112297Z         "impl": {
2026-06-13T11:05:52.9112550Z           "complete": true,
2026-06-13T11:05:52.9112831Z           "evidence": [
2026-06-13T11:05:52.9113075Z             {
2026-06-13T11:05:52.9113333Z               "path": "installer/install.ps1",
2026-06-13T11:05:52.9113641Z               "line": 5
2026-06-13T11:05:52.9113910Z             },
2026-06-13T11:05:52.9114177Z             {
2026-06-13T11:05:52.9114426Z               "path": "installer/install.sh",
2026-06-13T11:05:52.9114755Z               "line": 6
2026-06-13T11:05:52.9115017Z             }
2026-06-13T11:05:52.9115246Z           ]
2026-06-13T11:05:52.9115464Z         },
2026-06-13T11:05:52.9115693Z         "int": {
2026-06-13T11:05:52.9115938Z           "complete": true,
2026-06-13T11:05:52.9116196Z           "evidence": [
2026-06-13T11:05:52.9116427Z             {
2026-06-13T11:05:52.9116861Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-13T11:05:52.9117186Z               "line": 22
2026-06-13T11:05:52.9117443Z             }
2026-06-13T11:05:52.9117675Z           ]
2026-06-13T11:05:52.9117914Z         },
2026-06-13T11:05:52.9118140Z         "unit": {
2026-06-13T11:05:52.9118396Z           "complete": false,
2026-06-13T11:05:52.9118657Z           "evidence": []
2026-06-13T11:05:52.9119132Z         }
2026-06-13T11:05:52.9119361Z       }
2026-06-13T11:05:52.9119570Z     },
2026-06-13T11:05:52.9119790Z     {
2026-06-13T11:05:52.9120014Z       "id": "REQ-INSTALL-6",
2026-06-13T11:05:52.9121619Z       "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-13T11:05:52.9122828Z       "requiredStages": [
2026-06-13T11:05:52.9123072Z         "impl",
2026-06-13T11:05:52.9123296Z         "unit"
2026-06-13T11:05:52.9123521Z       ],
2026-06-13T11:05:52.9123729Z       "stages": {
2026-06-13T11:05:52.9123950Z         "doc": {
2026-06-13T11:05:52.9124182Z           "complete": false,
2026-06-13T11:05:52.9124436Z           "evidence": []
2026-06-13T11:05:52.9124685Z         },
2026-06-13T11:05:52.9124896Z         "impl": {
2026-06-13T11:05:52.9125133Z           "complete": true,
2026-06-13T11:05:52.9125371Z           "evidence": [
2026-06-13T11:05:52.9125600Z             {
2026-06-13T11:05:52.9125868Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.9126174Z               "line": 59
2026-06-13T11:05:52.9126407Z             },
2026-06-13T11:05:52.9133222Z             {
2026-06-13T11:05:52.9133565Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.9133894Z               "line": 559
2026-06-13T11:05:52.9134139Z             },
2026-06-13T11:05:52.9134361Z             {
2026-06-13T11:05:52.9134637Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.9134959Z               "line": 191
2026-06-13T11:05:52.9135226Z             },
2026-06-13T11:05:52.9135470Z             {
2026-06-13T11:05:52.9135841Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.9136213Z               "line": 276
2026-06-13T11:05:52.9136494Z             },
2026-06-13T11:05:52.9136795Z             {
2026-06-13T11:05:52.9137114Z               "path": "crates/spt/src/main.rs",
2026-06-13T11:05:52.9137452Z               "line": 40
2026-06-13T11:05:52.9137739Z             },
2026-06-13T11:05:52.9137976Z             {
2026-06-13T11:05:52.9138238Z               "path": "installer/install.sh",
2026-06-13T11:05:52.9138553Z               "line": 104
2026-06-13T11:05:52.9138810Z             }
2026-06-13T11:05:52.9139158Z           ]
2026-06-13T11:05:52.9139411Z         },
2026-06-13T11:05:52.9139655Z         "int": {
2026-06-13T11:05:52.9139925Z           "complete": false,
2026-06-13T11:05:52.9140219Z           "evidence": []
2026-06-13T11:05:52.9140486Z         },
2026-06-13T11:05:52.9140714Z         "unit": {
2026-06-13T11:05:52.9140963Z           "complete": true,
2026-06-13T11:05:52.9141226Z           "evidence": [
2026-06-13T11:05:52.9141464Z             {
2026-06-13T11:05:52.9141740Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:05:52.9142059Z               "line": 866
2026-06-13T11:05:52.9142303Z             }
2026-06-13T11:05:52.9142518Z           ]
2026-06-13T11:05:52.9142726Z         }
2026-06-13T11:05:52.9142948Z       }
2026-06-13T11:05:52.9143163Z     },
2026-06-13T11:05:52.9143377Z     {
2026-06-13T11:05:52.9143600Z       "id": "REQ-INSTALL-7",
2026-06-13T11:05:52.9145244Z       "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-13T11:05:52.9146430Z       "requiredStages": [
2026-06-13T11:05:52.9146688Z         "impl"
2026-06-13T11:05:52.9146912Z       ],
2026-06-13T11:05:52.9147136Z       "stages": {
2026-06-13T11:05:52.9147360Z         "doc": {
2026-06-13T11:05:52.9147726Z           "complete": false,
2026-06-13T11:05:52.9147984Z           "evidence": []
2026-06-13T11:05:52.9148227Z         },
2026-06-13T11:05:52.9148450Z         "impl": {
2026-06-13T11:05:52.9148684Z           "complete": true,
2026-06-13T11:05:52.9148933Z           "evidence": [
2026-06-13T11:05:52.9149266Z             {
2026-06-13T11:05:52.9149520Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9149806Z               "line": 3047
2026-06-13T11:05:52.9150043Z             },
2026-06-13T11:05:52.9150258Z             {
2026-06-13T11:05:52.9150509Z               "path": "installer/install.ps1",
2026-06-13T11:05:52.9150793Z               "line": 157
2026-06-13T11:05:52.9151031Z             }
2026-06-13T11:05:52.9151242Z           ]
2026-06-13T11:05:52.9151452Z         },
2026-06-13T11:05:52.9151661Z         "int": {
2026-06-13T11:05:52.9151895Z           "complete": false,
2026-06-13T11:05:52.9152143Z           "evidence": []
2026-06-13T11:05:52.9152377Z         },
2026-06-13T11:05:52.9152595Z         "unit": {
2026-06-13T11:05:52.9152828Z           "complete": false,
2026-06-13T11:05:52.9153083Z           "evidence": []
2026-06-13T11:05:52.9153324Z         }
2026-06-13T11:05:52.9153531Z       }
2026-06-13T11:05:52.9153742Z     },
2026-06-13T11:05:52.9153951Z     {
2026-06-13T11:05:52.9154170Z       "id": "REQ-INSTALL-8",
2026-06-13T11:05:52.9155477Z       "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-13T11:05:52.9157205Z       "requiredStages": [
2026-06-13T11:05:52.9157543Z         "impl"
2026-06-13T11:05:52.9157840Z       ],
2026-06-13T11:05:52.9158136Z       "stages": {
2026-06-13T11:05:52.9158446Z         "doc": {
2026-06-13T11:05:52.9158758Z           "complete": false,
2026-06-13T11:05:52.9159273Z           "evidence": []
2026-06-13T11:05:52.9159602Z         },
2026-06-13T11:05:52.9159893Z         "impl": {
2026-06-13T11:05:52.9160217Z           "complete": true,
2026-06-13T11:05:52.9160565Z           "evidence": [
2026-06-13T11:05:52.9160893Z             {
2026-06-13T11:05:52.9161229Z               "path": "installer/install.ps1",
2026-06-13T11:05:52.9161635Z               "line": 184
2026-06-13T11:05:52.9161979Z             },
2026-06-13T11:05:52.9162289Z             {
2026-06-13T11:05:52.9162632Z               "path": "installer/install.sh",
2026-06-13T11:05:52.9163041Z               "line": 121
2026-06-13T11:05:52.9163365Z             }
2026-06-13T11:05:52.9163657Z           ]
2026-06-13T11:05:52.9163941Z         },
2026-06-13T11:05:52.9164235Z         "int": {
2026-06-13T11:05:52.9164555Z           "complete": false,
2026-06-13T11:05:52.9164917Z           "evidence": []
2026-06-13T11:05:52.9165246Z         },
2026-06-13T11:05:52.9165537Z         "unit": {
2026-06-13T11:05:52.9165857Z           "complete": false,
2026-06-13T11:05:52.9166223Z           "evidence": []
2026-06-13T11:05:52.9166470Z         }
2026-06-13T11:05:52.9166682Z       }
2026-06-13T11:05:52.9166893Z     },
2026-06-13T11:05:52.9167103Z     {
2026-06-13T11:05:52.9167427Z       "id": "REQ-MANIFEST-1",
2026-06-13T11:05:52.9167946Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-13T11:05:52.9168484Z       "requiredStages": [
2026-06-13T11:05:52.9168827Z         "doc",
2026-06-13T11:05:52.9169466Z         "impl",
2026-06-13T11:05:52.9169772Z         "unit"
2026-06-13T11:05:52.9170077Z       ],
2026-06-13T11:05:52.9170372Z       "stages": {
2026-06-13T11:05:52.9170678Z         "doc": {
2026-06-13T11:05:52.9171011Z           "complete": true,
2026-06-13T11:05:52.9171363Z           "evidence": [
2026-06-13T11:05:52.9171704Z             {
2026-06-13T11:05:52.9172038Z               "path": "docs/MANIFEST.md",
2026-06-13T11:05:52.9172587Z               "line": 19
2026-06-13T11:05:52.9172910Z             }
2026-06-13T11:05:52.9173211Z           ]
2026-06-13T11:05:52.9173497Z         },
2026-06-13T11:05:52.9173784Z         "impl": {
2026-06-13T11:05:52.9174113Z           "complete": true,
2026-06-13T11:05:52.9174463Z           "evidence": [
2026-06-13T11:05:52.9174785Z             {
2026-06-13T11:05:52.9175158Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9175596Z               "line": 18
2026-06-13T11:05:52.9175948Z             }
2026-06-13T11:05:52.9176239Z           ]
2026-06-13T11:05:52.9176469Z         },
2026-06-13T11:05:52.9176694Z         "int": {
2026-06-13T11:05:52.9176983Z           "complete": false,
2026-06-13T11:05:52.9177362Z           "evidence": []
2026-06-13T11:05:52.9177705Z         },
2026-06-13T11:05:52.9178016Z         "unit": {
2026-06-13T11:05:52.9178345Z           "complete": true,
2026-06-13T11:05:52.9178692Z           "evidence": [
2026-06-13T11:05:52.9179088Z             {
2026-06-13T11:05:52.9179479Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9179941Z               "line": 820
2026-06-13T11:05:52.9180289Z             },
2026-06-13T11:05:52.9180589Z             {
2026-06-13T11:05:52.9180956Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9181380Z               "line": 934
2026-06-13T11:05:52.9181714Z             },
2026-06-13T11:05:52.9182018Z             {
2026-06-13T11:05:52.9182387Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9182822Z               "line": 946
2026-06-13T11:05:52.9183156Z             },
2026-06-13T11:05:52.9183466Z             {
2026-06-13T11:05:52.9183833Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9184271Z               "line": 957
2026-06-13T11:05:52.9184605Z             },
2026-06-13T11:05:52.9184909Z             {
2026-06-13T11:05:52.9185278Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9185718Z               "line": 974
2026-06-13T11:05:52.9186052Z             },
2026-06-13T11:05:52.9186357Z             {
2026-06-13T11:05:52.9186728Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9187167Z               "line": 988
2026-06-13T11:05:52.9187538Z             },
2026-06-13T11:05:52.9187845Z             {
2026-06-13T11:05:52.9188223Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9188666Z               "line": 1053
2026-06-13T11:05:52.9189080Z             },
2026-06-13T11:05:52.9189400Z             {
2026-06-13T11:05:52.9189806Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9190253Z               "line": 1068
2026-06-13T11:05:52.9190600Z             },
2026-06-13T11:05:52.9190853Z             {
2026-06-13T11:05:52.9191112Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9191422Z               "line": 1083
2026-06-13T11:05:52.9191688Z             },
2026-06-13T11:05:52.9191916Z             {
2026-06-13T11:05:52.9192173Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9192469Z               "line": 1094
2026-06-13T11:05:52.9192707Z             }
2026-06-13T11:05:52.9192923Z           ]
2026-06-13T11:05:52.9193134Z         }
2026-06-13T11:05:52.9193344Z       }
2026-06-13T11:05:52.9193567Z     },
2026-06-13T11:05:52.9193773Z     {
2026-06-13T11:05:52.9194002Z       "id": "REQ-MANIFEST-2",
2026-06-13T11:05:52.9195022Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-13T11:05:52.9195649Z       "requiredStages": [
2026-06-13T11:05:52.9195906Z         "doc",
2026-06-13T11:05:52.9196139Z         "impl",
2026-06-13T11:05:52.9196368Z         "unit"
2026-06-13T11:05:52.9196597Z       ],
2026-06-13T11:05:52.9196807Z       "stages": {
2026-06-13T11:05:52.9197045Z         "doc": {
2026-06-13T11:05:52.9197412Z           "complete": true,
2026-06-13T11:05:52.9197680Z           "evidence": [
2026-06-13T11:05:52.9197923Z             {
2026-06-13T11:05:52.9198160Z               "path": "CONTEXT.md",
2026-06-13T11:05:52.9198434Z               "line": 75
2026-06-13T11:05:52.9198686Z             }
2026-06-13T11:05:52.9198916Z           ]
2026-06-13T11:05:52.9199221Z         },
2026-06-13T11:05:52.9199441Z         "impl": {
2026-06-13T11:05:52.9199683Z           "complete": true,
2026-06-13T11:05:52.9199950Z           "evidence": [
2026-06-13T11:05:52.9200198Z             {
2026-06-13T11:05:52.9200475Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9200790Z               "line": 66
2026-06-13T11:05:52.9201027Z             },
2026-06-13T11:05:52.9201265Z             {
2026-06-13T11:05:52.9201522Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9201832Z               "line": 15
2026-06-13T11:05:52.9202076Z             },
2026-06-13T11:05:52.9202291Z             {
2026-06-13T11:05:52.9202548Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9202849Z               "line": 65
2026-06-13T11:05:52.9203086Z             },
2026-06-13T11:05:52.9203338Z             {
2026-06-13T11:05:52.9203618Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9203924Z               "line": 83
2026-06-13T11:05:52.9204156Z             },
2026-06-13T11:05:52.9204371Z             {
2026-06-13T11:05:52.9204648Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9204957Z               "line": 165
2026-06-13T11:05:52.9205216Z             },
2026-06-13T11:05:52.9205459Z             {
2026-06-13T11:05:52.9205735Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9206053Z               "line": 326
2026-06-13T11:05:52.9206299Z             },
2026-06-13T11:05:52.9206524Z             {
2026-06-13T11:05:52.9206786Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9207092Z               "line": 352
2026-06-13T11:05:52.9207348Z             },
2026-06-13T11:05:52.9207605Z             {
2026-06-13T11:05:52.9207881Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9208192Z               "line": 430
2026-06-13T11:05:52.9208441Z             },
2026-06-13T11:05:52.9208672Z             {
2026-06-13T11:05:52.9209032Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9209362Z               "line": 455
2026-06-13T11:05:52.9209609Z             },
2026-06-13T11:05:52.9209843Z             {
2026-06-13T11:05:52.9210130Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9210439Z               "line": 478
2026-06-13T11:05:52.9210687Z             },
2026-06-13T11:05:52.9210908Z             {
2026-06-13T11:05:52.9211159Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9211477Z               "line": 493
2026-06-13T11:05:52.9211730Z             },
2026-06-13T11:05:52.9211964Z             {
2026-06-13T11:05:52.9212241Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9212551Z               "line": 4539
2026-06-13T11:05:52.9212895Z             },
2026-06-13T11:05:52.9213205Z             {
2026-06-13T11:05:52.9213562Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9214001Z               "line": 4553
2026-06-13T11:05:52.9214349Z             },
2026-06-13T11:05:52.9214664Z             {
2026-06-13T11:05:52.9215021Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9215447Z               "line": 4587
2026-06-13T11:05:52.9215985Z             }
2026-06-13T11:05:52.9216276Z           ]
2026-06-13T11:05:52.9216509Z         },
2026-06-13T11:05:52.9216737Z         "int": {
2026-06-13T11:05:52.9216992Z           "complete": false,
2026-06-13T11:05:52.9217360Z           "evidence": []
2026-06-13T11:05:52.9217732Z         },
2026-06-13T11:05:52.9218070Z         "unit": {
2026-06-13T11:05:52.9218643Z           "complete": true,
2026-06-13T11:05:52.9219076Z           "evidence": [
2026-06-13T11:05:52.9219440Z             {
2026-06-13T11:05:52.9219826Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9220284Z               "line": 920
2026-06-13T11:05:52.9220613Z             },
2026-06-13T11:05:52.9220914Z             {
2026-06-13T11:05:52.9221290Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9221749Z               "line": 193
2026-06-13T11:05:52.9222075Z             },
2026-06-13T11:05:52.9222381Z             {
2026-06-13T11:05:52.9222759Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9223201Z               "line": 254
2026-06-13T11:05:52.9223534Z             },
2026-06-13T11:05:52.9223845Z             {
2026-06-13T11:05:52.9224220Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9224662Z               "line": 295
2026-06-13T11:05:52.9225019Z             },
2026-06-13T11:05:52.9225344Z             {
2026-06-13T11:05:52.9225721Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9226149Z               "line": 307
2026-06-13T11:05:52.9226487Z             },
2026-06-13T11:05:52.9226784Z             {
2026-06-13T11:05:52.9227059Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9227381Z               "line": 318
2026-06-13T11:05:52.9227634Z             },
2026-06-13T11:05:52.9227925Z             {
2026-06-13T11:05:52.9228306Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9228749Z               "line": 327
2026-06-13T11:05:52.9229185Z             },
2026-06-13T11:05:52.9229504Z             {
2026-06-13T11:05:52.9229882Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9230324Z               "line": 343
2026-06-13T11:05:52.9230658Z             },
2026-06-13T11:05:52.9230958Z             {
2026-06-13T11:05:52.9231316Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9231747Z               "line": 400
2026-06-13T11:05:52.9232075Z             },
2026-06-13T11:05:52.9232381Z             {
2026-06-13T11:05:52.9232747Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9233194Z               "line": 681
2026-06-13T11:05:52.9233541Z             },
2026-06-13T11:05:52.9233837Z             {
2026-06-13T11:05:52.9234195Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9234649Z               "line": 705
2026-06-13T11:05:52.9235000Z             },
2026-06-13T11:05:52.9235299Z             {
2026-06-13T11:05:52.9235670Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9236118Z               "line": 731
2026-06-13T11:05:52.9236480Z             },
2026-06-13T11:05:52.9236791Z             {
2026-06-13T11:05:52.9237154Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9237587Z               "line": 750
2026-06-13T11:05:52.9237932Z             },
2026-06-13T11:05:52.9238233Z             {
2026-06-13T11:05:52.9238590Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9239134Z               "line": 781
2026-06-13T11:05:52.9239477Z             },
2026-06-13T11:05:52.9247719Z             {
2026-06-13T11:05:52.9248222Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.9248687Z               "line": 309
2026-06-13T11:05:52.9249117Z             },
2026-06-13T11:05:52.9249426Z             {
2026-06-13T11:05:52.9249779Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:05:52.9250446Z               "line": 477
2026-06-13T11:05:52.9250813Z             },
2026-06-13T11:05:52.9251139Z             {
2026-06-13T11:05:52.9251521Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9251941Z               "line": 6261
2026-06-13T11:05:52.9252293Z             },
2026-06-13T11:05:52.9252594Z             {
2026-06-13T11:05:52.9252937Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9253511Z               "line": 7140
2026-06-13T11:05:52.9253852Z             }
2026-06-13T11:05:52.9254157Z           ]
2026-06-13T11:05:52.9254458Z         }
2026-06-13T11:05:52.9254758Z       }
2026-06-13T11:05:52.9255044Z     },
2026-06-13T11:05:52.9255334Z     {
2026-06-13T11:05:52.9255644Z       "id": "REQ-MANIFEST-3",
2026-06-13T11:05:52.9257020Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-13T11:05:52.9258092Z       "requiredStages": [
2026-06-13T11:05:52.9258435Z         "doc",
2026-06-13T11:05:52.9258740Z         "impl",
2026-06-13T11:05:52.9259132Z         "unit"
2026-06-13T11:05:52.9259438Z       ],
2026-06-13T11:05:52.9259724Z       "stages": {
2026-06-13T11:05:52.9260044Z         "doc": {
2026-06-13T11:05:52.9260359Z           "complete": true,
2026-06-13T11:05:52.9260711Z           "evidence": [
2026-06-13T11:05:52.9261045Z             {
2026-06-13T11:05:52.9261373Z               "path": "CONTEXT.md",
2026-06-13T11:05:52.9261747Z               "line": 81
2026-06-13T11:05:52.9262071Z             }
2026-06-13T11:05:52.9262376Z           ]
2026-06-13T11:05:52.9262681Z         },
2026-06-13T11:05:52.9262972Z         "impl": {
2026-06-13T11:05:52.9263292Z           "complete": true,
2026-06-13T11:05:52.9263664Z           "evidence": [
2026-06-13T11:05:52.9263907Z             {
2026-06-13T11:05:52.9264197Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9264512Z               "line": 76
2026-06-13T11:05:52.9264760Z             },
2026-06-13T11:05:52.9264984Z             {
2026-06-13T11:05:52.9265250Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9265556Z               "line": 101
2026-06-13T11:05:52.9265795Z             },
2026-06-13T11:05:52.9266010Z             {
2026-06-13T11:05:52.9266272Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9266571Z               "line": 114
2026-06-13T11:05:52.9266807Z             },
2026-06-13T11:05:52.9267018Z             {
2026-06-13T11:05:52.9267279Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9267585Z               "line": 376
2026-06-13T11:05:52.9267817Z             },
2026-06-13T11:05:52.9268032Z             {
2026-06-13T11:05:52.9268294Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9268600Z               "line": 392
2026-06-13T11:05:52.9268835Z             },
2026-06-13T11:05:52.9269164Z             {
2026-06-13T11:05:52.9269409Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9269697Z               "line": 4600
2026-06-13T11:05:52.9269932Z             },
2026-06-13T11:05:52.9270147Z             {
2026-06-13T11:05:52.9270389Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9270670Z               "line": 4622
2026-06-13T11:05:52.9270904Z             }
2026-06-13T11:05:52.9271124Z           ]
2026-06-13T11:05:52.9271338Z         },
2026-06-13T11:05:52.9271552Z         "int": {
2026-06-13T11:05:52.9271787Z           "complete": false,
2026-06-13T11:05:52.9272038Z           "evidence": []
2026-06-13T11:05:52.9272278Z         },
2026-06-13T11:05:52.9272494Z         "unit": {
2026-06-13T11:05:52.9272728Z           "complete": true,
2026-06-13T11:05:52.9272980Z           "evidence": [
2026-06-13T11:05:52.9273213Z             {
2026-06-13T11:05:52.9273476Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9273791Z               "line": 353
2026-06-13T11:05:52.9274205Z             },
2026-06-13T11:05:52.9274520Z             {
2026-06-13T11:05:52.9274881Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:05:52.9275297Z               "line": 385
2026-06-13T11:05:52.9275607Z             },
2026-06-13T11:05:52.9275917Z             {
2026-06-13T11:05:52.9276279Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:05:52.9276857Z               "line": 805
2026-06-13T11:05:52.9277179Z             },
2026-06-13T11:05:52.9277467Z             {
2026-06-13T11:05:52.9277791Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9278211Z               "line": 6316
2026-06-13T11:05:52.9278535Z             }
2026-06-13T11:05:52.9278836Z           ]
2026-06-13T11:05:52.9279217Z         }
2026-06-13T11:05:52.9279512Z       }
2026-06-13T11:05:52.9279804Z     },
2026-06-13T11:05:52.9280084Z     {
2026-06-13T11:05:52.9280387Z       "id": "REQ-MANIFEST-4",
2026-06-13T11:05:52.9281727Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-13T11:05:52.9282891Z       "requiredStages": [
2026-06-13T11:05:52.9283225Z         "doc",
2026-06-13T11:05:52.9283535Z         "impl",
2026-06-13T11:05:52.9283835Z         "unit"
2026-06-13T11:05:52.9284141Z       ],
2026-06-13T11:05:52.9284436Z       "stages": {
2026-06-13T11:05:52.9284746Z         "doc": {
2026-06-13T11:05:52.9285075Z           "complete": true,
2026-06-13T11:05:52.9285417Z           "evidence": [
2026-06-13T11:05:52.9285746Z             {
2026-06-13T11:05:52.9286066Z               "path": "CONTEXT.md",
2026-06-13T11:05:52.9286448Z               "line": 86
2026-06-13T11:05:52.9286686Z             }
2026-06-13T11:05:52.9286900Z           ]
2026-06-13T11:05:52.9287111Z         },
2026-06-13T11:05:52.9287417Z         "impl": {
2026-06-13T11:05:52.9287753Z           "complete": true,
2026-06-13T11:05:52.9288109Z           "evidence": [
2026-06-13T11:05:52.9288443Z             {
2026-06-13T11:05:52.9288652Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9288810Z               "line": 84
2026-06-13T11:05:52.9289105Z             },
2026-06-13T11:05:52.9289262Z             {
2026-06-13T11:05:52.9289463Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9289577Z               "line": 148
2026-06-13T11:05:52.9289692Z             },
2026-06-13T11:05:52.9289801Z             {
2026-06-13T11:05:52.9289959Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.9290072Z               "line": 83
2026-06-13T11:05:52.9290178Z             },
2026-06-13T11:05:52.9290294Z             {
2026-06-13T11:05:52.9290444Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9290568Z               "line": 437
2026-06-13T11:05:52.9290677Z             },
2026-06-13T11:05:52.9290785Z             {
2026-06-13T11:05:52.9290942Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9291061Z               "line": 462
2026-06-13T11:05:52.9291170Z             }
2026-06-13T11:05:52.9291276Z           ]
2026-06-13T11:05:52.9291400Z         },
2026-06-13T11:05:52.9291499Z         "int": {
2026-06-13T11:05:52.9291620Z           "complete": false,
2026-06-13T11:05:52.9291733Z           "evidence": []
2026-06-13T11:05:52.9291839Z         },
2026-06-13T11:05:52.9291963Z         "unit": {
2026-06-13T11:05:52.9292082Z           "complete": true,
2026-06-13T11:05:52.9292202Z           "evidence": [
2026-06-13T11:05:52.9292310Z             {
2026-06-13T11:05:52.9292463Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9292578Z               "line": 1003
2026-06-13T11:05:52.9292687Z             },
2026-06-13T11:05:52.9292793Z             {
2026-06-13T11:05:52.9292945Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9293063Z               "line": 1036
2026-06-13T11:05:52.9293304Z             },
2026-06-13T11:05:52.9293422Z             {
2026-06-13T11:05:52.9293571Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9293690Z               "line": 739
2026-06-13T11:05:52.9293800Z             }
2026-06-13T11:05:52.9293900Z           ]
2026-06-13T11:05:52.9294014Z         }
2026-06-13T11:05:52.9294115Z       }
2026-06-13T11:05:52.9294329Z     },
2026-06-13T11:05:52.9294435Z     {
2026-06-13T11:05:52.9294558Z       "id": "REQ-MESH-1",
2026-06-13T11:05:52.9296732Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-13T11:05:52.9296860Z       "requiredStages": [
2026-06-13T11:05:52.9296969Z         "impl",
2026-06-13T11:05:52.9297089Z         "unit",
2026-06-13T11:05:52.9297198Z         "int"
2026-06-13T11:05:52.9297304Z       ],
2026-06-13T11:05:52.9297413Z       "stages": {
2026-06-13T11:05:52.9297522Z         "doc": {
2026-06-13T11:05:52.9297647Z           "complete": false,
2026-06-13T11:05:52.9297756Z           "evidence": []
2026-06-13T11:05:52.9297865Z         },
2026-06-13T11:05:52.9297977Z         "impl": {
2026-06-13T11:05:52.9298094Z           "complete": true,
2026-06-13T11:05:52.9298212Z           "evidence": [
2026-06-13T11:05:52.9298323Z             {
2026-06-13T11:05:52.9298473Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.9298592Z               "line": 680
2026-06-13T11:05:52.9298708Z             },
2026-06-13T11:05:52.9298806Z             {
2026-06-13T11:05:52.9299065Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9299183Z               "line": 38
2026-06-13T11:05:52.9299303Z             },
2026-06-13T11:05:52.9299417Z             {
2026-06-13T11:05:52.9299575Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9299704Z               "line": 161
2026-06-13T11:05:52.9299813Z             },
2026-06-13T11:05:52.9299919Z             {
2026-06-13T11:05:52.9300065Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9300181Z               "line": 206
2026-06-13T11:05:52.9300299Z             },
2026-06-13T11:05:52.9300399Z             {
2026-06-13T11:05:52.9300563Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9300675Z               "line": 57
2026-06-13T11:05:52.9300791Z             },
2026-06-13T11:05:52.9300910Z             {
2026-06-13T11:05:52.9301075Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:05:52.9301195Z               "line": 24
2026-06-13T11:05:52.9301302Z             },
2026-06-13T11:05:52.9301425Z             {
2026-06-13T11:05:52.9301589Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:05:52.9301712Z               "line": 142
2026-06-13T11:05:52.9301841Z             },
2026-06-13T11:05:52.9301941Z             {
2026-06-13T11:05:52.9302103Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:05:52.9302218Z               "line": 162
2026-06-13T11:05:52.9302331Z             }
2026-06-13T11:05:52.9302437Z           ]
2026-06-13T11:05:52.9302551Z         },
2026-06-13T11:05:52.9302670Z         "int": {
2026-06-13T11:05:52.9302786Z           "complete": true,
2026-06-13T11:05:52.9302913Z           "evidence": [
2026-06-13T11:05:52.9303018Z             {
2026-06-13T11:05:52.9303300Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-13T11:05:52.9303416Z               "line": 67
2026-06-13T11:05:52.9303542Z             },
2026-06-13T11:05:52.9303656Z             {
2026-06-13T11:05:52.9303813Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-13T11:05:52.9303935Z               "line": 93
2026-06-13T11:05:52.9304035Z             },
2026-06-13T11:05:52.9304141Z             {
2026-06-13T11:05:52.9304442Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-13T11:05:52.9304560Z               "line": 117
2026-06-13T11:05:52.9304670Z             },
2026-06-13T11:05:52.9304770Z             {
2026-06-13T11:05:52.9304936Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-13T11:05:52.9305056Z               "line": 134
2026-06-13T11:05:52.9305175Z             }
2026-06-13T11:05:52.9305280Z           ]
2026-06-13T11:05:52.9305381Z         },
2026-06-13T11:05:52.9305500Z         "unit": {
2026-06-13T11:05:52.9305609Z           "complete": true,
2026-06-13T11:05:52.9305728Z           "evidence": [
2026-06-13T11:05:52.9305843Z             {
2026-06-13T11:05:52.9306001Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9306114Z               "line": 427
2026-06-13T11:05:52.9306230Z             },
2026-06-13T11:05:52.9306340Z             {
2026-06-13T11:05:52.9306499Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:05:52.9306628Z               "line": 376
2026-06-13T11:05:52.9306734Z             },
2026-06-13T11:05:52.9306852Z             {
2026-06-13T11:05:52.9307020Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:05:52.9307138Z               "line": 412
2026-06-13T11:05:52.9307254Z             },
2026-06-13T11:05:52.9307363Z             {
2026-06-13T11:05:52.9307525Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:05:52.9307640Z               "line": 427
2026-06-13T11:05:52.9307758Z             },
2026-06-13T11:05:52.9307874Z             {
2026-06-13T11:05:52.9308035Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:05:52.9308155Z               "line": 438
2026-06-13T11:05:52.9308265Z             },
2026-06-13T11:05:52.9308373Z             {
2026-06-13T11:05:52.9308532Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:05:52.9308655Z               "line": 449
2026-06-13T11:05:52.9308773Z             },
2026-06-13T11:05:52.9308887Z             {
2026-06-13T11:05:52.9309171Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:05:52.9309287Z               "line": 460
2026-06-13T11:05:52.9309405Z             },
2026-06-13T11:05:52.9309515Z             {
2026-06-13T11:05:52.9309676Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:05:52.9309792Z               "line": 496
2026-06-13T11:05:52.9309896Z             },
2026-06-13T11:05:52.9310015Z             {
2026-06-13T11:05:52.9310164Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:05:52.9310287Z               "line": 519
2026-06-13T11:05:52.9310396Z             },
2026-06-13T11:05:52.9310512Z             {
2026-06-13T11:05:52.9310678Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:05:52.9310794Z               "line": 546
2026-06-13T11:05:52.9310906Z             }
2026-06-13T11:05:52.9311022Z           ]
2026-06-13T11:05:52.9311142Z         }
2026-06-13T11:05:52.9311250Z       }
2026-06-13T11:05:52.9311366Z     },
2026-06-13T11:05:52.9311480Z     {
2026-06-13T11:05:52.9311602Z       "id": "REQ-MESH-2",
2026-06-13T11:05:52.9314396Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-13T11:05:52.9314620Z       "requiredStages": [
2026-06-13T11:05:52.9314730Z         "impl",
2026-06-13T11:05:52.9314847Z         "unit",
2026-06-13T11:05:52.9314959Z         "int"
2026-06-13T11:05:52.9315073Z       ],
2026-06-13T11:05:52.9315191Z       "stages": {
2026-06-13T11:05:52.9315301Z         "doc": {
2026-06-13T11:05:52.9315430Z           "complete": false,
2026-06-13T11:05:52.9315545Z           "evidence": []
2026-06-13T11:05:52.9315659Z         },
2026-06-13T11:05:52.9315768Z         "impl": {
2026-06-13T11:05:52.9315899Z           "complete": true,
2026-06-13T11:05:52.9316022Z           "evidence": [
2026-06-13T11:05:52.9316131Z             {
2026-06-13T11:05:52.9316288Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.9316407Z               "line": 569
2026-06-13T11:05:52.9316523Z             },
2026-06-13T11:05:52.9316636Z             {
2026-06-13T11:05:52.9316795Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9316918Z               "line": 118
2026-06-13T11:05:52.9317027Z             },
2026-06-13T11:05:52.9317140Z             {
2026-06-13T11:05:52.9317289Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9317417Z               "line": 347
2026-06-13T11:05:52.9317523Z             },
2026-06-13T11:05:52.9317637Z             {
2026-06-13T11:05:52.9317795Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9317909Z               "line": 389
2026-06-13T11:05:52.9318023Z             },
2026-06-13T11:05:52.9318134Z             {
2026-06-13T11:05:52.9318286Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9318400Z               "line": 403
2026-06-13T11:05:52.9318515Z             },
2026-06-13T11:05:52.9318629Z             {
2026-06-13T11:05:52.9318778Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9318895Z               "line": 492
2026-06-13T11:05:52.9319068Z             },
2026-06-13T11:05:52.9319186Z             {
2026-06-13T11:05:52.9319343Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9319457Z               "line": 507
2026-06-13T11:05:52.9319570Z             },
2026-06-13T11:05:52.9319678Z             {
2026-06-13T11:05:52.9319833Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9319945Z               "line": 534
2026-06-13T11:05:52.9320061Z             },
2026-06-13T11:05:52.9320175Z             {
2026-06-13T11:05:52.9320332Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9320457Z               "line": 207
2026-06-13T11:05:52.9320565Z             },
2026-06-13T11:05:52.9320672Z             {
2026-06-13T11:05:52.9320824Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9320948Z               "line": 755
2026-06-13T11:05:52.9321063Z             },
2026-06-13T11:05:52.9321167Z             {
2026-06-13T11:05:52.9321330Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9321448Z               "line": 816
2026-06-13T11:05:52.9321562Z             },
2026-06-13T11:05:52.9321673Z             {
2026-06-13T11:05:52.9321830Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9321950Z               "line": 869
2026-06-13T11:05:52.9322059Z             },
2026-06-13T11:05:52.9322177Z             {
2026-06-13T11:05:52.9322324Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9322451Z               "line": 891
2026-06-13T11:05:52.9322671Z             },
2026-06-13T11:05:52.9322789Z             {
2026-06-13T11:05:52.9322943Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.9323062Z               "line": 122
2026-06-13T11:05:52.9323175Z             },
2026-06-13T11:05:52.9323286Z             {
2026-06-13T11:05:52.9323442Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9323657Z               "line": 44
2026-06-13T11:05:52.9323766Z             },
2026-06-13T11:05:52.9323882Z             {
2026-06-13T11:05:52.9324024Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9324153Z               "line": 184
2026-06-13T11:05:52.9324254Z             },
2026-06-13T11:05:52.9324377Z             {
2026-06-13T11:05:52.9324521Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9324644Z               "line": 211
2026-06-13T11:05:52.9324748Z             },
2026-06-13T11:05:52.9324848Z             {
2026-06-13T11:05:52.9324993Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9325112Z               "line": 251
2026-06-13T11:05:52.9325218Z             },
2026-06-13T11:05:52.9325318Z             {
2026-06-13T11:05:52.9325461Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9325580Z               "line": 275
2026-06-13T11:05:52.9325680Z             },
2026-06-13T11:05:52.9325795Z             {
2026-06-13T11:05:52.9325943Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9326066Z               "line": 289
2026-06-13T11:05:52.9326177Z             },
2026-06-13T11:05:52.9326286Z             {
2026-06-13T11:05:52.9326429Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9326548Z               "line": 300
2026-06-13T11:05:52.9326672Z             },
2026-06-13T11:05:52.9326778Z             {
2026-06-13T11:05:52.9326920Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9327050Z               "line": 313
2026-06-13T11:05:52.9327149Z             }
2026-06-13T11:05:52.9327273Z           ]
2026-06-13T11:05:52.9327374Z         },
2026-06-13T11:05:52.9327478Z         "int": {
2026-06-13T11:05:52.9327596Z           "complete": true,
2026-06-13T11:05:52.9327720Z           "evidence": [
2026-06-13T11:05:52.9327831Z             {
2026-06-13T11:05:52.9327987Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-13T11:05:52.9328112Z               "line": 116
2026-06-13T11:05:52.9328220Z             },
2026-06-13T11:05:52.9328321Z             {
2026-06-13T11:05:52.9328483Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-13T11:05:52.9328606Z               "line": 181
2026-06-13T11:05:52.9328708Z             }
2026-06-13T11:05:52.9328812Z           ]
2026-06-13T11:05:52.9328926Z         },
2026-06-13T11:05:52.9329132Z         "unit": {
2026-06-13T11:05:52.9329260Z           "complete": true,
2026-06-13T11:05:52.9329375Z           "evidence": [
2026-06-13T11:05:52.9329479Z             {
2026-06-13T11:05:52.9329643Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9329760Z               "line": 999
2026-06-13T11:05:52.9329874Z             },
2026-06-13T11:05:52.9329979Z             {
2026-06-13T11:05:52.9330135Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9330253Z               "line": 1016
2026-06-13T11:05:52.9330359Z             },
2026-06-13T11:05:52.9330468Z             {
2026-06-13T11:05:52.9330612Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9330735Z               "line": 1024
2026-06-13T11:05:52.9330834Z             },
2026-06-13T11:05:52.9330950Z             {
2026-06-13T11:05:52.9331102Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9331222Z               "line": 1048
2026-06-13T11:05:52.9331336Z             },
2026-06-13T11:05:52.9331445Z             {
2026-06-13T11:05:52.9331608Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9331827Z               "line": 1499
2026-06-13T11:05:52.9331942Z             },
2026-06-13T11:05:52.9332041Z             {
2026-06-13T11:05:52.9332186Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9332313Z               "line": 347
2026-06-13T11:05:52.9332418Z             },
2026-06-13T11:05:52.9332529Z             {
2026-06-13T11:05:52.9332671Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9332885Z               "line": 370
2026-06-13T11:05:52.9332987Z             },
2026-06-13T11:05:52.9333101Z             {
2026-06-13T11:05:52.9333245Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9333358Z               "line": 407
2026-06-13T11:05:52.9333474Z             },
2026-06-13T11:05:52.9333583Z             {
2026-06-13T11:05:52.9333735Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9333861Z               "line": 431
2026-06-13T11:05:52.9333970Z             },
2026-06-13T11:05:52.9334084Z             {
2026-06-13T11:05:52.9334213Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9334331Z               "line": 483
2026-06-13T11:05:52.9334438Z             },
2026-06-13T11:05:52.9334556Z             {
2026-06-13T11:05:52.9334704Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9334829Z               "line": 499
2026-06-13T11:05:52.9334966Z             },
2026-06-13T11:05:52.9335077Z             {
2026-06-13T11:05:52.9335223Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9335336Z               "line": 514
2026-06-13T11:05:52.9335456Z             },
2026-06-13T11:05:52.9335568Z             {
2026-06-13T11:05:52.9335711Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9335832Z               "line": 531
2026-06-13T11:05:52.9335944Z             }
2026-06-13T11:05:52.9336060Z           ]
2026-06-13T11:05:52.9336170Z         }
2026-06-13T11:05:52.9336283Z       }
2026-06-13T11:05:52.9336399Z     },
2026-06-13T11:05:52.9336508Z     {
2026-06-13T11:05:52.9336636Z       "id": "REQ-MESH-3",
2026-06-13T11:05:52.9338428Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-13T11:05:52.9338566Z       "requiredStages": [
2026-06-13T11:05:52.9338686Z         "impl",
2026-06-13T11:05:52.9338795Z         "unit",
2026-06-13T11:05:52.9338915Z         "int"
2026-06-13T11:05:52.9339100Z       ],
2026-06-13T11:05:52.9339220Z       "stages": {
2026-06-13T11:05:52.9339329Z         "doc": {
2026-06-13T11:05:52.9339462Z           "complete": false,
2026-06-13T11:05:52.9339583Z           "evidence": []
2026-06-13T11:05:52.9339692Z         },
2026-06-13T11:05:52.9339806Z         "impl": {
2026-06-13T11:05:52.9339926Z           "complete": true,
2026-06-13T11:05:52.9340044Z           "evidence": [
2026-06-13T11:05:52.9340154Z             {
2026-06-13T11:05:52.9340316Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.9340439Z               "line": 641
2026-06-13T11:05:52.9340549Z             }
2026-06-13T11:05:52.9340661Z           ]
2026-06-13T11:05:52.9340765Z         },
2026-06-13T11:05:52.9340880Z         "int": {
2026-06-13T11:05:52.9341000Z           "complete": true,
2026-06-13T11:05:52.9341123Z           "evidence": [
2026-06-13T11:05:52.9341239Z             {
2026-06-13T11:05:52.9341390Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-13T11:05:52.9341510Z               "line": 373
2026-06-13T11:05:52.9341615Z             },
2026-06-13T11:05:52.9341733Z             {
2026-06-13T11:05:52.9342015Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-13T11:05:52.9342140Z               "line": 436
2026-06-13T11:05:52.9342258Z             }
2026-06-13T11:05:52.9342363Z           ]
2026-06-13T11:05:52.9342474Z         },
2026-06-13T11:05:52.9342587Z         "unit": {
2026-06-13T11:05:52.9342717Z           "complete": true,
2026-06-13T11:05:52.9342921Z           "evidence": [
2026-06-13T11:05:52.9343036Z             {
2026-06-13T11:05:52.9343198Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.9343311Z               "line": 910
2026-06-13T11:05:52.9343425Z             }
2026-06-13T11:05:52.9343533Z           ]
2026-06-13T11:05:52.9343647Z         }
2026-06-13T11:05:52.9343757Z       }
2026-06-13T11:05:52.9343876Z     },
2026-06-13T11:05:52.9343986Z     {
2026-06-13T11:05:52.9344111Z       "id": "REQ-MESH-4",
2026-06-13T11:05:52.9346397Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-13T11:05:52.9346586Z       "requiredStages": [
2026-06-13T11:05:52.9346710Z         "impl",
2026-06-13T11:05:52.9346876Z         "unit",
2026-06-13T11:05:52.9347034Z         "int"
2026-06-13T11:05:52.9347177Z       ],
2026-06-13T11:05:52.9347330Z       "stages": {
2026-06-13T11:05:52.9347463Z         "doc": {
2026-06-13T11:05:52.9347636Z           "complete": false,
2026-06-13T11:05:52.9347768Z           "evidence": []
2026-06-13T11:05:52.9347932Z         },
2026-06-13T11:05:52.9348060Z         "impl": {
2026-06-13T11:05:52.9348223Z           "complete": true,
2026-06-13T11:05:52.9348384Z           "evidence": [
2026-06-13T11:05:52.9348513Z             {
2026-06-13T11:05:52.9348726Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:05:52.9348850Z               "line": 33
2026-06-13T11:05:52.9349083Z             },
2026-06-13T11:05:52.9349222Z             {
2026-06-13T11:05:52.9349426Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9349575Z               "line": 68
2026-06-13T11:05:52.9349698Z             },
2026-06-13T11:05:52.9356788Z             {
2026-06-13T11:05:52.9357003Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9357136Z               "line": 111
2026-06-13T11:05:52.9357251Z             },
2026-06-13T11:05:52.9357398Z             {
2026-06-13T11:05:52.9357580Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9357689Z               "line": 462
2026-06-13T11:05:52.9357805Z             },
2026-06-13T11:05:52.9357914Z             {
2026-06-13T11:05:52.9358076Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9358196Z               "line": 711
2026-06-13T11:05:52.9358305Z             },
2026-06-13T11:05:52.9358420Z             {
2026-06-13T11:05:52.9358576Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9358691Z               "line": 725
2026-06-13T11:05:52.9358802Z             },
2026-06-13T11:05:52.9358914Z             {
2026-06-13T11:05:52.9359131Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.9359252Z               "line": 132
2026-06-13T11:05:52.9359367Z             },
2026-06-13T11:05:52.9359477Z             {
2026-06-13T11:05:52.9359634Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:05:52.9359744Z               "line": 26
2026-06-13T11:05:52.9359996Z             },
2026-06-13T11:05:52.9360107Z             {
2026-06-13T11:05:52.9360268Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:05:52.9360379Z               "line": 97
2026-06-13T11:05:52.9360487Z             },
2026-06-13T11:05:52.9360602Z             {
2026-06-13T11:05:52.9360746Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:05:52.9360965Z               "line": 119
2026-06-13T11:05:52.9361070Z             },
2026-06-13T11:05:52.9361179Z             {
2026-06-13T11:05:52.9361333Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.9361441Z               "line": 82
2026-06-13T11:05:52.9361554Z             },
2026-06-13T11:05:52.9361655Z             {
2026-06-13T11:05:52.9361800Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.9361909Z               "line": 111
2026-06-13T11:05:52.9362015Z             },
2026-06-13T11:05:52.9362120Z             {
2026-06-13T11:05:52.9362258Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.9362382Z               "line": 232
2026-06-13T11:05:52.9362487Z             },
2026-06-13T11:05:52.9362597Z             {
2026-06-13T11:05:52.9362745Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.9362853Z               "line": 245
2026-06-13T11:05:52.9362965Z             },
2026-06-13T11:05:52.9363073Z             {
2026-06-13T11:05:52.9363202Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9363307Z               "line": 3785
2026-06-13T11:05:52.9363426Z             }
2026-06-13T11:05:52.9363537Z           ]
2026-06-13T11:05:52.9363646Z         },
2026-06-13T11:05:52.9363751Z         "int": {
2026-06-13T11:05:52.9363871Z           "complete": true,
2026-06-13T11:05:52.9363998Z           "evidence": [
2026-06-13T11:05:52.9364108Z             {
2026-06-13T11:05:52.9364257Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-13T11:05:52.9364379Z               "line": 98
2026-06-13T11:05:52.9364484Z             },
2026-06-13T11:05:52.9364588Z             {
2026-06-13T11:05:52.9364748Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-13T11:05:52.9364873Z               "line": 140
2026-06-13T11:05:52.9364982Z             }
2026-06-13T11:05:52.9365096Z           ]
2026-06-13T11:05:52.9365207Z         },
2026-06-13T11:05:52.9365325Z         "unit": {
2026-06-13T11:05:52.9365450Z           "complete": true,
2026-06-13T11:05:52.9365559Z           "evidence": [
2026-06-13T11:05:52.9365673Z             {
2026-06-13T11:05:52.9365836Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:05:52.9365960Z               "line": 178
2026-06-13T11:05:52.9366069Z             },
2026-06-13T11:05:52.9366184Z             {
2026-06-13T11:05:52.9366350Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:05:52.9366471Z               "line": 242
2026-06-13T11:05:52.9366574Z             },
2026-06-13T11:05:52.9366679Z             {
2026-06-13T11:05:52.9366852Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9366974Z               "line": 1079
2026-06-13T11:05:52.9367079Z             },
2026-06-13T11:05:52.9367192Z             {
2026-06-13T11:05:52.9367339Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9367459Z               "line": 1109
2026-06-13T11:05:52.9367563Z             },
2026-06-13T11:05:52.9367677Z             {
2026-06-13T11:05:52.9367835Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:05:52.9367953Z               "line": 1129
2026-06-13T11:05:52.9368060Z             },
2026-06-13T11:05:52.9368164Z             {
2026-06-13T11:05:52.9368336Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:05:52.9368455Z               "line": 602
2026-06-13T11:05:52.9368574Z             },
2026-06-13T11:05:52.9368675Z             {
2026-06-13T11:05:52.9368827Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:05:52.9369127Z               "line": 148
2026-06-13T11:05:52.9369232Z             },
2026-06-13T11:05:52.9369348Z             {
2026-06-13T11:05:52.9369509Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:05:52.9369629Z               "line": 169
2026-06-13T11:05:52.9369743Z             },
2026-06-13T11:05:52.9369841Z             {
2026-06-13T11:05:52.9370095Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:05:52.9370213Z               "line": 181
2026-06-13T11:05:52.9370319Z             },
2026-06-13T11:05:52.9370433Z             {
2026-06-13T11:05:52.9370581Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:05:52.9370704Z               "line": 202
2026-06-13T11:05:52.9370804Z             },
2026-06-13T11:05:52.9370910Z             {
2026-06-13T11:05:52.9371057Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.9371176Z               "line": 375
2026-06-13T11:05:52.9371292Z             },
2026-06-13T11:05:52.9371401Z             {
2026-06-13T11:05:52.9371550Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.9371649Z               "line": 407
2026-06-13T11:05:52.9371763Z             },
2026-06-13T11:05:52.9371869Z             {
2026-06-13T11:05:52.9372010Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9372129Z               "line": 7634
2026-06-13T11:05:52.9372239Z             }
2026-06-13T11:05:52.9372346Z           ]
2026-06-13T11:05:52.9372450Z         }
2026-06-13T11:05:52.9372566Z       }
2026-06-13T11:05:52.9372670Z     },
2026-06-13T11:05:52.9372779Z     {
2026-06-13T11:05:52.9372895Z       "id": "REQ-MESH-5",
2026-06-13T11:05:52.9374368Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-13T11:05:52.9374502Z       "requiredStages": [
2026-06-13T11:05:52.9374606Z         "impl",
2026-06-13T11:05:52.9374727Z         "unit"
2026-06-13T11:05:52.9374845Z       ],
2026-06-13T11:05:52.9374954Z       "stages": {
2026-06-13T11:05:52.9375077Z         "doc": {
2026-06-13T11:05:52.9375204Z           "complete": false,
2026-06-13T11:05:52.9375327Z           "evidence": []
2026-06-13T11:05:52.9375433Z         },
2026-06-13T11:05:52.9375552Z         "impl": {
2026-06-13T11:05:52.9375675Z           "complete": true,
2026-06-13T11:05:52.9375791Z           "evidence": [
2026-06-13T11:05:52.9375909Z             {
2026-06-13T11:05:52.9376072Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:05:52.9376196Z               "line": 61
2026-06-13T11:05:52.9376300Z             },
2026-06-13T11:05:52.9376425Z             {
2026-06-13T11:05:52.9376596Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:05:52.9376707Z               "line": 109
2026-06-13T11:05:52.9376829Z             },
2026-06-13T11:05:52.9376944Z             {
2026-06-13T11:05:52.9377106Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9377226Z               "line": 104
2026-06-13T11:05:52.9377351Z             },
2026-06-13T11:05:52.9377473Z             {
2026-06-13T11:05:52.9377634Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:52.9377766Z               "line": 105
2026-06-13T11:05:52.9377875Z             },
2026-06-13T11:05:52.9377990Z             {
2026-06-13T11:05:52.9378166Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9378286Z               "line": 85
2026-06-13T11:05:52.9378400Z             },
2026-06-13T11:05:52.9378513Z             {
2026-06-13T11:05:52.9378686Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9378911Z               "line": 250
2026-06-13T11:05:52.9379124Z             },
2026-06-13T11:05:52.9379245Z             {
2026-06-13T11:05:52.9379401Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9379535Z               "line": 314
2026-06-13T11:05:52.9379645Z             },
2026-06-13T11:05:52.9379764Z             {
2026-06-13T11:05:52.9380030Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9380160Z               "line": 715
2026-06-13T11:05:52.9380279Z             },
2026-06-13T11:05:52.9380387Z             {
2026-06-13T11:05:52.9380544Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.9380660Z               "line": 101
2026-06-13T11:05:52.9380783Z             },
2026-06-13T11:05:52.9380894Z             {
2026-06-13T11:05:52.9381054Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9381179Z               "line": 193
2026-06-13T11:05:52.9381289Z             }
2026-06-13T11:05:52.9381407Z           ]
2026-06-13T11:05:52.9381518Z         },
2026-06-13T11:05:52.9381632Z         "int": {
2026-06-13T11:05:52.9381751Z           "complete": false,
2026-06-13T11:05:52.9381876Z           "evidence": []
2026-06-13T11:05:52.9381990Z         },
2026-06-13T11:05:52.9382100Z         "unit": {
2026-06-13T11:05:52.9382228Z           "complete": true,
2026-06-13T11:05:52.9382346Z           "evidence": [
2026-06-13T11:05:52.9382463Z             {
2026-06-13T11:05:52.9382622Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9382747Z               "line": 957
2026-06-13T11:05:52.9382860Z             },
2026-06-13T11:05:52.9382968Z             {
2026-06-13T11:05:52.9383121Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:05:52.9383236Z               "line": 462
2026-06-13T11:05:52.9383349Z             }
2026-06-13T11:05:52.9383460Z           ]
2026-06-13T11:05:52.9383574Z         }
2026-06-13T11:05:52.9383688Z       }
2026-06-13T11:05:52.9383798Z     },
2026-06-13T11:05:52.9383912Z     {
2026-06-13T11:05:52.9384032Z       "id": "REQ-MESH-6",
2026-06-13T11:05:52.9385359Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-13T11:05:52.9385494Z       "requiredStages": [
2026-06-13T11:05:52.9385609Z         "impl",
2026-06-13T11:05:52.9385727Z         "unit"
2026-06-13T11:05:52.9385835Z       ],
2026-06-13T11:05:52.9385950Z       "stages": {
2026-06-13T11:05:52.9386060Z         "doc": {
2026-06-13T11:05:52.9386188Z           "complete": false,
2026-06-13T11:05:52.9386309Z           "evidence": []
2026-06-13T11:05:52.9386418Z         },
2026-06-13T11:05:52.9386536Z         "impl": {
2026-06-13T11:05:52.9386651Z           "complete": true,
2026-06-13T11:05:52.9386770Z           "evidence": [
2026-06-13T11:05:52.9386880Z             {
2026-06-13T11:05:52.9387022Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9387147Z               "line": 3308
2026-06-13T11:05:52.9387253Z             }
2026-06-13T11:05:52.9387366Z           ]
2026-06-13T11:05:52.9387481Z         },
2026-06-13T11:05:52.9387591Z         "int": {
2026-06-13T11:05:52.9387714Z           "complete": false,
2026-06-13T11:05:52.9387834Z           "evidence": []
2026-06-13T11:05:52.9387948Z         },
2026-06-13T11:05:52.9388057Z         "unit": {
2026-06-13T11:05:52.9388180Z           "complete": true,
2026-06-13T11:05:52.9388289Z           "evidence": [
2026-06-13T11:05:52.9388407Z             {
2026-06-13T11:05:52.9388536Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9388655Z               "line": 8164
2026-06-13T11:05:52.9388768Z             },
2026-06-13T11:05:52.9389088Z             {
2026-06-13T11:05:52.9389232Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9389346Z               "line": 8191
2026-06-13T11:05:52.9389447Z             },
2026-06-13T11:05:52.9389551Z             {
2026-06-13T11:05:52.9389689Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9389805Z               "line": 8215
2026-06-13T11:05:52.9389999Z             }
2026-06-13T11:05:52.9390110Z           ]
2026-06-13T11:05:52.9390223Z         }
2026-06-13T11:05:52.9390333Z       }
2026-06-13T11:05:52.9390439Z     },
2026-06-13T11:05:52.9390548Z     {
2026-06-13T11:05:52.9390676Z       "id": "REQ-MIGRATE-1",
2026-06-13T11:05:52.9390881Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-13T11:05:52.9391009Z       "requiredStages": [],
2026-06-13T11:05:52.9391124Z       "stages": {
2026-06-13T11:05:52.9391234Z         "doc": {
2026-06-13T11:05:52.9391348Z           "complete": false,
2026-06-13T11:05:52.9391468Z           "evidence": []
2026-06-13T11:05:52.9391581Z         },
2026-06-13T11:05:52.9391686Z         "impl": {
2026-06-13T11:05:52.9391811Z           "complete": false,
2026-06-13T11:05:52.9391925Z           "evidence": []
2026-06-13T11:05:52.9392035Z         },
2026-06-13T11:05:52.9392145Z         "int": {
2026-06-13T11:05:52.9392258Z           "complete": false,
2026-06-13T11:05:52.9392383Z           "evidence": []
2026-06-13T11:05:52.9392492Z         },
2026-06-13T11:05:52.9392601Z         "unit": {
2026-06-13T11:05:52.9392722Z           "complete": false,
2026-06-13T11:05:52.9392835Z           "evidence": []
2026-06-13T11:05:52.9392941Z         }
2026-06-13T11:05:52.9393051Z       }
2026-06-13T11:05:52.9393164Z     },
2026-06-13T11:05:52.9393273Z     {
2026-06-13T11:05:52.9393397Z       "id": "REQ-MSG-1",
2026-06-13T11:05:52.9393857Z       "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-13T11:05:52.9393986Z       "requiredStages": [
2026-06-13T11:05:52.9394096Z         "impl",
2026-06-13T11:05:52.9394210Z         "unit",
2026-06-13T11:05:52.9394321Z         "int"
2026-06-13T11:05:52.9394425Z       ],
2026-06-13T11:05:52.9394534Z       "stages": {
2026-06-13T11:05:52.9394645Z         "doc": {
2026-06-13T11:05:52.9394773Z           "complete": false,
2026-06-13T11:05:52.9394887Z           "evidence": []
2026-06-13T11:05:52.9395002Z         },
2026-06-13T11:05:52.9395121Z         "impl": {
2026-06-13T11:05:52.9395236Z           "complete": true,
2026-06-13T11:05:52.9395359Z           "evidence": [
2026-06-13T11:05:52.9395464Z             {
2026-06-13T11:05:52.9395618Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.9395736Z               "line": 28
2026-06-13T11:05:52.9395847Z             },
2026-06-13T11:05:52.9395961Z             {
2026-06-13T11:05:52.9396107Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.9396226Z               "line": 94
2026-06-13T11:05:52.9396334Z             },
2026-06-13T11:05:52.9396457Z             {
2026-06-13T11:05:52.9396601Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.9396724Z               "line": 127
2026-06-13T11:05:52.9396844Z             },
2026-06-13T11:05:52.9396954Z             {
2026-06-13T11:05:52.9397101Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.9397221Z               "line": 149
2026-06-13T11:05:52.9397335Z             },
2026-06-13T11:05:52.9397445Z             {
2026-06-13T11:05:52.9397587Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.9397711Z               "line": 174
2026-06-13T11:05:52.9397865Z             },
2026-06-13T11:05:52.9397978Z             {
2026-06-13T11:05:52.9398132Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T11:05:52.9398250Z               "line": 18
2026-06-13T11:05:52.9398365Z             },
2026-06-13T11:05:52.9398471Z             {
2026-06-13T11:05:52.9398736Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:05:52.9398854Z               "line": 13
2026-06-13T11:05:52.9399125Z             },
2026-06-13T11:05:52.9399248Z             {
2026-06-13T11:05:52.9399411Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:05:52.9399535Z               "line": 61
2026-06-13T11:05:52.9399648Z             },
2026-06-13T11:05:52.9399769Z             {
2026-06-13T11:05:52.9400007Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T11:05:52.9400140Z               "line": 10
2026-06-13T11:05:52.9400244Z             }
2026-06-13T11:05:52.9400355Z           ]
2026-06-13T11:05:52.9400474Z         },
2026-06-13T11:05:52.9400579Z         "int": {
2026-06-13T11:05:52.9400727Z           "complete": true,
2026-06-13T11:05:52.9400841Z           "evidence": [
2026-06-13T11:05:52.9400966Z             {
2026-06-13T11:05:52.9401136Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T11:05:52.9401261Z               "line": 9
2026-06-13T11:05:52.9401385Z             },
2026-06-13T11:05:52.9401493Z             {
2026-06-13T11:05:52.9401665Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T11:05:52.9401784Z               "line": 70
2026-06-13T11:05:52.9401903Z             },
2026-06-13T11:05:52.9402009Z             {
2026-06-13T11:05:52.9402184Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T11:05:52.9402309Z               "line": 129
2026-06-13T11:05:52.9402424Z             }
2026-06-13T11:05:52.9402537Z           ]
2026-06-13T11:05:52.9402643Z         },
2026-06-13T11:05:52.9402757Z         "unit": {
2026-06-13T11:05:52.9402881Z           "complete": true,
2026-06-13T11:05:52.9403010Z           "evidence": [
2026-06-13T11:05:52.9403129Z             {
2026-06-13T11:05:52.9403277Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.9403391Z               "line": 203
2026-06-13T11:05:52.9403491Z             },
2026-06-13T11:05:52.9403611Z             {
2026-06-13T11:05:52.9403757Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.9403881Z               "line": 232
2026-06-13T11:05:52.9403990Z             },
2026-06-13T11:05:52.9404098Z             {
2026-06-13T11:05:52.9404241Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.9404351Z               "line": 277
2026-06-13T11:05:52.9404470Z             },
2026-06-13T11:05:52.9404576Z             {
2026-06-13T11:05:52.9404727Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.9404847Z               "line": 300
2026-06-13T11:05:52.9404956Z             },
2026-06-13T11:05:52.9405070Z             {
2026-06-13T11:05:52.9405210Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:05:52.9405333Z               "line": 324
2026-06-13T11:05:52.9405447Z             },
2026-06-13T11:05:52.9405558Z             {
2026-06-13T11:05:52.9405709Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T11:05:52.9405825Z               "line": 203
2026-06-13T11:05:52.9405947Z             },
2026-06-13T11:05:52.9406058Z             {
2026-06-13T11:05:52.9406211Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T11:05:52.9406334Z               "line": 236
2026-06-13T11:05:52.9406445Z             },
2026-06-13T11:05:52.9406563Z             {
2026-06-13T11:05:52.9406709Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T11:05:52.9406838Z               "line": 250
2026-06-13T11:05:52.9406946Z             },
2026-06-13T11:05:52.9407066Z             {
2026-06-13T11:05:52.9407200Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T11:05:52.9407318Z               "line": 262
2026-06-13T11:05:52.9407424Z             },
2026-06-13T11:05:52.9407571Z             {
2026-06-13T11:05:52.9407724Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:05:52.9407838Z               "line": 158
2026-06-13T11:05:52.9407947Z             },
2026-06-13T11:05:52.9408067Z             {
2026-06-13T11:05:52.9408314Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:05:52.9408449Z               "line": 241
2026-06-13T11:05:52.9408557Z             },
2026-06-13T11:05:52.9408669Z             {
2026-06-13T11:05:52.9408810Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T11:05:52.9409036Z               "line": 68
2026-06-13T11:05:52.9409158Z             },
2026-06-13T11:05:52.9409363Z             {
2026-06-13T11:05:52.9409513Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T11:05:52.9409618Z               "line": 77
2026-06-13T11:05:52.9409738Z             },
2026-06-13T11:05:52.9409851Z             {
2026-06-13T11:05:52.9410000Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T11:05:52.9410123Z               "line": 83
2026-06-13T11:05:52.9410227Z             },
2026-06-13T11:05:52.9410348Z             {
2026-06-13T11:05:52.9410480Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T11:05:52.9410610Z               "line": 102
2026-06-13T11:05:52.9410714Z             }
2026-06-13T11:05:52.9410829Z           ]
2026-06-13T11:05:52.9410949Z         }
2026-06-13T11:05:52.9411053Z       }
2026-06-13T11:05:52.9411163Z     },
2026-06-13T11:05:52.9411264Z     {
2026-06-13T11:05:52.9411386Z       "id": "REQ-MSG-2",
2026-06-13T11:05:52.9411691Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-13T11:05:52.9411816Z       "requiredStages": [
2026-06-13T11:05:52.9411927Z         "impl",
2026-06-13T11:05:52.9412029Z         "unit"
2026-06-13T11:05:52.9412148Z       ],
2026-06-13T11:05:52.9412254Z       "stages": {
2026-06-13T11:05:52.9412363Z         "doc": {
2026-06-13T11:05:52.9412482Z           "complete": false,
2026-06-13T11:05:52.9412602Z           "evidence": []
2026-06-13T11:05:52.9412706Z         },
2026-06-13T11:05:52.9412812Z         "impl": {
2026-06-13T11:05:52.9412931Z           "complete": true,
2026-06-13T11:05:52.9413040Z           "evidence": [
2026-06-13T11:05:52.9413150Z             {
2026-06-13T11:05:52.9413284Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9413402Z               "line": 11
2026-06-13T11:05:52.9413518Z             },
2026-06-13T11:05:52.9413622Z             {
2026-06-13T11:05:52.9413756Z               "path": "crates/spt/src/main.rs",
2026-06-13T11:05:52.9413861Z               "line": 8
2026-06-13T11:05:52.9413974Z             }
2026-06-13T11:05:52.9414085Z           ]
2026-06-13T11:05:52.9414190Z         },
2026-06-13T11:05:52.9414303Z         "int": {
2026-06-13T11:05:52.9414412Z           "complete": false,
2026-06-13T11:05:52.9414531Z           "evidence": []
2026-06-13T11:05:52.9414634Z         },
2026-06-13T11:05:52.9414754Z         "unit": {
2026-06-13T11:05:52.9414869Z           "complete": true,
2026-06-13T11:05:52.9414986Z           "evidence": [
2026-06-13T11:05:52.9415102Z             {
2026-06-13T11:05:52.9415235Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9415354Z               "line": 5646
2026-06-13T11:05:52.9415465Z             },
2026-06-13T11:05:52.9415573Z             {
2026-06-13T11:05:52.9415708Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9415832Z               "line": 5688
2026-06-13T11:05:52.9415950Z             },
2026-06-13T11:05:52.9416061Z             {
2026-06-13T11:05:52.9416184Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9416303Z               "line": 5737
2026-06-13T11:05:52.9416409Z             },
2026-06-13T11:05:52.9416512Z             {
2026-06-13T11:05:52.9416642Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9416766Z               "line": 5760
2026-06-13T11:05:52.9416871Z             },
2026-06-13T11:05:52.9416981Z             {
2026-06-13T11:05:52.9417114Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9417232Z               "line": 7389
2026-06-13T11:05:52.9417337Z             },
2026-06-13T11:05:52.9417440Z             {
2026-06-13T11:05:52.9417573Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9417788Z               "line": 7398
2026-06-13T11:05:52.9417907Z             },
2026-06-13T11:05:52.9418003Z             {
2026-06-13T11:05:52.9418136Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9418250Z               "line": 7412
2026-06-13T11:05:52.9418356Z             }
2026-06-13T11:05:52.9418469Z           ]
2026-06-13T11:05:52.9418579Z         }
2026-06-13T11:05:52.9418789Z       }
2026-06-13T11:05:52.9418889Z     },
2026-06-13T11:05:52.9419084Z     {
2026-06-13T11:05:52.9419204Z       "id": "REQ-MSG-3",
2026-06-13T11:05:52.9419624Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-13T11:05:52.9419751Z       "requiredStages": [
2026-06-13T11:05:52.9419861Z         "impl",
2026-06-13T11:05:52.9419979Z         "unit",
2026-06-13T11:05:52.9420087Z         "int"
2026-06-13T11:05:52.9420197Z       ],
2026-06-13T11:05:52.9420308Z       "stages": {
2026-06-13T11:05:52.9420430Z         "doc": {
2026-06-13T11:05:52.9420556Z           "complete": false,
2026-06-13T11:05:52.9420669Z           "evidence": []
2026-06-13T11:05:52.9420783Z         },
2026-06-13T11:05:52.9420899Z         "impl": {
2026-06-13T11:05:52.9421021Z           "complete": true,
2026-06-13T11:05:52.9421137Z           "evidence": [
2026-06-13T11:05:52.9421251Z             {
2026-06-13T11:05:52.9421413Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T11:05:52.9421524Z               "line": 19
2026-06-13T11:05:52.9421642Z             },
2026-06-13T11:05:52.9421751Z             {
2026-06-13T11:05:52.9421904Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:05:52.9422018Z               "line": 21
2026-06-13T11:05:52.9422129Z             },
2026-06-13T11:05:52.9422247Z             {
2026-06-13T11:05:52.9422386Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:05:52.9422506Z               "line": 48
2026-06-13T11:05:52.9422613Z             },
2026-06-13T11:05:52.9422733Z             {
2026-06-13T11:05:52.9422872Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:05:52.9422990Z               "line": 142
2026-06-13T11:05:52.9423105Z             }
2026-06-13T11:05:52.9423215Z           ]
2026-06-13T11:05:52.9423333Z         },
2026-06-13T11:05:52.9423449Z         "int": {
2026-06-13T11:05:52.9423576Z           "complete": true,
2026-06-13T11:05:52.9423691Z           "evidence": [
2026-06-13T11:05:52.9423806Z             {
2026-06-13T11:05:52.9423977Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T11:05:52.9424092Z               "line": 10
2026-06-13T11:05:52.9424206Z             },
2026-06-13T11:05:52.9424316Z             {
2026-06-13T11:05:52.9424482Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T11:05:52.9424602Z               "line": 70
2026-06-13T11:05:52.9424708Z             }
2026-06-13T11:05:52.9424821Z           ]
2026-06-13T11:05:52.9424930Z         },
2026-06-13T11:05:52.9425049Z         "unit": {
2026-06-13T11:05:52.9425166Z           "complete": true,
2026-06-13T11:05:52.9425285Z           "evidence": [
2026-06-13T11:05:52.9425400Z             {
2026-06-13T11:05:52.9425537Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:05:52.9425657Z               "line": 196
2026-06-13T11:05:52.9425767Z             },
2026-06-13T11:05:52.9425885Z             {
2026-06-13T11:05:52.9426025Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:05:52.9426148Z               "line": 215
2026-06-13T11:05:52.9426263Z             },
2026-06-13T11:05:52.9426373Z             {
2026-06-13T11:05:52.9426519Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:05:52.9426640Z               "line": 237
2026-06-13T11:05:52.9426763Z             }
2026-06-13T11:05:52.9426878Z           ]
2026-06-13T11:05:52.9426997Z         }
2026-06-13T11:05:52.9427116Z       }
2026-06-13T11:05:52.9427227Z     },
2026-06-13T11:05:52.9427340Z     {
2026-06-13T11:05:52.9427575Z       "id": "REQ-MSG-4",
2026-06-13T11:05:52.9428544Z       "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-13T11:05:52.9428663Z       "requiredStages": [
2026-06-13T11:05:52.9428882Z         "impl",
2026-06-13T11:05:52.9429072Z         "unit",
2026-06-13T11:05:52.9429183Z         "int"
2026-06-13T11:05:52.9429301Z       ],
2026-06-13T11:05:52.9429411Z       "stages": {
2026-06-13T11:05:52.9429526Z         "doc": {
2026-06-13T11:05:52.9429649Z           "complete": false,
2026-06-13T11:05:52.9429769Z           "evidence": []
2026-06-13T11:05:52.9429884Z         },
2026-06-13T11:05:52.9430002Z         "impl": {
2026-06-13T11:05:52.9430132Z           "complete": true,
2026-06-13T11:05:52.9430250Z           "evidence": [
2026-06-13T11:05:52.9430368Z             {
2026-06-13T11:05:52.9430516Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:05:52.9430638Z               "line": 16
2026-06-13T11:05:52.9430757Z             },
2026-06-13T11:05:52.9430863Z             {
2026-06-13T11:05:52.9431005Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:05:52.9431120Z               "line": 25
2026-06-13T11:05:52.9431225Z             },
2026-06-13T11:05:52.9431334Z             {
2026-06-13T11:05:52.9431478Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:05:52.9431605Z               "line": 47
2026-06-13T11:05:52.9431716Z             },
2026-06-13T11:05:52.9431830Z             {
2026-06-13T11:05:52.9431983Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9432103Z               "line": 380
2026-06-13T11:05:52.9432212Z             },
2026-06-13T11:05:52.9432326Z             {
2026-06-13T11:05:52.9432469Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9432578Z               "line": 2437
2026-06-13T11:05:52.9432694Z             }
2026-06-13T11:05:52.9432798Z           ]
2026-06-13T11:05:52.9432917Z         },
2026-06-13T11:05:52.9433028Z         "int": {
2026-06-13T11:05:52.9433154Z           "complete": true,
2026-06-13T11:05:52.9433283Z           "evidence": [
2026-06-13T11:05:52.9433393Z             {
2026-06-13T11:05:52.9433555Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-13T11:05:52.9433680Z               "line": 98
2026-06-13T11:05:52.9433794Z             },
2026-06-13T11:05:52.9433902Z             {
2026-06-13T11:05:52.9434065Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-13T11:05:52.9434189Z               "line": 128
2026-06-13T11:05:52.9434305Z             }
2026-06-13T11:05:52.9434418Z           ]
2026-06-13T11:05:52.9434528Z         },
2026-06-13T11:05:52.9434644Z         "unit": {
2026-06-13T11:05:52.9434766Z           "complete": true,
2026-06-13T11:05:52.9434886Z           "evidence": [
2026-06-13T11:05:52.9435005Z             {
2026-06-13T11:05:52.9435147Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:05:52.9435268Z               "line": 62
2026-06-13T11:05:52.9435376Z             },
2026-06-13T11:05:52.9435490Z             {
2026-06-13T11:05:52.9435632Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:05:52.9435750Z               "line": 73
2026-06-13T11:05:52.9435864Z             },
2026-06-13T11:05:52.9435975Z             {
2026-06-13T11:05:52.9436116Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:05:52.9436227Z               "line": 84
2026-06-13T11:05:52.9436341Z             },
2026-06-13T11:05:52.9436459Z             {
2026-06-13T11:05:52.9436594Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:05:52.9436713Z               "line": 96
2026-06-13T11:05:52.9436823Z             },
2026-06-13T11:05:52.9436942Z             {
2026-06-13T11:05:52.9437080Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:05:52.9437200Z               "line": 121
2026-06-13T11:05:52.9437428Z             },
2026-06-13T11:05:52.9437543Z             {
2026-06-13T11:05:52.9437686Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:05:52.9437801Z               "line": 136
2026-06-13T11:05:52.9437914Z             }
2026-06-13T11:05:52.9438020Z           ]
2026-06-13T11:05:52.9438136Z         }
2026-06-13T11:05:52.9438248Z       }
2026-06-13T11:05:52.9438453Z     },
2026-06-13T11:05:52.9438570Z     {
2026-06-13T11:05:52.9438688Z       "id": "REQ-MSG-5",
2026-06-13T11:05:52.9439543Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-13T11:05:52.9439676Z       "requiredStages": [
2026-06-13T11:05:52.9439781Z         "doc",
2026-06-13T11:05:52.9439900Z         "impl",
2026-06-13T11:05:52.9440005Z         "unit"
2026-06-13T11:05:52.9440129Z       ],
2026-06-13T11:05:52.9440238Z       "stages": {
2026-06-13T11:05:52.9440354Z         "doc": {
2026-06-13T11:05:52.9440477Z           "complete": true,
2026-06-13T11:05:52.9440591Z           "evidence": [
2026-06-13T11:05:52.9440707Z             {
2026-06-13T11:05:52.9440834Z               "path": "CONTEXT.md",
2026-06-13T11:05:52.9440952Z               "line": 210
2026-06-13T11:05:52.9441062Z             }
2026-06-13T11:05:52.9441184Z           ]
2026-06-13T11:05:52.9441288Z         },
2026-06-13T11:05:52.9441408Z         "impl": {
2026-06-13T11:05:52.9441531Z           "complete": true,
2026-06-13T11:05:52.9441651Z           "evidence": [
2026-06-13T11:05:52.9441771Z             {
2026-06-13T11:05:52.9441913Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:05:52.9442038Z               "line": 60
2026-06-13T11:05:52.9442147Z             },
2026-06-13T11:05:52.9442267Z             {
2026-06-13T11:05:52.9442423Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.9442543Z               "line": 118
2026-06-13T11:05:52.9442663Z             },
2026-06-13T11:05:52.9442777Z             {
2026-06-13T11:05:52.9447988Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.9448131Z               "line": 127
2026-06-13T11:05:52.9448260Z             },
2026-06-13T11:05:52.9448376Z             {
2026-06-13T11:05:52.9448541Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.9448671Z               "line": 141
2026-06-13T11:05:52.9448785Z             },
2026-06-13T11:05:52.9448889Z             {
2026-06-13T11:05:52.9449116Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.9449224Z               "line": 170
2026-06-13T11:05:52.9449335Z             },
2026-06-13T11:05:52.9449440Z             {
2026-06-13T11:05:52.9449587Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9449707Z               "line": 2186
2026-06-13T11:05:52.9449825Z             }
2026-06-13T11:05:52.9449931Z           ]
2026-06-13T11:05:52.9450036Z         },
2026-06-13T11:05:52.9450159Z         "int": {
2026-06-13T11:05:52.9450279Z           "complete": true,
2026-06-13T11:05:52.9450403Z           "evidence": [
2026-06-13T11:05:52.9450503Z             {
2026-06-13T11:05:52.9450670Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-13T11:05:52.9450793Z               "line": 19
2026-06-13T11:05:52.9450899Z             }
2026-06-13T11:05:52.9451013Z           ]
2026-06-13T11:05:52.9451118Z         },
2026-06-13T11:05:52.9451243Z         "unit": {
2026-06-13T11:05:52.9451370Z           "complete": true,
2026-06-13T11:05:52.9451493Z           "evidence": [
2026-06-13T11:05:52.9451607Z             {
2026-06-13T11:05:52.9451753Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:05:52.9451877Z               "line": 192
2026-06-13T11:05:52.9451983Z             },
2026-06-13T11:05:52.9452101Z             {
2026-06-13T11:05:52.9452264Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-13T11:05:52.9452531Z               "line": 154
2026-06-13T11:05:52.9452650Z             },
2026-06-13T11:05:52.9452759Z             {
2026-06-13T11:05:52.9452898Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:05:52.9453013Z               "line": 105
2026-06-13T11:05:52.9453117Z             },
2026-06-13T11:05:52.9453223Z             {
2026-06-13T11:05:52.9453374Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.9453584Z               "line": 444
2026-06-13T11:05:52.9453689Z             },
2026-06-13T11:05:52.9453796Z             {
2026-06-13T11:05:52.9453923Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.9454047Z               "line": 493
2026-06-13T11:05:52.9454158Z             },
2026-06-13T11:05:52.9454270Z             {
2026-06-13T11:05:52.9454418Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.9454538Z               "line": 509
2026-06-13T11:05:52.9454651Z             },
2026-06-13T11:05:52.9454762Z             {
2026-06-13T11:05:52.9454914Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:05:52.9455028Z               "line": 528
2026-06-13T11:05:52.9455144Z             },
2026-06-13T11:05:52.9455257Z             {
2026-06-13T11:05:52.9455391Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9455514Z               "line": 5589
2026-06-13T11:05:52.9455628Z             }
2026-06-13T11:05:52.9455744Z           ]
2026-06-13T11:05:52.9455853Z         }
2026-06-13T11:05:52.9455967Z       }
2026-06-13T11:05:52.9456078Z     },
2026-06-13T11:05:52.9456186Z     {
2026-06-13T11:05:52.9456311Z       "id": "REQ-MSG-6",
2026-06-13T11:05:52.9458057Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-13T11:05:52.9458190Z       "requiredStages": [
2026-06-13T11:05:52.9458311Z         "doc",
2026-06-13T11:05:52.9458420Z         "impl",
2026-06-13T11:05:52.9458534Z         "unit"
2026-06-13T11:05:52.9458650Z       ],
2026-06-13T11:05:52.9458773Z       "stages": {
2026-06-13T11:05:52.9458888Z         "doc": {
2026-06-13T11:05:52.9459072Z           "complete": true,
2026-06-13T11:05:52.9459193Z           "evidence": [
2026-06-13T11:05:52.9459298Z             {
2026-06-13T11:05:52.9459444Z               "path": "CONTEXT.md",
2026-06-13T11:05:52.9459568Z               "line": 213
2026-06-13T11:05:52.9459685Z             }
2026-06-13T11:05:52.9459827Z           ]
2026-06-13T11:05:52.9459933Z         },
2026-06-13T11:05:52.9460057Z         "impl": {
2026-06-13T11:05:52.9460176Z           "complete": true,
2026-06-13T11:05:52.9460295Z           "evidence": [
2026-06-13T11:05:52.9460400Z             {
2026-06-13T11:05:52.9460568Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9460672Z               "line": 177
2026-06-13T11:05:52.9460781Z             },
2026-06-13T11:05:52.9460901Z             {
2026-06-13T11:05:52.9461063Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9461188Z               "line": 422
2026-06-13T11:05:52.9461292Z             },
2026-06-13T11:05:52.9461411Z             {
2026-06-13T11:05:52.9461564Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9461678Z               "line": 445
2026-06-13T11:05:52.9461793Z             },
2026-06-13T11:05:52.9461902Z             {
2026-06-13T11:05:52.9462048Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:05:52.9462159Z               "line": 89
2026-06-13T11:05:52.9462266Z             },
2026-06-13T11:05:52.9462375Z             {
2026-06-13T11:05:52.9462656Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9462786Z               "line": 155
2026-06-13T11:05:52.9462886Z             }
2026-06-13T11:05:52.9462995Z           ]
2026-06-13T11:05:52.9463101Z         },
2026-06-13T11:05:52.9463205Z         "int": {
2026-06-13T11:05:52.9463333Z           "complete": false,
2026-06-13T11:05:52.9463444Z           "evidence": []
2026-06-13T11:05:52.9463701Z         },
2026-06-13T11:05:52.9463816Z         "unit": {
2026-06-13T11:05:52.9463939Z           "complete": true,
2026-06-13T11:05:52.9464051Z           "evidence": [
2026-06-13T11:05:52.9464154Z             {
2026-06-13T11:05:52.9464312Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9464422Z               "line": 1639
2026-06-13T11:05:52.9464535Z             },
2026-06-13T11:05:52.9464637Z             {
2026-06-13T11:05:52.9464784Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:05:52.9464892Z               "line": 219
2026-06-13T11:05:52.9464992Z             }
2026-06-13T11:05:52.9465108Z           ]
2026-06-13T11:05:52.9465220Z         }
2026-06-13T11:05:52.9465331Z       }
2026-06-13T11:05:52.9465436Z     },
2026-06-13T11:05:52.9465540Z     {
2026-06-13T11:05:52.9465656Z       "id": "REQ-NET-1",
2026-06-13T11:05:52.9465883Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-13T11:05:52.9466009Z       "requiredStages": [
2026-06-13T11:05:52.9466118Z         "impl",
2026-06-13T11:05:52.9466232Z         "unit",
2026-06-13T11:05:52.9466347Z         "int"
2026-06-13T11:05:52.9466461Z       ],
2026-06-13T11:05:52.9466571Z       "stages": {
2026-06-13T11:05:52.9466681Z         "doc": {
2026-06-13T11:05:52.9466804Z           "complete": false,
2026-06-13T11:05:52.9466920Z           "evidence": []
2026-06-13T11:05:52.9467033Z         },
2026-06-13T11:05:52.9467137Z         "impl": {
2026-06-13T11:05:52.9467261Z           "complete": true,
2026-06-13T11:05:52.9467365Z           "evidence": [
2026-06-13T11:05:52.9467482Z             {
2026-06-13T11:05:52.9467645Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.9467749Z               "line": 54
2026-06-13T11:05:52.9467859Z             },
2026-06-13T11:05:52.9467965Z             {
2026-06-13T11:05:52.9468121Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.9468237Z               "line": 594
2026-06-13T11:05:52.9468351Z             },
2026-06-13T11:05:52.9468465Z             {
2026-06-13T11:05:52.9468608Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:05:52.9468731Z               "line": 130
2026-06-13T11:05:52.9468838Z             },
2026-06-13T11:05:52.9469041Z             {
2026-06-13T11:05:52.9469210Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9469323Z               "line": 97
2026-06-13T11:05:52.9469433Z             },
2026-06-13T11:05:52.9469539Z             {
2026-06-13T11:05:52.9469700Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9469820Z               "line": 159
2026-06-13T11:05:52.9469938Z             },
2026-06-13T11:05:52.9470046Z             {
2026-06-13T11:05:52.9470199Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9470316Z               "line": 175
2026-06-13T11:05:52.9470422Z             },
2026-06-13T11:05:52.9470527Z             {
2026-06-13T11:05:52.9470679Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9470804Z               "line": 190
2026-06-13T11:05:52.9470903Z             },
2026-06-13T11:05:52.9471017Z             {
2026-06-13T11:05:52.9471165Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9471279Z               "line": 271
2026-06-13T11:05:52.9471399Z             },
2026-06-13T11:05:52.9471499Z             {
2026-06-13T11:05:52.9471642Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9471763Z               "line": 306
2026-06-13T11:05:52.9471980Z             },
2026-06-13T11:05:52.9472105Z             {
2026-06-13T11:05:52.9472257Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9472378Z               "line": 312
2026-06-13T11:05:52.9472490Z             },
2026-06-13T11:05:52.9472594Z             {
2026-06-13T11:05:52.9472751Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9472964Z               "line": 318
2026-06-13T11:05:52.9473075Z             },
2026-06-13T11:05:52.9473179Z             {
2026-06-13T11:05:52.9473332Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9473437Z               "line": 334
2026-06-13T11:05:52.9473546Z             },
2026-06-13T11:05:52.9473666Z             {
2026-06-13T11:05:52.9473808Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9473933Z               "line": 354
2026-06-13T11:05:52.9474042Z             },
2026-06-13T11:05:52.9474151Z             {
2026-06-13T11:05:52.9474296Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T11:05:52.9474419Z               "line": 35
2026-06-13T11:05:52.9474533Z             },
2026-06-13T11:05:52.9474639Z             {
2026-06-13T11:05:52.9474786Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T11:05:52.9474901Z               "line": 85
2026-06-13T11:05:52.9475015Z             },
2026-06-13T11:05:52.9475115Z             {
2026-06-13T11:05:52.9475264Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.9475386Z               "line": 135
2026-06-13T11:05:52.9475485Z             },
2026-06-13T11:05:52.9475600Z             {
2026-06-13T11:05:52.9475734Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9475867Z               "line": 2283
2026-06-13T11:05:52.9475968Z             },
2026-06-13T11:05:52.9476082Z             {
2026-06-13T11:05:52.9476230Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.9476340Z               "line": 17
2026-06-13T11:05:52.9476453Z             }
2026-06-13T11:05:52.9476559Z           ]
2026-06-13T11:05:52.9476678Z         },
2026-06-13T11:05:52.9476787Z         "int": {
2026-06-13T11:05:52.9476917Z           "complete": true,
2026-06-13T11:05:52.9477040Z           "evidence": [
2026-06-13T11:05:52.9477151Z             {
2026-06-13T11:05:52.9477325Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:05:52.9477446Z               "line": 341
2026-06-13T11:05:52.9477565Z             },
2026-06-13T11:05:52.9477673Z             {
2026-06-13T11:05:52.9477835Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9477957Z               "line": 605
2026-06-13T11:05:52.9478066Z             },
2026-06-13T11:05:52.9478187Z             {
2026-06-13T11:05:52.9478328Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9478444Z               "line": 878
2026-06-13T11:05:52.9478553Z             }
2026-06-13T11:05:52.9478667Z           ]
2026-06-13T11:05:52.9478773Z         },
2026-06-13T11:05:52.9478877Z         "unit": {
2026-06-13T11:05:52.9479064Z           "complete": true,
2026-06-13T11:05:52.9479178Z           "evidence": [
2026-06-13T11:05:52.9479282Z             {
2026-06-13T11:05:52.9479426Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.9479540Z               "line": 651
2026-06-13T11:05:52.9479649Z             },
2026-06-13T11:05:52.9479760Z             {
2026-06-13T11:05:52.9479907Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.9480018Z               "line": 686
2026-06-13T11:05:52.9480127Z             },
2026-06-13T11:05:52.9480236Z             {
2026-06-13T11:05:52.9480395Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:05:52.9480507Z               "line": 934
2026-06-13T11:05:52.9480612Z             },
2026-06-13T11:05:52.9480721Z             {
2026-06-13T11:05:52.9480872Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-13T11:05:52.9481111Z               "line": 201
2026-06-13T11:05:52.9481224Z             },
2026-06-13T11:05:52.9481335Z             {
2026-06-13T11:05:52.9481487Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9481606Z               "line": 442
2026-06-13T11:05:52.9481725Z             },
2026-06-13T11:05:52.9481830Z             {
2026-06-13T11:05:52.9481979Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9482192Z               "line": 456
2026-06-13T11:05:52.9482303Z             },
2026-06-13T11:05:52.9482421Z             {
2026-06-13T11:05:52.9482565Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9482684Z               "line": 475
2026-06-13T11:05:52.9482793Z             },
2026-06-13T11:05:52.9482900Z             {
2026-06-13T11:05:52.9483050Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T11:05:52.9483154Z               "line": 120
2026-06-13T11:05:52.9483260Z             },
2026-06-13T11:05:52.9483358Z             {
2026-06-13T11:05:52.9483514Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T11:05:52.9483630Z               "line": 163
2026-06-13T11:05:52.9483734Z             },
2026-06-13T11:05:52.9483844Z             {
2026-06-13T11:05:52.9483987Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:05:52.9484101Z               "line": 492
2026-06-13T11:05:52.9484207Z             },
2026-06-13T11:05:52.9484321Z             {
2026-06-13T11:05:52.9484458Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.9484574Z               "line": 616
2026-06-13T11:05:52.9484683Z             },
2026-06-13T11:05:52.9484783Z             {
2026-06-13T11:05:52.9484998Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.9485112Z               "line": 1006
2026-06-13T11:05:52.9485222Z             }
2026-06-13T11:05:52.9485327Z           ]
2026-06-13T11:05:52.9485442Z         }
2026-06-13T11:05:52.9485556Z       }
2026-06-13T11:05:52.9485665Z     },
2026-06-13T11:05:52.9485771Z     {
2026-06-13T11:05:52.9485894Z       "id": "REQ-NET-2",
2026-06-13T11:05:52.9486112Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-13T11:05:52.9486228Z       "requiredStages": [
2026-06-13T11:05:52.9486341Z         "impl"
2026-06-13T11:05:52.9486456Z       ],
2026-06-13T11:05:52.9486576Z       "stages": {
2026-06-13T11:05:52.9486698Z         "doc": {
2026-06-13T11:05:52.9486809Z           "complete": false,
2026-06-13T11:05:52.9486933Z           "evidence": []
2026-06-13T11:05:52.9487033Z         },
2026-06-13T11:05:52.9487143Z         "impl": {
2026-06-13T11:05:52.9487262Z           "complete": true,
2026-06-13T11:05:52.9487381Z           "evidence": [
2026-06-13T11:05:52.9487500Z             {
2026-06-13T11:05:52.9487652Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:05:52.9487777Z               "line": 57
2026-06-13T11:05:52.9487886Z             },
2026-06-13T11:05:52.9487991Z             {
2026-06-13T11:05:52.9488158Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9488262Z               "line": 71
2026-06-13T11:05:52.9488377Z             },
2026-06-13T11:05:52.9488480Z             {
2026-06-13T11:05:52.9488636Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9488742Z               "line": 81
2026-06-13T11:05:52.9488861Z             },
2026-06-13T11:05:52.9489062Z             {
2026-06-13T11:05:52.9489213Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9489338Z               "line": 159
2026-06-13T11:05:52.9489447Z             },
2026-06-13T11:05:52.9489556Z             {
2026-06-13T11:05:52.9489705Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9489819Z               "line": 175
2026-06-13T11:05:52.9489938Z             },
2026-06-13T11:05:52.9490048Z             {
2026-06-13T11:05:52.9490224Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:05:52.9490453Z               "line": 190
2026-06-13T11:05:52.9490578Z             }
2026-06-13T11:05:52.9490687Z           ]
2026-06-13T11:05:52.9490797Z         },
2026-06-13T11:05:52.9490907Z         "int": {
2026-06-13T11:05:52.9491030Z           "complete": false,
2026-06-13T11:05:52.9491153Z           "evidence": []
2026-06-13T11:05:52.9491262Z         },
2026-06-13T11:05:52.9491380Z         "unit": {
2026-06-13T11:05:52.9491599Z           "complete": true,
2026-06-13T11:05:52.9491704Z           "evidence": [
2026-06-13T11:05:52.9491827Z             {
2026-06-13T11:05:52.9491976Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:05:52.9492094Z               "line": 402
2026-06-13T11:05:52.9492200Z             }
2026-06-13T11:05:52.9492319Z           ]
2026-06-13T11:05:52.9492428Z         }
2026-06-13T11:05:52.9492534Z       }
2026-06-13T11:05:52.9492647Z     },
2026-06-13T11:05:52.9492757Z     {
2026-06-13T11:05:52.9492878Z       "id": "REQ-NET-3",
2026-06-13T11:05:52.9493110Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-13T11:05:52.9493235Z       "requiredStages": [
2026-06-13T11:05:52.9493354Z         "impl",
2026-06-13T11:05:52.9493465Z         "unit"
2026-06-13T11:05:52.9493574Z       ],
2026-06-13T11:05:52.9493686Z       "stages": {
2026-06-13T11:05:52.9493805Z         "doc": {
2026-06-13T11:05:52.9493923Z           "complete": false,
2026-06-13T11:05:52.9494051Z           "evidence": []
2026-06-13T11:05:52.9494161Z         },
2026-06-13T11:05:52.9494275Z         "impl": {
2026-06-13T11:05:52.9494399Z           "complete": true,
2026-06-13T11:05:52.9494514Z           "evidence": [
2026-06-13T11:05:52.9494627Z             {
2026-06-13T11:05:52.9494772Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.9494896Z               "line": 39
2026-06-13T11:05:52.9495009Z             },
2026-06-13T11:05:52.9495120Z             {
2026-06-13T11:05:52.9495271Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.9495387Z               "line": 182
2026-06-13T11:05:52.9495505Z             },
2026-06-13T11:05:52.9495610Z             {
2026-06-13T11:05:52.9495759Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:05:52.9495882Z               "line": 333
2026-06-13T11:05:52.9495992Z             },
2026-06-13T11:05:52.9496112Z             {
2026-06-13T11:05:52.9496254Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T11:05:52.9496384Z               "line": 36
2026-06-13T11:05:52.9496496Z             },
2026-06-13T11:05:52.9496610Z             {
2026-06-13T11:05:52.9496774Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9496892Z               "line": 158
2026-06-13T11:05:52.9497007Z             },
2026-06-13T11:05:52.9497117Z             {
2026-06-13T11:05:52.9497278Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9497393Z               "line": 212
2026-06-13T11:05:52.9497511Z             },
2026-06-13T11:05:52.9497626Z             {
2026-06-13T11:05:52.9497784Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9497907Z               "line": 233
2026-06-13T11:05:52.9498018Z             },
2026-06-13T11:05:52.9498141Z             {
2026-06-13T11:05:52.9498290Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9498417Z               "line": 291
2026-06-13T11:05:52.9498532Z             },
2026-06-13T11:05:52.9498643Z             {
2026-06-13T11:05:52.9498803Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9498917Z               "line": 310
2026-06-13T11:05:52.9499129Z             },
2026-06-13T11:05:52.9499239Z             {
2026-06-13T11:05:52.9499411Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9499530Z               "line": 348
2026-06-13T11:05:52.9499641Z             },
2026-06-13T11:05:52.9499759Z             {
2026-06-13T11:05:52.9499912Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9500189Z               "line": 393
2026-06-13T11:05:52.9500303Z             },
2026-06-13T11:05:52.9500426Z             {
2026-06-13T11:05:52.9500580Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9500694Z               "line": 406
2026-06-13T11:05:52.9500808Z             },
2026-06-13T11:05:52.9500918Z             {
2026-06-13T11:05:52.9501075Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:05:52.9501294Z               "line": 29
2026-06-13T11:05:52.9501404Z             },
2026-06-13T11:05:52.9501520Z             {
2026-06-13T11:05:52.9501675Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:05:52.9501799Z               "line": 72
2026-06-13T11:05:52.9501907Z             },
2026-06-13T11:05:52.9502025Z             {
2026-06-13T11:05:52.9502184Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:05:52.9502307Z               "line": 123
2026-06-13T11:05:52.9502436Z             }
2026-06-13T11:05:52.9502555Z           ]
2026-06-13T11:05:52.9502673Z         },
2026-06-13T11:05:52.9502779Z         "int": {
2026-06-13T11:05:52.9502908Z           "complete": false,
2026-06-13T11:05:52.9503032Z           "evidence": []
2026-06-13T11:05:52.9503137Z         },
2026-06-13T11:05:52.9503251Z         "unit": {
2026-06-13T11:05:52.9503365Z           "complete": true,
2026-06-13T11:05:52.9503481Z           "evidence": [
2026-06-13T11:05:52.9503594Z             {
2026-06-13T11:05:52.9503748Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T11:05:52.9503865Z               "line": 223
2026-06-13T11:05:52.9503971Z             },
2026-06-13T11:05:52.9504091Z             {
2026-06-13T11:05:52.9504237Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T11:05:52.9504351Z               "line": 351
2026-06-13T11:05:52.9504465Z             },
2026-06-13T11:05:52.9504573Z             {
2026-06-13T11:05:52.9504721Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T11:05:52.9504831Z               "line": 504
2026-06-13T11:05:52.9504945Z             },
2026-06-13T11:05:52.9505051Z             {
2026-06-13T11:05:52.9505202Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T11:05:52.9505317Z               "line": 93
2026-06-13T11:05:52.9505431Z             },
2026-06-13T11:05:52.9505550Z             {
2026-06-13T11:05:52.9505695Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T11:05:52.9505822Z               "line": 142
2026-06-13T11:05:52.9505927Z             },
2026-06-13T11:05:52.9506042Z             {
2026-06-13T11:05:52.9506184Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:05:52.9506310Z               "line": 315
2026-06-13T11:05:52.9506427Z             },
2026-06-13T11:05:52.9506533Z             {
2026-06-13T11:05:52.9506691Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:05:52.9506877Z               "line": 355
2026-06-13T11:05:52.9506992Z             },
2026-06-13T11:05:52.9507104Z             {
2026-06-13T11:05:52.9507262Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:05:52.9507385Z               "line": 494
2026-06-13T11:05:52.9507490Z             }
2026-06-13T11:05:52.9507605Z           ]
2026-06-13T11:05:52.9507714Z         }
2026-06-13T11:05:52.9507828Z       }
2026-06-13T11:05:52.9507934Z     },
2026-06-13T11:05:52.9508043Z     {
2026-06-13T11:05:52.9508172Z       "id": "REQ-NODE-IDENTITY",
2026-06-13T11:05:52.9508477Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-13T11:05:52.9508606Z       "requiredStages": [
2026-06-13T11:05:52.9508715Z         "impl",
2026-06-13T11:05:52.9508831Z         "unit"
2026-06-13T11:05:52.9509025Z       ],
2026-06-13T11:05:52.9509150Z       "stages": {
2026-06-13T11:05:52.9509268Z         "doc": {
2026-06-13T11:05:52.9509396Z           "complete": false,
2026-06-13T11:05:52.9509521Z           "evidence": []
2026-06-13T11:05:52.9509628Z         },
2026-06-13T11:05:52.9510004Z         "impl": {
2026-06-13T11:05:52.9510134Z           "complete": true,
2026-06-13T11:05:52.9510257Z           "evidence": [
2026-06-13T11:05:52.9510361Z             {
2026-06-13T11:05:52.9510511Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:05:52.9510634Z               "line": 60
2026-06-13T11:05:52.9510739Z             },
2026-06-13T11:05:52.9510863Z             {
2026-06-13T11:05:52.9511112Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:05:52.9511230Z               "line": 68
2026-06-13T11:05:52.9511354Z             },
2026-06-13T11:05:52.9511460Z             {
2026-06-13T11:05:52.9511611Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:05:52.9511732Z               "line": 86
2026-06-13T11:05:52.9511849Z             },
2026-06-13T11:05:52.9511955Z             {
2026-06-13T11:05:52.9512108Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:05:52.9512235Z               "line": 120
2026-06-13T11:05:52.9512349Z             },
2026-06-13T11:05:52.9512463Z             {
2026-06-13T11:05:52.9512599Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:05:52.9512719Z               "line": 127
2026-06-13T11:05:52.9512829Z             },
2026-06-13T11:05:52.9512933Z             {
2026-06-13T11:05:52.9513092Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:05:52.9513215Z               "line": 143
2026-06-13T11:05:52.9513335Z             },
2026-06-13T11:05:52.9513439Z             {
2026-06-13T11:05:52.9513587Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-13T11:05:52.9513702Z               "line": 16
2026-06-13T11:05:52.9513807Z             }
2026-06-13T11:05:52.9513921Z           ]
2026-06-13T11:05:52.9514021Z         },
2026-06-13T11:05:52.9514130Z         "int": {
2026-06-13T11:05:52.9514236Z           "complete": false,
2026-06-13T11:05:52.9514360Z           "evidence": []
2026-06-13T11:05:52.9514469Z         },
2026-06-13T11:05:52.9514570Z         "unit": {
2026-06-13T11:05:52.9514703Z           "complete": true,
2026-06-13T11:05:52.9514816Z           "evidence": [
2026-06-13T11:05:52.9514931Z             {
2026-06-13T11:05:52.9515076Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:05:52.9515195Z               "line": 199
2026-06-13T11:05:52.9515306Z             },
2026-06-13T11:05:52.9515415Z             {
2026-06-13T11:05:52.9515567Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:05:52.9515682Z               "line": 218
2026-06-13T11:05:52.9515800Z             },
2026-06-13T11:05:52.9515902Z             {
2026-06-13T11:05:52.9516058Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:05:52.9516183Z               "line": 234
2026-06-13T11:05:52.9516292Z             },
2026-06-13T11:05:52.9516406Z             {
2026-06-13T11:05:52.9516550Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:05:52.9516669Z               "line": 256
2026-06-13T11:05:52.9516788Z             },
2026-06-13T11:05:52.9516913Z             {
2026-06-13T11:05:52.9517059Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-13T11:05:52.9517175Z               "line": 124
2026-06-13T11:05:52.9517284Z             },
2026-06-13T11:05:52.9517398Z             {
2026-06-13T11:05:52.9517547Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-13T11:05:52.9517659Z               "line": 140
2026-06-13T11:05:52.9517783Z             },
2026-06-13T11:05:52.9517889Z             {
2026-06-13T11:05:52.9518031Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-13T11:05:52.9518151Z               "line": 155
2026-06-13T11:05:52.9518265Z             }
2026-06-13T11:05:52.9518365Z           ]
2026-06-13T11:05:52.9518476Z         }
2026-06-13T11:05:52.9518585Z       }
2026-06-13T11:05:52.9518694Z     },
2026-06-13T11:05:52.9518800Z     {
2026-06-13T11:05:52.9518919Z       "id": "REQ-NOTIF-1",
2026-06-13T11:05:52.9519495Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-13T11:05:52.9519633Z       "requiredStages": [
2026-06-13T11:05:52.9519745Z         "impl",
2026-06-13T11:05:52.9519857Z         "unit",
2026-06-13T11:05:52.9519975Z         "int"
2026-06-13T11:05:52.9520086Z       ],
2026-06-13T11:05:52.9520207Z       "stages": {
2026-06-13T11:05:52.9520311Z         "doc": {
2026-06-13T11:05:52.9520536Z           "complete": false,
2026-06-13T11:05:52.9520646Z           "evidence": []
2026-06-13T11:05:52.9520756Z         },
2026-06-13T11:05:52.9520865Z         "impl": {
2026-06-13T11:05:52.9520980Z           "complete": true,
2026-06-13T11:05:52.9521099Z           "evidence": [
2026-06-13T11:05:52.9521203Z             {
2026-06-13T11:05:52.9521362Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.9521475Z               "line": 514
2026-06-13T11:05:52.9521580Z             },
2026-06-13T11:05:52.9521695Z             {
2026-06-13T11:05:52.9521852Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9521968Z               "line": 30
2026-06-13T11:05:52.9522076Z             },
2026-06-13T11:05:52.9522195Z             {
2026-06-13T11:05:52.9522330Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9522453Z               "line": 69
2026-06-13T11:05:52.9522568Z             },
2026-06-13T11:05:52.9522678Z             {
2026-06-13T11:05:52.9522823Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9522929Z               "line": 93
2026-06-13T11:05:52.9523051Z             },
2026-06-13T11:05:52.9523154Z             {
2026-06-13T11:05:52.9523309Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9523427Z               "line": 107
2026-06-13T11:05:52.9523532Z             },
2026-06-13T11:05:52.9523652Z             {
2026-06-13T11:05:52.9523789Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9523914Z               "line": 142
2026-06-13T11:05:52.9524019Z             },
2026-06-13T11:05:52.9524122Z             {
2026-06-13T11:05:52.9524257Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9524376Z               "line": 187
2026-06-13T11:05:52.9524486Z             },
2026-06-13T11:05:52.9524591Z             {
2026-06-13T11:05:52.9524734Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9524854Z               "line": 258
2026-06-13T11:05:52.9524958Z             },
2026-06-13T11:05:52.9525067Z             {
2026-06-13T11:05:52.9525216Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9525338Z               "line": 372
2026-06-13T11:05:52.9525447Z             },
2026-06-13T11:05:52.9525552Z             {
2026-06-13T11:05:52.9525702Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9525808Z               "line": 479
2026-06-13T11:05:52.9525914Z             },
2026-06-13T11:05:52.9526026Z             {
2026-06-13T11:05:52.9526181Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:05:52.9526299Z               "line": 24
2026-06-13T11:05:52.9526408Z             },
2026-06-13T11:05:52.9526519Z             {
2026-06-13T11:05:52.9526675Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:05:52.9526795Z               "line": 34
2026-06-13T11:05:52.9526909Z             },
2026-06-13T11:05:52.9527014Z             {
2026-06-13T11:05:52.9527172Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:05:52.9527295Z               "line": 60
2026-06-13T11:05:52.9527402Z             },
2026-06-13T11:05:52.9527505Z             {
2026-06-13T11:05:52.9527658Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:05:52.9527769Z               "line": 82
2026-06-13T11:05:52.9527881Z             },
2026-06-13T11:05:52.9527988Z             {
2026-06-13T11:05:52.9528140Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:05:52.9528262Z               "line": 94
2026-06-13T11:05:52.9528449Z             },
2026-06-13T11:05:52.9528567Z             {
2026-06-13T11:05:52.9528716Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:05:52.9528831Z               "line": 96
2026-06-13T11:05:52.9528930Z             },
2026-06-13T11:05:52.9529121Z             {
2026-06-13T11:05:52.9529278Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-13T11:05:52.9529493Z               "line": 44
2026-06-13T11:05:52.9529607Z             },
2026-06-13T11:05:52.9529713Z             {
2026-06-13T11:05:52.9529859Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T11:05:52.9529980Z               "line": 20
2026-06-13T11:05:52.9530088Z             },
2026-06-13T11:05:52.9530193Z             {
2026-06-13T11:05:52.9530333Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T11:05:52.9530446Z               "line": 30
2026-06-13T11:05:52.9530554Z             },
2026-06-13T11:05:52.9530660Z             {
2026-06-13T11:05:52.9530810Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T11:05:52.9530915Z               "line": 50
2026-06-13T11:05:52.9531031Z             },
2026-06-13T11:05:52.9531139Z             {
2026-06-13T11:05:52.9531283Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9531387Z               "line": 28
2026-06-13T11:05:52.9531505Z             },
2026-06-13T11:05:52.9535681Z             {
2026-06-13T11:05:52.9535880Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9536012Z               "line": 126
2026-06-13T11:05:52.9536122Z             },
2026-06-13T11:05:52.9536239Z             {
2026-06-13T11:05:52.9536392Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9536516Z               "line": 161
2026-06-13T11:05:52.9536630Z             },
2026-06-13T11:05:52.9536741Z             {
2026-06-13T11:05:52.9536892Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9537008Z               "line": 202
2026-06-13T11:05:52.9537131Z             },
2026-06-13T11:05:52.9537240Z             {
2026-06-13T11:05:52.9537389Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9537512Z               "line": 213
2026-06-13T11:05:52.9537622Z             },
2026-06-13T11:05:52.9537732Z             {
2026-06-13T11:05:52.9537874Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9537995Z               "line": 238
2026-06-13T11:05:52.9538103Z             },
2026-06-13T11:05:52.9538213Z             {
2026-06-13T11:05:52.9538357Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9538471Z               "line": 261
2026-06-13T11:05:52.9538582Z             },
2026-06-13T11:05:52.9538686Z             {
2026-06-13T11:05:52.9538846Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9539048Z               "line": 63
2026-06-13T11:05:52.9539170Z             }
2026-06-13T11:05:52.9539281Z           ]
2026-06-13T11:05:52.9539386Z         },
2026-06-13T11:05:52.9539509Z         "int": {
2026-06-13T11:05:52.9539629Z           "complete": true,
2026-06-13T11:05:52.9539748Z           "evidence": [
2026-06-13T11:05:52.9539857Z             {
2026-06-13T11:05:52.9540034Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:05:52.9540153Z               "line": 285
2026-06-13T11:05:52.9540259Z             },
2026-06-13T11:05:52.9540373Z             {
2026-06-13T11:05:52.9540526Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-13T11:05:52.9540644Z               "line": 102
2026-06-13T11:05:52.9540753Z             },
2026-06-13T11:05:52.9540869Z             {
2026-06-13T11:05:52.9541024Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9541139Z               "line": 614
2026-06-13T11:05:52.9541253Z             },
2026-06-13T11:05:52.9541356Z             {
2026-06-13T11:05:52.9541518Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9541633Z               "line": 1007
2026-06-13T11:05:52.9541929Z             }
2026-06-13T11:05:52.9542052Z           ]
2026-06-13T11:05:52.9542158Z         },
2026-06-13T11:05:52.9542277Z         "unit": {
2026-06-13T11:05:52.9542395Z           "complete": true,
2026-06-13T11:05:52.9542515Z           "evidence": [
2026-06-13T11:05:52.9542619Z             {
2026-06-13T11:05:52.9542778Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9542991Z               "line": 572
2026-06-13T11:05:52.9543102Z             },
2026-06-13T11:05:52.9543215Z             {
2026-06-13T11:05:52.9543359Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9543479Z               "line": 621
2026-06-13T11:05:52.9543587Z             },
2026-06-13T11:05:52.9543703Z             {
2026-06-13T11:05:52.9543854Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9543967Z               "line": 725
2026-06-13T11:05:52.9544082Z             },
2026-06-13T11:05:52.9544189Z             {
2026-06-13T11:05:52.9544338Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9544457Z               "line": 757
2026-06-13T11:05:52.9544561Z             },
2026-06-13T11:05:52.9544667Z             {
2026-06-13T11:05:52.9544806Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9544924Z               "line": 825
2026-06-13T11:05:52.9545030Z             },
2026-06-13T11:05:52.9545144Z             {
2026-06-13T11:05:52.9545291Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9545406Z               "line": 883
2026-06-13T11:05:52.9545520Z             },
2026-06-13T11:05:52.9545625Z             {
2026-06-13T11:05:52.9545773Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9545878Z               "line": 1158
2026-06-13T11:05:52.9545989Z             },
2026-06-13T11:05:52.9546096Z             {
2026-06-13T11:05:52.9546251Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:05:52.9546369Z               "line": 157
2026-06-13T11:05:52.9546478Z             },
2026-06-13T11:05:52.9546587Z             {
2026-06-13T11:05:52.9546738Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:05:52.9546861Z               "line": 250
2026-06-13T11:05:52.9546971Z             },
2026-06-13T11:05:52.9547067Z             {
2026-06-13T11:05:52.9547223Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:05:52.9547339Z               "line": 273
2026-06-13T11:05:52.9547448Z             },
2026-06-13T11:05:52.9547553Z             {
2026-06-13T11:05:52.9547715Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:05:52.9547834Z               "line": 341
2026-06-13T11:05:52.9547944Z             },
2026-06-13T11:05:52.9548058Z             {
2026-06-13T11:05:52.9548207Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:05:52.9548325Z               "line": 373
2026-06-13T11:05:52.9548430Z             },
2026-06-13T11:05:52.9548541Z             {
2026-06-13T11:05:52.9548707Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-13T11:05:52.9548822Z               "line": 131
2026-06-13T11:05:52.9549021Z             },
2026-06-13T11:05:52.9549137Z             {
2026-06-13T11:05:52.9549288Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T11:05:52.9549401Z               "line": 72
2026-06-13T11:05:52.9549511Z             },
2026-06-13T11:05:52.9549631Z             {
2026-06-13T11:05:52.9549773Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T11:05:52.9549889Z               "line": 97
2026-06-13T11:05:52.9549998Z             },
2026-06-13T11:05:52.9550108Z             {
2026-06-13T11:05:52.9550256Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9550374Z               "line": 379
2026-06-13T11:05:52.9550485Z             },
2026-06-13T11:05:52.9550594Z             {
2026-06-13T11:05:52.9550742Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9550970Z               "line": 417
2026-06-13T11:05:52.9551091Z             },
2026-06-13T11:05:52.9551204Z             {
2026-06-13T11:05:52.9551343Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9551463Z               "line": 433
2026-06-13T11:05:52.9551566Z             },
2026-06-13T11:05:52.9551684Z             {
2026-06-13T11:05:52.9551822Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9552036Z               "line": 472
2026-06-13T11:05:52.9552146Z             },
2026-06-13T11:05:52.9552254Z             {
2026-06-13T11:05:52.9552398Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9552512Z               "line": 489
2026-06-13T11:05:52.9552626Z             },
2026-06-13T11:05:52.9552732Z             {
2026-06-13T11:05:52.9552874Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9552994Z               "line": 517
2026-06-13T11:05:52.9553103Z             },
2026-06-13T11:05:52.9553212Z             {
2026-06-13T11:05:52.9553352Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:05:52.9553471Z               "line": 548
2026-06-13T11:05:52.9553580Z             },
2026-06-13T11:05:52.9553696Z             {
2026-06-13T11:05:52.9553847Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9553958Z               "line": 534
2026-06-13T11:05:52.9554071Z             }
2026-06-13T11:05:52.9554181Z           ]
2026-06-13T11:05:52.9554297Z         }
2026-06-13T11:05:52.9554400Z       }
2026-06-13T11:05:52.9554514Z     },
2026-06-13T11:05:52.9554628Z     {
2026-06-13T11:05:52.9554745Z       "id": "REQ-NOTIF-2",
2026-06-13T11:05:52.9555056Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-13T11:05:52.9555178Z       "requiredStages": [
2026-06-13T11:05:52.9555290Z         "doc",
2026-06-13T11:05:52.9555403Z         "impl",
2026-06-13T11:05:52.9555522Z         "unit",
2026-06-13T11:05:52.9555637Z         "int"
2026-06-13T11:05:52.9555746Z       ],
2026-06-13T11:05:52.9555861Z       "stages": {
2026-06-13T11:05:52.9555970Z         "doc": {
2026-06-13T11:05:52.9556099Z           "complete": true,
2026-06-13T11:05:52.9556215Z           "evidence": [
2026-06-13T11:05:52.9556333Z             {
2026-06-13T11:05:52.9556466Z               "path": "CONTEXT.md",
2026-06-13T11:05:52.9556582Z               "line": 398
2026-06-13T11:05:52.9556700Z             },
2026-06-13T11:05:52.9556806Z             {
2026-06-13T11:05:52.9556939Z               "path": "docs/MANIFEST.md",
2026-06-13T11:05:52.9557057Z               "line": 62
2026-06-13T11:05:52.9557171Z             }
2026-06-13T11:05:52.9557288Z           ]
2026-06-13T11:05:52.9557392Z         },
2026-06-13T11:05:52.9557508Z         "impl": {
2026-06-13T11:05:52.9557631Z           "complete": true,
2026-06-13T11:05:52.9557745Z           "evidence": [
2026-06-13T11:05:52.9557851Z             {
2026-06-13T11:05:52.9558012Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9558138Z               "line": 287
2026-06-13T11:05:52.9558247Z             },
2026-06-13T11:05:52.9558360Z             {
2026-06-13T11:05:52.9558504Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9558628Z               "line": 301
2026-06-13T11:05:52.9558738Z             },
2026-06-13T11:05:52.9558847Z             {
2026-06-13T11:05:52.9559087Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9559209Z               "line": 326
2026-06-13T11:05:52.9559315Z             },
2026-06-13T11:05:52.9559421Z             {
2026-06-13T11:05:52.9559576Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9559692Z               "line": 195
2026-06-13T11:05:52.9559801Z             },
2026-06-13T11:05:52.9559910Z             {
2026-06-13T11:05:52.9560053Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9560172Z               "line": 72
2026-06-13T11:05:52.9560285Z             },
2026-06-13T11:05:52.9560492Z             {
2026-06-13T11:05:52.9560629Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9560740Z               "line": 1685
2026-06-13T11:05:52.9560849Z             },
2026-06-13T11:05:52.9560949Z             {
2026-06-13T11:05:52.9561088Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9561192Z               "line": 1734
2026-06-13T11:05:52.9561398Z             },
2026-06-13T11:05:52.9561507Z             {
2026-06-13T11:05:52.9561642Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9561760Z               "line": 1813
2026-06-13T11:05:52.9561869Z             },
2026-06-13T11:05:52.9561989Z             {
2026-06-13T11:05:52.9562117Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9562239Z               "line": 1852
2026-06-13T11:05:52.9562350Z             }
2026-06-13T11:05:52.9562457Z           ]
2026-06-13T11:05:52.9562571Z         },
2026-06-13T11:05:52.9562677Z         "int": {
2026-06-13T11:05:52.9562800Z           "complete": true,
2026-06-13T11:05:52.9562915Z           "evidence": [
2026-06-13T11:05:52.9563029Z             {
2026-06-13T11:05:52.9563191Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9563307Z               "line": 740
2026-06-13T11:05:52.9563420Z             },
2026-06-13T11:05:52.9563525Z             {
2026-06-13T11:05:52.9563687Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9563806Z               "line": 1160
2026-06-13T11:05:52.9563922Z             }
2026-06-13T11:05:52.9564031Z           ]
2026-06-13T11:05:52.9564140Z         },
2026-06-13T11:05:52.9564251Z         "unit": {
2026-06-13T11:05:52.9564364Z           "complete": true,
2026-06-13T11:05:52.9564479Z           "evidence": [
2026-06-13T11:05:52.9564585Z             {
2026-06-13T11:05:52.9564741Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9564861Z               "line": 1007
2026-06-13T11:05:52.9564970Z             },
2026-06-13T11:05:52.9565078Z             {
2026-06-13T11:05:52.9565217Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9565343Z               "line": 1075
2026-06-13T11:05:52.9565448Z             },
2026-06-13T11:05:52.9565563Z             {
2026-06-13T11:05:52.9565696Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9565811Z               "line": 6005
2026-06-13T11:05:52.9565931Z             },
2026-06-13T11:05:52.9566039Z             {
2026-06-13T11:05:52.9566183Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9566302Z               "line": 6060
2026-06-13T11:05:52.9566421Z             }
2026-06-13T11:05:52.9566535Z           ]
2026-06-13T11:05:52.9566635Z         }
2026-06-13T11:05:52.9566751Z       }
2026-06-13T11:05:52.9566860Z     },
2026-06-13T11:05:52.9566969Z     {
2026-06-13T11:05:52.9567085Z       "id": "REQ-PAIR-1",
2026-06-13T11:05:52.9567231Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-13T11:05:52.9567346Z       "requiredStages": [
2026-06-13T11:05:52.9567462Z         "impl",
2026-06-13T11:05:52.9567583Z         "unit",
2026-06-13T11:05:52.9567688Z         "int"
2026-06-13T11:05:52.9567802Z       ],
2026-06-13T11:05:52.9567915Z       "stages": {
2026-06-13T11:05:52.9568020Z         "doc": {
2026-06-13T11:05:52.9568150Z           "complete": false,
2026-06-13T11:05:52.9568263Z           "evidence": []
2026-06-13T11:05:52.9568378Z         },
2026-06-13T11:05:52.9568492Z         "impl": {
2026-06-13T11:05:52.9568620Z           "complete": true,
2026-06-13T11:05:52.9568731Z           "evidence": [
2026-06-13T11:05:52.9568830Z             {
2026-06-13T11:05:52.9569074Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.9569192Z               "line": 27
2026-06-13T11:05:52.9569303Z             },
2026-06-13T11:05:52.9569412Z             {
2026-06-13T11:05:52.9569579Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.9569694Z               "line": 88
2026-06-13T11:05:52.9569803Z             },
2026-06-13T11:05:52.9570014Z             {
2026-06-13T11:05:52.9570175Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.9570296Z               "line": 110
2026-06-13T11:05:52.9570403Z             },
2026-06-13T11:05:52.9570512Z             {
2026-06-13T11:05:52.9570671Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.9570903Z               "line": 153
2026-06-13T11:05:52.9571004Z             },
2026-06-13T11:05:52.9571103Z             {
2026-06-13T11:05:52.9571262Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.9571366Z               "line": 182
2026-06-13T11:05:52.9571475Z             },
2026-06-13T11:05:52.9571582Z             {
2026-06-13T11:05:52.9571743Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:05:52.9571872Z               "line": 29
2026-06-13T11:05:52.9571977Z             },
2026-06-13T11:05:52.9572081Z             {
2026-06-13T11:05:52.9572249Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:05:52.9572371Z               "line": 31
2026-06-13T11:05:52.9572477Z             },
2026-06-13T11:05:52.9572597Z             {
2026-06-13T11:05:52.9572752Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9572867Z               "line": 44
2026-06-13T11:05:52.9572975Z             },
2026-06-13T11:05:52.9573088Z             {
2026-06-13T11:05:52.9573252Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9573365Z               "line": 171
2026-06-13T11:05:52.9573485Z             },
2026-06-13T11:05:52.9573599Z             {
2026-06-13T11:05:52.9573746Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9573872Z               "line": 376
2026-06-13T11:05:52.9573975Z             }
2026-06-13T11:05:52.9574090Z           ]
2026-06-13T11:05:52.9574205Z         },
2026-06-13T11:05:52.9574319Z         "int": {
2026-06-13T11:05:52.9574449Z           "complete": true,
2026-06-13T11:05:52.9574562Z           "evidence": [
2026-06-13T11:05:52.9574671Z             {
2026-06-13T11:05:52.9574825Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9574944Z               "line": 575
2026-06-13T11:05:52.9575064Z             },
2026-06-13T11:05:52.9575173Z             {
2026-06-13T11:05:52.9575330Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9575445Z               "line": 792
2026-06-13T11:05:52.9575558Z             }
2026-06-13T11:05:52.9575662Z           ]
2026-06-13T11:05:52.9575777Z         },
2026-06-13T11:05:52.9575899Z         "unit": {
2026-06-13T11:05:52.9576013Z           "complete": true,
2026-06-13T11:05:52.9576137Z           "evidence": [
2026-06-13T11:05:52.9576251Z             {
2026-06-13T11:05:52.9576419Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.9576533Z               "line": 236
2026-06-13T11:05:52.9576652Z             },
2026-06-13T11:05:52.9576772Z             {
2026-06-13T11:05:52.9576928Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:05:52.9577044Z               "line": 349
2026-06-13T11:05:52.9577153Z             },
2026-06-13T11:05:52.9577272Z             {
2026-06-13T11:05:52.9577425Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:05:52.9577548Z               "line": 194
2026-06-13T11:05:52.9577669Z             },
2026-06-13T11:05:52.9577777Z             {
2026-06-13T11:05:52.9577936Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:05:52.9578055Z               "line": 216
2026-06-13T11:05:52.9578172Z             },
2026-06-13T11:05:52.9578282Z             {
2026-06-13T11:05:52.9578441Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:05:52.9578560Z               "line": 230
2026-06-13T11:05:52.9578666Z             },
2026-06-13T11:05:52.9578780Z             {
2026-06-13T11:05:52.9579128Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:05:52.9579258Z               "line": 242
2026-06-13T11:05:52.9579367Z             },
2026-06-13T11:05:52.9579476Z             {
2026-06-13T11:05:52.9579643Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:05:52.9579757Z               "line": 256
2026-06-13T11:05:52.9579873Z             },
2026-06-13T11:05:52.9580067Z             {
2026-06-13T11:05:52.9580231Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:05:52.9580343Z               "line": 270
2026-06-13T11:05:52.9580454Z             },
2026-06-13T11:05:52.9580570Z             {
2026-06-13T11:05:52.9580721Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:05:52.9580836Z               "line": 277
2026-06-13T11:05:52.9580945Z             },
2026-06-13T11:05:52.9581058Z             {
2026-06-13T11:05:52.9581221Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:05:52.9581335Z               "line": 295
2026-06-13T11:05:52.9581449Z             },
2026-06-13T11:05:52.9581560Z             {
2026-06-13T11:05:52.9581716Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9581832Z               "line": 968
2026-06-13T11:05:52.9581946Z             },
2026-06-13T11:05:52.9582059Z             {
2026-06-13T11:05:52.9582212Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9582341Z               "line": 1051
2026-06-13T11:05:52.9582447Z             },
2026-06-13T11:05:52.9582555Z             {
2026-06-13T11:05:52.9582708Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9582837Z               "line": 1121
2026-06-13T11:05:52.9582956Z             },
2026-06-13T11:05:52.9583066Z             {
2026-06-13T11:05:52.9583232Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9583350Z               "line": 1182
2026-06-13T11:05:52.9583470Z             },
2026-06-13T11:05:52.9583582Z             {
2026-06-13T11:05:52.9583740Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9583859Z               "line": 1238
2026-06-13T11:05:52.9583972Z             },
2026-06-13T11:05:52.9584088Z             {
2026-06-13T11:05:52.9584235Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9584360Z               "line": 1457
2026-06-13T11:05:52.9584465Z             }
2026-06-13T11:05:52.9584583Z           ]
2026-06-13T11:05:52.9584699Z         }
2026-06-13T11:05:52.9584808Z       }
2026-06-13T11:05:52.9584926Z     },
2026-06-13T11:05:52.9585037Z     {
2026-06-13T11:05:52.9585170Z       "id": "REQ-PAIR-2",
2026-06-13T11:05:52.9585343Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-13T11:05:52.9585475Z       "requiredStages": [],
2026-06-13T11:05:52.9585595Z       "stages": {
2026-06-13T11:05:52.9585705Z         "doc": {
2026-06-13T11:05:52.9585828Z           "complete": false,
2026-06-13T11:05:52.9585948Z           "evidence": []
2026-06-13T11:05:52.9586062Z         },
2026-06-13T11:05:52.9586170Z         "impl": {
2026-06-13T11:05:52.9586299Z           "complete": false,
2026-06-13T11:05:52.9586426Z           "evidence": []
2026-06-13T11:05:52.9586535Z         },
2026-06-13T11:05:52.9586660Z         "int": {
2026-06-13T11:05:52.9586779Z           "complete": false,
2026-06-13T11:05:52.9586902Z           "evidence": []
2026-06-13T11:05:52.9587012Z         },
2026-06-13T11:05:52.9587131Z         "unit": {
2026-06-13T11:05:52.9587256Z           "complete": false,
2026-06-13T11:05:52.9587375Z           "evidence": []
2026-06-13T11:05:52.9587493Z         }
2026-06-13T11:05:52.9587604Z       }
2026-06-13T11:05:52.9587718Z     },
2026-06-13T11:05:52.9587823Z     {
2026-06-13T11:05:52.9587952Z       "id": "REQ-PAIR-3",
2026-06-13T11:05:52.9588137Z       "title": "Fetch current pairing code from any paired node",
2026-06-13T11:05:52.9588262Z       "requiredStages": [
2026-06-13T11:05:52.9588380Z         "impl",
2026-06-13T11:05:52.9588591Z         "unit"
2026-06-13T11:05:52.9588703Z       ],
2026-06-13T11:05:52.9588818Z       "stages": {
2026-06-13T11:05:52.9588932Z         "doc": {
2026-06-13T11:05:52.9589145Z           "complete": false,
2026-06-13T11:05:52.9589255Z           "evidence": []
2026-06-13T11:05:52.9589359Z         },
2026-06-13T11:05:52.9589459Z         "impl": {
2026-06-13T11:05:52.9589579Z           "complete": true,
2026-06-13T11:05:52.9589789Z           "evidence": [
2026-06-13T11:05:52.9589903Z             {
2026-06-13T11:05:52.9590050Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9590161Z               "line": 2534
2026-06-13T11:05:52.9590265Z             },
2026-06-13T11:05:52.9590370Z             {
2026-06-13T11:05:52.9590514Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9590623Z               "line": 2603
2026-06-13T11:05:52.9590733Z             },
2026-06-13T11:05:52.9590843Z             {
2026-06-13T11:05:52.9590975Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9591101Z               "line": 2839
2026-06-13T11:05:52.9591209Z             }
2026-06-13T11:05:52.9591319Z           ]
2026-06-13T11:05:52.9591425Z         },
2026-06-13T11:05:52.9591533Z         "int": {
2026-06-13T11:05:52.9591651Z           "complete": false,
2026-06-13T11:05:52.9591772Z           "evidence": []
2026-06-13T11:05:52.9591880Z         },
2026-06-13T11:05:52.9591990Z         "unit": {
2026-06-13T11:05:52.9592110Z           "complete": true,
2026-06-13T11:05:52.9592214Z           "evidence": [
2026-06-13T11:05:52.9592329Z             {
2026-06-13T11:05:52.9592458Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9592567Z               "line": 7546
2026-06-13T11:05:52.9592677Z             },
2026-06-13T11:05:52.9592777Z             {
2026-06-13T11:05:52.9592910Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9593026Z               "line": 7761
2026-06-13T11:05:52.9593144Z             },
2026-06-13T11:05:52.9593249Z             {
2026-06-13T11:05:52.9593374Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9593497Z               "line": 8360
2026-06-13T11:05:52.9593602Z             },
2026-06-13T11:05:52.9593708Z             {
2026-06-13T11:05:52.9593835Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9593958Z               "line": 8379
2026-06-13T11:05:52.9594067Z             },
2026-06-13T11:05:52.9594180Z             {
2026-06-13T11:05:52.9594314Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9594419Z               "line": 8403
2026-06-13T11:05:52.9594523Z             },
2026-06-13T11:05:52.9594629Z             {
2026-06-13T11:05:52.9594757Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9594881Z               "line": 8422
2026-06-13T11:05:52.9594987Z             },
2026-06-13T11:05:52.9595095Z             {
2026-06-13T11:05:52.9595225Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9595349Z               "line": 8435
2026-06-13T11:05:52.9595458Z             },
2026-06-13T11:05:52.9595569Z             {
2026-06-13T11:05:52.9595706Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9595815Z               "line": 8444
2026-06-13T11:05:52.9595926Z             }
2026-06-13T11:05:52.9596035Z           ]
2026-06-13T11:05:52.9596145Z         }
2026-06-13T11:05:52.9596251Z       }
2026-06-13T11:05:52.9596364Z     },
2026-06-13T11:05:52.9596484Z     {
2026-06-13T11:05:52.9596599Z       "id": "REQ-PAIR-4",
2026-06-13T11:05:52.9596754Z       "title": "Subnet naming on first pairing",
2026-06-13T11:05:52.9596878Z       "requiredStages": [
2026-06-13T11:05:52.9597000Z         "impl",
2026-06-13T11:05:52.9597104Z         "unit"
2026-06-13T11:05:52.9597210Z       ],
2026-06-13T11:05:52.9597329Z       "stages": {
2026-06-13T11:05:52.9597438Z         "doc": {
2026-06-13T11:05:52.9597563Z           "complete": false,
2026-06-13T11:05:52.9597667Z           "evidence": []
2026-06-13T11:05:52.9597772Z         },
2026-06-13T11:05:52.9597887Z         "impl": {
2026-06-13T11:05:52.9598092Z           "complete": true,
2026-06-13T11:05:52.9598225Z           "evidence": [
2026-06-13T11:05:52.9598330Z             {
2026-06-13T11:05:52.9598479Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:05:52.9598587Z               "line": 174
2026-06-13T11:05:52.9598702Z             }
2026-06-13T11:05:52.9598808Z           ]
2026-06-13T11:05:52.9599056Z         },
2026-06-13T11:05:52.9599166Z         "int": {
2026-06-13T11:05:52.9599287Z           "complete": false,
2026-06-13T11:05:52.9599407Z           "evidence": []
2026-06-13T11:05:52.9599511Z         },
2026-06-13T11:05:52.9599623Z         "unit": {
2026-06-13T11:05:52.9599738Z           "complete": true,
2026-06-13T11:05:52.9599849Z           "evidence": [
2026-06-13T11:05:52.9599967Z             {
2026-06-13T11:05:52.9600120Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9600243Z               "line": 1294
2026-06-13T11:05:52.9600349Z             }
2026-06-13T11:05:52.9600459Z           ]
2026-06-13T11:05:52.9600567Z         }
2026-06-13T11:05:52.9600683Z       }
2026-06-13T11:05:52.9600792Z     },
2026-06-13T11:05:52.9600896Z     {
2026-06-13T11:05:52.9601017Z       "id": "REQ-PAIR-5",
2026-06-13T11:05:52.9601351Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-13T11:05:52.9601473Z       "requiredStages": [
2026-06-13T11:05:52.9601584Z         "impl",
2026-06-13T11:05:52.9601699Z         "unit",
2026-06-13T11:05:52.9601812Z         "int"
2026-06-13T11:05:52.9601908Z       ],
2026-06-13T11:05:52.9602019Z       "stages": {
2026-06-13T11:05:52.9602117Z         "doc": {
2026-06-13T11:05:52.9602240Z           "complete": false,
2026-06-13T11:05:52.9602355Z           "evidence": []
2026-06-13T11:05:52.9602460Z         },
2026-06-13T11:05:52.9602584Z         "impl": {
2026-06-13T11:05:52.9602694Z           "complete": true,
2026-06-13T11:05:52.9602812Z           "evidence": [
2026-06-13T11:05:52.9602933Z             {
2026-06-13T11:05:52.9603099Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:05:52.9603209Z               "line": 44
2026-06-13T11:05:52.9603323Z             },
2026-06-13T11:05:52.9603441Z             {
2026-06-13T11:05:52.9603596Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:05:52.9603719Z               "line": 96
2026-06-13T11:05:52.9603828Z             },
2026-06-13T11:05:52.9603939Z             {
2026-06-13T11:05:52.9604090Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:05:52.9604206Z               "line": 107
2026-06-13T11:05:52.9604314Z             },
2026-06-13T11:05:52.9604419Z             {
2026-06-13T11:05:52.9604571Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:05:52.9604693Z               "line": 124
2026-06-13T11:05:52.9604802Z             },
2026-06-13T11:05:52.9604908Z             {
2026-06-13T11:05:52.9605069Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:05:52.9605189Z               "line": 155
2026-06-13T11:05:52.9605289Z             },
2026-06-13T11:05:52.9605412Z             {
2026-06-13T11:05:52.9605552Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:05:52.9605675Z               "line": 195
2026-06-13T11:05:52.9605795Z             },
2026-06-13T11:05:52.9605909Z             {
2026-06-13T11:05:52.9606075Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:05:52.9606195Z               "line": 251
2026-06-13T11:05:52.9606309Z             },
2026-06-13T11:05:52.9606424Z             {
2026-06-13T11:05:52.9606605Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:05:52.9606725Z               "line": 33
2026-06-13T11:05:52.9606834Z             },
2026-06-13T11:05:52.9606943Z             {
2026-06-13T11:05:52.9607117Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:05:52.9607357Z               "line": 45
2026-06-13T11:05:52.9607462Z             },
2026-06-13T11:05:52.9607574Z             {
2026-06-13T11:05:52.9607742Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:05:52.9607851Z               "line": 59
2026-06-13T11:05:52.9607974Z             },
2026-06-13T11:05:52.9608075Z             {
2026-06-13T11:05:52.9608246Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9608490Z               "line": 376
2026-06-13T11:05:52.9608608Z             }
2026-06-13T11:05:52.9608719Z           ]
2026-06-13T11:05:52.9608823Z         },
2026-06-13T11:05:52.9609030Z         "int": {
2026-06-13T11:05:52.9609143Z           "complete": true,
2026-06-13T11:05:52.9609267Z           "evidence": [
2026-06-13T11:05:52.9609368Z             {
2026-06-13T11:05:52.9609525Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9609645Z               "line": 792
2026-06-13T11:05:52.9609754Z             },
2026-06-13T11:05:52.9609857Z             {
2026-06-13T11:05:52.9610005Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:05:52.9610113Z               "line": 342
2026-06-13T11:05:52.9610217Z             }
2026-06-13T11:05:52.9610327Z           ]
2026-06-13T11:05:52.9610442Z         },
2026-06-13T11:05:52.9610551Z         "unit": {
2026-06-13T11:05:52.9610676Z           "complete": true,
2026-06-13T11:05:52.9610785Z           "evidence": [
2026-06-13T11:05:52.9610894Z             {
2026-06-13T11:05:52.9611042Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:05:52.9611165Z               "line": 293
2026-06-13T11:05:52.9611276Z             },
2026-06-13T11:05:52.9611385Z             {
2026-06-13T11:05:52.9611548Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:05:52.9611653Z               "line": 304
2026-06-13T11:05:52.9611767Z             },
2026-06-13T11:05:52.9611868Z             {
2026-06-13T11:05:52.9612024Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:05:52.9612144Z               "line": 406
2026-06-13T11:05:52.9612250Z             },
2026-06-13T11:05:52.9612358Z             {
2026-06-13T11:05:52.9612527Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:05:52.9612649Z               "line": 72
2026-06-13T11:05:52.9612767Z             },
2026-06-13T11:05:52.9612877Z             {
2026-06-13T11:05:52.9613048Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:05:52.9613163Z               "line": 82
2026-06-13T11:05:52.9613278Z             },
2026-06-13T11:05:52.9613382Z             {
2026-06-13T11:05:52.9613555Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:05:52.9613678Z               "line": 100
2026-06-13T11:05:52.9613783Z             },
2026-06-13T11:05:52.9613898Z             {
2026-06-13T11:05:52.9614064Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:05:52.9614189Z               "line": 110
2026-06-13T11:05:52.9614303Z             },
2026-06-13T11:05:52.9614418Z             {
2026-06-13T11:05:52.9614588Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:05:52.9614704Z               "line": 125
2026-06-13T11:05:52.9614824Z             },
2026-06-13T11:05:52.9614931Z             {
2026-06-13T11:05:52.9615088Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9615206Z               "line": 1044
2026-06-13T11:05:52.9615320Z             },
2026-06-13T11:05:52.9615439Z             {
2026-06-13T11:05:52.9615591Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9615711Z               "line": 1110
2026-06-13T11:05:52.9615816Z             },
2026-06-13T11:05:52.9615934Z             {
2026-06-13T11:05:52.9616088Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9616207Z               "line": 1357
2026-06-13T11:05:52.9616326Z             }
2026-06-13T11:05:52.9616545Z           ]
2026-06-13T11:05:52.9616665Z         }
2026-06-13T11:05:52.9616779Z       }
2026-06-13T11:05:52.9621579Z     },
2026-06-13T11:05:52.9621725Z     {
2026-06-13T11:05:52.9621865Z       "id": "REQ-PAIR-6",
2026-06-13T11:05:52.9622189Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-13T11:05:52.9622471Z       "requiredStages": [
2026-06-13T11:05:52.9622598Z         "impl",
2026-06-13T11:05:52.9622704Z         "unit"
2026-06-13T11:05:52.9622819Z       ],
2026-06-13T11:05:52.9622918Z       "stages": {
2026-06-13T11:05:52.9623029Z         "doc": {
2026-06-13T11:05:52.9623162Z           "complete": false,
2026-06-13T11:05:52.9623279Z           "evidence": []
2026-06-13T11:05:52.9623389Z         },
2026-06-13T11:05:52.9623505Z         "impl": {
2026-06-13T11:05:52.9623632Z           "complete": true,
2026-06-13T11:05:52.9623747Z           "evidence": [
2026-06-13T11:05:52.9623867Z             {
2026-06-13T11:05:52.9624019Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9624138Z               "line": 2603
2026-06-13T11:05:52.9624243Z             },
2026-06-13T11:05:52.9624353Z             {
2026-06-13T11:05:52.9624490Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9624605Z               "line": 2839
2026-06-13T11:05:52.9624711Z             },
2026-06-13T11:05:52.9624815Z             {
2026-06-13T11:05:52.9624963Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:05:52.9625088Z               "line": 18
2026-06-13T11:05:52.9625182Z             },
2026-06-13T11:05:52.9625297Z             {
2026-06-13T11:05:52.9625440Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:05:52.9625553Z               "line": 49
2026-06-13T11:05:52.9625677Z             },
2026-06-13T11:05:52.9625780Z             {
2026-06-13T11:05:52.9625927Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:05:52.9626042Z               "line": 163
2026-06-13T11:05:52.9626161Z             }
2026-06-13T11:05:52.9626266Z           ]
2026-06-13T11:05:52.9626381Z         },
2026-06-13T11:05:52.9626494Z         "int": {
2026-06-13T11:05:52.9626615Z           "complete": false,
2026-06-13T11:05:52.9626734Z           "evidence": []
2026-06-13T11:05:52.9626843Z         },
2026-06-13T11:05:52.9626949Z         "unit": {
2026-06-13T11:05:52.9627058Z           "complete": true,
2026-06-13T11:05:52.9627182Z           "evidence": [
2026-06-13T11:05:52.9627287Z             {
2026-06-13T11:05:52.9627415Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9627535Z               "line": 8457
2026-06-13T11:05:52.9627645Z             },
2026-06-13T11:05:52.9627754Z             {
2026-06-13T11:05:52.9627879Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9628001Z               "line": 8474
2026-06-13T11:05:52.9628102Z             },
2026-06-13T11:05:52.9628208Z             {
2026-06-13T11:05:52.9628344Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:05:52.9628462Z               "line": 228
2026-06-13T11:05:52.9628583Z             },
2026-06-13T11:05:52.9628690Z             {
2026-06-13T11:05:52.9628823Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:05:52.9629028Z               "line": 237
2026-06-13T11:05:52.9629138Z             }
2026-06-13T11:05:52.9629248Z           ]
2026-06-13T11:05:52.9629347Z         }
2026-06-13T11:05:52.9629453Z       }
2026-06-13T11:05:52.9629562Z     },
2026-06-13T11:05:52.9629676Z     {
2026-06-13T11:05:52.9629801Z       "id": "REQ-PAIR-7",
2026-06-13T11:05:52.9629996Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-13T11:05:52.9630121Z       "requiredStages": [],
2026-06-13T11:05:52.9630234Z       "stages": {
2026-06-13T11:05:52.9630339Z         "doc": {
2026-06-13T11:05:52.9630470Z           "complete": false,
2026-06-13T11:05:52.9630582Z           "evidence": []
2026-06-13T11:05:52.9630688Z         },
2026-06-13T11:05:52.9630794Z         "impl": {
2026-06-13T11:05:52.9631025Z           "complete": false,
2026-06-13T11:05:52.9631144Z           "evidence": []
2026-06-13T11:05:52.9631252Z         },
2026-06-13T11:05:52.9631361Z         "int": {
2026-06-13T11:05:52.9631477Z           "complete": false,
2026-06-13T11:05:52.9631600Z           "evidence": []
2026-06-13T11:05:52.9631700Z         },
2026-06-13T11:05:52.9631820Z         "unit": {
2026-06-13T11:05:52.9632019Z           "complete": false,
2026-06-13T11:05:52.9632144Z           "evidence": []
2026-06-13T11:05:52.9632248Z         }
2026-06-13T11:05:52.9632359Z       }
2026-06-13T11:05:52.9632472Z     },
2026-06-13T11:05:52.9632577Z     {
2026-06-13T11:05:52.9632703Z       "id": "REQ-PAIR-8",
2026-06-13T11:05:52.9634211Z       "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-13T11:05:52.9634346Z       "requiredStages": [
2026-06-13T11:05:52.9634469Z         "impl",
2026-06-13T11:05:52.9634569Z         "unit"
2026-06-13T11:05:52.9634675Z       ],
2026-06-13T11:05:52.9634779Z       "stages": {
2026-06-13T11:05:52.9634903Z         "doc": {
2026-06-13T11:05:52.9635032Z           "complete": false,
2026-06-13T11:05:52.9635150Z           "evidence": []
2026-06-13T11:05:52.9635266Z         },
2026-06-13T11:05:52.9635370Z         "impl": {
2026-06-13T11:05:52.9635499Z           "complete": true,
2026-06-13T11:05:52.9635615Z           "evidence": [
2026-06-13T11:05:52.9635718Z             {
2026-06-13T11:05:52.9635877Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9635986Z               "line": 577
2026-06-13T11:05:52.9636094Z             },
2026-06-13T11:05:52.9636194Z             {
2026-06-13T11:05:52.9636369Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:05:52.9636482Z               "line": 22
2026-06-13T11:05:52.9636603Z             },
2026-06-13T11:05:52.9636716Z             {
2026-06-13T11:05:52.9636879Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:05:52.9637003Z               "line": 76
2026-06-13T11:05:52.9637112Z             },
2026-06-13T11:05:52.9637232Z             {
2026-06-13T11:05:52.9637388Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:05:52.9637509Z               "line": 127
2026-06-13T11:05:52.9637613Z             }
2026-06-13T11:05:52.9637722Z           ]
2026-06-13T11:05:52.9637828Z         },
2026-06-13T11:05:52.9637937Z         "int": {
2026-06-13T11:05:52.9638071Z           "complete": false,
2026-06-13T11:05:52.9638186Z           "evidence": []
2026-06-13T11:05:52.9638290Z         },
2026-06-13T11:05:52.9638410Z         "unit": {
2026-06-13T11:05:52.9638529Z           "complete": true,
2026-06-13T11:05:52.9638652Z           "evidence": [
2026-06-13T11:05:52.9638759Z             {
2026-06-13T11:05:52.9638923Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:05:52.9639114Z               "line": 183
2026-06-13T11:05:52.9639231Z             },
2026-06-13T11:05:52.9639345Z             {
2026-06-13T11:05:52.9639494Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:05:52.9639621Z               "line": 195
2026-06-13T11:05:52.9639717Z             },
2026-06-13T11:05:52.9639832Z             {
2026-06-13T11:05:52.9639984Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:05:52.9640104Z               "line": 211
2026-06-13T11:05:52.9640208Z             },
2026-06-13T11:05:52.9640318Z             {
2026-06-13T11:05:52.9640470Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:05:52.9640590Z               "line": 227
2026-06-13T11:05:52.9640705Z             }
2026-06-13T11:05:52.9640809Z           ]
2026-06-13T11:05:52.9641025Z         }
2026-06-13T11:05:52.9641137Z       }
2026-06-13T11:05:52.9641243Z     },
2026-06-13T11:05:52.9641359Z     {
2026-06-13T11:05:52.9641481Z       "id": "REQ-PRES-1",
2026-06-13T11:05:52.9642865Z       "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-13T11:05:52.9643085Z       "requiredStages": [
2026-06-13T11:05:52.9643199Z         "impl",
2026-06-13T11:05:52.9643309Z         "unit",
2026-06-13T11:05:52.9643419Z         "int"
2026-06-13T11:05:52.9643524Z       ],
2026-06-13T11:05:52.9643629Z       "stages": {
2026-06-13T11:05:52.9643738Z         "doc": {
2026-06-13T11:05:52.9643868Z           "complete": true,
2026-06-13T11:05:52.9643981Z           "evidence": [
2026-06-13T11:05:52.9644096Z             {
2026-06-13T11:05:52.9644221Z               "path": "docs/DEFERRED.md",
2026-06-13T11:05:52.9644343Z               "line": 11
2026-06-13T11:05:52.9644442Z             }
2026-06-13T11:05:52.9644553Z           ]
2026-06-13T11:05:52.9644663Z         },
2026-06-13T11:05:52.9644771Z         "impl": {
2026-06-13T11:05:52.9644897Z           "complete": true,
2026-06-13T11:05:52.9645006Z           "evidence": [
2026-06-13T11:05:52.9645115Z             {
2026-06-13T11:05:52.9645264Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.9645387Z               "line": 515
2026-06-13T11:05:52.9645493Z             },
2026-06-13T11:05:52.9645593Z             {
2026-06-13T11:05:52.9645749Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.9645869Z               "line": 567
2026-06-13T11:05:52.9645988Z             },
2026-06-13T11:05:52.9646093Z             {
2026-06-13T11:05:52.9646231Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9646355Z               "line": 188
2026-06-13T11:05:52.9646466Z             },
2026-06-13T11:05:52.9646574Z             {
2026-06-13T11:05:52.9646721Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9646835Z               "line": 214
2026-06-13T11:05:52.9646943Z             },
2026-06-13T11:05:52.9647047Z             {
2026-06-13T11:05:52.9647187Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:05:52.9647295Z               "line": 28
2026-06-13T11:05:52.9647411Z             },
2026-06-13T11:05:52.9647515Z             {
2026-06-13T11:05:52.9647667Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:05:52.9647788Z               "line": 105
2026-06-13T11:05:52.9647896Z             },
2026-06-13T11:05:52.9648001Z             {
2026-06-13T11:05:52.9648145Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:05:52.9648272Z               "line": 161
2026-06-13T11:05:52.9648379Z             },
2026-06-13T11:05:52.9648488Z             {
2026-06-13T11:05:52.9648636Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:05:52.9648751Z               "line": 180
2026-06-13T11:05:52.9648865Z             },
2026-06-13T11:05:52.9649056Z             {
2026-06-13T11:05:52.9649213Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9649324Z               "line": 415
2026-06-13T11:05:52.9649432Z             },
2026-06-13T11:05:52.9649550Z             {
2026-06-13T11:05:52.9649707Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9649829Z               "line": 289
2026-06-13T11:05:52.9649934Z             },
2026-06-13T11:05:52.9650039Z             {
2026-06-13T11:05:52.9650186Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9650307Z               "line": 336
2026-06-13T11:05:52.9650412Z             },
2026-06-13T11:05:52.9650636Z             {
2026-06-13T11:05:52.9650797Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9650907Z               "line": 362
2026-06-13T11:05:52.9651021Z             },
2026-06-13T11:05:52.9651126Z             {
2026-06-13T11:05:52.9651275Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9651392Z               "line": 100
2026-06-13T11:05:52.9651590Z             }
2026-06-13T11:05:52.9651702Z           ]
2026-06-13T11:05:52.9651803Z         },
2026-06-13T11:05:52.9651919Z         "int": {
2026-06-13T11:05:52.9652041Z           "complete": true,
2026-06-13T11:05:52.9652164Z           "evidence": [
2026-06-13T11:05:52.9652279Z             {
2026-06-13T11:05:52.9652434Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:05:52.9652553Z               "line": 557
2026-06-13T11:05:52.9652663Z             },
2026-06-13T11:05:52.9652777Z             {
2026-06-13T11:05:52.9652930Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9653049Z               "line": 677
2026-06-13T11:05:52.9653164Z             },
2026-06-13T11:05:52.9653273Z             {
2026-06-13T11:05:52.9653430Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9653546Z               "line": 1070
2026-06-13T11:05:52.9653655Z             }
2026-06-13T11:05:52.9653774Z           ]
2026-06-13T11:05:52.9653884Z         },
2026-06-13T11:05:52.9653998Z         "unit": {
2026-06-13T11:05:52.9654118Z           "complete": true,
2026-06-13T11:05:52.9654236Z           "evidence": [
2026-06-13T11:05:52.9654341Z             {
2026-06-13T11:05:52.9654490Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:52.9654613Z               "line": 659
2026-06-13T11:05:52.9654724Z             },
2026-06-13T11:05:52.9654838Z             {
2026-06-13T11:05:52.9654984Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:05:52.9655104Z               "line": 238
2026-06-13T11:05:52.9655218Z             },
2026-06-13T11:05:52.9655336Z             {
2026-06-13T11:05:52.9655490Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:05:52.9655599Z               "line": 269
2026-06-13T11:05:52.9655714Z             },
2026-06-13T11:05:52.9655824Z             {
2026-06-13T11:05:52.9655980Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:05:52.9656095Z               "line": 305
2026-06-13T11:05:52.9656214Z             },
2026-06-13T11:05:52.9656324Z             {
2026-06-13T11:05:52.9656476Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:05:52.9656596Z               "line": 336
2026-06-13T11:05:52.9656707Z             },
2026-06-13T11:05:52.9656824Z             {
2026-06-13T11:05:52.9656982Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9657102Z               "line": 1165
2026-06-13T11:05:52.9657219Z             },
2026-06-13T11:05:52.9657329Z             {
2026-06-13T11:05:52.9657489Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9657603Z               "line": 1131
2026-06-13T11:05:52.9657719Z             }
2026-06-13T11:05:52.9657828Z           ]
2026-06-13T11:05:52.9657936Z         }
2026-06-13T11:05:52.9658048Z       }
2026-06-13T11:05:52.9658151Z     },
2026-06-13T11:05:52.9658266Z     {
2026-06-13T11:05:52.9658386Z       "id": "REQ-REACH-1",
2026-06-13T11:05:52.9658576Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-13T11:05:52.9658696Z       "requiredStages": [
2026-06-13T11:05:52.9658819Z         "impl",
2026-06-13T11:05:52.9658935Z         "unit",
2026-06-13T11:05:52.9659129Z         "int"
2026-06-13T11:05:52.9659240Z       ],
2026-06-13T11:05:52.9659348Z       "stages": {
2026-06-13T11:05:52.9659467Z         "doc": {
2026-06-13T11:05:52.9659583Z           "complete": false,
2026-06-13T11:05:52.9659706Z           "evidence": []
2026-06-13T11:05:52.9659821Z         },
2026-06-13T11:05:52.9659936Z         "impl": {
2026-06-13T11:05:52.9660162Z           "complete": true,
2026-06-13T11:05:52.9660277Z           "evidence": [
2026-06-13T11:05:52.9660394Z             {
2026-06-13T11:05:52.9660542Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T11:05:52.9660662Z               "line": 140
2026-06-13T11:05:52.9660785Z             },
2026-06-13T11:05:52.9660891Z             {
2026-06-13T11:05:52.9661138Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:05:52.9661253Z               "line": 76
2026-06-13T11:05:52.9661366Z             },
2026-06-13T11:05:52.9661472Z             {
2026-06-13T11:05:52.9661619Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:05:52.9661739Z               "line": 222
2026-06-13T11:05:52.9661845Z             },
2026-06-13T11:05:52.9661957Z             {
2026-06-13T11:05:52.9662097Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:05:52.9662221Z               "line": 422
2026-06-13T11:05:52.9662325Z             },
2026-06-13T11:05:52.9662441Z             {
2026-06-13T11:05:52.9662596Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:05:52.9662709Z               "line": 529
2026-06-13T11:05:52.9662825Z             },
2026-06-13T11:05:52.9662932Z             {
2026-06-13T11:05:52.9663075Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T11:05:52.9663191Z               "line": 39
2026-06-13T11:05:52.9663313Z             },
2026-06-13T11:05:52.9663419Z             {
2026-06-13T11:05:52.9663566Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.9663685Z               "line": 229
2026-06-13T11:05:52.9663791Z             },
2026-06-13T11:05:52.9663900Z             {
2026-06-13T11:05:52.9664034Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-13T11:05:52.9664157Z               "line": 88
2026-06-13T11:05:52.9664262Z             },
2026-06-13T11:05:52.9664368Z             {
2026-06-13T11:05:52.9664516Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-13T11:05:52.9664634Z               "line": 98
2026-06-13T11:05:52.9664754Z             },
2026-06-13T11:05:52.9664863Z             {
2026-06-13T11:05:52.9665022Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9665144Z               "line": 210
2026-06-13T11:05:52.9665255Z             }
2026-06-13T11:05:52.9665375Z           ]
2026-06-13T11:05:52.9665487Z         },
2026-06-13T11:05:52.9665606Z         "int": {
2026-06-13T11:05:52.9665726Z           "complete": true,
2026-06-13T11:05:52.9665839Z           "evidence": [
2026-06-13T11:05:52.9665959Z             {
2026-06-13T11:05:52.9666116Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:05:52.9666235Z               "line": 415
2026-06-13T11:05:52.9666350Z             },
2026-06-13T11:05:52.9666459Z             {
2026-06-13T11:05:52.9666623Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:05:52.9666741Z               "line": 514
2026-06-13T11:05:52.9666860Z             },
2026-06-13T11:05:52.9666971Z             {
2026-06-13T11:05:52.9667127Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9667243Z               "line": 903
2026-06-13T11:05:52.9667356Z             },
2026-06-13T11:05:52.9667470Z             {
2026-06-13T11:05:52.9667619Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9667746Z               "line": 1198
2026-06-13T11:05:52.9667855Z             }
2026-06-13T11:05:52.9667969Z           ]
2026-06-13T11:05:52.9668078Z         },
2026-06-13T11:05:52.9668192Z         "unit": {
2026-06-13T11:05:52.9668317Z           "complete": true,
2026-06-13T11:05:52.9668434Z           "evidence": [
2026-06-13T11:05:52.9668545Z             {
2026-06-13T11:05:52.9668688Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:05:52.9668812Z               "line": 639
2026-06-13T11:05:52.9668922Z             },
2026-06-13T11:05:52.9669127Z             {
2026-06-13T11:05:52.9669374Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:05:52.9669500Z               "line": 660
2026-06-13T11:05:52.9669613Z             },
2026-06-13T11:05:52.9669722Z             {
2026-06-13T11:05:52.9669876Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-13T11:05:52.9669990Z               "line": 391
2026-06-13T11:05:52.9670105Z             },
2026-06-13T11:05:52.9670219Z             {
2026-06-13T11:05:52.9670458Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-13T11:05:52.9670580Z               "line": 93
2026-06-13T11:05:52.9670684Z             },
2026-06-13T11:05:52.9670799Z             {
2026-06-13T11:05:52.9670945Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-13T11:05:52.9671069Z               "line": 224
2026-06-13T11:05:52.9671179Z             },
2026-06-13T11:05:52.9671288Z             {
2026-06-13T11:05:52.9671436Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T11:05:52.9671551Z               "line": 96
2026-06-13T11:05:52.9671674Z             },
2026-06-13T11:05:52.9671785Z             {
2026-06-13T11:05:52.9671936Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T11:05:52.9672052Z               "line": 146
2026-06-13T11:05:52.9672161Z             },
2026-06-13T11:05:52.9672274Z             {
2026-06-13T11:05:52.9672414Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:52.9672537Z               "line": 502
2026-06-13T11:05:52.9672647Z             },
2026-06-13T11:05:52.9672758Z             {
2026-06-13T11:05:52.9672904Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-13T11:05:52.9673020Z               "line": 118
2026-06-13T11:05:52.9673138Z             },
2026-06-13T11:05:52.9673242Z             {
2026-06-13T11:05:52.9673385Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-13T11:05:52.9673511Z               "line": 148
2026-06-13T11:05:52.9673621Z             },
2026-06-13T11:05:52.9673741Z             {
2026-06-13T11:05:52.9673888Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9674013Z               "line": 681
2026-06-13T11:05:52.9674122Z             }
2026-06-13T11:05:52.9674240Z           ]
2026-06-13T11:05:52.9674356Z         }
2026-06-13T11:05:52.9674465Z       }
2026-06-13T11:05:52.9674575Z     },
2026-06-13T11:05:52.9674680Z     {
2026-06-13T11:05:52.9674808Z       "id": "REQ-REACH-2",
2026-06-13T11:05:52.9674995Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-13T11:05:52.9675127Z       "requiredStages": [],
2026-06-13T11:05:52.9675248Z       "stages": {
2026-06-13T11:05:52.9675361Z         "doc": {
2026-06-13T11:05:52.9675485Z           "complete": false,
2026-06-13T11:05:52.9675601Z           "evidence": []
2026-06-13T11:05:52.9675713Z         },
2026-06-13T11:05:52.9675824Z         "impl": {
2026-06-13T11:05:52.9675954Z           "complete": false,
2026-06-13T11:05:52.9676071Z           "evidence": []
2026-06-13T11:05:52.9676181Z         },
2026-06-13T11:05:52.9676296Z         "int": {
2026-06-13T11:05:52.9676419Z           "complete": false,
2026-06-13T11:05:52.9676548Z           "evidence": []
2026-06-13T11:05:52.9676653Z         },
2026-06-13T11:05:52.9676762Z         "unit": {
2026-06-13T11:05:52.9676883Z           "complete": false,
2026-06-13T11:05:52.9677001Z           "evidence": []
2026-06-13T11:05:52.9677115Z         }
2026-06-13T11:05:52.9677221Z       }
2026-06-13T11:05:52.9677325Z     },
2026-06-13T11:05:52.9677434Z     {
2026-06-13T11:05:52.9677550Z       "id": "REQ-REL-1",
2026-06-13T11:05:52.9677963Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-13T11:05:52.9678083Z       "requiredStages": [
2026-06-13T11:05:52.9678189Z         "doc",
2026-06-13T11:05:52.9678297Z         "impl"
2026-06-13T11:05:52.9678406Z       ],
2026-06-13T11:05:52.9678511Z       "stages": {
2026-06-13T11:05:52.9678623Z         "doc": {
2026-06-13T11:05:52.9678747Z           "complete": true,
2026-06-13T11:05:52.9678933Z           "evidence": [
2026-06-13T11:05:52.9679144Z             {
2026-06-13T11:05:52.9679430Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-13T11:05:52.9679548Z               "line": 3
2026-06-13T11:05:52.9679643Z             }
2026-06-13T11:05:52.9679759Z           ]
2026-06-13T11:05:52.9679873Z         },
2026-06-13T11:05:52.9680079Z         "impl": {
2026-06-13T11:05:52.9680206Z           "complete": true,
2026-06-13T11:05:52.9680321Z           "evidence": [
2026-06-13T11:05:52.9680426Z             {
2026-06-13T11:05:52.9680578Z               "path": ".github/workflows/docs-publish.yml",
2026-06-13T11:05:52.9680694Z               "line": 11
2026-06-13T11:05:52.9680807Z             },
2026-06-13T11:05:52.9680912Z             {
2026-06-13T11:05:52.9681061Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:52.9681169Z               "line": 265
2026-06-13T11:05:52.9681278Z             }
2026-06-13T11:05:52.9681387Z           ]
2026-06-13T11:05:52.9681500Z         },
2026-06-13T11:05:52.9681609Z         "int": {
2026-06-13T11:05:52.9681753Z           "complete": false,
2026-06-13T11:05:52.9681871Z           "evidence": []
2026-06-13T11:05:52.9681982Z         },
2026-06-13T11:05:52.9682092Z         "unit": {
2026-06-13T11:05:52.9682200Z           "complete": false,
2026-06-13T11:05:52.9682316Z           "evidence": []
2026-06-13T11:05:52.9682440Z         }
2026-06-13T11:05:52.9682549Z       }
2026-06-13T11:05:52.9682654Z     },
2026-06-13T11:05:52.9682759Z     {
2026-06-13T11:05:52.9682888Z       "id": "REQ-REL-2",
2026-06-13T11:05:52.9683402Z       "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-13T11:05:52.9683522Z       "requiredStages": [
2026-06-13T11:05:52.9683642Z         "impl",
2026-06-13T11:05:52.9683740Z         "int"
2026-06-13T11:05:52.9683854Z       ],
2026-06-13T11:05:52.9683968Z       "stages": {
2026-06-13T11:05:52.9684076Z         "doc": {
2026-06-13T11:05:52.9684186Z           "complete": true,
2026-06-13T11:05:52.9684306Z           "evidence": [
2026-06-13T11:05:52.9684419Z             {
2026-06-13T11:05:52.9684554Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-13T11:05:52.9684673Z               "line": 6
2026-06-13T11:05:52.9684782Z             }
2026-06-13T11:05:52.9684897Z           ]
2026-06-13T11:05:52.9685007Z         },
2026-06-13T11:05:52.9685116Z         "impl": {
2026-06-13T11:05:52.9685235Z           "complete": true,
2026-06-13T11:05:52.9685354Z           "evidence": [
2026-06-13T11:05:52.9685469Z             {
2026-06-13T11:05:52.9685616Z               "path": ".github/workflows/release.yml",
2026-06-13T11:05:52.9685726Z               "line": 16
2026-06-13T11:05:52.9685837Z             },
2026-06-13T11:05:52.9685945Z             {
2026-06-13T11:05:52.9686089Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:52.9686199Z               "line": 352
2026-06-13T11:05:52.9686313Z             },
2026-06-13T11:05:52.9686424Z             {
2026-06-13T11:05:52.9686556Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:52.9686669Z               "line": 426
2026-06-13T11:05:52.9686779Z             },
2026-06-13T11:05:52.9686885Z             {
2026-06-13T11:05:52.9687017Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:52.9687133Z               "line": 588
2026-06-13T11:05:52.9687237Z             },
2026-06-13T11:05:52.9687350Z             {
2026-06-13T11:05:52.9687485Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:52.9687603Z               "line": 720
2026-06-13T11:05:52.9687714Z             }
2026-06-13T11:05:52.9687823Z           ]
2026-06-13T11:05:52.9687932Z         },
2026-06-13T11:05:52.9688043Z         "int": {
2026-06-13T11:05:52.9688152Z           "complete": true,
2026-06-13T11:05:52.9688266Z           "evidence": [
2026-06-13T11:05:52.9688377Z             {
2026-06-13T11:05:52.9688668Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-13T11:05:52.9688786Z               "line": 13
2026-06-13T11:05:52.9688904Z             }
2026-06-13T11:05:52.9689099Z           ]
2026-06-13T11:05:52.9689212Z         },
2026-06-13T11:05:52.9689317Z         "unit": {
2026-06-13T11:05:52.9689442Z           "complete": false,
2026-06-13T11:05:52.9689569Z           "evidence": []
2026-06-13T11:05:52.9689780Z         }
2026-06-13T11:05:52.9689889Z       }
2026-06-13T11:05:52.9689995Z     },
2026-06-13T11:05:52.9690104Z     {
2026-06-13T11:05:52.9690222Z       "id": "REQ-REL-3",
2026-06-13T11:05:52.9690695Z       "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-13T11:05:52.9690824Z       "requiredStages": [
2026-06-13T11:05:52.9690935Z         "impl",
2026-06-13T11:05:52.9691048Z         "unit"
2026-06-13T11:05:52.9691148Z       ],
2026-06-13T11:05:52.9691269Z       "stages": {
2026-06-13T11:05:52.9691367Z         "doc": {
2026-06-13T11:05:52.9691491Z           "complete": false,
2026-06-13T11:05:52.9691607Z           "evidence": []
2026-06-13T11:05:52.9691715Z         },
2026-06-13T11:05:52.9691833Z         "impl": {
2026-06-13T11:05:52.9691948Z           "complete": true,
2026-06-13T11:05:52.9692070Z           "evidence": [
2026-06-13T11:05:52.9692179Z             {
2026-06-13T11:05:52.9692342Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:52.9692460Z               "line": 237
2026-06-13T11:05:52.9692571Z             },
2026-06-13T11:05:52.9692685Z             {
2026-06-13T11:05:52.9692833Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:52.9692952Z               "line": 289
2026-06-13T11:05:52.9693071Z             },
2026-06-13T11:05:52.9693177Z             {
2026-06-13T11:05:52.9693324Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:52.9693438Z               "line": 329
2026-06-13T11:05:52.9693558Z             },
2026-06-13T11:05:52.9693667Z             {
2026-06-13T11:05:52.9693811Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:52.9693934Z               "line": 353
2026-06-13T11:05:52.9694048Z             },
2026-06-13T11:05:52.9694164Z             {
2026-06-13T11:05:52.9694300Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:52.9694429Z               "line": 394
2026-06-13T11:05:52.9694538Z             }
2026-06-13T11:05:52.9694650Z           ]
2026-06-13T11:05:52.9694765Z         },
2026-06-13T11:05:52.9694876Z         "int": {
2026-06-13T11:05:52.9694998Z           "complete": false,
2026-06-13T11:05:52.9695114Z           "evidence": []
2026-06-13T11:05:52.9695228Z         },
2026-06-13T11:05:52.9695337Z         "unit": {
2026-06-13T11:05:52.9695462Z           "complete": true,
2026-06-13T11:05:52.9695585Z           "evidence": [
2026-06-13T11:05:52.9695690Z             {
2026-06-13T11:05:52.9695847Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:52.9695971Z               "line": 992
2026-06-13T11:05:52.9696087Z             },
2026-06-13T11:05:52.9696201Z             {
2026-06-13T11:05:52.9696354Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:52.9696477Z               "line": 1051
2026-06-13T11:05:52.9696582Z             }
2026-06-13T11:05:52.9696697Z           ]
2026-06-13T11:05:52.9696806Z         }
2026-06-13T11:05:52.9696925Z       }
2026-06-13T11:05:52.9697031Z     },
2026-06-13T11:05:52.9697149Z     {
2026-06-13T11:05:52.9697286Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-13T11:05:52.9697492Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-13T11:05:52.9697620Z       "requiredStages": [
2026-06-13T11:05:52.9697730Z         "impl",
2026-06-13T11:05:52.9697844Z         "unit"
2026-06-13T11:05:52.9697950Z       ],
2026-06-13T11:05:52.9698068Z       "stages": {
2026-06-13T11:05:52.9698182Z         "doc": {
2026-06-13T11:05:52.9698308Z           "complete": false,
2026-06-13T11:05:52.9698521Z           "evidence": []
2026-06-13T11:05:52.9698632Z         },
2026-06-13T11:05:52.9698755Z         "impl": {
2026-06-13T11:05:52.9698870Z           "complete": true,
2026-06-13T11:05:52.9699069Z           "evidence": [
2026-06-13T11:05:52.9699185Z             {
2026-06-13T11:05:52.9699338Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.9699555Z               "line": 18
2026-06-13T11:05:52.9699664Z             },
2026-06-13T11:05:52.9699777Z             {
2026-06-13T11:05:52.9699925Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.9700048Z               "line": 35
2026-06-13T11:05:52.9700163Z             },
2026-06-13T11:05:52.9700273Z             {
2026-06-13T11:05:52.9700425Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.9700536Z               "line": 72
2026-06-13T11:05:52.9700655Z             }
2026-06-13T11:05:52.9700764Z           ]
2026-06-13T11:05:52.9700875Z         },
2026-06-13T11:05:52.9700998Z         "int": {
2026-06-13T11:05:52.9701116Z           "complete": false,
2026-06-13T11:05:52.9701237Z           "evidence": []
2026-06-13T11:05:52.9701341Z         },
2026-06-13T11:05:52.9701461Z         "unit": {
2026-06-13T11:05:52.9701579Z           "complete": true,
2026-06-13T11:05:52.9701698Z           "evidence": [
2026-06-13T11:05:52.9701809Z             {
2026-06-13T11:05:52.9701955Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.9702076Z               "line": 214
2026-06-13T11:05:52.9702181Z             },
2026-06-13T11:05:52.9702298Z             {
2026-06-13T11:05:52.9702436Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.9702564Z               "line": 231
2026-06-13T11:05:52.9702677Z             },
2026-06-13T11:05:52.9702787Z             {
2026-06-13T11:05:52.9702935Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.9703049Z               "line": 240
2026-06-13T11:05:52.9703164Z             }
2026-06-13T11:05:52.9703273Z           ]
2026-06-13T11:05:52.9703388Z         }
2026-06-13T11:05:52.9703488Z       }
2026-06-13T11:05:52.9703592Z     },
2026-06-13T11:05:52.9703703Z     {
2026-06-13T11:05:52.9703831Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-13T11:05:52.9704018Z       "title": "Hostable endpoint-types capability declaration",
2026-06-13T11:05:52.9704137Z       "requiredStages": [
2026-06-13T11:05:52.9704251Z         "impl",
2026-06-13T11:05:52.9704367Z         "unit"
2026-06-13T11:05:52.9704475Z       ],
2026-06-13T11:05:52.9704595Z       "stages": {
2026-06-13T11:05:52.9704696Z         "doc": {
2026-06-13T11:05:52.9704813Z           "complete": false,
2026-06-13T11:05:52.9704926Z           "evidence": []
2026-06-13T11:05:52.9705042Z         },
2026-06-13T11:05:52.9705158Z         "impl": {
2026-06-13T11:05:52.9705277Z           "complete": true,
2026-06-13T11:05:52.9705398Z           "evidence": [
2026-06-13T11:05:52.9705497Z             {
2026-06-13T11:05:52.9709493Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9709643Z               "line": 406
2026-06-13T11:05:52.9709754Z             }
2026-06-13T11:05:52.9709869Z           ]
2026-06-13T11:05:52.9709968Z         },
2026-06-13T11:05:52.9710081Z         "int": {
2026-06-13T11:05:52.9710201Z           "complete": false,
2026-06-13T11:05:52.9710323Z           "evidence": []
2026-06-13T11:05:52.9710423Z         },
2026-06-13T11:05:52.9710543Z         "unit": {
2026-06-13T11:05:52.9710666Z           "complete": true,
2026-06-13T11:05:52.9710780Z           "evidence": [
2026-06-13T11:05:52.9710886Z             {
2026-06-13T11:05:52.9711042Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9711162Z               "line": 720
2026-06-13T11:05:52.9711267Z             }
2026-06-13T11:05:52.9711372Z           ]
2026-06-13T11:05:52.9711482Z         }
2026-06-13T11:05:52.9711582Z       }
2026-06-13T11:05:52.9711681Z     },
2026-06-13T11:05:52.9711778Z     {
2026-06-13T11:05:52.9711906Z       "id": "REQ-SEAM-HISTORY",
2026-06-13T11:05:52.9712249Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-13T11:05:52.9712369Z       "requiredStages": [
2026-06-13T11:05:52.9712473Z         "impl",
2026-06-13T11:05:52.9712578Z         "unit",
2026-06-13T11:05:52.9712679Z         "int"
2026-06-13T11:05:52.9712779Z       ],
2026-06-13T11:05:52.9712882Z       "stages": {
2026-06-13T11:05:52.9713087Z         "doc": {
2026-06-13T11:05:52.9713209Z           "complete": false,
2026-06-13T11:05:52.9713328Z           "evidence": []
2026-06-13T11:05:52.9713429Z         },
2026-06-13T11:05:52.9713542Z         "impl": {
2026-06-13T11:05:52.9713658Z           "complete": true,
2026-06-13T11:05:52.9713777Z           "evidence": [
2026-06-13T11:05:52.9713881Z             {
2026-06-13T11:05:52.9714025Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:05:52.9714129Z               "line": 24
2026-06-13T11:05:52.9714229Z             },
2026-06-13T11:05:52.9714331Z             {
2026-06-13T11:05:52.9714477Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:05:52.9714588Z               "line": 22
2026-06-13T11:05:52.9714692Z             }
2026-06-13T11:05:52.9714806Z           ]
2026-06-13T11:05:52.9714912Z         },
2026-06-13T11:05:52.9715021Z         "int": {
2026-06-13T11:05:52.9715140Z           "complete": true,
2026-06-13T11:05:52.9715246Z           "evidence": [
2026-06-13T11:05:52.9715355Z             {
2026-06-13T11:05:52.9715496Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:05:52.9715602Z               "line": 260
2026-06-13T11:05:52.9715709Z             }
2026-06-13T11:05:52.9715813Z           ]
2026-06-13T11:05:52.9715924Z         },
2026-06-13T11:05:52.9716029Z         "unit": {
2026-06-13T11:05:52.9716147Z           "complete": true,
2026-06-13T11:05:52.9716258Z           "evidence": [
2026-06-13T11:05:52.9716367Z             {
2026-06-13T11:05:52.9716510Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:05:52.9716625Z               "line": 167
2026-06-13T11:05:52.9716729Z             },
2026-06-13T11:05:52.9716830Z             {
2026-06-13T11:05:52.9716973Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:05:52.9717082Z               "line": 196
2026-06-13T11:05:52.9717184Z             },
2026-06-13T11:05:52.9717292Z             {
2026-06-13T11:05:52.9717420Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:05:52.9717536Z               "line": 216
2026-06-13T11:05:52.9717640Z             },
2026-06-13T11:05:52.9717745Z             {
2026-06-13T11:05:52.9717893Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:05:52.9718007Z               "line": 199
2026-06-13T11:05:52.9718118Z             },
2026-06-13T11:05:52.9718222Z             {
2026-06-13T11:05:52.9718368Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:05:52.9718478Z               "line": 219
2026-06-13T11:05:52.9718588Z             },
2026-06-13T11:05:52.9718692Z             {
2026-06-13T11:05:52.9718842Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:05:52.9719026Z               "line": 244
2026-06-13T11:05:52.9719127Z             },
2026-06-13T11:05:52.9719228Z             {
2026-06-13T11:05:52.9719365Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:05:52.9719480Z               "line": 269
2026-06-13T11:05:52.9719589Z             },
2026-06-13T11:05:52.9719699Z             {
2026-06-13T11:05:52.9719837Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:05:52.9719942Z               "line": 290
2026-06-13T11:05:52.9720048Z             },
2026-06-13T11:05:52.9720143Z             {
2026-06-13T11:05:52.9720285Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:05:52.9720396Z               "line": 317
2026-06-13T11:05:52.9720500Z             }
2026-06-13T11:05:52.9720604Z           ]
2026-06-13T11:05:52.9720708Z         }
2026-06-13T11:05:52.9720808Z       }
2026-06-13T11:05:52.9720911Z     },
2026-06-13T11:05:52.9721103Z     {
2026-06-13T11:05:52.9721216Z       "id": "REQ-SEAM-INJECT",
2026-06-13T11:05:52.9721413Z       "title": "inject-input methods configurable per activity-state",
2026-06-13T11:05:52.9721531Z       "requiredStages": [
2026-06-13T11:05:52.9721632Z         "impl",
2026-06-13T11:05:52.9721737Z         "unit"
2026-06-13T11:05:52.9721841Z       ],
2026-06-13T11:05:52.9722052Z       "stages": {
2026-06-13T11:05:52.9722156Z         "doc": {
2026-06-13T11:05:52.9722266Z           "complete": false,
2026-06-13T11:05:52.9722385Z           "evidence": []
2026-06-13T11:05:52.9722480Z         },
2026-06-13T11:05:52.9722591Z         "impl": {
2026-06-13T11:05:52.9722705Z           "complete": true,
2026-06-13T11:05:52.9722809Z           "evidence": [
2026-06-13T11:05:52.9722906Z             {
2026-06-13T11:05:52.9723057Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.9723167Z               "line": 19
2026-06-13T11:05:52.9723273Z             },
2026-06-13T11:05:52.9723386Z             {
2026-06-13T11:05:52.9723528Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.9723638Z               "line": 111
2026-06-13T11:05:52.9723740Z             }
2026-06-13T11:05:52.9723845Z           ]
2026-06-13T11:05:52.9723946Z         },
2026-06-13T11:05:52.9724050Z         "int": {
2026-06-13T11:05:52.9724164Z           "complete": false,
2026-06-13T11:05:52.9724280Z           "evidence": []
2026-06-13T11:05:52.9724384Z         },
2026-06-13T11:05:52.9724489Z         "unit": {
2026-06-13T11:05:52.9724608Z           "complete": true,
2026-06-13T11:05:52.9724722Z           "evidence": [
2026-06-13T11:05:52.9724823Z             {
2026-06-13T11:05:52.9724966Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.9725075Z               "line": 320
2026-06-13T11:05:52.9725182Z             },
2026-06-13T11:05:52.9725285Z             {
2026-06-13T11:05:52.9725428Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.9725544Z               "line": 340
2026-06-13T11:05:52.9725647Z             }
2026-06-13T11:05:52.9725758Z           ]
2026-06-13T11:05:52.9725859Z         }
2026-06-13T11:05:52.9725962Z       }
2026-06-13T11:05:52.9726061Z     },
2026-06-13T11:05:52.9726162Z     {
2026-06-13T11:05:52.9726293Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-13T11:05:52.9726465Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-13T11:05:52.9726579Z       "requiredStages": [
2026-06-13T11:05:52.9726688Z         "impl",
2026-06-13T11:05:52.9726795Z         "unit"
2026-06-13T11:05:52.9726894Z       ],
2026-06-13T11:05:52.9727003Z       "stages": {
2026-06-13T11:05:52.9727114Z         "doc": {
2026-06-13T11:05:52.9727223Z           "complete": false,
2026-06-13T11:05:52.9727337Z           "evidence": []
2026-06-13T11:05:52.9727438Z         },
2026-06-13T11:05:52.9727566Z         "impl": {
2026-06-13T11:05:52.9727685Z           "complete": true,
2026-06-13T11:05:52.9727800Z           "evidence": [
2026-06-13T11:05:52.9727905Z             {
2026-06-13T11:05:52.9728049Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9728157Z               "line": 18
2026-06-13T11:05:52.9728262Z             },
2026-06-13T11:05:52.9728368Z             {
2026-06-13T11:05:52.9728500Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9728610Z               "line": 325
2026-06-13T11:05:52.9728721Z             }
2026-06-13T11:05:52.9728824Z           ]
2026-06-13T11:05:52.9728928Z         },
2026-06-13T11:05:52.9729106Z         "int": {
2026-06-13T11:05:52.9729224Z           "complete": false,
2026-06-13T11:05:52.9729344Z           "evidence": []
2026-06-13T11:05:52.9729439Z         },
2026-06-13T11:05:52.9729544Z         "unit": {
2026-06-13T11:05:52.9729664Z           "complete": true,
2026-06-13T11:05:52.9729768Z           "evidence": [
2026-06-13T11:05:52.9729868Z             {
2026-06-13T11:05:52.9730007Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9730121Z               "line": 576
2026-06-13T11:05:52.9730336Z             },
2026-06-13T11:05:52.9730450Z             {
2026-06-13T11:05:52.9730589Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9730703Z               "line": 586
2026-06-13T11:05:52.9730807Z             }
2026-06-13T11:05:52.9730913Z           ]
2026-06-13T11:05:52.9731013Z         }
2026-06-13T11:05:52.9731126Z       }
2026-06-13T11:05:52.9731321Z     },
2026-06-13T11:05:52.9731424Z     {
2026-06-13T11:05:52.9731548Z       "id": "REQ-SEAM-PSYCHE",
2026-06-13T11:05:52.9731715Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-13T11:05:52.9731839Z       "requiredStages": [
2026-06-13T11:05:52.9731945Z         "impl",
2026-06-13T11:05:52.9732063Z         "unit",
2026-06-13T11:05:52.9732167Z         "int"
2026-06-13T11:05:52.9732274Z       ],
2026-06-13T11:05:52.9732387Z       "stages": {
2026-06-13T11:05:52.9732492Z         "doc": {
2026-06-13T11:05:52.9732612Z           "complete": false,
2026-06-13T11:05:52.9732730Z           "evidence": []
2026-06-13T11:05:52.9732836Z         },
2026-06-13T11:05:52.9732950Z         "impl": {
2026-06-13T11:05:52.9733064Z           "complete": true,
2026-06-13T11:05:52.9733175Z           "evidence": [
2026-06-13T11:05:52.9733279Z             {
2026-06-13T11:05:52.9733422Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-13T11:05:52.9733532Z               "line": 19
2026-06-13T11:05:52.9733640Z             },
2026-06-13T11:05:52.9733752Z             {
2026-06-13T11:05:52.9733885Z               "path": "crates/spt/src/api/live.rs",
2026-06-13T11:05:52.9733998Z               "line": 12
2026-06-13T11:05:52.9734103Z             },
2026-06-13T11:05:52.9734207Z             {
2026-06-13T11:05:52.9734348Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9734463Z               "line": 225
2026-06-13T11:05:52.9734578Z             }
2026-06-13T11:05:52.9734682Z           ]
2026-06-13T11:05:52.9734788Z         },
2026-06-13T11:05:52.9734893Z         "int": {
2026-06-13T11:05:52.9735015Z           "complete": true,
2026-06-13T11:05:52.9735126Z           "evidence": [
2026-06-13T11:05:52.9735236Z             {
2026-06-13T11:05:52.9735383Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:05:52.9735493Z               "line": 259
2026-06-13T11:05:52.9735597Z             }
2026-06-13T11:05:52.9735703Z           ]
2026-06-13T11:05:52.9735813Z         },
2026-06-13T11:05:52.9735926Z         "unit": {
2026-06-13T11:05:52.9736042Z           "complete": true,
2026-06-13T11:05:52.9736160Z           "evidence": [
2026-06-13T11:05:52.9736265Z             {
2026-06-13T11:05:52.9736405Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-13T11:05:52.9736517Z               "line": 161
2026-06-13T11:05:52.9736626Z             },
2026-06-13T11:05:52.9736731Z             {
2026-06-13T11:05:52.9736872Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-13T11:05:52.9736987Z               "line": 168
2026-06-13T11:05:52.9737092Z             },
2026-06-13T11:05:52.9737201Z             {
2026-06-13T11:05:52.9737340Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-13T11:05:52.9737455Z               "line": 191
2026-06-13T11:05:52.9737558Z             },
2026-06-13T11:05:52.9737665Z             {
2026-06-13T11:05:52.9737807Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-13T11:05:52.9737921Z               "line": 106
2026-06-13T11:05:52.9738036Z             },
2026-06-13T11:05:52.9738140Z             {
2026-06-13T11:05:52.9738279Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-13T11:05:52.9738393Z               "line": 137
2026-06-13T11:05:52.9738503Z             },
2026-06-13T11:05:52.9738614Z             {
2026-06-13T11:05:52.9738745Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-13T11:05:52.9738865Z               "line": 161
2026-06-13T11:05:52.9739050Z             }
2026-06-13T11:05:52.9739166Z           ]
2026-06-13T11:05:52.9739267Z         }
2026-06-13T11:05:52.9739375Z       }
2026-06-13T11:05:52.9739580Z     },
2026-06-13T11:05:52.9739685Z     {
2026-06-13T11:05:52.9739808Z       "id": "REQ-SEAM-RESUME",
2026-06-13T11:05:52.9740023Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-13T11:05:52.9740141Z       "requiredStages": [
2026-06-13T11:05:52.9740248Z         "impl",
2026-06-13T11:05:52.9740352Z         "unit"
2026-06-13T11:05:52.9740553Z       ],
2026-06-13T11:05:52.9740662Z       "stages": {
2026-06-13T11:05:52.9740766Z         "doc": {
2026-06-13T11:05:52.9740882Z           "complete": false,
2026-06-13T11:05:52.9740996Z           "evidence": []
2026-06-13T11:05:52.9741100Z         },
2026-06-13T11:05:52.9741206Z         "impl": {
2026-06-13T11:05:52.9741320Z           "complete": true,
2026-06-13T11:05:52.9741430Z           "evidence": [
2026-06-13T11:05:52.9741535Z             {
2026-06-13T11:05:52.9741677Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:05:52.9741791Z               "line": 19
2026-06-13T11:05:52.9741900Z             }
2026-06-13T11:05:52.9742008Z           ]
2026-06-13T11:05:52.9742108Z         },
2026-06-13T11:05:52.9742209Z         "int": {
2026-06-13T11:05:52.9742327Z           "complete": false,
2026-06-13T11:05:52.9742437Z           "evidence": []
2026-06-13T11:05:52.9742533Z         },
2026-06-13T11:05:52.9742637Z         "unit": {
2026-06-13T11:05:52.9742752Z           "complete": true,
2026-06-13T11:05:52.9742872Z           "evidence": [
2026-06-13T11:05:52.9742971Z             {
2026-06-13T11:05:52.9743115Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:05:52.9743229Z               "line": 193
2026-06-13T11:05:52.9743333Z             },
2026-06-13T11:05:52.9743430Z             {
2026-06-13T11:05:52.9743567Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:05:52.9743677Z               "line": 215
2026-06-13T11:05:52.9743783Z             },
2026-06-13T11:05:52.9743881Z             {
2026-06-13T11:05:52.9744021Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:05:52.9744135Z               "line": 236
2026-06-13T11:05:52.9744240Z             }
2026-06-13T11:05:52.9744336Z           ]
2026-06-13T11:05:52.9744445Z         }
2026-06-13T11:05:52.9744544Z       }
2026-06-13T11:05:52.9744643Z     },
2026-06-13T11:05:52.9744744Z     {
2026-06-13T11:05:52.9744865Z       "id": "REQ-SEAM-SPAWN",
2026-06-13T11:05:52.9744985Z       "title": "spawn-session seam",
2026-06-13T11:05:52.9745114Z       "requiredStages": [
2026-06-13T11:05:52.9745213Z         "impl",
2026-06-13T11:05:52.9745319Z         "unit"
2026-06-13T11:05:52.9745424Z       ],
2026-06-13T11:05:52.9745523Z       "stages": {
2026-06-13T11:05:52.9745624Z         "doc": {
2026-06-13T11:05:52.9745739Z           "complete": false,
2026-06-13T11:05:52.9745857Z           "evidence": []
2026-06-13T11:05:52.9745953Z         },
2026-06-13T11:05:52.9746063Z         "impl": {
2026-06-13T11:05:52.9746176Z           "complete": true,
2026-06-13T11:05:52.9746283Z           "evidence": [
2026-06-13T11:05:52.9746396Z             {
2026-06-13T11:05:52.9746544Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.9746650Z               "line": 20
2026-06-13T11:05:52.9746758Z             }
2026-06-13T11:05:52.9746854Z           ]
2026-06-13T11:05:52.9746960Z         },
2026-06-13T11:05:52.9747063Z         "int": {
2026-06-13T11:05:52.9747181Z           "complete": false,
2026-06-13T11:05:52.9747296Z           "evidence": []
2026-06-13T11:05:52.9747408Z         },
2026-06-13T11:05:52.9747527Z         "unit": {
2026-06-13T11:05:52.9747642Z           "complete": true,
2026-06-13T11:05:52.9747751Z           "evidence": [
2026-06-13T11:05:52.9747861Z             {
2026-06-13T11:05:52.9748015Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.9748133Z               "line": 435
2026-06-13T11:05:52.9748239Z             },
2026-06-13T11:05:52.9748353Z             {
2026-06-13T11:05:52.9748496Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.9748687Z               "line": 442
2026-06-13T11:05:52.9748786Z             },
2026-06-13T11:05:52.9748902Z             {
2026-06-13T11:05:52.9749101Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.9749226Z               "line": 452
2026-06-13T11:05:52.9749325Z             },
2026-06-13T11:05:52.9749425Z             {
2026-06-13T11:05:52.9749578Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.9749789Z               "line": 458
2026-06-13T11:05:52.9749898Z             },
2026-06-13T11:05:52.9750006Z             {
2026-06-13T11:05:52.9750145Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.9750259Z               "line": 483
2026-06-13T11:05:52.9750363Z             },
2026-06-13T11:05:52.9750469Z             {
2026-06-13T11:05:52.9750616Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:05:52.9750736Z               "line": 520
2026-06-13T11:05:52.9750836Z             }
2026-06-13T11:05:52.9750940Z           ]
2026-06-13T11:05:52.9751051Z         }
2026-06-13T11:05:52.9751155Z       }
2026-06-13T11:05:52.9751269Z     },
2026-06-13T11:05:52.9751375Z     {
2026-06-13T11:05:52.9751503Z       "id": "REQ-SEAM-UPDATE",
2026-06-13T11:05:52.9751704Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-13T11:05:52.9751828Z       "requiredStages": [
2026-06-13T11:05:52.9751947Z         "impl",
2026-06-13T11:05:52.9752053Z         "unit"
2026-06-13T11:05:52.9752170Z       ],
2026-06-13T11:05:52.9752274Z       "stages": {
2026-06-13T11:05:52.9752389Z         "doc": {
2026-06-13T11:05:52.9752520Z           "complete": false,
2026-06-13T11:05:52.9753192Z           "evidence": []
2026-06-13T11:05:52.9753312Z         },
2026-06-13T11:05:52.9753427Z         "impl": {
2026-06-13T11:05:52.9753555Z           "complete": true,
2026-06-13T11:05:52.9753666Z           "evidence": [
2026-06-13T11:05:52.9753779Z             {
2026-06-13T11:05:52.9753961Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:52.9754070Z               "line": 28
2026-06-13T11:05:52.9754170Z             },
2026-06-13T11:05:52.9754281Z             {
2026-06-13T11:05:52.9754466Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:52.9754596Z               "line": 83
2026-06-13T11:05:52.9754714Z             }
2026-06-13T11:05:52.9754824Z           ]
2026-06-13T11:05:52.9754930Z         },
2026-06-13T11:05:52.9755043Z         "int": {
2026-06-13T11:05:52.9755160Z           "complete": false,
2026-06-13T11:05:52.9755271Z           "evidence": []
2026-06-13T11:05:52.9755369Z         },
2026-06-13T11:05:52.9755477Z         "unit": {
2026-06-13T11:05:52.9755593Z           "complete": true,
2026-06-13T11:05:52.9755707Z           "evidence": [
2026-06-13T11:05:52.9755821Z             {
2026-06-13T11:05:52.9755979Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:52.9756098Z               "line": 286
2026-06-13T11:05:52.9756199Z             },
2026-06-13T11:05:52.9756308Z             {
2026-06-13T11:05:52.9756465Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:52.9756571Z               "line": 297
2026-06-13T11:05:52.9756685Z             }
2026-06-13T11:05:52.9756794Z           ]
2026-06-13T11:05:52.9756909Z         }
2026-06-13T11:05:52.9757013Z       }
2026-06-13T11:05:52.9757114Z     },
2026-06-13T11:05:52.9757234Z     {
2026-06-13T11:05:52.9757352Z       "id": "REQ-SEC-1",
2026-06-13T11:05:52.9757780Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-13T11:05:52.9757903Z       "requiredStages": [
2026-06-13T11:05:52.9758016Z         "impl",
2026-06-13T11:05:52.9758126Z         "unit"
2026-06-13T11:05:52.9758237Z       ],
2026-06-13T11:05:52.9758349Z       "stages": {
2026-06-13T11:05:52.9758460Z         "doc": {
2026-06-13T11:05:52.9758594Z           "complete": false,
2026-06-13T11:05:52.9758809Z           "evidence": []
2026-06-13T11:05:52.9758927Z         },
2026-06-13T11:05:52.9759166Z         "impl": {
2026-06-13T11:05:52.9759289Z           "complete": true,
2026-06-13T11:05:52.9759405Z           "evidence": [
2026-06-13T11:05:52.9759518Z             {
2026-06-13T11:05:52.9759715Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:05:52.9759833Z               "line": 84
2026-06-13T11:05:52.9760134Z             },
2026-06-13T11:05:52.9760238Z             {
2026-06-13T11:05:52.9760406Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:05:52.9760533Z               "line": 114
2026-06-13T11:05:52.9760637Z             },
2026-06-13T11:05:52.9760748Z             {
2026-06-13T11:05:52.9760890Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:05:52.9761005Z               "line": 128
2026-06-13T11:05:52.9761105Z             },
2026-06-13T11:05:52.9761229Z             {
2026-06-13T11:05:52.9761401Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:05:52.9761524Z               "line": 108
2026-06-13T11:05:52.9761635Z             },
2026-06-13T11:05:52.9761744Z             {
2026-06-13T11:05:52.9761892Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:05:52.9762008Z               "line": 129
2026-06-13T11:05:52.9762121Z             },
2026-06-13T11:05:52.9762230Z             {
2026-06-13T11:05:52.9762374Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:05:52.9762492Z               "line": 142
2026-06-13T11:05:52.9762589Z             },
2026-06-13T11:05:52.9762703Z             {
2026-06-13T11:05:52.9762839Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:05:52.9762954Z               "line": 208
2026-06-13T11:05:52.9763057Z             },
2026-06-13T11:05:52.9763166Z             {
2026-06-13T11:05:52.9763310Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:05:52.9763414Z               "line": 234
2026-06-13T11:05:52.9763529Z             },
2026-06-13T11:05:52.9763629Z             {
2026-06-13T11:05:52.9763809Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9763925Z               "line": 4288
2026-06-13T11:05:52.9764039Z             }
2026-06-13T11:05:52.9764138Z           ]
2026-06-13T11:05:52.9764245Z         },
2026-06-13T11:05:52.9764358Z         "int": {
2026-06-13T11:05:52.9764477Z           "complete": false,
2026-06-13T11:05:52.9764597Z           "evidence": []
2026-06-13T11:05:52.9764711Z         },
2026-06-13T11:05:52.9764821Z         "unit": {
2026-06-13T11:05:52.9764940Z           "complete": true,
2026-06-13T11:05:52.9765054Z           "evidence": [
2026-06-13T11:05:52.9765161Z             {
2026-06-13T11:05:52.9765307Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:05:52.9765427Z               "line": 140
2026-06-13T11:05:52.9765537Z             },
2026-06-13T11:05:52.9765645Z             {
2026-06-13T11:05:52.9765792Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:05:52.9765910Z               "line": 192
2026-06-13T11:05:52.9766028Z             },
2026-06-13T11:05:52.9766144Z             {
2026-06-13T11:05:52.9766286Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:05:52.9766405Z               "line": 233
2026-06-13T11:05:52.9766516Z             },
2026-06-13T11:05:52.9766629Z             {
2026-06-13T11:05:52.9766778Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-13T11:05:52.9766902Z               "line": 140
2026-06-13T11:05:52.9767015Z             },
2026-06-13T11:05:52.9767121Z             {
2026-06-13T11:05:52.9767273Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:05:52.9767383Z               "line": 246
2026-06-13T11:05:52.9767507Z             },
2026-06-13T11:05:52.9767612Z             {
2026-06-13T11:05:52.9767765Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:05:52.9767888Z               "line": 276
2026-06-13T11:05:52.9767994Z             },
2026-06-13T11:05:52.9768108Z             {
2026-06-13T11:05:52.9768354Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:05:52.9768477Z               "line": 309
2026-06-13T11:05:52.9768585Z             },
2026-06-13T11:05:52.9768701Z             {
2026-06-13T11:05:52.9768853Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:05:52.9769068Z               "line": 328
2026-06-13T11:05:52.9769286Z             },
2026-06-13T11:05:52.9769392Z             {
2026-06-13T11:05:52.9769553Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:05:52.9769669Z               "line": 361
2026-06-13T11:05:52.9769787Z             },
2026-06-13T11:05:52.9769907Z             {
2026-06-13T11:05:52.9770050Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:05:52.9770169Z               "line": 385
2026-06-13T11:05:52.9770280Z             },
2026-06-13T11:05:52.9770393Z             {
2026-06-13T11:05:52.9770531Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9770657Z               "line": 6091
2026-06-13T11:05:52.9770769Z             }
2026-06-13T11:05:52.9770875Z           ]
2026-06-13T11:05:52.9770990Z         }
2026-06-13T11:05:52.9771097Z       }
2026-06-13T11:05:52.9771207Z     },
2026-06-13T11:05:52.9771318Z     {
2026-06-13T11:05:52.9771445Z       "id": "REQ-SHELL-1",
2026-06-13T11:05:52.9772394Z       "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-13T11:05:52.9772519Z       "requiredStages": [
2026-06-13T11:05:52.9772633Z         "impl",
2026-06-13T11:05:52.9772747Z         "unit",
2026-06-13T11:05:52.9772868Z         "int"
2026-06-13T11:05:52.9772980Z       ],
2026-06-13T11:05:52.9773091Z       "stages": {
2026-06-13T11:05:52.9773212Z         "doc": {
2026-06-13T11:05:52.9773343Z           "complete": false,
2026-06-13T11:05:52.9773462Z           "evidence": []
2026-06-13T11:05:52.9773571Z         },
2026-06-13T11:05:52.9773688Z         "impl": {
2026-06-13T11:05:52.9773817Z           "complete": true,
2026-06-13T11:05:52.9773932Z           "evidence": [
2026-06-13T11:05:52.9774041Z             {
2026-06-13T11:05:52.9774199Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:05:52.9774322Z               "line": 94
2026-06-13T11:05:52.9774432Z             },
2026-06-13T11:05:52.9774542Z             {
2026-06-13T11:05:52.9774699Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:05:52.9774814Z               "line": 121
2026-06-13T11:05:52.9774928Z             },
2026-06-13T11:05:52.9775033Z             {
2026-06-13T11:05:52.9775190Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:05:52.9775305Z               "line": 27
2026-06-13T11:05:52.9775416Z             },
2026-06-13T11:05:52.9775529Z             {
2026-06-13T11:05:52.9775682Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:05:52.9775801Z               "line": 52
2026-06-13T11:05:52.9775910Z             },
2026-06-13T11:05:52.9776021Z             {
2026-06-13T11:05:52.9776167Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:05:52.9776290Z               "line": 132
2026-06-13T11:05:52.9776396Z             },
2026-06-13T11:05:52.9776489Z             {
2026-06-13T11:05:52.9776636Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:05:52.9776752Z               "line": 164
2026-06-13T11:05:52.9776865Z             },
2026-06-13T11:05:52.9776965Z             {
2026-06-13T11:05:52.9777119Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9777242Z               "line": 22
2026-06-13T11:05:52.9777334Z             },
2026-06-13T11:05:52.9777433Z             {
2026-06-13T11:05:52.9777619Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9777833Z               "line": 65
2026-06-13T11:05:52.9777953Z             },
2026-06-13T11:05:52.9778062Z             {
2026-06-13T11:05:52.9778214Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9778335Z               "line": 76
2026-06-13T11:05:52.9778448Z             },
2026-06-13T11:05:52.9778559Z             {
2026-06-13T11:05:52.9778716Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9778905Z               "line": 150
2026-06-13T11:05:52.9779108Z             },
2026-06-13T11:05:52.9779222Z             {
2026-06-13T11:05:52.9779371Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9779493Z               "line": 209
2026-06-13T11:05:52.9779604Z             },
2026-06-13T11:05:52.9779719Z             {
2026-06-13T11:05:52.9779871Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9779986Z               "line": 246
2026-06-13T11:05:52.9780104Z             },
2026-06-13T11:05:52.9780220Z             {
2026-06-13T11:05:52.9780372Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9780491Z               "line": 267
2026-06-13T11:05:52.9780605Z             },
2026-06-13T11:05:52.9780729Z             {
2026-06-13T11:05:52.9780873Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9780996Z               "line": 280
2026-06-13T11:05:52.9781106Z             },
2026-06-13T11:05:52.9781221Z             {
2026-06-13T11:05:52.9781364Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.9781484Z               "line": 217
2026-06-13T11:05:52.9781611Z             },
2026-06-13T11:05:52.9781719Z             {
2026-06-13T11:05:52.9781878Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.9781991Z               "line": 233
2026-06-13T11:05:52.9782106Z             },
2026-06-13T11:05:52.9782207Z             {
2026-06-13T11:05:52.9782363Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.9782484Z               "line": 41
2026-06-13T11:05:52.9782593Z             },
2026-06-13T11:05:52.9782707Z             {
2026-06-13T11:05:52.9782855Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.9782973Z               "line": 222
2026-06-13T11:05:52.9783080Z             },
2026-06-13T11:05:52.9783198Z             {
2026-06-13T11:05:52.9783351Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:05:52.9783461Z               "line": 156
2026-06-13T11:05:52.9783579Z             },
2026-06-13T11:05:52.9783684Z             {
2026-06-13T11:05:52.9783828Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:05:52.9783951Z               "line": 311
2026-06-13T11:05:52.9784055Z             },
2026-06-13T11:05:52.9784173Z             {
2026-06-13T11:05:52.9784310Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:05:52.9784430Z               "line": 363
2026-06-13T11:05:52.9784539Z             },
2026-06-13T11:05:52.9784658Z             {
2026-06-13T11:05:52.9784812Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9784925Z               "line": 261
2026-06-13T11:05:52.9785041Z             },
2026-06-13T11:05:52.9785146Z             {
2026-06-13T11:05:52.9785283Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9785398Z               "line": 4905
2026-06-13T11:05:52.9785512Z             },
2026-06-13T11:05:52.9785627Z             {
2026-06-13T11:05:52.9785755Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9785874Z               "line": 5055
2026-06-13T11:05:52.9785980Z             },
2026-06-13T11:05:52.9786098Z             {
2026-06-13T11:05:52.9786232Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9786352Z               "line": 5092
2026-06-13T11:05:52.9786466Z             }
2026-06-13T11:05:52.9786572Z           ]
2026-06-13T11:05:52.9786690Z         },
2026-06-13T11:05:52.9786799Z         "int": {
2026-06-13T11:05:52.9787022Z           "complete": true,
2026-06-13T11:05:52.9787144Z           "evidence": [
2026-06-13T11:05:52.9787254Z             {
2026-06-13T11:05:52.9787421Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:05:52.9787535Z               "line": 707
2026-06-13T11:05:52.9787650Z             },
2026-06-13T11:05:52.9787759Z             {
2026-06-13T11:05:52.9787918Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-13T11:05:52.9788121Z               "line": 8
2026-06-13T11:05:52.9788232Z             },
2026-06-13T11:05:52.9788346Z             {
2026-06-13T11:05:52.9788499Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-13T11:05:52.9788618Z               "line": 49
2026-06-13T11:05:52.9788727Z             },
2026-06-13T11:05:52.9788838Z             {
2026-06-13T11:05:52.9789071Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9789191Z               "line": 708
2026-06-13T11:05:52.9789304Z             },
2026-06-13T11:05:52.9789412Z             {
2026-06-13T11:05:52.9789569Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9789682Z               "line": 1118
2026-06-13T11:05:52.9792800Z             },
2026-06-13T11:05:52.9792933Z             {
2026-06-13T11:05:52.9793119Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-13T11:05:52.9793238Z               "line": 17
2026-06-13T11:05:52.9793358Z             },
2026-06-13T11:05:52.9793482Z             {
2026-06-13T11:05:52.9793635Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-13T11:05:52.9793754Z               "line": 14
2026-06-13T11:05:52.9793863Z             }
2026-06-13T11:05:52.9793969Z           ]
2026-06-13T11:05:52.9794073Z         },
2026-06-13T11:05:52.9794178Z         "unit": {
2026-06-13T11:05:52.9794303Z           "complete": true,
2026-06-13T11:05:52.9794411Z           "evidence": [
2026-06-13T11:05:52.9794515Z             {
2026-06-13T11:05:52.9794673Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:05:52.9794794Z               "line": 234
2026-06-13T11:05:52.9794904Z             },
2026-06-13T11:05:52.9795009Z             {
2026-06-13T11:05:52.9795161Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:05:52.9795261Z               "line": 267
2026-06-13T11:05:52.9795372Z             },
2026-06-13T11:05:52.9795480Z             {
2026-06-13T11:05:52.9795639Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:05:52.9795748Z               "line": 307
2026-06-13T11:05:52.9795848Z             },
2026-06-13T11:05:52.9795958Z             {
2026-06-13T11:05:52.9796114Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9796230Z               "line": 568
2026-06-13T11:05:52.9796339Z             },
2026-06-13T11:05:52.9796434Z             {
2026-06-13T11:05:52.9796579Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9796692Z               "line": 641
2026-06-13T11:05:52.9796797Z             },
2026-06-13T11:05:52.9796898Z             {
2026-06-13T11:05:52.9797054Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9797170Z               "line": 785
2026-06-13T11:05:52.9797274Z             },
2026-06-13T11:05:52.9797378Z             {
2026-06-13T11:05:52.9797526Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:52.9797642Z               "line": 595
2026-06-13T11:05:52.9797751Z             },
2026-06-13T11:05:52.9797858Z             {
2026-06-13T11:05:52.9798004Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:05:52.9798110Z               "line": 399
2026-06-13T11:05:52.9798219Z             },
2026-06-13T11:05:52.9798328Z             {
2026-06-13T11:05:52.9798463Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9798568Z               "line": 6560
2026-06-13T11:05:52.9798677Z             },
2026-06-13T11:05:52.9798783Z             {
2026-06-13T11:05:52.9798921Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9799249Z               "line": 6882
2026-06-13T11:05:52.9799359Z             },
2026-06-13T11:05:52.9799497Z             {
2026-06-13T11:05:52.9799626Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9799737Z               "line": 7299
2026-06-13T11:05:52.9799845Z             }
2026-06-13T11:05:52.9799953Z           ]
2026-06-13T11:05:52.9800157Z         }
2026-06-13T11:05:52.9800266Z       }
2026-06-13T11:05:52.9800371Z     },
2026-06-13T11:05:52.9800472Z     {
2026-06-13T11:05:52.9800590Z       "id": "REQ-SHELL-2",
2026-06-13T11:05:52.9802178Z       "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-13T11:05:52.9802289Z       "requiredStages": [
2026-06-13T11:05:52.9802397Z         "impl",
2026-06-13T11:05:52.9802498Z         "unit",
2026-06-13T11:05:52.9802609Z         "int"
2026-06-13T11:05:52.9802717Z       ],
2026-06-13T11:05:52.9802825Z       "stages": {
2026-06-13T11:05:52.9802931Z         "doc": {
2026-06-13T11:05:52.9803051Z           "complete": false,
2026-06-13T11:05:52.9803173Z           "evidence": []
2026-06-13T11:05:52.9803270Z         },
2026-06-13T11:05:52.9803375Z         "impl": {
2026-06-13T11:05:52.9803493Z           "complete": true,
2026-06-13T11:05:52.9803608Z           "evidence": [
2026-06-13T11:05:52.9803713Z             {
2026-06-13T11:05:52.9803875Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:52.9803995Z               "line": 214
2026-06-13T11:05:52.9804103Z             },
2026-06-13T11:05:52.9804215Z             {
2026-06-13T11:05:52.9804376Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.9804486Z               "line": 403
2026-06-13T11:05:52.9804600Z             },
2026-06-13T11:05:52.9804704Z             {
2026-06-13T11:05:52.9804854Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:05:52.9804976Z               "line": 250
2026-06-13T11:05:52.9805080Z             },
2026-06-13T11:05:52.9805185Z             {
2026-06-13T11:05:52.9805336Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:52.9805454Z               "line": 353
2026-06-13T11:05:52.9805560Z             },
2026-06-13T11:05:52.9805669Z             {
2026-06-13T11:05:52.9805822Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:05:52.9805937Z               "line": 30
2026-06-13T11:05:52.9806060Z             },
2026-06-13T11:05:52.9806161Z             {
2026-06-13T11:05:52.9806308Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:05:52.9806418Z               "line": 152
2026-06-13T11:05:52.9806537Z             },
2026-06-13T11:05:52.9806646Z             {
2026-06-13T11:05:52.9806795Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:05:52.9806914Z               "line": 188
2026-06-13T11:05:52.9807018Z             },
2026-06-13T11:05:52.9807124Z             {
2026-06-13T11:05:52.9807272Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:05:52.9807397Z               "line": 347
2026-06-13T11:05:52.9807505Z             },
2026-06-13T11:05:52.9807614Z             {
2026-06-13T11:05:52.9807764Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9807876Z               "line": 348
2026-06-13T11:05:52.9807985Z             },
2026-06-13T11:05:52.9808090Z             {
2026-06-13T11:05:52.9808240Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:05:52.9808360Z               "line": 115
2026-06-13T11:05:52.9808465Z             },
2026-06-13T11:05:52.9808569Z             {
2026-06-13T11:05:52.9808794Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9808912Z               "line": 120
2026-06-13T11:05:52.9809133Z             },
2026-06-13T11:05:52.9809246Z             {
2026-06-13T11:05:52.9809395Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9809504Z               "line": 360
2026-06-13T11:05:52.9809619Z             },
2026-06-13T11:05:52.9809824Z             {
2026-06-13T11:05:52.9809977Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9810090Z               "line": 469
2026-06-13T11:05:52.9810200Z             },
2026-06-13T11:05:52.9810311Z             {
2026-06-13T11:05:52.9810466Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9810581Z               "line": 24
2026-06-13T11:05:52.9810694Z             },
2026-06-13T11:05:52.9810803Z             {
2026-06-13T11:05:52.9810960Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9811070Z               "line": 76
2026-06-13T11:05:52.9811183Z             },
2026-06-13T11:05:52.9811290Z             {
2026-06-13T11:05:52.9811436Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9811551Z               "line": 154
2026-06-13T11:05:52.9811661Z             },
2026-06-13T11:05:52.9811770Z             {
2026-06-13T11:05:52.9811915Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9812033Z               "line": 177
2026-06-13T11:05:52.9812142Z             },
2026-06-13T11:05:52.9812248Z             {
2026-06-13T11:05:52.9812395Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9812510Z               "line": 273
2026-06-13T11:05:52.9812624Z             },
2026-06-13T11:05:52.9812729Z             {
2026-06-13T11:05:52.9812883Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9812991Z               "line": 455
2026-06-13T11:05:52.9813106Z             },
2026-06-13T11:05:52.9813216Z             {
2026-06-13T11:05:52.9813367Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9813486Z               "line": 537
2026-06-13T11:05:52.9813592Z             },
2026-06-13T11:05:52.9813705Z             {
2026-06-13T11:05:52.9813854Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-13T11:05:52.9813977Z               "line": 27
2026-06-13T11:05:52.9814082Z             },
2026-06-13T11:05:52.9814202Z             {
2026-06-13T11:05:52.9814354Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-13T11:05:52.9814465Z               "line": 43
2026-06-13T11:05:52.9814573Z             },
2026-06-13T11:05:52.9814678Z             {
2026-06-13T11:05:52.9814822Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9814931Z               "line": 325
2026-06-13T11:05:52.9815046Z             },
2026-06-13T11:05:52.9815155Z             {
2026-06-13T11:05:52.9815288Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9815414Z               "line": 1398
2026-06-13T11:05:52.9815512Z             },
2026-06-13T11:05:52.9815626Z             {
2026-06-13T11:05:52.9815745Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9815858Z               "line": 4919
2026-06-13T11:05:52.9815971Z             },
2026-06-13T11:05:52.9816077Z             {
2026-06-13T11:05:52.9816201Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9816310Z               "line": 4980
2026-06-13T11:05:52.9816411Z             },
2026-06-13T11:05:52.9816511Z             {
2026-06-13T11:05:52.9816634Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9816759Z               "line": 5008
2026-06-13T11:05:52.9816863Z             },
2026-06-13T11:05:52.9816968Z             {
2026-06-13T11:05:52.9817098Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9817216Z               "line": 5062
2026-06-13T11:05:52.9817322Z             },
2026-06-13T11:05:52.9817421Z             {
2026-06-13T11:05:52.9817642Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9817755Z               "line": 5178
2026-06-13T11:05:52.9817860Z             },
2026-06-13T11:05:52.9817962Z             {
2026-06-13T11:05:52.9818089Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9818198Z               "line": 5231
2026-06-13T11:05:52.9818300Z             },
2026-06-13T11:05:52.9818408Z             {
2026-06-13T11:05:52.9818612Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.9818730Z               "line": 298
2026-06-13T11:05:52.9818829Z             },
2026-06-13T11:05:52.9818934Z             {
2026-06-13T11:05:52.9819163Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.9819278Z               "line": 339
2026-06-13T11:05:52.9819388Z             }
2026-06-13T11:05:52.9819487Z           ]
2026-06-13T11:05:52.9819583Z         },
2026-06-13T11:05:52.9819683Z         "int": {
2026-06-13T11:05:52.9819806Z           "complete": true,
2026-06-13T11:05:52.9819927Z           "evidence": [
2026-06-13T11:05:52.9820026Z             {
2026-06-13T11:05:52.9820189Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:05:52.9820294Z               "line": 700
2026-06-13T11:05:52.9820407Z             },
2026-06-13T11:05:52.9820504Z             {
2026-06-13T11:05:52.9820660Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9820780Z               "line": 708
2026-06-13T11:05:52.9820886Z             },
2026-06-13T11:05:52.9820984Z             {
2026-06-13T11:05:52.9821131Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9821250Z               "line": 1118
2026-06-13T11:05:52.9821353Z             },
2026-06-13T11:05:52.9821468Z             {
2026-06-13T11:05:52.9821625Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-13T11:05:52.9821739Z               "line": 18
2026-06-13T11:05:52.9821841Z             }
2026-06-13T11:05:52.9821940Z           ]
2026-06-13T11:05:52.9822054Z         },
2026-06-13T11:05:52.9822155Z         "unit": {
2026-06-13T11:05:52.9822265Z           "complete": true,
2026-06-13T11:05:52.9822373Z           "evidence": [
2026-06-13T11:05:52.9822479Z             {
2026-06-13T11:05:52.9822626Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:05:52.9822736Z               "line": 431
2026-06-13T11:05:52.9822851Z             },
2026-06-13T11:05:52.9822955Z             {
2026-06-13T11:05:52.9823099Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:05:52.9823212Z               "line": 796
2026-06-13T11:05:52.9823313Z             },
2026-06-13T11:05:52.9823424Z             {
2026-06-13T11:05:52.9823560Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9823681Z               "line": 674
2026-06-13T11:05:52.9823782Z             },
2026-06-13T11:05:52.9823889Z             {
2026-06-13T11:05:52.9824032Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9824147Z               "line": 723
2026-06-13T11:05:52.9824256Z             },
2026-06-13T11:05:52.9824361Z             {
2026-06-13T11:05:52.9824518Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:05:52.9824618Z               "line": 747
2026-06-13T11:05:52.9824729Z             },
2026-06-13T11:05:52.9824838Z             {
2026-06-13T11:05:52.9824981Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9825100Z               "line": 602
2026-06-13T11:05:52.9825209Z             },
2026-06-13T11:05:52.9825310Z             {
2026-06-13T11:05:52.9825453Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9825572Z               "line": 623
2026-06-13T11:05:52.9825678Z             },
2026-06-13T11:05:52.9825777Z             {
2026-06-13T11:05:52.9825925Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9826035Z               "line": 659
2026-06-13T11:05:52.9826148Z             },
2026-06-13T11:05:52.9826257Z             {
2026-06-13T11:05:52.9826498Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9826618Z               "line": 713
2026-06-13T11:05:52.9826719Z             },
2026-06-13T11:05:52.9826827Z             {
2026-06-13T11:05:52.9826966Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9827085Z               "line": 731
2026-06-13T11:05:52.9827281Z             },
2026-06-13T11:05:52.9827376Z             {
2026-06-13T11:05:52.9827529Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9827643Z               "line": 765
2026-06-13T11:05:52.9827757Z             },
2026-06-13T11:05:52.9827862Z             {
2026-06-13T11:05:52.9828015Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:05:52.9828124Z               "line": 840
2026-06-13T11:05:52.9828230Z             },
2026-06-13T11:05:52.9828334Z             {
2026-06-13T11:05:52.9828478Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-13T11:05:52.9828588Z               "line": 80
2026-06-13T11:05:52.9828696Z             },
2026-06-13T11:05:52.9828802Z             {
2026-06-13T11:05:52.9829029Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9829178Z               "line": 5891
2026-06-13T11:05:52.9829285Z             },
2026-06-13T11:05:52.9829384Z             {
2026-06-13T11:05:52.9829518Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9829633Z               "line": 6637
2026-06-13T11:05:52.9829752Z             },
2026-06-13T11:05:52.9829853Z             {
2026-06-13T11:05:52.9829990Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9830105Z               "line": 6707
2026-06-13T11:05:52.9830205Z             },
2026-06-13T11:05:52.9830310Z             {
2026-06-13T11:05:52.9830429Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9830548Z               "line": 6745
2026-06-13T11:05:52.9830657Z             }
2026-06-13T11:05:52.9830754Z           ]
2026-06-13T11:05:52.9830859Z         }
2026-06-13T11:05:52.9830963Z       }
2026-06-13T11:05:52.9831069Z     },
2026-06-13T11:05:52.9831174Z     {
2026-06-13T11:05:52.9831297Z       "id": "REQ-START-1",
2026-06-13T11:05:52.9831526Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-13T11:05:52.9831634Z       "requiredStages": [
2026-06-13T11:05:52.9831734Z         "impl",
2026-06-13T11:05:52.9831838Z         "unit"
2026-06-13T11:05:52.9831941Z       ],
2026-06-13T11:05:52.9832047Z       "stages": {
2026-06-13T11:05:52.9832158Z         "doc": {
2026-06-13T11:05:52.9832285Z           "complete": false,
2026-06-13T11:05:52.9832391Z           "evidence": []
2026-06-13T11:05:52.9832496Z         },
2026-06-13T11:05:52.9832599Z         "impl": {
2026-06-13T11:05:52.9832720Z           "complete": true,
2026-06-13T11:05:52.9832825Z           "evidence": [
2026-06-13T11:05:52.9832924Z             {
2026-06-13T11:05:52.9833073Z               "path": "crates/spt-store/src/seed.rs",
2026-06-13T11:05:52.9833186Z               "line": 16
2026-06-13T11:05:52.9833296Z             }
2026-06-13T11:05:52.9833402Z           ]
2026-06-13T11:05:52.9833515Z         },
2026-06-13T11:05:52.9833616Z         "int": {
2026-06-13T11:05:52.9833735Z           "complete": false,
2026-06-13T11:05:52.9833849Z           "evidence": []
2026-06-13T11:05:52.9833946Z         },
2026-06-13T11:05:52.9834050Z         "unit": {
2026-06-13T11:05:52.9834168Z           "complete": true,
2026-06-13T11:05:52.9834284Z           "evidence": [
2026-06-13T11:05:52.9834393Z             {
2026-06-13T11:05:52.9834534Z               "path": "crates/spt-store/src/seed.rs",
2026-06-13T11:05:52.9834650Z               "line": 43
2026-06-13T11:05:52.9834750Z             },
2026-06-13T11:05:52.9834849Z             {
2026-06-13T11:05:52.9834979Z               "path": "crates/spt-store/src/seed.rs",
2026-06-13T11:05:52.9835083Z               "line": 59
2026-06-13T11:05:52.9835183Z             }
2026-06-13T11:05:52.9835289Z           ]
2026-06-13T11:05:52.9835403Z         }
2026-06-13T11:05:52.9835623Z       }
2026-06-13T11:05:52.9835736Z     },
2026-06-13T11:05:52.9835836Z     {
2026-06-13T11:05:52.9835961Z       "id": "REQ-START-2",
2026-06-13T11:05:52.9836127Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-13T11:05:52.9836248Z       "requiredStages": [
2026-06-13T11:05:52.9836361Z         "impl",
2026-06-13T11:05:52.9836558Z         "unit",
2026-06-13T11:05:52.9836666Z         "int"
2026-06-13T11:05:52.9836765Z       ],
2026-06-13T11:05:52.9836880Z       "stages": {
2026-06-13T11:05:52.9836983Z         "doc": {
2026-06-13T11:05:52.9837101Z           "complete": false,
2026-06-13T11:05:52.9837216Z           "evidence": []
2026-06-13T11:05:52.9837316Z         },
2026-06-13T11:05:52.9837425Z         "impl": {
2026-06-13T11:05:52.9837536Z           "complete": true,
2026-06-13T11:05:52.9837650Z           "evidence": [
2026-06-13T11:05:52.9837779Z             {
2026-06-13T11:05:52.9837927Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9838045Z               "line": 16
2026-06-13T11:05:52.9838142Z             },
2026-06-13T11:05:52.9838251Z             {
2026-06-13T11:05:52.9838403Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9838546Z               "line": 100
2026-06-13T11:05:52.9838661Z             },
2026-06-13T11:05:52.9838772Z             {
2026-06-13T11:05:52.9838918Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9839106Z               "line": 224
2026-06-13T11:05:52.9839213Z             }
2026-06-13T11:05:52.9839314Z           ]
2026-06-13T11:05:52.9839425Z         },
2026-06-13T11:05:52.9839533Z         "int": {
2026-06-13T11:05:52.9839646Z           "complete": true,
2026-06-13T11:05:52.9839766Z           "evidence": [
2026-06-13T11:05:52.9839869Z             {
2026-06-13T11:05:52.9840011Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:05:52.9840113Z               "line": 186
2026-06-13T11:05:52.9840226Z             }
2026-06-13T11:05:52.9840331Z           ]
2026-06-13T11:05:52.9840442Z         },
2026-06-13T11:05:52.9840560Z         "unit": {
2026-06-13T11:05:52.9840675Z           "complete": true,
2026-06-13T11:05:52.9840794Z           "evidence": [
2026-06-13T11:05:52.9840898Z             {
2026-06-13T11:05:52.9841042Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9841151Z               "line": 438
2026-06-13T11:05:52.9841266Z             },
2026-06-13T11:05:52.9841381Z             {
2026-06-13T11:05:52.9841518Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9841634Z               "line": 471
2026-06-13T11:05:52.9841738Z             }
2026-06-13T11:05:52.9841857Z           ]
2026-06-13T11:05:52.9841963Z         }
2026-06-13T11:05:52.9842067Z       }
2026-06-13T11:05:52.9842180Z     },
2026-06-13T11:05:52.9842280Z     {
2026-06-13T11:05:52.9842408Z       "id": "REQ-START-3",
2026-06-13T11:05:52.9842612Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-13T11:05:52.9842741Z       "requiredStages": [
2026-06-13T11:05:52.9842850Z         "impl",
2026-06-13T11:05:52.9842961Z         "unit",
2026-06-13T11:05:52.9843070Z         "int"
2026-06-13T11:05:52.9843174Z       ],
2026-06-13T11:05:52.9843285Z       "stages": {
2026-06-13T11:05:52.9843394Z         "doc": {
2026-06-13T11:05:52.9843518Z           "complete": false,
2026-06-13T11:05:52.9843637Z           "evidence": []
2026-06-13T11:05:52.9843751Z         },
2026-06-13T11:05:52.9843861Z         "impl": {
2026-06-13T11:05:52.9843981Z           "complete": true,
2026-06-13T11:05:52.9844094Z           "evidence": [
2026-06-13T11:05:52.9844201Z             {
2026-06-13T11:05:52.9844351Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:05:52.9844462Z               "line": 23
2026-06-13T11:05:52.9844568Z             },
2026-06-13T11:05:52.9844680Z             {
2026-06-13T11:05:52.9844826Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:05:52.9845052Z               "line": 205
2026-06-13T11:05:52.9845162Z             },
2026-06-13T11:05:52.9845268Z             {
2026-06-13T11:05:52.9845414Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:05:52.9845530Z               "line": 221
2026-06-13T11:05:52.9845643Z             },
2026-06-13T11:05:52.9845748Z             {
2026-06-13T11:05:52.9845896Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9846101Z               "line": 17
2026-06-13T11:05:52.9846211Z             },
2026-06-13T11:05:52.9846315Z             {
2026-06-13T11:05:52.9846460Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9846578Z               "line": 43
2026-06-13T11:05:52.9846683Z             },
2026-06-13T11:05:52.9846789Z             {
2026-06-13T11:05:52.9846930Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9847045Z               "line": 101
2026-06-13T11:05:52.9847151Z             }
2026-06-13T11:05:52.9847259Z           ]
2026-06-13T11:05:52.9847373Z         },
2026-06-13T11:05:52.9847478Z         "int": {
2026-06-13T11:05:52.9847600Z           "complete": true,
2026-06-13T11:05:52.9847714Z           "evidence": [
2026-06-13T11:05:52.9847853Z             {
2026-06-13T11:05:52.9847995Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:05:52.9848101Z               "line": 440
2026-06-13T11:05:52.9848210Z             }
2026-06-13T11:05:52.9848319Z           ]
2026-06-13T11:05:52.9848453Z         },
2026-06-13T11:05:52.9848572Z         "unit": {
2026-06-13T11:05:52.9848697Z           "complete": true,
2026-06-13T11:05:52.9848806Z           "evidence": [
2026-06-13T11:05:52.9848920Z             {
2026-06-13T11:05:52.9849164Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:05:52.9849273Z               "line": 331
2026-06-13T11:05:52.9849384Z             },
2026-06-13T11:05:52.9849492Z             {
2026-06-13T11:05:52.9849646Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:05:52.9849769Z               "line": 352
2026-06-13T11:05:52.9849874Z             },
2026-06-13T11:05:52.9849981Z             {
2026-06-13T11:05:52.9850122Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:05:52.9850240Z               "line": 362
2026-06-13T11:05:52.9850345Z             },
2026-06-13T11:05:52.9850453Z             {
2026-06-13T11:05:52.9850595Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9850706Z               "line": 439
2026-06-13T11:05:52.9850815Z             },
2026-06-13T11:05:52.9850920Z             {
2026-06-13T11:05:52.9851063Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9851181Z               "line": 472
2026-06-13T11:05:52.9851287Z             },
2026-06-13T11:05:52.9851402Z             {
2026-06-13T11:05:52.9851540Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:05:52.9851654Z               "line": 480
2026-06-13T11:05:52.9851749Z             }
2026-06-13T11:05:52.9851855Z           ]
2026-06-13T11:05:52.9851955Z         }
2026-06-13T11:05:52.9852069Z       }
2026-06-13T11:05:52.9852174Z     },
2026-06-13T11:05:52.9852280Z     {
2026-06-13T11:05:52.9852403Z       "id": "REQ-START-4",
2026-06-13T11:05:52.9852566Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-13T11:05:52.9852688Z       "requiredStages": [
2026-06-13T11:05:52.9852788Z         "impl",
2026-06-13T11:05:52.9852902Z         "unit"
2026-06-13T11:05:52.9853010Z       ],
2026-06-13T11:05:52.9853119Z       "stages": {
2026-06-13T11:05:52.9853235Z         "doc": {
2026-06-13T11:05:52.9853353Z           "complete": false,
2026-06-13T11:05:52.9853477Z           "evidence": []
2026-06-13T11:05:52.9853578Z         },
2026-06-13T11:05:52.9853687Z         "impl": {
2026-06-13T11:05:52.9853812Z           "complete": true,
2026-06-13T11:05:52.9853920Z           "evidence": [
2026-06-13T11:05:52.9854029Z             {
2026-06-13T11:05:52.9854169Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9854378Z               "line": 393
2026-06-13T11:05:52.9854484Z             }
2026-06-13T11:05:52.9854603Z           ]
2026-06-13T11:05:52.9854712Z         },
2026-06-13T11:05:52.9854813Z         "int": {
2026-06-13T11:05:52.9854936Z           "complete": false,
2026-06-13T11:05:52.9855051Z           "evidence": []
2026-06-13T11:05:52.9855166Z         },
2026-06-13T11:05:52.9855265Z         "unit": {
2026-06-13T11:05:52.9855471Z           "complete": true,
2026-06-13T11:05:52.9855583Z           "evidence": [
2026-06-13T11:05:52.9855693Z             {
2026-06-13T11:05:52.9855847Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:05:52.9855960Z               "line": 777
2026-06-13T11:05:52.9856075Z             }
2026-06-13T11:05:52.9856176Z           ]
2026-06-13T11:05:52.9856289Z         }
2026-06-13T11:05:52.9856395Z       }
2026-06-13T11:05:52.9856485Z     },
2026-06-13T11:05:52.9856594Z     {
2026-06-13T11:05:52.9856710Z       "id": "REQ-STORE-1",
2026-06-13T11:05:52.9857635Z       "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-13T11:05:52.9857758Z       "requiredStages": [
2026-06-13T11:05:52.9857857Z         "impl",
2026-06-13T11:05:52.9857971Z         "unit"
2026-06-13T11:05:52.9858071Z       ],
2026-06-13T11:05:52.9858189Z       "stages": {
2026-06-13T11:05:52.9858284Z         "doc": {
2026-06-13T11:05:52.9858413Z           "complete": false,
2026-06-13T11:05:52.9858531Z           "evidence": []
2026-06-13T11:05:52.9858627Z         },
2026-06-13T11:05:52.9858728Z         "impl": {
2026-06-13T11:05:52.9858846Z           "complete": true,
2026-06-13T11:05:52.9859042Z           "evidence": [
2026-06-13T11:05:52.9859146Z             {
2026-06-13T11:05:52.9859314Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9859428Z               "line": 23
2026-06-13T11:05:52.9859538Z             },
2026-06-13T11:05:52.9859643Z             {
2026-06-13T11:05:52.9859795Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9859916Z               "line": 46
2026-06-13T11:05:52.9860019Z             },
2026-06-13T11:05:52.9860134Z             {
2026-06-13T11:05:52.9860291Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9860406Z               "line": 97
2026-06-13T11:05:52.9860507Z             },
2026-06-13T11:05:52.9860602Z             {
2026-06-13T11:05:52.9860752Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9860862Z               "line": 125
2026-06-13T11:05:52.9860956Z             },
2026-06-13T11:05:52.9861065Z             {
2026-06-13T11:05:52.9861209Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9861322Z               "line": 181
2026-06-13T11:05:52.9861422Z             },
2026-06-13T11:05:52.9861528Z             {
2026-06-13T11:05:52.9861689Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9861824Z               "line": 205
2026-06-13T11:05:52.9861929Z             },
2026-06-13T11:05:52.9862033Z             {
2026-06-13T11:05:52.9862186Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9862300Z               "line": 441
2026-06-13T11:05:52.9862405Z             },
2026-06-13T11:05:52.9862510Z             {
2026-06-13T11:05:52.9862662Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.9862778Z               "line": 25
2026-06-13T11:05:52.9862877Z             },
2026-06-13T11:05:52.9862987Z             {
2026-06-13T11:05:52.9863135Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.9863253Z               "line": 120
2026-06-13T11:05:52.9863362Z             },
2026-06-13T11:05:52.9863467Z             {
2026-06-13T11:05:52.9863713Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.9863828Z               "line": 148
2026-06-13T11:05:52.9863937Z             },
2026-06-13T11:05:52.9864047Z             {
2026-06-13T11:05:52.9864200Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.9864313Z               "line": 165
2026-06-13T11:05:52.9864419Z             },
2026-06-13T11:05:52.9864633Z             {
2026-06-13T11:05:52.9864786Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.9864890Z               "line": 180
2026-06-13T11:05:52.9864996Z             },
2026-06-13T11:05:52.9865106Z             {
2026-06-13T11:05:52.9865258Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.9865368Z               "line": 198
2026-06-13T11:05:52.9865481Z             },
2026-06-13T11:05:52.9865577Z             {
2026-06-13T11:05:52.9865730Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.9865849Z               "line": 207
2026-06-13T11:05:52.9865955Z             },
2026-06-13T11:05:52.9866064Z             {
2026-06-13T11:05:52.9866210Z               "path": "crates/spt-store/src/project.rs",
2026-06-13T11:05:52.9866325Z               "line": 16
2026-06-13T11:05:52.9866430Z             },
2026-06-13T11:05:52.9866529Z             {
2026-06-13T11:05:52.9866674Z               "path": "crates/spt-store/src/project.rs",
2026-06-13T11:05:52.9866797Z               "line": 63
2026-06-13T11:05:52.9866907Z             }
2026-06-13T11:05:52.9867007Z           ]
2026-06-13T11:05:52.9867107Z         },
2026-06-13T11:05:52.9867207Z         "int": {
2026-06-13T11:05:52.9867332Z           "complete": false,
2026-06-13T11:05:52.9867445Z           "evidence": []
2026-06-13T11:05:52.9867551Z         },
2026-06-13T11:05:52.9867661Z         "unit": {
2026-06-13T11:05:52.9867769Z           "complete": true,
2026-06-13T11:05:52.9867885Z           "evidence": [
2026-06-13T11:05:52.9867999Z             {
2026-06-13T11:05:52.9868156Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9868271Z               "line": 558
2026-06-13T11:05:52.9868379Z             },
2026-06-13T11:05:52.9868488Z             {
2026-06-13T11:05:52.9868640Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9868753Z               "line": 568
2026-06-13T11:05:52.9868849Z             },
2026-06-13T11:05:52.9869044Z             {
2026-06-13T11:05:52.9869192Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9869302Z               "line": 590
2026-06-13T11:05:52.9869416Z             },
2026-06-13T11:05:52.9869522Z             {
2026-06-13T11:05:52.9869664Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9869774Z               "line": 606
2026-06-13T11:05:52.9869879Z             },
2026-06-13T11:05:52.9869979Z             {
2026-06-13T11:05:52.9870122Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:05:52.9870241Z               "line": 629
2026-06-13T11:05:52.9870350Z             },
2026-06-13T11:05:52.9870457Z             {
2026-06-13T11:05:52.9870598Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.9870713Z               "line": 472
2026-06-13T11:05:52.9870824Z             },
2026-06-13T11:05:52.9870937Z             {
2026-06-13T11:05:52.9871091Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:05:52.9871209Z               "line": 507
2026-06-13T11:05:52.9871322Z             },
2026-06-13T11:05:52.9871432Z             {
2026-06-13T11:05:52.9871568Z               "path": "crates/spt-store/src/project.rs",
2026-06-13T11:05:52.9871682Z               "line": 120
2026-06-13T11:05:52.9871778Z             },
2026-06-13T11:05:52.9871882Z             {
2026-06-13T11:05:52.9872021Z               "path": "crates/spt-store/src/project.rs",
2026-06-13T11:05:52.9872136Z               "line": 128
2026-06-13T11:05:52.9872230Z             }
2026-06-13T11:05:52.9872346Z           ]
2026-06-13T11:05:52.9872545Z         }
2026-06-13T11:05:52.9872655Z       }
2026-06-13T11:05:52.9872765Z     },
2026-06-13T11:05:52.9872869Z     {
2026-06-13T11:05:52.9872989Z       "id": "REQ-SUBNET-1",
2026-06-13T11:05:52.9873343Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-13T11:05:52.9873547Z       "requiredStages": [
2026-06-13T11:05:52.9876438Z         "impl",
2026-06-13T11:05:52.9876582Z         "unit"
2026-06-13T11:05:52.9876695Z       ],
2026-06-13T11:05:52.9876808Z       "stages": {
2026-06-13T11:05:52.9876919Z         "doc": {
2026-06-13T11:05:52.9877042Z           "complete": false,
2026-06-13T11:05:52.9877162Z           "evidence": []
2026-06-13T11:05:52.9877272Z         },
2026-06-13T11:05:52.9877380Z         "impl": {
2026-06-13T11:05:52.9877501Z           "complete": true,
2026-06-13T11:05:52.9877615Z           "evidence": [
2026-06-13T11:05:52.9877723Z             {
2026-06-13T11:05:52.9877906Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9878024Z               "line": 281
2026-06-13T11:05:52.9878135Z             },
2026-06-13T11:05:52.9878239Z             {
2026-06-13T11:05:52.9878402Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9878516Z               "line": 599
2026-06-13T11:05:52.9878625Z             },
2026-06-13T11:05:52.9878731Z             {
2026-06-13T11:05:52.9878873Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9879096Z               "line": 2674
2026-06-13T11:05:52.9879200Z             },
2026-06-13T11:05:52.9879313Z             {
2026-06-13T11:05:52.9879447Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9879567Z               "line": 2839
2026-06-13T11:05:52.9879671Z             },
2026-06-13T11:05:52.9879782Z             {
2026-06-13T11:05:52.9879914Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9880024Z               "line": 2858
2026-06-13T11:05:52.9880139Z             },
2026-06-13T11:05:52.9880243Z             {
2026-06-13T11:05:52.9880373Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9880486Z               "line": 2919
2026-06-13T11:05:52.9880600Z             },
2026-06-13T11:05:52.9880711Z             {
2026-06-13T11:05:52.9880835Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9880954Z               "line": 2961
2026-06-13T11:05:52.9881055Z             },
2026-06-13T11:05:52.9881163Z             {
2026-06-13T11:05:52.9881293Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9881403Z               "line": 3150
2026-06-13T11:05:52.9881512Z             },
2026-06-13T11:05:52.9881618Z             {
2026-06-13T11:05:52.9881746Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9881854Z               "line": 3220
2026-06-13T11:05:52.9881964Z             },
2026-06-13T11:05:52.9882072Z             {
2026-06-13T11:05:52.9882209Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9882324Z               "line": 3444
2026-06-13T11:05:52.9882434Z             },
2026-06-13T11:05:52.9882538Z             {
2026-06-13T11:05:52.9882682Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.9882795Z               "line": 418
2026-06-13T11:05:52.9882906Z             }
2026-06-13T11:05:52.9883006Z           ]
2026-06-13T11:05:52.9883115Z         },
2026-06-13T11:05:52.9883220Z         "int": {
2026-06-13T11:05:52.9883344Z           "complete": false,
2026-06-13T11:05:52.9883453Z           "evidence": []
2026-06-13T11:05:52.9883564Z         },
2026-06-13T11:05:52.9883677Z         "unit": {
2026-06-13T11:05:52.9883792Z           "complete": true,
2026-06-13T11:05:52.9883908Z           "evidence": [
2026-06-13T11:05:52.9884016Z             {
2026-06-13T11:05:52.9884175Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9884289Z               "line": 1477
2026-06-13T11:05:52.9884397Z             },
2026-06-13T11:05:52.9884629Z             {
2026-06-13T11:05:52.9884766Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9884881Z               "line": 7546
2026-06-13T11:05:52.9884986Z             },
2026-06-13T11:05:52.9885095Z             {
2026-06-13T11:05:52.9885225Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9885343Z               "line": 7716
2026-06-13T11:05:52.9885539Z             },
2026-06-13T11:05:52.9885653Z             {
2026-06-13T11:05:52.9885782Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9885892Z               "line": 7723
2026-06-13T11:05:52.9886001Z             },
2026-06-13T11:05:52.9886111Z             {
2026-06-13T11:05:52.9886235Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9886354Z               "line": 7776
2026-06-13T11:05:52.9886460Z             },
2026-06-13T11:05:52.9886569Z             {
2026-06-13T11:05:52.9886693Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9886808Z               "line": 7793
2026-06-13T11:05:52.9886916Z             },
2026-06-13T11:05:52.9887027Z             {
2026-06-13T11:05:52.9887161Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9887278Z               "line": 7823
2026-06-13T11:05:52.9887383Z             },
2026-06-13T11:05:52.9887489Z             {
2026-06-13T11:05:52.9887621Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9887736Z               "line": 7922
2026-06-13T11:05:52.9887846Z             },
2026-06-13T11:05:52.9887955Z             {
2026-06-13T11:05:52.9888085Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9888199Z               "line": 8073
2026-06-13T11:05:52.9888303Z             }
2026-06-13T11:05:52.9888409Z           ]
2026-06-13T11:05:52.9888513Z         }
2026-06-13T11:05:52.9888622Z       }
2026-06-13T11:05:52.9888733Z     },
2026-06-13T11:05:52.9888837Z     {
2026-06-13T11:05:52.9889043Z       "id": "REQ-SUBNET-2",
2026-06-13T11:05:52.9889315Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-13T11:05:52.9889438Z       "requiredStages": [
2026-06-13T11:05:52.9889547Z         "impl",
2026-06-13T11:05:52.9889657Z         "unit",
2026-06-13T11:05:52.9889765Z         "int"
2026-06-13T11:05:52.9889869Z       ],
2026-06-13T11:05:52.9889979Z       "stages": {
2026-06-13T11:05:52.9890094Z         "doc": {
2026-06-13T11:05:52.9890212Z           "complete": true,
2026-06-13T11:05:52.9890327Z           "evidence": [
2026-06-13T11:05:52.9890436Z             {
2026-06-13T11:05:52.9890632Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-13T11:05:52.9890742Z               "line": 60
2026-06-13T11:05:52.9890850Z             }
2026-06-13T11:05:52.9890957Z           ]
2026-06-13T11:05:52.9891061Z         },
2026-06-13T11:05:52.9891170Z         "impl": {
2026-06-13T11:05:52.9891290Z           "complete": true,
2026-06-13T11:05:52.9891400Z           "evidence": [
2026-06-13T11:05:52.9891509Z             {
2026-06-13T11:05:52.9891662Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.9891776Z               "line": 800
2026-06-13T11:05:52.9891882Z             },
2026-06-13T11:05:52.9891986Z             {
2026-06-13T11:05:52.9892139Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:52.9892259Z               "line": 801
2026-06-13T11:05:52.9892362Z             },
2026-06-13T11:05:52.9892471Z             {
2026-06-13T11:05:52.9892623Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.9892740Z               "line": 448
2026-06-13T11:05:52.9892846Z             },
2026-06-13T11:05:52.9892951Z             {
2026-06-13T11:05:52.9893098Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:05:52.9893209Z               "line": 578
2026-06-13T11:05:52.9893314Z             },
2026-06-13T11:05:52.9893417Z             {
2026-06-13T11:05:52.9893571Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9893790Z               "line": 26
2026-06-13T11:05:52.9893900Z             },
2026-06-13T11:05:52.9894009Z             {
2026-06-13T11:05:52.9894158Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9894271Z               "line": 60
2026-06-13T11:05:52.9894376Z             },
2026-06-13T11:05:52.9894487Z             {
2026-06-13T11:05:52.9894634Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9894835Z               "line": 168
2026-06-13T11:05:52.9894943Z             },
2026-06-13T11:05:52.9895047Z             {
2026-06-13T11:05:52.9895199Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9895307Z               "line": 295
2026-06-13T11:05:52.9895417Z             },
2026-06-13T11:05:52.9895523Z             {
2026-06-13T11:05:52.9895664Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9895775Z               "line": 417
2026-06-13T11:05:52.9895880Z             },
2026-06-13T11:05:52.9895984Z             {
2026-06-13T11:05:52.9896142Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:05:52.9896261Z               "line": 252
2026-06-13T11:05:52.9896367Z             },
2026-06-13T11:05:52.9896471Z             {
2026-06-13T11:05:52.9896604Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9896711Z               "line": 2885
2026-06-13T11:05:52.9896819Z             },
2026-06-13T11:05:52.9896924Z             {
2026-06-13T11:05:52.9897049Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9897152Z               "line": 3383
2026-06-13T11:05:52.9897258Z             },
2026-06-13T11:05:52.9897364Z             {
2026-06-13T11:05:52.9897491Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9897602Z               "line": 4012
2026-06-13T11:05:52.9897707Z             }
2026-06-13T11:05:52.9897819Z           ]
2026-06-13T11:05:52.9897924Z         },
2026-06-13T11:05:52.9898035Z         "int": {
2026-06-13T11:05:52.9898148Z           "complete": true,
2026-06-13T11:05:52.9898258Z           "evidence": [
2026-06-13T11:05:52.9898359Z             {
2026-06-13T11:05:52.9898511Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-13T11:05:52.9898626Z               "line": 22
2026-06-13T11:05:52.9898731Z             },
2026-06-13T11:05:52.9898839Z             {
2026-06-13T11:05:52.9899073Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9899182Z               "line": 575
2026-06-13T11:05:52.9899298Z             },
2026-06-13T11:05:52.9899393Z             {
2026-06-13T11:05:52.9899546Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:52.9899656Z               "line": 792
2026-06-13T11:05:52.9899760Z             }
2026-06-13T11:05:52.9899865Z           ]
2026-06-13T11:05:52.9899970Z         },
2026-06-13T11:05:52.9900074Z         "unit": {
2026-06-13T11:05:52.9900183Z           "complete": true,
2026-06-13T11:05:52.9900297Z           "evidence": [
2026-06-13T11:05:52.9900400Z             {
2026-06-13T11:05:52.9900548Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9900659Z               "line": 586
2026-06-13T11:05:52.9900762Z             },
2026-06-13T11:05:52.9900868Z             {
2026-06-13T11:05:52.9900996Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9901101Z               "line": 7586
2026-06-13T11:05:52.9901212Z             },
2026-06-13T11:05:52.9901316Z             {
2026-06-13T11:05:52.9901440Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9901550Z               "line": 8277
2026-06-13T11:05:52.9901654Z             }
2026-06-13T11:05:52.9901759Z           ]
2026-06-13T11:05:52.9901865Z         }
2026-06-13T11:05:52.9901969Z       }
2026-06-13T11:05:52.9902074Z     },
2026-06-13T11:05:52.9902185Z     {
2026-06-13T11:05:52.9902293Z       "id": "REQ-SUBNET-3",
2026-06-13T11:05:52.9902598Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-13T11:05:52.9902805Z       "requiredStages": [
2026-06-13T11:05:52.9902918Z         "impl",
2026-06-13T11:05:52.9903026Z         "unit"
2026-06-13T11:05:52.9903127Z       ],
2026-06-13T11:05:52.9903234Z       "stages": {
2026-06-13T11:05:52.9903343Z         "doc": {
2026-06-13T11:05:52.9903464Z           "complete": false,
2026-06-13T11:05:52.9903578Z           "evidence": []
2026-06-13T11:05:52.9903793Z         },
2026-06-13T11:05:52.9903902Z         "impl": {
2026-06-13T11:05:52.9904016Z           "complete": true,
2026-06-13T11:05:52.9904131Z           "evidence": [
2026-06-13T11:05:52.9904240Z             {
2026-06-13T11:05:52.9904403Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9904512Z               "line": 152
2026-06-13T11:05:52.9904622Z             },
2026-06-13T11:05:52.9904732Z             {
2026-06-13T11:05:52.9904884Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9904995Z               "line": 299
2026-06-13T11:05:52.9905113Z             },
2026-06-13T11:05:52.9905222Z             {
2026-06-13T11:05:52.9905376Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9905484Z               "line": 437
2026-06-13T11:05:52.9905597Z             },
2026-06-13T11:05:52.9905698Z             {
2026-06-13T11:05:52.9905853Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9905968Z               "line": 480
2026-06-13T11:05:52.9906074Z             },
2026-06-13T11:05:52.9906177Z             {
2026-06-13T11:05:52.9906326Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9906440Z               "line": 125
2026-06-13T11:05:52.9906544Z             },
2026-06-13T11:05:52.9906655Z             {
2026-06-13T11:05:52.9906801Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9906917Z               "line": 253
2026-06-13T11:05:52.9907026Z             },
2026-06-13T11:05:52.9907130Z             {
2026-06-13T11:05:52.9907285Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9907394Z               "line": 264
2026-06-13T11:05:52.9907503Z             },
2026-06-13T11:05:52.9907604Z             {
2026-06-13T11:05:52.9907751Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9907867Z               "line": 285
2026-06-13T11:05:52.9907971Z             },
2026-06-13T11:05:52.9908080Z             {
2026-06-13T11:05:52.9908229Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9908341Z               "line": 589
2026-06-13T11:05:52.9908446Z             },
2026-06-13T11:05:52.9908551Z             {
2026-06-13T11:05:52.9908699Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9908813Z               "line": 648
2026-06-13T11:05:52.9908919Z             },
2026-06-13T11:05:52.9909103Z             {
2026-06-13T11:05:52.9909257Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:05:52.9909371Z               "line": 61
2026-06-13T11:05:52.9909481Z             },
2026-06-13T11:05:52.9909586Z             {
2026-06-13T11:05:52.9909738Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:05:52.9909849Z               "line": 90
2026-06-13T11:05:52.9909958Z             },
2026-06-13T11:05:52.9910067Z             {
2026-06-13T11:05:52.9910216Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:05:52.9910329Z               "line": 125
2026-06-13T11:05:52.9910440Z             },
2026-06-13T11:05:52.9910545Z             {
2026-06-13T11:05:52.9910691Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-13T11:05:52.9910801Z               "line": 9
2026-06-13T11:05:52.9910913Z             },
2026-06-13T11:05:52.9911022Z             {
2026-06-13T11:05:52.9911152Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9911266Z               "line": 3220
2026-06-13T11:05:52.9911371Z             },
2026-06-13T11:05:52.9911476Z             {
2026-06-13T11:05:52.9911709Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.9911829Z               "line": 445
2026-06-13T11:05:52.9911933Z             }
2026-06-13T11:05:52.9912039Z           ]
2026-06-13T11:05:52.9912148Z         },
2026-06-13T11:05:52.9912252Z         "int": {
2026-06-13T11:05:52.9912378Z           "complete": false,
2026-06-13T11:05:52.9912486Z           "evidence": []
2026-06-13T11:05:52.9912683Z         },
2026-06-13T11:05:52.9912796Z         "unit": {
2026-06-13T11:05:52.9912911Z           "complete": true,
2026-06-13T11:05:52.9913022Z           "evidence": [
2026-06-13T11:05:52.9913130Z             {
2026-06-13T11:05:52.9913284Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9913398Z               "line": 1304
2026-06-13T11:05:52.9913506Z             },
2026-06-13T11:05:52.9913615Z             {
2026-06-13T11:05:52.9913766Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9913879Z               "line": 1606
2026-06-13T11:05:52.9913990Z             },
2026-06-13T11:05:52.9914091Z             {
2026-06-13T11:05:52.9914238Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:05:52.9914358Z               "line": 886
2026-06-13T11:05:52.9914466Z             },
2026-06-13T11:05:52.9914567Z             {
2026-06-13T11:05:52.9914715Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9914828Z               "line": 959
2026-06-13T11:05:52.9914939Z             },
2026-06-13T11:05:52.9915034Z             {
2026-06-13T11:05:52.9915191Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9915306Z               "line": 1009
2026-06-13T11:05:52.9915405Z             },
2026-06-13T11:05:52.9915506Z             {
2026-06-13T11:05:52.9915645Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9915764Z               "line": 1068
2026-06-13T11:05:52.9915865Z             },
2026-06-13T11:05:52.9915974Z             {
2026-06-13T11:05:52.9916129Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:05:52.9916239Z               "line": 234
2026-06-13T11:05:52.9916352Z             },
2026-06-13T11:05:52.9916451Z             {
2026-06-13T11:05:52.9916600Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-13T11:05:52.9916704Z               "line": 49
2026-06-13T11:05:52.9916818Z             },
2026-06-13T11:05:52.9916924Z             {
2026-06-13T11:05:52.9917052Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9917172Z               "line": 7922
2026-06-13T11:05:52.9917276Z             },
2026-06-13T11:05:52.9917385Z             {
2026-06-13T11:05:52.9917520Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9917634Z               "line": 8028
2026-06-13T11:05:52.9917744Z             },
2026-06-13T11:05:52.9917840Z             {
2026-06-13T11:05:52.9917973Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9918082Z               "line": 8243
2026-06-13T11:05:52.9918198Z             }
2026-06-13T11:05:52.9918297Z           ]
2026-06-13T11:05:52.9918402Z         }
2026-06-13T11:05:52.9918508Z       }
2026-06-13T11:05:52.9918606Z     },
2026-06-13T11:05:52.9918717Z     {
2026-06-13T11:05:52.9918828Z       "id": "REQ-SUBNET-4",
2026-06-13T11:05:52.9919221Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-13T11:05:52.9919340Z       "requiredStages": [
2026-06-13T11:05:52.9919455Z         "impl",
2026-06-13T11:05:52.9919573Z         "unit"
2026-06-13T11:05:52.9919668Z       ],
2026-06-13T11:05:52.9919775Z       "stages": {
2026-06-13T11:05:52.9919879Z         "doc": {
2026-06-13T11:05:52.9919998Z           "complete": true,
2026-06-13T11:05:52.9920108Z           "evidence": [
2026-06-13T11:05:52.9920213Z             {
2026-06-13T11:05:52.9920400Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-13T11:05:52.9920508Z               "line": 60
2026-06-13T11:05:52.9920705Z             }
2026-06-13T11:05:52.9920818Z           ]
2026-06-13T11:05:52.9920923Z         },
2026-06-13T11:05:52.9921039Z         "impl": {
2026-06-13T11:05:52.9921151Z           "complete": true,
2026-06-13T11:05:52.9921265Z           "evidence": [
2026-06-13T11:05:52.9921375Z             {
2026-06-13T11:05:52.9921511Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9921707Z               "line": 2674
2026-06-13T11:05:52.9921821Z             },
2026-06-13T11:05:52.9921926Z             {
2026-06-13T11:05:52.9922060Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9922174Z               "line": 3979
2026-06-13T11:05:52.9922269Z             },
2026-06-13T11:05:52.9922384Z             {
2026-06-13T11:05:52.9922507Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9922623Z               "line": 4012
2026-06-13T11:05:52.9922727Z             }
2026-06-13T11:05:52.9922836Z           ]
2026-06-13T11:05:52.9922947Z         },
2026-06-13T11:05:52.9923061Z         "int": {
2026-06-13T11:05:52.9923179Z           "complete": false,
2026-06-13T11:05:52.9923295Z           "evidence": []
2026-06-13T11:05:52.9923404Z         },
2026-06-13T11:05:52.9923514Z         "unit": {
2026-06-13T11:05:52.9923629Z           "complete": true,
2026-06-13T11:05:52.9923752Z           "evidence": [
2026-06-13T11:05:52.9923862Z             {
2026-06-13T11:05:52.9923995Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9924113Z               "line": 7702
2026-06-13T11:05:52.9924223Z             },
2026-06-13T11:05:52.9924331Z             {
2026-06-13T11:05:52.9924463Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9924579Z               "line": 7776
2026-06-13T11:05:52.9924688Z             }
2026-06-13T11:05:52.9924802Z           ]
2026-06-13T11:05:52.9924908Z         }
2026-06-13T11:05:52.9925017Z       }
2026-06-13T11:05:52.9925132Z     },
2026-06-13T11:05:52.9925237Z     {
2026-06-13T11:05:52.9925355Z       "id": "REQ-SUBNET-5",
2026-06-13T11:05:52.9926642Z       "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-13T11:05:52.9926771Z       "requiredStages": [
2026-06-13T11:05:52.9926889Z         "impl",
2026-06-13T11:05:52.9926997Z         "unit",
2026-06-13T11:05:52.9927112Z         "int"
2026-06-13T11:05:52.9927222Z       ],
2026-06-13T11:05:52.9927335Z       "stages": {
2026-06-13T11:05:52.9927451Z         "doc": {
2026-06-13T11:05:52.9927570Z           "complete": false,
2026-06-13T11:05:52.9927688Z           "evidence": []
2026-06-13T11:05:52.9927794Z         },
2026-06-13T11:05:52.9927908Z         "impl": {
2026-06-13T11:05:52.9928023Z           "complete": true,
2026-06-13T11:05:52.9928142Z           "evidence": [
2026-06-13T11:05:52.9928256Z             {
2026-06-13T11:05:52.9928415Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:05:52.9928528Z               "line": 126
2026-06-13T11:05:52.9928633Z             },
2026-06-13T11:05:52.9928744Z             {
2026-06-13T11:05:52.9928895Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:05:52.9929096Z               "line": 413
2026-06-13T11:05:52.9929201Z             },
2026-06-13T11:05:52.9929311Z             {
2026-06-13T11:05:52.9929462Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9929576Z               "line": 74
2026-06-13T11:05:52.9929686Z             },
2026-06-13T11:05:52.9929791Z             {
2026-06-13T11:05:52.9929943Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.9930062Z               "line": 332
2026-06-13T11:05:52.9930171Z             },
2026-06-13T11:05:52.9930277Z             {
2026-06-13T11:05:52.9930529Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.9930650Z               "line": 621
2026-06-13T11:05:52.9930754Z             },
2026-06-13T11:05:52.9930863Z             {
2026-06-13T11:05:52.9931012Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T11:05:52.9931130Z               "line": 31
2026-06-13T11:05:52.9931236Z             },
2026-06-13T11:05:52.9931431Z             {
2026-06-13T11:05:52.9931590Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T11:05:52.9931702Z               "line": 50
2026-06-13T11:05:52.9931816Z             },
2026-06-13T11:05:52.9931921Z             {
2026-06-13T11:05:52.9932071Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T11:05:52.9932186Z               "line": 69
2026-06-13T11:05:52.9932291Z             },
2026-06-13T11:05:52.9932400Z             {
2026-06-13T11:05:52.9932548Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T11:05:52.9932663Z               "line": 113
2026-06-13T11:05:52.9932772Z             },
2026-06-13T11:05:52.9932878Z             {
2026-06-13T11:05:52.9933034Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-13T11:05:52.9933149Z               "line": 25
2026-06-13T11:05:52.9933263Z             },
2026-06-13T11:05:52.9933358Z             {
2026-06-13T11:05:52.9933512Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-13T11:05:52.9933631Z               "line": 34
2026-06-13T11:05:52.9933740Z             },
2026-06-13T11:05:52.9933851Z             {
2026-06-13T11:05:52.9933998Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-13T11:05:52.9934118Z               "line": 17
2026-06-13T11:05:52.9934217Z             },
2026-06-13T11:05:52.9934317Z             {
2026-06-13T11:05:52.9934442Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9934560Z               "line": 3937
2026-06-13T11:05:52.9934668Z             },
2026-06-13T11:05:52.9934774Z             {
2026-06-13T11:05:52.9934919Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:05:52.9935033Z               "line": 419
2026-06-13T11:05:52.9935139Z             }
2026-06-13T11:05:52.9935253Z           ]
2026-06-13T11:05:52.9935358Z         },
2026-06-13T11:05:52.9935468Z         "int": {
2026-06-13T11:05:52.9935582Z           "complete": true,
2026-06-13T11:05:52.9935697Z           "evidence": [
2026-06-13T11:05:52.9935816Z             {
2026-06-13T11:05:52.9935972Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:05:52.9936088Z               "line": 815
2026-06-13T11:05:52.9936197Z             }
2026-06-13T11:05:52.9936307Z           ]
2026-06-13T11:05:52.9936403Z         },
2026-06-13T11:05:52.9936512Z         "unit": {
2026-06-13T11:05:52.9936626Z           "complete": true,
2026-06-13T11:05:52.9936746Z           "evidence": [
2026-06-13T11:05:52.9936859Z             {
2026-06-13T11:05:52.9937004Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:05:52.9937118Z               "line": 341
2026-06-13T11:05:52.9937226Z             },
2026-06-13T11:05:52.9937326Z             {
2026-06-13T11:05:52.9937467Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:05:52.9937629Z               "line": 1115
2026-06-13T11:05:52.9937735Z             },
2026-06-13T11:05:52.9937839Z             {
2026-06-13T11:05:52.9937987Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T11:05:52.9938097Z               "line": 151
2026-06-13T11:05:52.9938205Z             },
2026-06-13T11:05:52.9938307Z             {
2026-06-13T11:05:52.9938459Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-13T11:05:52.9938573Z               "line": 61
2026-06-13T11:05:52.9938674Z             },
2026-06-13T11:05:52.9938783Z             {
2026-06-13T11:05:52.9938932Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-13T11:05:52.9939145Z               "line": 111
2026-06-13T11:05:52.9939247Z             },
2026-06-13T11:05:52.9939350Z             {
2026-06-13T11:05:52.9939614Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-13T11:05:52.9939731Z               "line": 138
2026-06-13T11:05:52.9939837Z             },
2026-06-13T11:05:52.9939938Z             {
2026-06-13T11:05:52.9940088Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-13T11:05:52.9940198Z               "line": 148
2026-06-13T11:05:52.9940393Z             },
2026-06-13T11:05:52.9940493Z             {
2026-06-13T11:05:52.9940618Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9940736Z               "line": 7603
2026-06-13T11:05:52.9940828Z             }
2026-06-13T11:05:52.9940937Z           ]
2026-06-13T11:05:52.9941042Z         }
2026-06-13T11:05:52.9941152Z       }
2026-06-13T11:05:52.9941252Z     },
2026-06-13T11:05:52.9941357Z     {
2026-06-13T11:05:52.9941525Z       "id": "REQ-SUBNET-6",
2026-06-13T11:05:52.9942248Z       "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-13T11:05:52.9942362Z       "requiredStages": [
2026-06-13T11:05:52.9942476Z         "impl",
2026-06-13T11:05:52.9942584Z         "unit"
2026-06-13T11:05:52.9942693Z       ],
2026-06-13T11:05:52.9942798Z       "stages": {
2026-06-13T11:05:52.9942913Z         "doc": {
2026-06-13T11:05:52.9943031Z           "complete": false,
2026-06-13T11:05:52.9943142Z           "evidence": []
2026-06-13T11:05:52.9943251Z         },
2026-06-13T11:05:52.9943351Z         "impl": {
2026-06-13T11:05:52.9943494Z           "complete": true,
2026-06-13T11:05:52.9943608Z           "evidence": [
2026-06-13T11:05:52.9943714Z             {
2026-06-13T11:05:52.9943867Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9943985Z               "line": 254
2026-06-13T11:05:52.9944096Z             },
2026-06-13T11:05:52.9944196Z             {
2026-06-13T11:05:52.9944334Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9944439Z               "line": 3595
2026-06-13T11:05:52.9944548Z             },
2026-06-13T11:05:52.9944649Z             {
2026-06-13T11:05:52.9944786Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9944901Z               "line": 3612
2026-06-13T11:05:52.9945002Z             },
2026-06-13T11:05:52.9945106Z             {
2026-06-13T11:05:52.9945233Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9945353Z               "line": 3665
2026-06-13T11:05:52.9945447Z             },
2026-06-13T11:05:52.9945551Z             {
2026-06-13T11:05:52.9945670Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9945785Z               "line": 3688
2026-06-13T11:05:52.9945893Z             }
2026-06-13T11:05:52.9946005Z           ]
2026-06-13T11:05:52.9946109Z         },
2026-06-13T11:05:52.9946213Z         "int": {
2026-06-13T11:05:52.9946343Z           "complete": false,
2026-06-13T11:05:52.9946461Z           "evidence": []
2026-06-13T11:05:52.9946562Z         },
2026-06-13T11:05:52.9946672Z         "unit": {
2026-06-13T11:05:52.9946786Z           "complete": true,
2026-06-13T11:05:52.9946901Z           "evidence": [
2026-06-13T11:05:52.9947001Z             {
2026-06-13T11:05:52.9947129Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9947240Z               "line": 7617
2026-06-13T11:05:52.9947339Z             },
2026-06-13T11:05:52.9947444Z             {
2026-06-13T11:05:52.9947569Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9947682Z               "line": 7650
2026-06-13T11:05:52.9947786Z             },
2026-06-13T11:05:52.9947896Z             {
2026-06-13T11:05:52.9948027Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9948141Z               "line": 7659
2026-06-13T11:05:52.9948251Z             }
2026-06-13T11:05:52.9948352Z           ]
2026-06-13T11:05:52.9948465Z         }
2026-06-13T11:05:52.9948566Z       }
2026-06-13T11:05:52.9948737Z     },
2026-06-13T11:05:52.9948848Z     {
2026-06-13T11:05:52.9949047Z       "id": "REQ-SUBNET-7",
2026-06-13T11:05:52.9950701Z       "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-13T11:05:52.9950921Z       "requiredStages": [
2026-06-13T11:05:52.9951020Z         "impl",
2026-06-13T11:05:52.9951131Z         "unit"
2026-06-13T11:05:52.9951231Z       ],
2026-06-13T11:05:52.9951339Z       "stages": {
2026-06-13T11:05:52.9951446Z         "doc": {
2026-06-13T11:05:52.9951560Z           "complete": false,
2026-06-13T11:05:52.9951669Z           "evidence": []
2026-06-13T11:05:52.9951789Z         },
2026-06-13T11:05:52.9951898Z         "impl": {
2026-06-13T11:05:52.9952012Z           "complete": true,
2026-06-13T11:05:52.9952128Z           "evidence": [
2026-06-13T11:05:52.9952223Z             {
2026-06-13T11:05:52.9952380Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-13T11:05:52.9952503Z               "line": 17
2026-06-13T11:05:52.9952598Z             },
2026-06-13T11:05:52.9952710Z             {
2026-06-13T11:05:52.9952860Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9952979Z               "line": 103
2026-06-13T11:05:52.9953084Z             },
2026-06-13T11:05:52.9953191Z             {
2026-06-13T11:05:52.9953330Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:05:52.9953436Z               "line": 312
2026-06-13T11:05:52.9953549Z             },
2026-06-13T11:05:52.9953649Z             {
2026-06-13T11:05:52.9953811Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:05:52.9953920Z               "line": 131
2026-06-13T11:05:52.9954032Z             },
2026-06-13T11:05:52.9954140Z             {
2026-06-13T11:05:52.9954298Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9954412Z               "line": 160
2026-06-13T11:05:52.9954521Z             },
2026-06-13T11:05:52.9954623Z             {
2026-06-13T11:05:52.9954775Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9954894Z               "line": 441
2026-06-13T11:05:52.9955004Z             },
2026-06-13T11:05:52.9955104Z             {
2026-06-13T11:05:52.9955262Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9955375Z               "line": 618
2026-06-13T11:05:52.9955485Z             },
2026-06-13T11:05:52.9955596Z             {
2026-06-13T11:05:52.9955751Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9955875Z               "line": 658
2026-06-13T11:05:52.9955984Z             },
2026-06-13T11:05:52.9956092Z             {
2026-06-13T11:05:52.9956245Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9956359Z               "line": 714
2026-06-13T11:05:52.9956468Z             },
2026-06-13T11:05:52.9956579Z             {
2026-06-13T11:05:52.9956735Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9956846Z               "line": 136
2026-06-13T11:05:52.9956955Z             },
2026-06-13T11:05:52.9957059Z             {
2026-06-13T11:05:52.9957214Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9957327Z               "line": 139
2026-06-13T11:05:52.9957427Z             }
2026-06-13T11:05:52.9957533Z           ]
2026-06-13T11:05:52.9957636Z         },
2026-06-13T11:05:52.9957756Z         "int": {
2026-06-13T11:05:52.9957876Z           "complete": false,
2026-06-13T11:05:52.9960724Z           "evidence": []
2026-06-13T11:05:52.9961006Z         },
2026-06-13T11:05:52.9961124Z         "unit": {
2026-06-13T11:05:52.9961251Z           "complete": true,
2026-06-13T11:05:52.9961366Z           "evidence": [
2026-06-13T11:05:52.9961476Z             {
2026-06-13T11:05:52.9961643Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-13T11:05:52.9961757Z               "line": 136
2026-06-13T11:05:52.9961953Z             },
2026-06-13T11:05:52.9962068Z             {
2026-06-13T11:05:52.9962224Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-13T11:05:52.9962330Z               "line": 156
2026-06-13T11:05:52.9962444Z             },
2026-06-13T11:05:52.9962543Z             {
2026-06-13T11:05:52.9962702Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9962816Z               "line": 935
2026-06-13T11:05:52.9962917Z             },
2026-06-13T11:05:52.9963017Z             {
2026-06-13T11:05:52.9963173Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:05:52.9963289Z               "line": 957
2026-06-13T11:05:52.9963388Z             },
2026-06-13T11:05:52.9963487Z             {
2026-06-13T11:05:52.9963649Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:05:52.9963761Z               "line": 1419
2026-06-13T11:05:52.9963861Z             },
2026-06-13T11:05:52.9963962Z             {
2026-06-13T11:05:52.9964118Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:05:52.9964233Z               "line": 1004
2026-06-13T11:05:52.9964343Z             }
2026-06-13T11:05:52.9964457Z           ]
2026-06-13T11:05:52.9964563Z         }
2026-06-13T11:05:52.9964672Z       }
2026-06-13T11:05:52.9964776Z     },
2026-06-13T11:05:52.9964887Z     {
2026-06-13T11:05:52.9965006Z       "id": "REQ-SUBNET-8",
2026-06-13T11:05:52.9966208Z       "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-13T11:05:52.9966330Z       "requiredStages": [
2026-06-13T11:05:52.9966440Z         "impl",
2026-06-13T11:05:52.9966549Z         "unit"
2026-06-13T11:05:52.9966656Z       ],
2026-06-13T11:05:52.9966771Z       "stages": {
2026-06-13T11:05:52.9966887Z         "doc": {
2026-06-13T11:05:52.9967005Z           "complete": false,
2026-06-13T11:05:52.9967125Z           "evidence": []
2026-06-13T11:05:52.9967230Z         },
2026-06-13T11:05:52.9967338Z         "impl": {
2026-06-13T11:05:52.9967454Z           "complete": true,
2026-06-13T11:05:52.9967572Z           "evidence": [
2026-06-13T11:05:52.9967677Z             {
2026-06-13T11:05:52.9967816Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9967934Z               "line": 2962
2026-06-13T11:05:52.9968040Z             },
2026-06-13T11:05:52.9968149Z             {
2026-06-13T11:05:52.9968283Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9968398Z               "line": 2991
2026-06-13T11:05:52.9968506Z             },
2026-06-13T11:05:52.9968612Z             {
2026-06-13T11:05:52.9968742Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9968854Z               "line": 3008
2026-06-13T11:05:52.9969054Z             },
2026-06-13T11:05:52.9969161Z             {
2026-06-13T11:05:52.9969290Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9969410Z               "line": 3031
2026-06-13T11:05:52.9969514Z             },
2026-06-13T11:05:52.9969629Z             {
2026-06-13T11:05:52.9969753Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9969872Z               "line": 3445
2026-06-13T11:05:52.9969973Z             }
2026-06-13T11:05:52.9970082Z           ]
2026-06-13T11:05:52.9970191Z         },
2026-06-13T11:05:52.9970297Z         "int": {
2026-06-13T11:05:52.9970516Z           "complete": false,
2026-06-13T11:05:52.9970636Z           "evidence": []
2026-06-13T11:05:52.9970750Z         },
2026-06-13T11:05:52.9970854Z         "unit": {
2026-06-13T11:05:52.9970975Z           "complete": true,
2026-06-13T11:05:52.9971093Z           "evidence": [
2026-06-13T11:05:52.9971193Z             {
2026-06-13T11:05:52.9971327Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9971528Z               "line": 7807
2026-06-13T11:05:52.9971637Z             },
2026-06-13T11:05:52.9971745Z             {
2026-06-13T11:05:52.9971873Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9971989Z               "line": 7823
2026-06-13T11:05:52.9972093Z             }
2026-06-13T11:05:52.9972208Z           ]
2026-06-13T11:05:52.9972318Z         }
2026-06-13T11:05:52.9972427Z       }
2026-06-13T11:05:52.9972528Z     },
2026-06-13T11:05:52.9972637Z     {
2026-06-13T11:05:52.9972755Z       "id": "REQ-TERM-1",
2026-06-13T11:05:52.9972961Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-13T11:05:52.9973084Z       "requiredStages": [
2026-06-13T11:05:52.9973191Z         "impl",
2026-06-13T11:05:52.9973304Z         "unit"
2026-06-13T11:05:52.9973413Z       ],
2026-06-13T11:05:52.9973529Z       "stages": {
2026-06-13T11:05:52.9973642Z         "doc": {
2026-06-13T11:05:52.9973757Z           "complete": false,
2026-06-13T11:05:52.9973872Z           "evidence": []
2026-06-13T11:05:52.9973981Z         },
2026-06-13T11:05:52.9974089Z         "impl": {
2026-06-13T11:05:52.9974209Z           "complete": true,
2026-06-13T11:05:52.9974321Z           "evidence": [
2026-06-13T11:05:52.9974431Z             {
2026-06-13T11:05:52.9974584Z               "path": "crates/spt-term/src/pty.rs",
2026-06-13T11:05:52.9974697Z               "line": 59
2026-06-13T11:05:52.9974803Z             },
2026-06-13T11:05:52.9974903Z             {
2026-06-13T11:05:52.9975041Z               "path": "crates/spt-term/src/pty.rs",
2026-06-13T11:05:52.9975147Z               "line": 171
2026-06-13T11:05:52.9975260Z             },
2026-06-13T11:05:52.9975361Z             {
2026-06-13T11:05:52.9975509Z               "path": "crates/spt-term/src/surface.rs",
2026-06-13T11:05:52.9975622Z               "line": 100
2026-06-13T11:05:52.9975734Z             }
2026-06-13T11:05:52.9975838Z           ]
2026-06-13T11:05:52.9975942Z         },
2026-06-13T11:05:52.9976053Z         "int": {
2026-06-13T11:05:52.9976171Z           "complete": false,
2026-06-13T11:05:52.9976285Z           "evidence": []
2026-06-13T11:05:52.9976382Z         },
2026-06-13T11:05:52.9976491Z         "unit": {
2026-06-13T11:05:52.9976610Z           "complete": true,
2026-06-13T11:05:52.9976726Z           "evidence": [
2026-06-13T11:05:52.9976829Z             {
2026-06-13T11:05:52.9976971Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-13T11:05:52.9977085Z               "line": 24
2026-06-13T11:05:52.9977183Z             },
2026-06-13T11:05:52.9977293Z             {
2026-06-13T11:05:52.9977432Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-13T11:05:52.9977550Z               "line": 56
2026-06-13T11:05:52.9977651Z             }
2026-06-13T11:05:52.9977751Z           ]
2026-06-13T11:05:52.9977855Z         }
2026-06-13T11:05:52.9977952Z       }
2026-06-13T11:05:52.9978052Z     },
2026-06-13T11:05:52.9978156Z     {
2026-06-13T11:05:52.9978271Z       "id": "REQ-TERM-2",
2026-06-13T11:05:52.9978494Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-13T11:05:52.9978610Z       "requiredStages": [
2026-06-13T11:05:52.9978719Z         "impl",
2026-06-13T11:05:52.9978814Z         "unit"
2026-06-13T11:05:52.9978925Z       ],
2026-06-13T11:05:52.9979110Z       "stages": {
2026-06-13T11:05:52.9979226Z         "doc": {
2026-06-13T11:05:52.9979339Z           "complete": false,
2026-06-13T11:05:52.9979457Z           "evidence": []
2026-06-13T11:05:52.9979566Z         },
2026-06-13T11:05:52.9979675Z         "impl": {
2026-06-13T11:05:52.9979798Z           "complete": true,
2026-06-13T11:05:52.9980023Z           "evidence": [
2026-06-13T11:05:52.9980132Z             {
2026-06-13T11:05:52.9980280Z               "path": "crates/spt-term/src/surface.rs",
2026-06-13T11:05:52.9980389Z               "line": 117
2026-06-13T11:05:52.9980499Z             },
2026-06-13T11:05:52.9980604Z             {
2026-06-13T11:05:52.9980746Z               "path": "crates/spt-term/src/surface.rs",
2026-06-13T11:05:52.9980947Z               "line": 127
2026-06-13T11:05:52.9981047Z             }
2026-06-13T11:05:52.9981153Z           ]
2026-06-13T11:05:52.9981257Z         },
2026-06-13T11:05:52.9981366Z         "int": {
2026-06-13T11:05:52.9981482Z           "complete": false,
2026-06-13T11:05:52.9981595Z           "evidence": []
2026-06-13T11:05:52.9981695Z         },
2026-06-13T11:05:52.9981806Z         "unit": {
2026-06-13T11:05:52.9981919Z           "complete": true,
2026-06-13T11:05:52.9982030Z           "evidence": [
2026-06-13T11:05:52.9982131Z             {
2026-06-13T11:05:52.9982272Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-13T11:05:52.9982390Z               "line": 46
2026-06-13T11:05:52.9982491Z             },
2026-06-13T11:05:52.9982596Z             {
2026-06-13T11:05:52.9982748Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-13T11:05:52.9982859Z               "line": 77
2026-06-13T11:05:52.9982968Z             }
2026-06-13T11:05:52.9983068Z           ]
2026-06-13T11:05:52.9983183Z         }
2026-06-13T11:05:52.9983277Z       }
2026-06-13T11:05:52.9983378Z     },
2026-06-13T11:05:52.9983488Z     {
2026-06-13T11:05:52.9983602Z       "id": "REQ-TERM-3",
2026-06-13T11:05:52.9983774Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-13T11:05:52.9983893Z       "requiredStages": [
2026-06-13T11:05:52.9984003Z         "impl",
2026-06-13T11:05:52.9984108Z         "unit"
2026-06-13T11:05:52.9984217Z       ],
2026-06-13T11:05:52.9984327Z       "stages": {
2026-06-13T11:05:52.9984432Z         "doc": {
2026-06-13T11:05:52.9984555Z           "complete": false,
2026-06-13T11:05:52.9984654Z           "evidence": []
2026-06-13T11:05:52.9984755Z         },
2026-06-13T11:05:52.9984863Z         "impl": {
2026-06-13T11:05:52.9984976Z           "complete": true,
2026-06-13T11:05:52.9985083Z           "evidence": [
2026-06-13T11:05:52.9985192Z             {
2026-06-13T11:05:52.9985340Z               "path": "crates/spt-term/src/stream.rs",
2026-06-13T11:05:52.9985454Z               "line": 71
2026-06-13T11:05:52.9985553Z             }
2026-06-13T11:05:52.9985650Z           ]
2026-06-13T11:05:52.9985759Z         },
2026-06-13T11:05:52.9985868Z         "int": {
2026-06-13T11:05:52.9985984Z           "complete": false,
2026-06-13T11:05:52.9986102Z           "evidence": []
2026-06-13T11:05:52.9986201Z         },
2026-06-13T11:05:52.9986308Z         "unit": {
2026-06-13T11:05:52.9986412Z           "complete": true,
2026-06-13T11:05:52.9986526Z           "evidence": [
2026-06-13T11:05:52.9986628Z             {
2026-06-13T11:05:52.9986764Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-13T11:05:52.9986880Z               "line": 37
2026-06-13T11:05:52.9986975Z             },
2026-06-13T11:05:52.9987075Z             {
2026-06-13T11:05:52.9987209Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-13T11:05:52.9987324Z               "line": 67
2026-06-13T11:05:52.9987431Z             }
2026-06-13T11:05:52.9987536Z           ]
2026-06-13T11:05:52.9987645Z         }
2026-06-13T11:05:52.9987744Z       }
2026-06-13T11:05:52.9987843Z     },
2026-06-13T11:05:52.9987940Z     {
2026-06-13T11:05:52.9988054Z       "id": "REQ-TERM-4",
2026-06-13T11:05:52.9988444Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-13T11:05:52.9988560Z       "requiredStages": [
2026-06-13T11:05:52.9988674Z         "impl",
2026-06-13T11:05:52.9988768Z         "unit",
2026-06-13T11:05:52.9988879Z         "int"
2026-06-13T11:05:52.9989064Z       ],
2026-06-13T11:05:52.9989175Z       "stages": {
2026-06-13T11:05:52.9989383Z         "doc": {
2026-06-13T11:05:52.9989495Z           "complete": true,
2026-06-13T11:05:52.9989608Z           "evidence": [
2026-06-13T11:05:52.9989708Z             {
2026-06-13T11:05:52.9989843Z               "path": "docs/MANIFEST.md",
2026-06-13T11:05:52.9989960Z               "line": 115
2026-06-13T11:05:52.9990064Z             }
2026-06-13T11:05:52.9990264Z           ]
2026-06-13T11:05:52.9990363Z         },
2026-06-13T11:05:52.9990477Z         "impl": {
2026-06-13T11:05:52.9990588Z           "complete": true,
2026-06-13T11:05:52.9990701Z           "evidence": [
2026-06-13T11:05:52.9990803Z             {
2026-06-13T11:05:52.9990944Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:52.9991064Z               "line": 759
2026-06-13T11:05:52.9991164Z             },
2026-06-13T11:05:52.9991259Z             {
2026-06-13T11:05:52.9991398Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:05:52.9991516Z               "line": 41
2026-06-13T11:05:52.9991626Z             },
2026-06-13T11:05:52.9991732Z             {
2026-06-13T11:05:52.9991870Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:05:52.9991980Z               "line": 91
2026-06-13T11:05:52.9992081Z             },
2026-06-13T11:05:52.9992174Z             {
2026-06-13T11:05:52.9992313Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:05:52.9992424Z               "line": 152
2026-06-13T11:05:52.9992537Z             },
2026-06-13T11:05:52.9992643Z             {
2026-06-13T11:05:52.9992781Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:05:52.9992899Z               "line": 221
2026-06-13T11:05:52.9992994Z             },
2026-06-13T11:05:52.9993105Z             {
2026-06-13T11:05:52.9993256Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:05:52.9993371Z               "line": 20
2026-06-13T11:05:52.9993476Z             },
2026-06-13T11:05:52.9993589Z             {
2026-06-13T11:05:52.9993743Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:05:52.9993852Z               "line": 222
2026-06-13T11:05:52.9993967Z             },
2026-06-13T11:05:52.9994072Z             {
2026-06-13T11:05:52.9994219Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:05:52.9994335Z               "line": 242
2026-06-13T11:05:52.9994439Z             },
2026-06-13T11:05:52.9994548Z             {
2026-06-13T11:05:52.9994697Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:52.9994810Z               "line": 699
2026-06-13T11:05:52.9994926Z             },
2026-06-13T11:05:52.9995030Z             {
2026-06-13T11:05:52.9995172Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:05:52.9995287Z               "line": 162
2026-06-13T11:05:52.9995394Z             },
2026-06-13T11:05:52.9995498Z             {
2026-06-13T11:05:52.9995638Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:05:52.9995756Z               "line": 206
2026-06-13T11:05:52.9995861Z             },
2026-06-13T11:05:52.9995972Z             {
2026-06-13T11:05:52.9996109Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:05:52.9996225Z               "line": 233
2026-06-13T11:05:52.9996333Z             },
2026-06-13T11:05:52.9996438Z             {
2026-06-13T11:05:52.9996577Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:52.9996695Z               "line": 926
2026-06-13T11:05:52.9996805Z             }
2026-06-13T11:05:52.9996906Z           ]
2026-06-13T11:05:52.9997015Z         },
2026-06-13T11:05:52.9997120Z         "int": {
2026-06-13T11:05:52.9997240Z           "complete": true,
2026-06-13T11:05:52.9997359Z           "evidence": [
2026-06-13T11:05:52.9997464Z             {
2026-06-13T11:05:52.9997615Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-13T11:05:52.9997725Z               "line": 18
2026-06-13T11:05:52.9997832Z             }
2026-06-13T11:05:52.9997944Z           ]
2026-06-13T11:05:52.9998130Z         },
2026-06-13T11:05:52.9998243Z         "unit": {
2026-06-13T11:05:52.9998360Z           "complete": true,
2026-06-13T11:05:52.9998476Z           "evidence": [
2026-06-13T11:05:52.9998581Z             {
2026-06-13T11:05:52.9998728Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:05:52.9998839Z               "line": 259
2026-06-13T11:05:52.9999028Z             },
2026-06-13T11:05:52.9999234Z             {
2026-06-13T11:05:52.9999377Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:05:52.9999492Z               "line": 277
2026-06-13T11:05:52.9999601Z             },
2026-06-13T11:05:52.9999706Z             {
2026-06-13T11:05:52.9999849Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:05:52.9999968Z               "line": 289
2026-06-13T11:05:53.0000078Z             },
2026-06-13T11:05:53.0000182Z             {
2026-06-13T11:05:53.0000331Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:05:53.0000451Z               "line": 304
2026-06-13T11:05:53.0000558Z             },
2026-06-13T11:05:53.0000668Z             {
2026-06-13T11:05:53.0000824Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:05:53.0000942Z               "line": 320
2026-06-13T11:05:53.0001042Z             },
2026-06-13T11:05:53.0001157Z             {
2026-06-13T11:05:53.0001295Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:05:53.0001414Z               "line": 346
2026-06-13T11:05:53.0001523Z             },
2026-06-13T11:05:53.0001639Z             {
2026-06-13T11:05:53.0001791Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:05:53.0001900Z               "line": 361
2026-06-13T11:05:53.0002016Z             },
2026-06-13T11:05:53.0002120Z             {
2026-06-13T11:05:53.0002268Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:05:53.0002378Z               "line": 391
2026-06-13T11:05:53.0002491Z             },
2026-06-13T11:05:53.0002598Z             {
2026-06-13T11:05:53.0002748Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:05:53.0002869Z               "line": 365
2026-06-13T11:05:53.0002975Z             },
2026-06-13T11:05:53.0003082Z             {
2026-06-13T11:05:53.0003237Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:05:53.0003351Z               "line": 382
2026-06-13T11:05:53.0003464Z             },
2026-06-13T11:05:53.0003573Z             {
2026-06-13T11:05:53.0003730Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:05:53.0003840Z               "line": 411
2026-06-13T11:05:53.0003950Z             },
2026-06-13T11:05:53.0004059Z             {
2026-06-13T11:05:53.0004213Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:05:53.0004332Z               "line": 428
2026-06-13T11:05:53.0004441Z             },
2026-06-13T11:05:53.0004547Z             {
2026-06-13T11:05:53.0004694Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:53.0004823Z               "line": 902
2026-06-13T11:05:53.0004932Z             },
2026-06-13T11:05:53.0005032Z             {
2026-06-13T11:05:53.0005181Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:53.0005294Z               "line": 909
2026-06-13T11:05:53.0005409Z             },
2026-06-13T11:05:53.0005511Z             {
2026-06-13T11:05:53.0005661Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:53.0005785Z               "line": 924
2026-06-13T11:05:53.0005889Z             },
2026-06-13T11:05:53.0005997Z             {
2026-06-13T11:05:53.0006135Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:05:53.0006250Z               "line": 420
2026-06-13T11:05:53.0006354Z             },
2026-06-13T11:05:53.0006464Z             {
2026-06-13T11:05:53.0006607Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:05:53.0006721Z               "line": 458
2026-06-13T11:05:53.0006832Z             },
2026-06-13T11:05:53.0007036Z             {
2026-06-13T11:05:53.0007184Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:05:53.0007298Z               "line": 471
2026-06-13T11:05:53.0007409Z             },
2026-06-13T11:05:53.0007513Z             {
2026-06-13T11:05:53.0007651Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:05:53.0007767Z               "line": 497
2026-06-13T11:05:53.0007952Z             },
2026-06-13T11:05:53.0008063Z             {
2026-06-13T11:05:53.0008199Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:05:53.0008320Z               "line": 524
2026-06-13T11:05:53.0008434Z             },
2026-06-13T11:05:53.0008538Z             {
2026-06-13T11:05:53.0008685Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-13T11:05:53.0008793Z               "line": 32
2026-06-13T11:05:53.0008906Z             },
2026-06-13T11:05:53.0009108Z             {
2026-06-13T11:05:53.0009240Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0009365Z               "line": 7374
2026-06-13T11:05:53.0009470Z             }
2026-06-13T11:05:53.0009578Z           ]
2026-06-13T11:05:53.0009685Z         }
2026-06-13T11:05:53.0009794Z       }
2026-06-13T11:05:53.0009898Z     },
2026-06-13T11:05:53.0010004Z     {
2026-06-13T11:05:53.0010133Z       "id": "REQ-UPD-1",
2026-06-13T11:05:53.0010276Z       "title": "Peer-propagated update over P2P",
2026-06-13T11:05:53.0010409Z       "requiredStages": [
2026-06-13T11:05:53.0010514Z         "impl",
2026-06-13T11:05:53.0010625Z         "unit",
2026-06-13T11:05:53.0010728Z         "int"
2026-06-13T11:05:53.0010838Z       ],
2026-06-13T11:05:53.0010949Z       "stages": {
2026-06-13T11:05:53.0011062Z         "doc": {
2026-06-13T11:05:53.0011180Z           "complete": false,
2026-06-13T11:05:53.0011290Z           "evidence": []
2026-06-13T11:05:53.0011398Z         },
2026-06-13T11:05:53.0011507Z         "impl": {
2026-06-13T11:05:53.0011627Z           "complete": true,
2026-06-13T11:05:53.0011741Z           "evidence": [
2026-06-13T11:05:53.0011850Z             {
2026-06-13T11:05:53.0012003Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0012112Z               "line": 28
2026-06-13T11:05:53.0012228Z             },
2026-06-13T11:05:53.0012337Z             {
2026-06-13T11:05:53.0012494Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0012604Z               "line": 103
2026-06-13T11:05:53.0012714Z             },
2026-06-13T11:05:53.0012823Z             {
2026-06-13T11:05:53.0012966Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0013085Z               "line": 342
2026-06-13T11:05:53.0013201Z             },
2026-06-13T11:05:53.0013309Z             {
2026-06-13T11:05:53.0013453Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0013563Z               "line": 22
2026-06-13T11:05:53.0013677Z             },
2026-06-13T11:05:53.0013768Z             {
2026-06-13T11:05:53.0013925Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0014042Z               "line": 207
2026-06-13T11:05:53.0014148Z             },
2026-06-13T11:05:53.0014249Z             {
2026-06-13T11:05:53.0014390Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0014506Z               "line": 283
2026-06-13T11:05:53.0014615Z             },
2026-06-13T11:05:53.0014719Z             {
2026-06-13T11:05:53.0014868Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0014977Z               "line": 340
2026-06-13T11:05:53.0015083Z             },
2026-06-13T11:05:53.0015192Z             {
2026-06-13T11:05:53.0015344Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:05:53.0015455Z               "line": 37
2026-06-13T11:05:53.0015559Z             }
2026-06-13T11:05:53.0015669Z           ]
2026-06-13T11:05:53.0015775Z         },
2026-06-13T11:05:53.0015878Z         "int": {
2026-06-13T11:05:53.0015998Z           "complete": true,
2026-06-13T11:05:53.0016197Z           "evidence": [
2026-06-13T11:05:53.0016306Z             {
2026-06-13T11:05:53.0016468Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:05:53.0016576Z               "line": 207
2026-06-13T11:05:53.0016685Z             },
2026-06-13T11:05:53.0016792Z             {
2026-06-13T11:05:53.0016938Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:05:53.0017144Z               "line": 987
2026-06-13T11:05:53.0017248Z             }
2026-06-13T11:05:53.0017359Z           ]
2026-06-13T11:05:53.0017459Z         },
2026-06-13T11:05:53.0017563Z         "unit": {
2026-06-13T11:05:53.0017679Z           "complete": true,
2026-06-13T11:05:53.0017797Z           "evidence": [
2026-06-13T11:05:53.0017892Z             {
2026-06-13T11:05:53.0018036Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0018144Z               "line": 490
2026-06-13T11:05:53.0018250Z             },
2026-06-13T11:05:53.0018351Z             {
2026-06-13T11:05:53.0018502Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0018608Z               "line": 616
2026-06-13T11:05:53.0018712Z             },
2026-06-13T11:05:53.0018812Z             {
2026-06-13T11:05:53.0019036Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T11:05:53.0019145Z               "line": 277
2026-06-13T11:05:53.0019250Z             },
2026-06-13T11:05:53.0019353Z             {
2026-06-13T11:05:53.0019500Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:05:53.0019615Z               "line": 124
2026-06-13T11:05:53.0019720Z             },
2026-06-13T11:05:53.0019824Z             {
2026-06-13T11:05:53.0019973Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:05:53.0020077Z               "line": 200
2026-06-13T11:05:53.0020178Z             }
2026-06-13T11:05:53.0020283Z           ]
2026-06-13T11:05:53.0020387Z         }
2026-06-13T11:05:53.0020493Z       }
2026-06-13T11:05:53.0020593Z     },
2026-06-13T11:05:53.0020711Z     {
2026-06-13T11:05:53.0020817Z       "id": "REQ-UPD-2",
2026-06-13T11:05:53.0020988Z       "title": "All binaries signature-verified before handoff",
2026-06-13T11:05:53.0021097Z       "requiredStages": [
2026-06-13T11:05:53.0021208Z         "impl",
2026-06-13T11:05:53.0021312Z         "unit"
2026-06-13T11:05:53.0021412Z       ],
2026-06-13T11:05:53.0021519Z       "stages": {
2026-06-13T11:05:53.0021622Z         "doc": {
2026-06-13T11:05:53.0021740Z           "complete": false,
2026-06-13T11:05:53.0021845Z           "evidence": []
2026-06-13T11:05:53.0021944Z         },
2026-06-13T11:05:53.0022057Z         "impl": {
2026-06-13T11:05:53.0022177Z           "complete": true,
2026-06-13T11:05:53.0022291Z           "evidence": [
2026-06-13T11:05:53.0022401Z             {
2026-06-13T11:05:53.0022554Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0022663Z               "line": 343
2026-06-13T11:05:53.0022769Z             },
2026-06-13T11:05:53.0022873Z             {
2026-06-13T11:05:53.0023035Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0023150Z               "line": 476
2026-06-13T11:05:53.0023255Z             },
2026-06-13T11:05:53.0023364Z             {
2026-06-13T11:05:53.0023512Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0023626Z               "line": 29
2026-06-13T11:05:53.0023742Z             },
2026-06-13T11:05:53.0023851Z             {
2026-06-13T11:05:53.0023999Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0024109Z               "line": 271
2026-06-13T11:05:53.0024227Z             },
2026-06-13T11:05:53.0024333Z             {
2026-06-13T11:05:53.0024485Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0024602Z               "line": 288
2026-06-13T11:05:53.0024708Z             },
2026-06-13T11:05:53.0024818Z             {
2026-06-13T11:05:53.0024960Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0025175Z               "line": 408
2026-06-13T11:05:53.0025284Z             },
2026-06-13T11:05:53.0025391Z             {
2026-06-13T11:05:53.0025537Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0025653Z               "line": 540
2026-06-13T11:05:53.0025761Z             },
2026-06-13T11:05:53.0025866Z             {
2026-06-13T11:05:53.0026011Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:05:53.0026214Z               "line": 155
2026-06-13T11:05:53.0026325Z             }
2026-06-13T11:05:53.0026433Z           ]
2026-06-13T11:05:53.0026539Z         },
2026-06-13T11:05:53.0026650Z         "int": {
2026-06-13T11:05:53.0026767Z           "complete": false,
2026-06-13T11:05:53.0026885Z           "evidence": []
2026-06-13T11:05:53.0026991Z         },
2026-06-13T11:05:53.0027107Z         "unit": {
2026-06-13T11:05:53.0027232Z           "complete": true,
2026-06-13T11:05:53.0027342Z           "evidence": [
2026-06-13T11:05:53.0027455Z             {
2026-06-13T11:05:53.0027599Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0027718Z               "line": 697
2026-06-13T11:05:53.0027823Z             },
2026-06-13T11:05:53.0027934Z             {
2026-06-13T11:05:53.0028075Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0028191Z               "line": 758
2026-06-13T11:05:53.0028300Z             },
2026-06-13T11:05:53.0028409Z             {
2026-06-13T11:05:53.0028553Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0028667Z               "line": 772
2026-06-13T11:05:53.0028781Z             },
2026-06-13T11:05:53.0028887Z             {
2026-06-13T11:05:53.0029125Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0029244Z               "line": 788
2026-06-13T11:05:53.0029349Z             },
2026-06-13T11:05:53.0029464Z             {
2026-06-13T11:05:53.0029610Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0029733Z               "line": 879
2026-06-13T11:05:53.0029839Z             },
2026-06-13T11:05:53.0029946Z             {
2026-06-13T11:05:53.0030099Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:05:53.0030209Z               "line": 414
2026-06-13T11:05:53.0030318Z             },
2026-06-13T11:05:53.0030423Z             {
2026-06-13T11:05:53.0030576Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:05:53.0030690Z               "line": 427
2026-06-13T11:05:53.0030805Z             },
2026-06-13T11:05:53.0030910Z             {
2026-06-13T11:05:53.0031067Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T11:05:53.0031181Z               "line": 410
2026-06-13T11:05:53.0031295Z             }
2026-06-13T11:05:53.0031396Z           ]
2026-06-13T11:05:53.0031510Z         }
2026-06-13T11:05:53.0031615Z       }
2026-06-13T11:05:53.0031721Z     },
2026-06-13T11:05:53.0031830Z     {
2026-06-13T11:05:53.0031944Z       "id": "REQ-UPD-3",
2026-06-13T11:05:53.0032149Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-13T11:05:53.0032272Z       "requiredStages": [
2026-06-13T11:05:53.0032391Z         "impl",
2026-06-13T11:05:53.0032499Z         "unit",
2026-06-13T11:05:53.0032607Z         "int"
2026-06-13T11:05:53.0032714Z       ],
2026-06-13T11:05:53.0032823Z       "stages": {
2026-06-13T11:05:53.0032932Z         "doc": {
2026-06-13T11:05:53.0033052Z           "complete": false,
2026-06-13T11:05:53.0033171Z           "evidence": []
2026-06-13T11:05:53.0033280Z         },
2026-06-13T11:05:53.0033395Z         "impl": {
2026-06-13T11:05:53.0033509Z           "complete": true,
2026-06-13T11:05:53.0033624Z           "evidence": [
2026-06-13T11:05:53.0033724Z             {
2026-06-13T11:05:53.0033876Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0033997Z               "line": 40
2026-06-13T11:05:53.0034091Z             },
2026-06-13T11:05:53.0034200Z             {
2026-06-13T11:05:53.0034429Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0034544Z               "line": 87
2026-06-13T11:05:53.0034645Z             },
2026-06-13T11:05:53.0034744Z             {
2026-06-13T11:05:53.0034884Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:05:53.0034993Z               "line": 935
2026-06-13T11:05:53.0035101Z             },
2026-06-13T11:05:53.0035297Z             {
2026-06-13T11:05:53.0035439Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:05:53.0035549Z               "line": 717
2026-06-13T11:05:53.0035659Z             },
2026-06-13T11:05:53.0035759Z             {
2026-06-13T11:05:53.0035893Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:05:53.0036007Z               "line": 26
2026-06-13T11:05:53.0036116Z             },
2026-06-13T11:05:53.0036227Z             {
2026-06-13T11:05:53.0036370Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:05:53.0036484Z               "line": 114
2026-06-13T11:05:53.0036589Z             },
2026-06-13T11:05:53.0036694Z             {
2026-06-13T11:05:53.0036838Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:05:53.0036956Z               "line": 246
2026-06-13T11:05:53.0037065Z             },
2026-06-13T11:05:53.0037162Z             {
2026-06-13T11:05:53.0037299Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0037417Z               "line": 1906
2026-06-13T11:05:53.0037522Z             }
2026-06-13T11:05:53.0037635Z           ]
2026-06-13T11:05:53.0037739Z         },
2026-06-13T11:05:53.0037854Z         "int": {
2026-06-13T11:05:53.0037968Z           "complete": true,
2026-06-13T11:05:53.0038073Z           "evidence": [
2026-06-13T11:05:53.0038184Z             {
2026-06-13T11:05:53.0038330Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-13T11:05:53.0038445Z               "line": 58
2026-06-13T11:05:53.0038550Z             }
2026-06-13T11:05:53.0038654Z           ]
2026-06-13T11:05:53.0038756Z         },
2026-06-13T11:05:53.0038855Z         "unit": {
2026-06-13T11:05:53.0039045Z           "complete": true,
2026-06-13T11:05:53.0039161Z           "evidence": [
2026-06-13T11:05:53.0039265Z             {
2026-06-13T11:05:53.0039414Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0039532Z               "line": 532
2026-06-13T11:05:53.0039641Z             },
2026-06-13T11:05:53.0042252Z             {
2026-06-13T11:05:53.0042451Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0042572Z               "line": 582
2026-06-13T11:05:53.0042672Z             },
2026-06-13T11:05:53.0042780Z             {
2026-06-13T11:05:53.0042942Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0043059Z               "line": 650
2026-06-13T11:05:53.0043163Z             },
2026-06-13T11:05:53.0043278Z             {
2026-06-13T11:05:53.0043431Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:05:53.0043550Z               "line": 1062
2026-06-13T11:05:53.0043665Z             },
2026-06-13T11:05:53.0043778Z             {
2026-06-13T11:05:53.0043932Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:05:53.0044041Z               "line": 271
2026-06-13T11:05:53.0044155Z             },
2026-06-13T11:05:53.0044256Z             {
2026-06-13T11:05:53.0044408Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:05:53.0044523Z               "line": 295
2026-06-13T11:05:53.0044637Z             },
2026-06-13T11:05:53.0044747Z             {
2026-06-13T11:05:53.0044891Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:05:53.0045013Z               "line": 316
2026-06-13T11:05:53.0045119Z             },
2026-06-13T11:05:53.0045229Z             {
2026-06-13T11:05:53.0045371Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:05:53.0045487Z               "line": 332
2026-06-13T11:05:53.0045595Z             }
2026-06-13T11:05:53.0045704Z           ]
2026-06-13T11:05:53.0045943Z         }
2026-06-13T11:05:53.0046051Z       }
2026-06-13T11:05:53.0046157Z     },
2026-06-13T11:05:53.0046263Z     {
2026-06-13T11:05:53.0046380Z       "id": "REQ-UPD-4",
2026-06-13T11:05:53.0046606Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-13T11:05:53.0046725Z       "requiredStages": [
2026-06-13T11:05:53.0046834Z         "impl",
2026-06-13T11:05:53.0047054Z         "unit"
2026-06-13T11:05:53.0047159Z       ],
2026-06-13T11:05:53.0047268Z       "stages": {
2026-06-13T11:05:53.0047373Z         "doc": {
2026-06-13T11:05:53.0047498Z           "complete": false,
2026-06-13T11:05:53.0047611Z           "evidence": []
2026-06-13T11:05:53.0047717Z         },
2026-06-13T11:05:53.0047827Z         "impl": {
2026-06-13T11:05:53.0047944Z           "complete": true,
2026-06-13T11:05:53.0048054Z           "evidence": [
2026-06-13T11:05:53.0048167Z             {
2026-06-13T11:05:53.0048327Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0048448Z               "line": 41
2026-06-13T11:05:53.0048557Z             },
2026-06-13T11:05:53.0048661Z             {
2026-06-13T11:05:53.0048815Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0048928Z               "line": 88
2026-06-13T11:05:53.0049119Z             },
2026-06-13T11:05:53.0049228Z             {
2026-06-13T11:05:53.0049378Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T11:05:53.0049496Z               "line": 23
2026-06-13T11:05:53.0049601Z             },
2026-06-13T11:05:53.0049707Z             {
2026-06-13T11:05:53.0049854Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T11:05:53.0049974Z               "line": 56
2026-06-13T11:05:53.0050083Z             },
2026-06-13T11:05:53.0050187Z             {
2026-06-13T11:05:53.0050332Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T11:05:53.0050439Z               "line": 77
2026-06-13T11:05:53.0050551Z             },
2026-06-13T11:05:53.0050666Z             {
2026-06-13T11:05:53.0050811Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:05:53.0050926Z               "line": 186
2026-06-13T11:05:53.0051034Z             },
2026-06-13T11:05:53.0051137Z             {
2026-06-13T11:05:53.0051286Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:05:53.0051401Z               "line": 108
2026-06-13T11:05:53.0051514Z             },
2026-06-13T11:05:53.0051625Z             {
2026-06-13T11:05:53.0051767Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:53.0051882Z               "line": 170
2026-06-13T11:05:53.0051991Z             },
2026-06-13T11:05:53.0052096Z             {
2026-06-13T11:05:53.0052226Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0052339Z               "line": 1905
2026-06-13T11:05:53.0052444Z             }
2026-06-13T11:05:53.0052550Z           ]
2026-06-13T11:05:53.0052659Z         },
2026-06-13T11:05:53.0052769Z         "int": {
2026-06-13T11:05:53.0052884Z           "complete": false,
2026-06-13T11:05:53.0052997Z           "evidence": []
2026-06-13T11:05:53.0053107Z         },
2026-06-13T11:05:53.0053214Z         "unit": {
2026-06-13T11:05:53.0053335Z           "complete": true,
2026-06-13T11:05:53.0053449Z           "evidence": [
2026-06-13T11:05:53.0053559Z             {
2026-06-13T11:05:53.0053704Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0053819Z               "line": 578
2026-06-13T11:05:53.0053929Z             },
2026-06-13T11:05:53.0054029Z             {
2026-06-13T11:05:53.0054177Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0054282Z               "line": 703
2026-06-13T11:05:53.0054391Z             },
2026-06-13T11:05:53.0054488Z             {
2026-06-13T11:05:53.0054634Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:05:53.0054745Z               "line": 384
2026-06-13T11:05:53.0054840Z             },
2026-06-13T11:05:53.0054949Z             {
2026-06-13T11:05:53.0055178Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T11:05:53.0055292Z               "line": 102
2026-06-13T11:05:53.0055388Z             },
2026-06-13T11:05:53.0055488Z             {
2026-06-13T11:05:53.0055641Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T11:05:53.0055752Z               "line": 123
2026-06-13T11:05:53.0055951Z             },
2026-06-13T11:05:53.0056047Z             {
2026-06-13T11:05:53.0056183Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T11:05:53.0056297Z               "line": 142
2026-06-13T11:05:53.0056403Z             },
2026-06-13T11:05:53.0056508Z             {
2026-06-13T11:05:53.0056645Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:05:53.0056761Z               "line": 386
2026-06-13T11:05:53.0056860Z             },
2026-06-13T11:05:53.0056955Z             {
2026-06-13T11:05:53.0057089Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:05:53.0057208Z               "line": 566
2026-06-13T11:05:53.0057304Z             },
2026-06-13T11:05:53.0057404Z             {
2026-06-13T11:05:53.0057537Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0057648Z               "line": 6051
2026-06-13T11:05:53.0057747Z             }
2026-06-13T11:05:53.0057842Z           ]
2026-06-13T11:05:53.0057943Z         }
2026-06-13T11:05:53.0058043Z       }
2026-06-13T11:05:53.0058147Z     },
2026-06-13T11:05:53.0058248Z     {
2026-06-13T11:05:53.0058353Z       "id": "REQ-UPD-5",
2026-06-13T11:05:53.0058528Z       "title": "spt-core ripple-updates registered adapters",
2026-06-13T11:05:53.0058642Z       "requiredStages": [
2026-06-13T11:05:53.0058750Z         "impl",
2026-06-13T11:05:53.0058859Z         "unit"
2026-06-13T11:05:53.0059042Z       ],
2026-06-13T11:05:53.0059154Z       "stages": {
2026-06-13T11:05:53.0059256Z         "doc": {
2026-06-13T11:05:53.0059375Z           "complete": false,
2026-06-13T11:05:53.0059488Z           "evidence": []
2026-06-13T11:05:53.0059590Z         },
2026-06-13T11:05:53.0059704Z         "impl": {
2026-06-13T11:05:53.0059817Z           "complete": true,
2026-06-13T11:05:53.0059933Z           "evidence": [
2026-06-13T11:05:53.0060028Z             {
2026-06-13T11:05:53.0060185Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:53.0060286Z               "line": 27
2026-06-13T11:05:53.0060395Z             },
2026-06-13T11:05:53.0060505Z             {
2026-06-13T11:05:53.0060662Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:53.0060771Z               "line": 82
2026-06-13T11:05:53.0060868Z             },
2026-06-13T11:05:53.0060967Z             {
2026-06-13T11:05:53.0061120Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:53.0061235Z               "line": 134
2026-06-13T11:05:53.0061343Z             },
2026-06-13T11:05:53.0061442Z             {
2026-06-13T11:05:53.0061580Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0061683Z               "line": 492
2026-06-13T11:05:53.0061789Z             },
2026-06-13T11:05:53.0061889Z             {
2026-06-13T11:05:53.0062026Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0062132Z               "line": 528
2026-06-13T11:05:53.0062237Z             }
2026-06-13T11:05:53.0062336Z           ]
2026-06-13T11:05:53.0062438Z         },
2026-06-13T11:05:53.0062547Z         "int": {
2026-06-13T11:05:53.0062665Z           "complete": false,
2026-06-13T11:05:53.0062776Z           "evidence": []
2026-06-13T11:05:53.0062880Z         },
2026-06-13T11:05:53.0062980Z         "unit": {
2026-06-13T11:05:53.0063096Z           "complete": true,
2026-06-13T11:05:53.0063205Z           "evidence": [
2026-06-13T11:05:53.0063309Z             {
2026-06-13T11:05:53.0063468Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:53.0063581Z               "line": 232
2026-06-13T11:05:53.0063692Z             },
2026-06-13T11:05:53.0063792Z             {
2026-06-13T11:05:53.0064034Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:53.0064152Z               "line": 246
2026-06-13T11:05:53.0064250Z             },
2026-06-13T11:05:53.0064356Z             {
2026-06-13T11:05:53.0064504Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:53.0064613Z               "line": 260
2026-06-13T11:05:53.0064809Z             },
2026-06-13T11:05:53.0064908Z             {
2026-06-13T11:05:53.0065053Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:53.0065162Z               "line": 274
2026-06-13T11:05:53.0065261Z             },
2026-06-13T11:05:53.0065362Z             {
2026-06-13T11:05:53.0065514Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:05:53.0065634Z               "line": 308
2026-06-13T11:05:53.0065734Z             },
2026-06-13T11:05:53.0065838Z             {
2026-06-13T11:05:53.0065992Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:05:53.0066105Z               "line": 866
2026-06-13T11:05:53.0066201Z             }
2026-06-13T11:05:53.0066302Z           ]
2026-06-13T11:05:53.0066405Z         }
2026-06-13T11:05:53.0066511Z       }
2026-06-13T11:05:53.0066612Z     },
2026-06-13T11:05:53.0066715Z     {
2026-06-13T11:05:53.0066834Z       "id": "REQ-UPD-6",
2026-06-13T11:05:53.0067688Z       "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-13T11:05:53.0067806Z       "requiredStages": [
2026-06-13T11:05:53.0067903Z         "doc",
2026-06-13T11:05:53.0068007Z         "impl",
2026-06-13T11:05:53.0068116Z         "unit",
2026-06-13T11:05:53.0068218Z         "int"
2026-06-13T11:05:53.0068321Z       ],
2026-06-13T11:05:53.0068436Z       "stages": {
2026-06-13T11:05:53.0068533Z         "doc": {
2026-06-13T11:05:53.0068646Z           "complete": true,
2026-06-13T11:05:53.0068760Z           "evidence": [
2026-06-13T11:05:53.0068876Z             {
2026-06-13T11:05:53.0069112Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-13T11:05:53.0069226Z               "line": 3
2026-06-13T11:05:53.0069324Z             },
2026-06-13T11:05:53.0069424Z             {
2026-06-13T11:05:53.0069559Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-13T11:05:53.0069682Z               "line": 3
2026-06-13T11:05:53.0069786Z             },
2026-06-13T11:05:53.0069878Z             {
2026-06-13T11:05:53.0070063Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-13T11:05:53.0070174Z               "line": 3
2026-06-13T11:05:53.0070278Z             }
2026-06-13T11:05:53.0070372Z           ]
2026-06-13T11:05:53.0070474Z         },
2026-06-13T11:05:53.0070583Z         "impl": {
2026-06-13T11:05:53.0070697Z           "complete": true,
2026-06-13T11:05:53.0070817Z           "evidence": [
2026-06-13T11:05:53.0070917Z             {
2026-06-13T11:05:53.0071070Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0071175Z               "line": 76
2026-06-13T11:05:53.0071284Z             },
2026-06-13T11:05:53.0071395Z             {
2026-06-13T11:05:53.0071532Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0071646Z               "line": 212
2026-06-13T11:05:53.0071743Z             },
2026-06-13T11:05:53.0071842Z             {
2026-06-13T11:05:53.0071984Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0072098Z               "line": 69
2026-06-13T11:05:53.0072206Z             },
2026-06-13T11:05:53.0072305Z             {
2026-06-13T11:05:53.0072454Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0072568Z               "line": 133
2026-06-13T11:05:53.0072668Z             },
2026-06-13T11:05:53.0072769Z             {
2026-06-13T11:05:53.0073008Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0073121Z               "line": 243
2026-06-13T11:05:53.0073216Z             },
2026-06-13T11:05:53.0073322Z             {
2026-06-13T11:05:53.0073469Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0073579Z               "line": 406
2026-06-13T11:05:53.0073680Z             },
2026-06-13T11:05:53.0073874Z             {
2026-06-13T11:05:53.0074028Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0074141Z               "line": 534
2026-06-13T11:05:53.0074247Z             },
2026-06-13T11:05:53.0074352Z             {
2026-06-13T11:05:53.0074498Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0074613Z               "line": 548
2026-06-13T11:05:53.0074721Z             },
2026-06-13T11:05:53.0074815Z             {
2026-06-13T11:05:53.0074954Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0075069Z               "line": 603
2026-06-13T11:05:53.0075163Z             },
2026-06-13T11:05:53.0075269Z             {
2026-06-13T11:05:53.0075412Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0075511Z               "line": 634
2026-06-13T11:05:53.0075617Z             },
2026-06-13T11:05:53.0075717Z             {
2026-06-13T11:05:53.0075879Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-13T11:05:53.0075993Z               "line": 137
2026-06-13T11:05:53.0076093Z             },
2026-06-13T11:05:53.0076194Z             {
2026-06-13T11:05:53.0076336Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-13T11:05:53.0076446Z               "line": 184
2026-06-13T11:05:53.0076547Z             },
2026-06-13T11:05:53.0076655Z             {
2026-06-13T11:05:53.0076804Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0076915Z               "line": 78
2026-06-13T11:05:53.0077018Z             },
2026-06-13T11:05:53.0077119Z             {
2026-06-13T11:05:53.0077257Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0077361Z               "line": 114
2026-06-13T11:05:53.0077461Z             },
2026-06-13T11:05:53.0077557Z             {
2026-06-13T11:05:53.0077699Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0077814Z               "line": 185
2026-06-13T11:05:53.0077919Z             },
2026-06-13T11:05:53.0078023Z             {
2026-06-13T11:05:53.0078158Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0078272Z               "line": 260
2026-06-13T11:05:53.0078371Z             },
2026-06-13T11:05:53.0078477Z             {
2026-06-13T11:05:53.0078619Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0078729Z               "line": 292
2026-06-13T11:05:53.0078839Z             },
2026-06-13T11:05:53.0078939Z             {
2026-06-13T11:05:53.0079163Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0079277Z               "line": 323
2026-06-13T11:05:53.0079378Z             },
2026-06-13T11:05:53.0079483Z             {
2026-06-13T11:05:53.0079620Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0079734Z               "line": 346
2026-06-13T11:05:53.0079833Z             },
2026-06-13T11:05:53.0079932Z             {
2026-06-13T11:05:53.0080076Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0080185Z               "line": 388
2026-06-13T11:05:53.0080294Z             },
2026-06-13T11:05:53.0080395Z             {
2026-06-13T11:05:53.0080528Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0080637Z               "line": 398
2026-06-13T11:05:53.0080743Z             },
2026-06-13T11:05:53.0080847Z             {
2026-06-13T11:05:53.0080991Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0081101Z               "line": 410
2026-06-13T11:05:53.0081205Z             },
2026-06-13T11:05:53.0081429Z             {
2026-06-13T11:05:53.0081577Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0081702Z               "line": 420
2026-06-13T11:05:53.0081815Z             },
2026-06-13T11:05:53.0081921Z             {
2026-06-13T11:05:53.0082068Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0082178Z               "line": 439
2026-06-13T11:05:53.0082402Z             },
2026-06-13T11:05:53.0082510Z             {
2026-06-13T11:05:53.0082658Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0082776Z               "line": 449
2026-06-13T11:05:53.0082880Z             },
2026-06-13T11:05:53.0082986Z             {
2026-06-13T11:05:53.0083133Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0083248Z               "line": 94
2026-06-13T11:05:53.0083353Z             },
2026-06-13T11:05:53.0083466Z             {
2026-06-13T11:05:53.0083620Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0083734Z               "line": 120
2026-06-13T11:05:53.0083844Z             },
2026-06-13T11:05:53.0083949Z             {
2026-06-13T11:05:53.0084096Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0084212Z               "line": 135
2026-06-13T11:05:53.0084320Z             },
2026-06-13T11:05:53.0084430Z             {
2026-06-13T11:05:53.0084574Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0084687Z               "line": 162
2026-06-13T11:05:53.0084793Z             },
2026-06-13T11:05:53.0084898Z             {
2026-06-13T11:05:53.0085053Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0085168Z               "line": 174
2026-06-13T11:05:53.0085277Z             },
2026-06-13T11:05:53.0085380Z             {
2026-06-13T11:05:53.0085528Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0085648Z               "line": 185
2026-06-13T11:05:53.0085757Z             },
2026-06-13T11:05:53.0085868Z             {
2026-06-13T11:05:53.0086018Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0086134Z               "line": 451
2026-06-13T11:05:53.0086243Z             },
2026-06-13T11:05:53.0086357Z             {
2026-06-13T11:05:53.0086497Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0086616Z               "line": 555
2026-06-13T11:05:53.0086725Z             },
2026-06-13T11:05:53.0086835Z             {
2026-06-13T11:05:53.0086987Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:05:53.0087102Z               "line": 171
2026-06-13T11:05:53.0087211Z             },
2026-06-13T11:05:53.0087316Z             {
2026-06-13T11:05:53.0087465Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:05:53.0087578Z               "line": 65
2026-06-13T11:05:53.0087689Z             },
2026-06-13T11:05:53.0087799Z             {
2026-06-13T11:05:53.0087945Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:05:53.0088059Z               "line": 71
2026-06-13T11:05:53.0088165Z             },
2026-06-13T11:05:53.0088273Z             {
2026-06-13T11:05:53.0088418Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:05:53.0088526Z               "line": 77
2026-06-13T11:05:53.0088635Z             },
2026-06-13T11:05:53.0088742Z             {
2026-06-13T11:05:53.0088888Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:53.0089080Z               "line": 778
2026-06-13T11:05:53.0089189Z             },
2026-06-13T11:05:53.0089299Z             {
2026-06-13T11:05:53.0089432Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:53.0089546Z               "line": 795
2026-06-13T11:05:53.0089653Z             },
2026-06-13T11:05:53.0089766Z             {
2026-06-13T11:05:53.0089895Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:53.0090011Z               "line": 838
2026-06-13T11:05:53.0090123Z             },
2026-06-13T11:05:53.0090328Z             {
2026-06-13T11:05:53.0090468Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:53.0090583Z               "line": 981
2026-06-13T11:05:53.0090693Z             },
2026-06-13T11:05:53.0090802Z             {
2026-06-13T11:05:53.0090945Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:53.0091060Z               "line": 1131
2026-06-13T11:05:53.0091256Z             }
2026-06-13T11:05:53.0091365Z           ]
2026-06-13T11:05:53.0091469Z         },
2026-06-13T11:05:53.0091580Z         "int": {
2026-06-13T11:05:53.0091689Z           "complete": true,
2026-06-13T11:05:53.0091808Z           "evidence": [
2026-06-13T11:05:53.0091914Z             {
2026-06-13T11:05:53.0092070Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T11:05:53.0092176Z               "line": 569
2026-06-13T11:05:53.0092281Z             },
2026-06-13T11:05:53.0092385Z             {
2026-06-13T11:05:53.0092529Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-13T11:05:53.0092647Z               "line": 135
2026-06-13T11:05:53.0092762Z             }
2026-06-13T11:05:53.0092859Z           ]
2026-06-13T11:05:53.0092971Z         },
2026-06-13T11:05:53.0093075Z         "unit": {
2026-06-13T11:05:53.0093200Z           "complete": true,
2026-06-13T11:05:53.0093312Z           "evidence": [
2026-06-13T11:05:53.0093411Z             {
2026-06-13T11:05:53.0093570Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0093669Z               "line": 623
2026-06-13T11:05:53.0093779Z             },
2026-06-13T11:05:53.0093880Z             {
2026-06-13T11:05:53.0094031Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0094147Z               "line": 672
2026-06-13T11:05:53.0094247Z             },
2026-06-13T11:05:53.0094351Z             {
2026-06-13T11:05:53.0094499Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:05:53.0094614Z               "line": 696
2026-06-13T11:05:53.0094718Z             },
2026-06-13T11:05:53.0094828Z             {
2026-06-13T11:05:53.0094981Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0095092Z               "line": 513
2026-06-13T11:05:53.0095200Z             },
2026-06-13T11:05:53.0095296Z             {
2026-06-13T11:05:53.0095444Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0095557Z               "line": 638
2026-06-13T11:05:53.0095666Z             },
2026-06-13T11:05:53.0095766Z             {
2026-06-13T11:05:53.0095907Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0096016Z               "line": 675
2026-06-13T11:05:53.0096123Z             },
2026-06-13T11:05:53.0096231Z             {
2026-06-13T11:05:53.0096370Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0096484Z               "line": 894
2026-06-13T11:05:53.0096588Z             },
2026-06-13T11:05:53.0096685Z             {
2026-06-13T11:05:53.0096832Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0096941Z               "line": 916
2026-06-13T11:05:53.0097052Z             },
2026-06-13T11:05:53.0097146Z             {
2026-06-13T11:05:53.0097285Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0097395Z               "line": 933
2026-06-13T11:05:53.0097505Z             },
2026-06-13T11:05:53.0097614Z             {
2026-06-13T11:05:53.0097752Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0097866Z               "line": 948
2026-06-13T11:05:53.0097964Z             },
2026-06-13T11:05:53.0098072Z             {
2026-06-13T11:05:53.0098220Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0098373Z               "line": 974
2026-06-13T11:05:53.0098481Z             },
2026-06-13T11:05:53.0098581Z             {
2026-06-13T11:05:53.0098716Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:05:53.0098833Z               "line": 457
2026-06-13T11:05:53.0099138Z             },
2026-06-13T11:05:53.0099254Z             {
2026-06-13T11:05:53.0099407Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T11:05:53.0099525Z               "line": 338
2026-06-13T11:05:53.0099631Z             },
2026-06-13T11:05:53.0099735Z             {
2026-06-13T11:05:53.0099874Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0100087Z               "line": 8114
2026-06-13T11:05:53.0100199Z             },
2026-06-13T11:05:53.0100298Z             {
2026-06-13T11:05:53.0100450Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:53.0100566Z               "line": 1260
2026-06-13T11:05:53.0100673Z             },
2026-06-13T11:05:53.0100787Z             {
2026-06-13T11:05:53.0100930Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-13T11:05:53.0101043Z               "line": 130
2026-06-13T11:05:53.0101143Z             }
2026-06-13T11:05:53.0101248Z           ]
2026-06-13T11:05:53.0101348Z         }
2026-06-13T11:05:53.0101467Z       }
2026-06-13T11:05:53.0101577Z     },
2026-06-13T11:05:53.0101672Z     {
2026-06-13T11:05:53.0101792Z       "id": "REQ-UPD-7",
2026-06-13T11:05:53.0103905Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-13T11:05:53.0104029Z       "requiredStages": [
2026-06-13T11:05:53.0104140Z         "impl",
2026-06-13T11:05:53.0104239Z         "unit"
2026-06-13T11:05:53.0104349Z       ],
2026-06-13T11:05:53.0104449Z       "stages": {
2026-06-13T11:05:53.0104563Z         "doc": {
2026-06-13T11:05:53.0104683Z           "complete": false,
2026-06-13T11:05:53.0104797Z           "evidence": []
2026-06-13T11:05:53.0104906Z         },
2026-06-13T11:05:53.0105012Z         "impl": {
2026-06-13T11:05:53.0105131Z           "complete": true,
2026-06-13T11:05:53.0105240Z           "evidence": [
2026-06-13T11:05:53.0105356Z             {
2026-06-13T11:05:53.0105493Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0105608Z               "line": 2010
2026-06-13T11:05:53.0105718Z             }
2026-06-13T11:05:53.0105817Z           ]
2026-06-13T11:05:53.0105933Z         },
2026-06-13T11:05:53.0106042Z         "int": {
2026-06-13T11:05:53.0106160Z           "complete": false,
2026-06-13T11:05:53.0106274Z           "evidence": []
2026-06-13T11:05:53.0106378Z         },
2026-06-13T11:05:53.0106482Z         "unit": {
2026-06-13T11:05:53.0106591Z           "complete": true,
2026-06-13T11:05:53.0106711Z           "evidence": [
2026-06-13T11:05:53.0106810Z             {
2026-06-13T11:05:53.0106945Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0107064Z               "line": 8090
2026-06-13T11:05:53.0107162Z             }
2026-06-13T11:05:53.0107274Z           ]
2026-06-13T11:05:53.0107378Z         }
2026-06-13T11:05:53.0107491Z       }
2026-06-13T11:05:53.0107589Z     },
2026-06-13T11:05:53.0107688Z     {
2026-06-13T11:05:53.0107802Z       "id": "REQ-UPD-8",
2026-06-13T11:05:53.0110510Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-13T11:05:53.0110643Z       "requiredStages": [
2026-06-13T11:05:53.0110844Z         "impl",
2026-06-13T11:05:53.0110958Z         "unit"
2026-06-13T11:05:53.0111063Z       ],
2026-06-13T11:05:53.0111173Z       "stages": {
2026-06-13T11:05:53.0111281Z         "doc": {
2026-06-13T11:05:53.0111396Z           "complete": false,
2026-06-13T11:05:53.0111514Z           "evidence": []
2026-06-13T11:05:53.0111622Z         },
2026-06-13T11:05:53.0111732Z         "impl": {
2026-06-13T11:05:53.0111847Z           "complete": true,
2026-06-13T11:05:53.0111960Z           "evidence": [
2026-06-13T11:05:53.0112070Z             {
2026-06-13T11:05:53.0112237Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0112352Z               "line": 77
2026-06-13T11:05:53.0112461Z             },
2026-06-13T11:05:53.0112565Z             {
2026-06-13T11:05:53.0112720Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0112834Z               "line": 49
2026-06-13T11:05:53.0112943Z             },
2026-06-13T11:05:53.0113053Z             {
2026-06-13T11:05:53.0113200Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0113316Z               "line": 152
2026-06-13T11:05:53.0113420Z             },
2026-06-13T11:05:53.0113529Z             {
2026-06-13T11:05:53.0113674Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0113791Z               "line": 215
2026-06-13T11:05:53.0113897Z             },
2026-06-13T11:05:53.0114003Z             {
2026-06-13T11:05:53.0114153Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0114268Z               "line": 230
2026-06-13T11:05:53.0114381Z             },
2026-06-13T11:05:53.0114489Z             {
2026-06-13T11:05:53.0114637Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0114752Z               "line": 247
2026-06-13T11:05:53.0114860Z             },
2026-06-13T11:05:53.0114972Z             {
2026-06-13T11:05:53.0115113Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0115233Z               "line": 269
2026-06-13T11:05:53.0115338Z             },
2026-06-13T11:05:53.0115447Z             {
2026-06-13T11:05:53.0115601Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0115715Z               "line": 66
2026-06-13T11:05:53.0115824Z             },
2026-06-13T11:05:53.0115930Z             {
2026-06-13T11:05:53.0116081Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:05:53.0116192Z               "line": 154
2026-06-13T11:05:53.0116311Z             },
2026-06-13T11:05:53.0116425Z             {
2026-06-13T11:05:53.0116560Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0116677Z               "line": 1884
2026-06-13T11:05:53.0116781Z             },
2026-06-13T11:05:53.0116891Z             {
2026-06-13T11:05:53.0117018Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0117137Z               "line": 1957
2026-06-13T11:05:53.0117247Z             },
2026-06-13T11:05:53.0117356Z             {
2026-06-13T11:05:53.0117485Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0117605Z               "line": 1967
2026-06-13T11:05:53.0117709Z             },
2026-06-13T11:05:53.0117815Z             {
2026-06-13T11:05:53.0117948Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0118061Z               "line": 1974
2026-06-13T11:05:53.0118167Z             },
2026-06-13T11:05:53.0118281Z             {
2026-06-13T11:05:53.0118410Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0118529Z               "line": 2011
2026-06-13T11:05:53.0118639Z             },
2026-06-13T11:05:53.0118840Z             {
2026-06-13T11:05:53.0119054Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:53.0119169Z               "line": 480
2026-06-13T11:05:53.0119273Z             },
2026-06-13T11:05:53.0119379Z             {
2026-06-13T11:05:53.0119516Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:05:53.0119639Z               "line": 494
2026-06-13T11:05:53.0119841Z             }
2026-06-13T11:05:53.0119948Z           ]
2026-06-13T11:05:53.0120055Z         },
2026-06-13T11:05:53.0120169Z         "int": {
2026-06-13T11:05:53.0120287Z           "complete": false,
2026-06-13T11:05:53.0120403Z           "evidence": []
2026-06-13T11:05:53.0120508Z         },
2026-06-13T11:05:53.0120621Z         "unit": {
2026-06-13T11:05:53.0120737Z           "complete": true,
2026-06-13T11:05:53.0120846Z           "evidence": [
2026-06-13T11:05:53.0120950Z             {
2026-06-13T11:05:53.0121094Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:05:53.0121199Z               "line": 476
2026-06-13T11:05:53.0121304Z             },
2026-06-13T11:05:53.0121419Z             {
2026-06-13T11:05:53.0121556Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:05:53.0121672Z               "line": 580
2026-06-13T11:05:53.0121775Z             },
2026-06-13T11:05:53.0121875Z             {
2026-06-13T11:05:53.0122013Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0122130Z               "line": 8092
2026-06-13T11:05:53.0122239Z             },
2026-06-13T11:05:53.0122345Z             {
2026-06-13T11:05:53.0122473Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:05:53.0122587Z               "line": 8114
2026-06-13T11:05:53.0122697Z             }
2026-06-13T11:05:53.0122806Z           ]
2026-06-13T11:05:53.0122912Z         }
2026-06-13T11:05:53.0123022Z       }
2026-06-13T11:05:53.0123130Z     }
2026-06-13T11:05:53.0123232Z   ],
2026-06-13T11:05:53.0123350Z   "findings": []
2026-06-13T11:05:53.0123455Z }
2026-06-13T11:05:53.0205160Z ##[group]Run ./traceable-reqs lint || true
2026-06-13T11:05:53.0205341Z [36;1m./traceable-reqs lint || true[0m
2026-06-13T11:05:53.0217772Z shell: /usr/bin/bash -e {0}
2026-06-13T11:05:53.0217890Z ##[endgroup]
2026-06-13T11:05:53.0403381Z Requirement quality findings (93); 190 requirements queued for agent review:
2026-06-13T11:05:53.0404367Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0404930Z   [must] requirement_quality REQ-CLI-1 criterion=length — title is 47 words; want 3..=25
2026-06-13T11:05:53.0405293Z   [must] requirement_quality REQ-CLI-2 criterion=length — title is 37 words; want 3..=25
2026-06-13T11:05:53.0405641Z   [must] requirement_quality REQ-CLI-3 criterion=length — title is 37 words; want 3..=25
2026-06-13T11:05:53.0406384Z   [must] requirement_quality REQ-CONSENT-1 criterion=length — title is 41 words; want 3..=25
2026-06-13T11:05:53.0406842Z   [must] requirement_quality REQ-CONSENT-2 criterion=length — title is 37 words; want 3..=25
2026-06-13T11:05:53.0407348Z   [must] requirement_quality REQ-CONV-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0407706Z   [must] requirement_quality REQ-CONV-1 criterion=length — title is 73 words; want 3..=25
2026-06-13T11:05:53.0408055Z   [must] requirement_quality REQ-CONV-2 criterion=length — title is 47 words; want 3..=25
2026-06-13T11:05:53.0408536Z   [must] requirement_quality REQ-DAEMON-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0408889Z   [must] requirement_quality REQ-DAEMON-5 criterion=length — title is 64 words; want 3..=25
2026-06-13T11:05:53.0409898Z   [must] requirement_quality REQ-DAEMON-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0410407Z   [must] requirement_quality REQ-DAEMON-6 criterion=length — title is 84 words; want 3..=25
2026-06-13T11:05:53.0410937Z   [must] requirement_quality REQ-DAEMON-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0411303Z   [must] requirement_quality REQ-DAEMON-7 criterion=length — title is 62 words; want 3..=25
2026-06-13T11:05:53.0411699Z   [must] requirement_quality REQ-DAEMON-8 criterion=length — title is 44 words; want 3..=25
2026-06-13T11:05:53.0412446Z   [must] requirement_quality REQ-DAEMON-9 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0412801Z   [must] requirement_quality REQ-DAEMON-9 criterion=length — title is 114 words; want 3..=25
2026-06-13T11:05:53.0413251Z   [must] requirement_quality REQ-EP-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0413579Z   [must] requirement_quality REQ-EP-6 criterion=length — title is 58 words; want 3..=25
2026-06-13T11:05:53.0413904Z   [must] requirement_quality REQ-EP-7 criterion=length — title is 68 words; want 3..=25
2026-06-13T11:05:53.0414471Z   [must] requirement_quality REQ-HAZARD-BRAIN-RESPAWN-PATH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0414909Z   [must] requirement_quality REQ-HAZARD-BRAIN-RESPAWN-PATH criterion=length — title is 119 words; want 3..=25
2026-06-13T11:05:53.0415505Z   [must] requirement_quality REQ-HAZARD-BROKER-PROCESS-ISOLATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0415971Z   [must] requirement_quality REQ-HAZARD-BROKER-PROCESS-ISOLATION criterion=length — title is 114 words; want 3..=25
2026-06-13T11:05:53.0416411Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-13T11:05:53.0416868Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-13T11:05:53.0417701Z   [must] requirement_quality REQ-HAZARD-DETACHED-PIPE-INHERIT criterion=length — title is 52 words; want 3..=25
2026-06-13T11:05:53.0418324Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0418767Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=length — title is 58 words; want 3..=25
2026-06-13T11:05:53.0419439Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-CR-LINESAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0419889Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-CR-LINESAFE criterion=length — title is 73 words; want 3..=25
2026-06-13T11:05:53.0420434Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0420833Z   [must] requirement_quality REQ-HAZARD-EPOCH-RESET criterion=length — title is 60 words; want 3..=25
2026-06-13T11:05:53.0421372Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0421791Z   [must] requirement_quality REQ-HAZARD-INSTANT-UNDERFLOW criterion=length — title is 30 words; want 3..=25
2026-06-13T11:05:53.0422192Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-13T11:05:53.0422573Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-13T11:05:53.0423039Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0423501Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0423853Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-13T11:05:53.0424291Z   [must] requirement_quality REQ-HAZARD-PUMP-IPC-DEADLINE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0424635Z   [must] requirement_quality REQ-HAZARD-PUMP-IPC-DEADLINE criterion=length — title is 38 words; want 3..=25
2026-06-13T11:05:53.0425065Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0425541Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=length — title is 66 words; want 3..=25
2026-06-13T11:05:53.0425887Z   [must] requirement_quality REQ-HAZARD-ROLLBACK-STATE-COMPAT criterion=length — title is 72 words; want 3..=25
2026-06-13T11:05:53.0426231Z   [must] requirement_quality REQ-HAZARD-SUDO-SECURE-PATH criterion=length — title is 43 words; want 3..=25
2026-06-13T11:05:53.0426574Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-13T11:05:53.0426860Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-13T11:05:53.0427155Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-13T11:05:53.0427543Z   [must] requirement_quality REQ-INSTALL-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0427829Z   [must] requirement_quality REQ-INSTALL-6 criterion=length — title is 56 words; want 3..=25
2026-06-13T11:05:53.0428209Z   [must] requirement_quality REQ-INSTALL-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0428482Z   [must] requirement_quality REQ-INSTALL-7 criterion=length — title is 50 words; want 3..=25
2026-06-13T11:05:53.0428764Z   [must] requirement_quality REQ-INSTALL-8 criterion=length — title is 55 words; want 3..=25
2026-06-13T11:05:53.0429461Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0429765Z   [must] requirement_quality REQ-MANIFEST-3 criterion=length — title is 26 words; want 3..=25
2026-06-13T11:05:53.0430052Z   [must] requirement_quality REQ-MANIFEST-4 criterion=length — title is 31 words; want 3..=25
2026-06-13T11:05:53.0430319Z   [must] requirement_quality REQ-MESH-1 criterion=length — title is 86 words; want 3..=25
2026-06-13T11:05:53.0430701Z   [must] requirement_quality REQ-MESH-2 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0430981Z   [must] requirement_quality REQ-MESH-2 criterion=length — title is 120 words; want 3..=25
2026-06-13T11:05:53.0431340Z   [must] requirement_quality REQ-MESH-3 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0431612Z   [must] requirement_quality REQ-MESH-3 criterion=length — title is 86 words; want 3..=25
2026-06-13T11:05:53.0431974Z   [must] requirement_quality REQ-MESH-4 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0432251Z   [must] requirement_quality REQ-MESH-4 criterion=length — title is 99 words; want 3..=25
2026-06-13T11:05:53.0432609Z   [must] requirement_quality REQ-MESH-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0432885Z   [must] requirement_quality REQ-MESH-5 criterion=length — title is 72 words; want 3..=25
2026-06-13T11:05:53.0433257Z   [must] requirement_quality REQ-MESH-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0433528Z   [must] requirement_quality REQ-MESH-6 criterion=length — title is 56 words; want 3..=25
2026-06-13T11:05:53.0433902Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0434184Z   [must] requirement_quality REQ-MSG-4 criterion=length — title is 31 words; want 3..=25
2026-06-13T11:05:53.0434447Z   [must] requirement_quality REQ-MSG-5 criterion=length — title is 38 words; want 3..=25
2026-06-13T11:05:53.0434704Z   [must] requirement_quality REQ-MSG-6 criterion=length — title is 65 words; want 3..=25
2026-06-13T11:05:53.0435080Z   [must] requirement_quality REQ-PAIR-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0435500Z   [must] requirement_quality REQ-PAIR-8 criterion=length — title is 67 words; want 3..=25
2026-06-13T11:05:53.0435873Z   [must] requirement_quality REQ-PRES-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0436144Z   [must] requirement_quality REQ-PRES-1 criterion=length — title is 48 words; want 3..=25
2026-06-13T11:05:53.0436433Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-13T11:05:53.0436715Z   [must] requirement_quality REQ-SHELL-1 criterion=length — title is 36 words; want 3..=25
2026-06-13T11:05:53.0436988Z   [must] requirement_quality REQ-SHELL-2 criterion=length — title is 49 words; want 3..=25
2026-06-13T11:05:53.0437264Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-13T11:05:53.0437545Z   [must] requirement_quality REQ-SUBNET-5 criterion=length — title is 52 words; want 3..=25
2026-06-13T11:05:53.0437931Z   [must] requirement_quality REQ-SUBNET-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0438203Z   [must] requirement_quality REQ-SUBNET-6 criterion=length — title is 38 words; want 3..=25
2026-06-13T11:05:53.0438584Z   [must] requirement_quality REQ-SUBNET-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0438864Z   [must] requirement_quality REQ-SUBNET-7 criterion=length — title is 75 words; want 3..=25
2026-06-13T11:05:53.0439429Z   [must] requirement_quality REQ-SUBNET-8 criterion=length — title is 53 words; want 3..=25
2026-06-13T11:05:53.0439825Z   [must] requirement_quality REQ-UPD-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0440098Z   [must] requirement_quality REQ-UPD-6 criterion=length — title is 32 words; want 3..=25
2026-06-13T11:05:53.0440455Z   [must] requirement_quality REQ-UPD-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0440737Z   [must] requirement_quality REQ-UPD-7 criterion=length — title is 88 words; want 3..=25
2026-06-13T11:05:53.0441104Z   [must] requirement_quality REQ-UPD-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:05:53.0441362Z   [must] requirement_quality REQ-UPD-8 criterion=length — title is 115 words; want 3..=25
2026-06-13T11:05:53.0441400Z 
2026-06-13T11:05:53.0441531Z # Requirement quality review
2026-06-13T11:05:53.0441565Z 
2026-06-13T11:05:53.0441782Z You are reviewing 190 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-13T11:05:53.0441996Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-13T11:05:53.0442220Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-13T11:05:53.0442392Z this command's output. Your task is the rubric items below.
2026-06-13T11:05:53.0442426Z 
2026-06-13T11:05:53.0442535Z ## Rubric
2026-06-13T11:05:53.0442568Z 
2026-06-13T11:05:53.0442840Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-13T11:05:53.0443093Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-13T11:05:53.0443336Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-13T11:05:53.0443517Z - **active-voice** — clear subject and active verb.
2026-06-13T11:05:53.0443547Z 
2026-06-13T11:05:53.0444060Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-13T11:05:53.0444184Z clear concerns.
2026-06-13T11:05:53.0444217Z 
2026-06-13T11:05:53.0444325Z ## Requirements
2026-06-13T11:05:53.0444353Z 
2026-06-13T11:05:53.0444467Z ### REQ-ARCH-1
2026-06-13T11:05:53.0444611Z - Title: Many small acyclically-layered crates
2026-06-13T11:05:53.0444739Z - Required stages: impl
2026-06-13T11:05:53.0444767Z 
2026-06-13T11:05:53.0444883Z ### REQ-ARCH-2
2026-06-13T11:05:53.0445169Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-13T11:05:53.0445288Z - Required stages: impl
2026-06-13T11:05:53.0445316Z 
2026-06-13T11:05:53.0445420Z ### REQ-ARCH-3
2026-06-13T11:05:53.0445640Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-13T11:05:53.0445760Z - Required stages: impl, unit
2026-06-13T11:05:53.0445789Z 
2026-06-13T11:05:53.0445898Z ### REQ-ARCH-4
2026-06-13T11:05:53.0446089Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-13T11:05:53.0446208Z - Required stages: impl, unit
2026-06-13T11:05:53.0446246Z 
2026-06-13T11:05:53.0446356Z ### REQ-DAEMON-1
2026-06-13T11:05:53.0446528Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-13T11:05:53.0446656Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0446690Z 
2026-06-13T11:05:53.0446801Z ### REQ-DAEMON-2
2026-06-13T11:05:53.0446956Z - Title: Broker/brain split for seamless self-update
2026-06-13T11:05:53.0447089Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0447123Z 
2026-06-13T11:05:53.0447233Z ### REQ-DAEMON-3
2026-06-13T11:05:53.0447404Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-13T11:05:53.0447533Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0447566Z 
2026-06-13T11:05:53.0447670Z ### REQ-DAEMON-4
2026-06-13T11:05:53.0447810Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-13T11:05:53.0447928Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0447956Z 
2026-06-13T11:05:53.0448068Z ### REQ-STORE-1
2026-06-13T11:05:53.0449443Z - 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-13T11:05:53.0449699Z - Required stages: impl, unit
2026-06-13T11:05:53.0449733Z 
2026-06-13T11:05:53.0449875Z ### REQ-MANIFEST-1
2026-06-13T11:05:53.0450100Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-13T11:05:53.0450228Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0450261Z 
2026-06-13T11:05:53.0450376Z ### REQ-MANIFEST-2
2026-06-13T11:05:53.0450930Z - Title: Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors
2026-06-13T11:05:53.0451067Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0451101Z 
2026-06-13T11:05:53.0451206Z ### REQ-MANIFEST-3
2026-06-13T11:05:53.0451860Z - Title: Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)
2026-06-13T11:05:53.0451988Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0452021Z 
2026-06-13T11:05:53.0452134Z ### REQ-MANIFEST-4
2026-06-13T11:05:53.0452882Z - Title: Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace
2026-06-13T11:05:53.0453019Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0453052Z 
2026-06-13T11:05:53.0453148Z ### REQ-SEAM-SPAWN
2026-06-13T11:05:53.0453262Z - Title: spawn-session seam
2026-06-13T11:05:53.0453385Z - Required stages: impl, unit
2026-06-13T11:05:53.0453419Z 
2026-06-13T11:05:53.0453540Z ### REQ-SEAM-POSTSPAWN
2026-06-13T11:05:53.0453700Z - Title: post-spawn / api bind seam with boot nonce
2026-06-13T11:05:53.0453821Z - Required stages: impl, unit
2026-06-13T11:05:53.0453855Z 
2026-06-13T11:05:53.0453962Z ### REQ-SEAM-PSYCHE
2026-06-13T11:05:53.0454117Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-13T11:05:53.0454235Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0454267Z 
2026-06-13T11:05:53.0454368Z ### REQ-SEAM-HISTORY
2026-06-13T11:05:53.0454895Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-13T11:05:53.0455022Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0455056Z 
2026-06-13T11:05:53.0455167Z ### REQ-SEAM-ACTIVITY
2026-06-13T11:05:53.0455371Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-13T11:05:53.0455486Z - Required stages: impl, unit
2026-06-13T11:05:53.0455519Z 
2026-06-13T11:05:53.0455633Z ### REQ-SEAM-INJECT
2026-06-13T11:05:53.0455815Z - Title: inject-input methods configurable per activity-state
2026-06-13T11:05:53.0455933Z - Required stages: impl, unit
2026-06-13T11:05:53.0455972Z 
2026-06-13T11:05:53.0456092Z ### REQ-SEAM-RESUME
2026-06-13T11:05:53.0456287Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-13T11:05:53.0456407Z - Required stages: impl, unit
2026-06-13T11:05:53.0456439Z 
2026-06-13T11:05:53.0456563Z ### REQ-SEAM-CAPABILITY
2026-06-13T11:05:53.0456727Z - Title: Hostable endpoint-types capability declaration
2026-06-13T11:05:53.0456859Z - Required stages: impl, unit
2026-06-13T11:05:53.0456887Z 
2026-06-13T11:05:53.0456998Z ### REQ-SEAM-UPDATE
2026-06-13T11:05:53.0457183Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-13T11:05:53.0457308Z - Required stages: impl, unit
2026-06-13T11:05:53.0457342Z 
2026-06-13T11:05:53.0457445Z ### REQ-API-1
2026-06-13T11:05:53.0457634Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-13T11:05:53.0457760Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0457788Z 
2026-06-13T11:05:53.0457906Z ### REQ-API-2
2026-06-13T11:05:53.0458211Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-13T11:05:53.0458336Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0458370Z 
2026-06-13T11:05:53.0458483Z ### REQ-API-3
2026-06-13T11:05:53.0458633Z - Title: commune/signoff are file-drops, not commands
2026-06-13T11:05:53.0458751Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0458794Z 
2026-06-13T11:05:53.0458904Z ### REQ-START-1
2026-06-13T11:05:53.0459199Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-13T11:05:53.0459343Z - Required stages: impl, unit
2026-06-13T11:05:53.0459380Z 
2026-06-13T11:05:53.0459489Z ### REQ-START-2
2026-06-13T11:05:53.0459648Z - Title: Harness-hosted startup: api seed then listen
2026-06-13T11:05:53.0459784Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0459818Z 
2026-06-13T11:05:53.0459932Z ### REQ-START-3
2026-06-13T11:05:53.0460111Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-13T11:05:53.0460244Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0460279Z 
2026-06-13T11:05:53.0460439Z ### REQ-START-4
2026-06-13T11:05:53.0460603Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-13T11:05:53.0460731Z - Required stages: impl, unit
2026-06-13T11:05:53.0460764Z 
2026-06-13T11:05:53.0460870Z ### REQ-EP-1
2026-06-13T11:05:53.0461022Z - Title: Day-one endpoint types; open type system
2026-06-13T11:05:53.0461146Z - Required stages: impl, unit
2026-06-13T11:05:53.0461175Z 
2026-06-13T11:05:53.0461289Z ### REQ-EP-2
2026-06-13T11:05:53.0461470Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-13T11:05:53.0461594Z - Required stages: impl, unit
2026-06-13T11:05:53.0461622Z 
2026-06-13T11:05:53.0461737Z ### REQ-EP-3
2026-06-13T11:05:53.0461933Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-13T11:05:53.0462056Z - Required stages: impl, unit
2026-06-13T11:05:53.0462086Z 
2026-06-13T11:05:53.0462201Z ### REQ-EP-4
2026-06-13T11:05:53.0462371Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-13T11:05:53.0462496Z - Required stages: impl, unit
2026-06-13T11:05:53.0462525Z 
2026-06-13T11:05:53.0462627Z ### REQ-EP-5
2026-06-13T11:05:53.0463307Z - 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-13T11:05:53.0463551Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0463584Z 
2026-06-13T11:05:53.0463688Z ### REQ-EP-6
2026-06-13T11:05:53.0465180Z - Title: Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6
2026-06-13T11:05:53.0465314Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0465347Z 
2026-06-13T11:05:53.0465455Z ### REQ-EP-7
2026-06-13T11:05:53.0467147Z - Title: Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)
2026-06-13T11:05:53.0467277Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0467310Z 
2026-06-13T11:05:53.0467419Z ### REQ-INST-1
2026-06-13T11:05:53.0467699Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-13T11:05:53.0467815Z - Required stages: 
2026-06-13T11:05:53.0467844Z 
2026-06-13T11:05:53.0467963Z ### REQ-INST-2
2026-06-13T11:05:53.0468100Z - Title: Per-node files, synced Psyche mind
2026-06-13T11:05:53.0468224Z - Required stages: impl, unit
2026-06-13T11:05:53.0468253Z 
2026-06-13T11:05:53.0468367Z ### REQ-INST-3
2026-06-13T11:05:53.0468524Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-13T11:05:53.0468658Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0468691Z 
2026-06-13T11:05:53.0468795Z ### REQ-INST-4
2026-06-13T11:05:53.0469115Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-13T11:05:53.0469259Z - Required stages: impl, unit
2026-06-13T11:05:53.0469306Z 
2026-06-13T11:05:53.0469411Z ### REQ-INST-5
2026-06-13T11:05:53.0469606Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-13T11:05:53.0469726Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0469759Z 
2026-06-13T11:05:53.0469883Z ### REQ-INST-6
2026-06-13T11:05:53.0470079Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-13T11:05:53.0470203Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0470232Z 
2026-06-13T11:05:53.0470344Z ### REQ-INST-7
2026-06-13T11:05:53.0470497Z - Title: Subnet registry + bare-id resolution policy
2026-06-13T11:05:53.0470619Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0470657Z 
2026-06-13T11:05:53.0470771Z ### REQ-INST-8
2026-06-13T11:05:53.0470934Z - Title: Remote-control mode distinct from local operation
2026-06-13T11:05:53.0471053Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0471081Z 
2026-06-13T11:05:53.0471187Z ### REQ-INST-9
2026-06-13T11:05:53.0471386Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-13T11:05:53.0471506Z - Required stages: impl, unit
2026-06-13T11:05:53.0471539Z 
2026-06-13T11:05:53.0471643Z ### REQ-INST-10
2026-06-13T11:05:53.0471873Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-13T11:05:53.0471992Z - Required stages: impl, unit
2026-06-13T11:05:53.0472025Z 
2026-06-13T11:05:53.0472135Z ### REQ-INST-11
2026-06-13T11:05:53.0472370Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-13T11:05:53.0472488Z - Required stages: impl, unit
2026-06-13T11:05:53.0472521Z 
2026-06-13T11:05:53.0472626Z ### REQ-INST-12
2026-06-13T11:05:53.0473033Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-13T11:05:53.0473155Z - Required stages: impl, unit
2026-06-13T11:05:53.0473183Z 
2026-06-13T11:05:53.0473297Z ### REQ-INST-13
2026-06-13T11:05:53.0473486Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-13T11:05:53.0473605Z - Required stages: impl, unit
2026-06-13T11:05:53.0473634Z 
2026-06-13T11:05:53.0473744Z ### REQ-INST-14
2026-06-13T11:05:53.0474130Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-13T11:05:53.0474258Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0474293Z 
2026-06-13T11:05:53.0474397Z ### REQ-INST-15
2026-06-13T11:05:53.0475112Z - 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-13T11:05:53.0475237Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0475270Z 
2026-06-13T11:05:53.0475383Z ### REQ-REACH-1
2026-06-13T11:05:53.0475542Z - Title: Off-node remote-drive detection + file transfer
2026-06-13T11:05:53.0475661Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0475694Z 
2026-06-13T11:05:53.0475807Z ### REQ-REACH-2
2026-06-13T11:05:53.0475974Z - Title: Remote command execution (deferred, consent-gated)
2026-06-13T11:05:53.0476095Z - Required stages: 
2026-06-13T11:05:53.0476124Z 
2026-06-13T11:05:53.0476368Z ### REQ-MSG-1
2026-06-13T11:05:53.0476820Z - 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-13T11:05:53.0476944Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0476973Z 
2026-06-13T11:05:53.0477082Z ### REQ-MSG-2
2026-06-13T11:05:53.0477368Z - Title: spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes
2026-06-13T11:05:53.0477493Z - Required stages: impl, unit
2026-06-13T11:05:53.0477527Z 
2026-06-13T11:05:53.0477631Z ### REQ-MSG-3
2026-06-13T11:05:53.0478012Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-13T11:05:53.0478123Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0478152Z 
2026-06-13T11:05:53.0478260Z ### REQ-MSG-4
2026-06-13T11:05:53.0479289Z - 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-13T11:05:53.0479404Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0479438Z 
2026-06-13T11:05:53.0479547Z ### REQ-MSG-5
2026-06-13T11:05:53.0480276Z - Title: user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)
2026-06-13T11:05:53.0480397Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0480430Z 
2026-06-13T11:05:53.0480533Z ### REQ-MSG-6
2026-06-13T11:05:53.0482104Z - Title: cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)
2026-06-13T11:05:53.0482232Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0482381Z 
2026-06-13T11:05:53.0482499Z ### REQ-NODE-IDENTITY
2026-06-13T11:05:53.0482738Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-13T11:05:53.0482861Z - Required stages: impl, unit
2026-06-13T11:05:53.0482891Z 
2026-06-13T11:05:53.0482996Z ### REQ-NET-1
2026-06-13T11:05:53.0483186Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-13T11:05:53.0483297Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0483330Z 
2026-06-13T11:05:53.0483434Z ### REQ-NET-2
2026-06-13T11:05:53.0483616Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-13T11:05:53.0483720Z - Required stages: impl
2026-06-13T11:05:53.0483753Z 
2026-06-13T11:05:53.0483857Z ### REQ-NET-3
2026-06-13T11:05:53.0484041Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-13T11:05:53.0484150Z - Required stages: impl, unit
2026-06-13T11:05:53.0484179Z 
2026-06-13T11:05:53.0484290Z ### REQ-PAIR-1
2026-06-13T11:05:53.0484408Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-13T11:05:53.0484533Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0484557Z 
2026-06-13T11:05:53.0484671Z ### REQ-PAIR-2
2026-06-13T11:05:53.0484823Z - Title: Local trust store with TOFU + warn-on-change
2026-06-13T11:05:53.0484929Z - Required stages: 
2026-06-13T11:05:53.0484962Z 
2026-06-13T11:05:53.0485071Z ### REQ-PAIR-3
2026-06-13T11:05:53.0485234Z - Title: Fetch current pairing code from any paired node
2026-06-13T11:05:53.0485353Z - Required stages: impl, unit
2026-06-13T11:05:53.0485386Z 
2026-06-13T11:05:53.0485587Z ### REQ-PAIR-4
2026-06-13T11:05:53.0485715Z - Title: Subnet naming on first pairing
2026-06-13T11:05:53.0485840Z - Required stages: impl, unit
2026-06-13T11:05:53.0485883Z 
2026-06-13T11:05:53.0486001Z ### REQ-PAIR-5
2026-06-13T11:05:53.0486319Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-13T11:05:53.0486439Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0486481Z 
2026-06-13T11:05:53.0486590Z ### REQ-PAIR-6
2026-06-13T11:05:53.0486861Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-13T11:05:53.0486984Z - Required stages: impl, unit
2026-06-13T11:05:53.0487013Z 
2026-06-13T11:05:53.0487124Z ### REQ-PAIR-7
2026-06-13T11:05:53.0487294Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-13T11:05:53.0487410Z - Required stages: 
2026-06-13T11:05:53.0487438Z 
2026-06-13T11:05:53.0487548Z ### REQ-SUBNET-1
2026-06-13T11:05:53.0487881Z - Title: spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted
2026-06-13T11:05:53.0488005Z - Required stages: impl, unit
2026-06-13T11:05:53.0488034Z 
2026-06-13T11:05:53.0488144Z ### REQ-SUBNET-2
2026-06-13T11:05:53.0488387Z - Title: Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder
2026-06-13T11:05:53.0488510Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0488539Z 
2026-06-13T11:05:53.0488649Z ### REQ-SUBNET-3
2026-06-13T11:05:53.0489046Z - Title: Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)
2026-06-13T11:05:53.0489172Z - Required stages: impl, unit
2026-06-13T11:05:53.0489201Z 
2026-06-13T11:05:53.0489325Z ### REQ-SUBNET-4
2026-06-13T11:05:53.0489625Z - Title: Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)
2026-06-13T11:05:53.0489745Z - Required stages: impl, unit
2026-06-13T11:05:53.0489779Z 
2026-06-13T11:05:53.0489892Z ### REQ-DOCS-6
2026-06-13T11:05:53.0490221Z - Title: spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)
2026-06-13T11:05:53.0490346Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0490379Z 
2026-06-13T11:05:53.0490483Z ### REQ-SEC-1
2026-06-13T11:05:53.0490879Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-13T11:05:53.0491113Z - Required stages: impl, unit
2026-06-13T11:05:53.0491146Z 
2026-06-13T11:05:53.0491252Z ### REQ-NOTIF-1
2026-06-13T11:05:53.0491622Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-13T11:05:53.0491744Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0491777Z 
2026-06-13T11:05:53.0491882Z ### REQ-NOTIF-2
2026-06-13T11:05:53.0492163Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-13T11:05:53.0492293Z - Required stages: doc, impl, unit, int
2026-06-13T11:05:53.0492321Z 
2026-06-13T11:05:53.0492430Z ### REQ-UPD-1
2026-06-13T11:05:53.0492560Z - Title: Peer-propagated update over P2P
2026-06-13T11:05:53.0492688Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0492721Z 
2026-06-13T11:05:53.0492831Z ### REQ-UPD-2
2026-06-13T11:05:53.0492998Z - Title: All binaries signature-verified before handoff
2026-06-13T11:05:53.0493126Z - Required stages: impl, unit
2026-06-13T11:05:53.0493155Z 
2026-06-13T11:05:53.0493265Z ### REQ-UPD-3
2026-06-13T11:05:53.0493461Z - Title: No endpoint process terminates/suspends during self-update
2026-06-13T11:05:53.0493575Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0493613Z 
2026-06-13T11:05:53.0493718Z ### REQ-UPD-4
2026-06-13T11:05:53.0493913Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-13T11:05:53.0494033Z - Required stages: impl, unit
2026-06-13T11:05:53.0494061Z 
2026-06-13T11:05:53.0494270Z ### REQ-UPD-5
2026-06-13T11:05:53.0494427Z - Title: spt-core ripple-updates registered adapters
2026-06-13T11:05:53.0494550Z - Required stages: impl, unit
2026-06-13T11:05:53.0494578Z 
2026-06-13T11:05:53.0494696Z ### REQ-UPD-6
2026-06-13T11:05:53.0495522Z - 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-13T11:05:53.0495659Z - Required stages: doc, impl, unit, int
2026-06-13T11:05:53.0495689Z 
2026-06-13T11:05:53.0495804Z ### REQ-UPD-7
2026-06-13T11:05:53.0497784Z - Title: Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.
2026-06-13T11:05:53.0497921Z - Required stages: impl, unit
2026-06-13T11:05:53.0497955Z 
2026-06-13T11:05:53.0498065Z ### REQ-UPD-8
2026-06-13T11:05:53.0500643Z - Title: Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.
2026-06-13T11:05:53.0500873Z - Required stages: impl, unit
2026-06-13T11:05:53.0500906Z 
2026-06-13T11:05:53.0501025Z ### REQ-TERM-1
2026-06-13T11:05:53.0501207Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-13T11:05:53.0501330Z - Required stages: impl, unit
2026-06-13T11:05:53.0501358Z 
2026-06-13T11:05:53.0501474Z ### REQ-TERM-2
2026-06-13T11:05:53.0501658Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-13T11:05:53.0501778Z - Required stages: impl, unit
2026-06-13T11:05:53.0501808Z 
2026-06-13T11:05:53.0501907Z ### REQ-TERM-3
2026-06-13T11:05:53.0502053Z - Title: Byte-stream remote terminal streaming for v1
2026-06-13T11:05:53.0502173Z - Required stages: impl, unit
2026-06-13T11:05:53.0502211Z 
2026-06-13T11:05:53.0502309Z ### REQ-TERM-4
2026-06-13T11:05:53.0502671Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-13T11:05:53.0502786Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0502824Z 
2026-06-13T11:05:53.0502928Z ### REQ-FRONT-1
2026-06-13T11:05:53.0503106Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-13T11:05:53.0503225Z - Required stages: 
2026-06-13T11:05:53.0503253Z 
2026-06-13T11:05:53.0503357Z ### REQ-INSTALL-1
2026-06-13T11:05:53.0503563Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-13T11:05:53.0503672Z - Required stages: doc, impl, int
2026-06-13T11:05:53.0503701Z 
2026-06-13T11:05:53.0503806Z ### REQ-INSTALL-2
2026-06-13T11:05:53.0504055Z - Title: Marketplace-repackaging-friendly install
2026-06-13T11:05:53.0504178Z - Required stages: doc
2026-06-13T11:05:53.0504211Z 
2026-06-13T11:05:53.0504311Z ### REQ-INSTALL-3
2026-06-13T11:05:53.0504459Z - Title: Idempotent + interactive-optional first run
2026-06-13T11:05:53.0504578Z - Required stages: impl, int
2026-06-13T11:05:53.0504612Z 
2026-06-13T11:05:53.0504723Z ### REQ-INSTALL-4
2026-06-13T11:05:53.0505348Z - 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-13T11:05:53.0505467Z - Required stages: impl, unit
2026-06-13T11:05:53.0505500Z 
2026-06-13T11:05:53.0505614Z ### REQ-MIGRATE-1
2026-06-13T11:05:53.0505787Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-13T11:05:53.0505904Z - Required stages: 
2026-06-13T11:05:53.0505934Z 
2026-06-13T11:05:53.0506044Z ### REQ-INFRA-1
2026-06-13T11:05:53.0506229Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-13T11:05:53.0506331Z - Required stages: 
2026-06-13T11:05:53.0506364Z 
2026-06-13T11:05:53.0506463Z ### REQ-INSTALL-5
2026-06-13T11:05:53.0506956Z - 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-13T11:05:53.0507088Z - Required stages: impl, int
2026-06-13T11:05:53.0507121Z 
2026-06-13T11:05:53.0507222Z ### REQ-REL-1
2026-06-13T11:05:53.0507611Z - Title: spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)
2026-06-13T11:05:53.0507728Z - Required stages: doc, impl
2026-06-13T11:05:53.0507766Z 
2026-06-13T11:05:53.0507871Z ### REQ-REL-2
2026-06-13T11:05:53.0508363Z - 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-13T11:05:53.0508477Z - Required stages: impl, int
2026-06-13T11:05:53.0508510Z 
2026-06-13T11:05:53.0508620Z ### REQ-REL-3
2026-06-13T11:05:53.0509144Z - 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-13T11:05:53.0509264Z - Required stages: impl, unit
2026-06-13T11:05:53.0509387Z 
2026-06-13T11:05:53.0509499Z ### REQ-DOCS-1
2026-06-13T11:05:53.0509707Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-13T11:05:53.0509828Z - Required stages: doc, impl
2026-06-13T11:05:53.0509861Z 
2026-06-13T11:05:53.0509969Z ### REQ-DOCS-2
2026-06-13T11:05:53.0510133Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-13T11:05:53.0510246Z - Required stages: doc, int
2026-06-13T11:05:53.0510274Z 
2026-06-13T11:05:53.0510383Z ### REQ-DOCS-3
2026-06-13T11:05:53.0510584Z - Title: Diátaxis structure; one canonical way to do X
2026-06-13T11:05:53.0510702Z - Required stages: doc
2026-06-13T11:05:53.0510745Z 
2026-06-13T11:05:53.0510842Z ### REQ-DOCS-4
2026-06-13T11:05:53.0511050Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-13T11:05:53.0511175Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0511203Z 
2026-06-13T11:05:53.0511317Z ### REQ-DOCS-5
2026-06-13T11:05:53.0511523Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-13T11:05:53.0511646Z - Required stages: impl, int
2026-06-13T11:05:53.0511675Z 
2026-06-13T11:05:53.0511810Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-13T11:05:53.0512004Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-13T11:05:53.0512124Z - Required stages: impl, unit
2026-06-13T11:05:53.0512157Z 
2026-06-13T11:05:53.0512280Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-13T11:05:53.0512444Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-13T11:05:53.0512561Z - Required stages: impl, unit
2026-06-13T11:05:53.0512695Z 
2026-06-13T11:05:53.0512822Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-13T11:05:53.0512973Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-13T11:05:53.0513093Z - Required stages: impl, unit
2026-06-13T11:05:53.0513128Z 
2026-06-13T11:05:53.0513250Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-13T11:05:53.0513451Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-13T11:05:53.0513574Z - Required stages: impl, unit
2026-06-13T11:05:53.0513602Z 
2026-06-13T11:05:53.0513723Z ### REQ-HAZARD-WORKER-PATH
2026-06-13T11:05:53.0513903Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-13T11:05:53.0514024Z - Required stages: impl, unit
2026-06-13T11:05:53.0514056Z 
2026-06-13T11:05:53.0514184Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-13T11:05:53.0514385Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-13T11:05:53.0514494Z - Required stages: 
2026-06-13T11:05:53.0514523Z 
2026-06-13T11:05:53.0514653Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-13T11:05:53.0514805Z - Title: Stdin session_id precedence over env (2.2)
2026-06-13T11:05:53.0514920Z - Required stages: 
2026-06-13T11:05:53.0514954Z 
2026-06-13T11:05:53.0515081Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-13T11:05:53.0515254Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-13T11:05:53.0515372Z - Required stages: impl, unit
2026-06-13T11:05:53.0515410Z 
2026-06-13T11:05:53.0515533Z ### REQ-HAZARD-GEN-START-NOW
2026-06-13T11:05:53.0515680Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-13T11:05:53.0515802Z - Required stages: impl, int
2026-06-13T11:05:53.0515835Z 
2026-06-13T11:05:53.0515961Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-13T11:05:53.0516131Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-13T11:05:53.0516252Z - Required stages: impl, unit
2026-06-13T11:05:53.0516285Z 
2026-06-13T11:05:53.0516413Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-13T11:05:53.0516604Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-13T11:05:53.0516722Z - Required stages: impl, unit
2026-06-13T11:05:53.0516751Z 
2026-06-13T11:05:53.0516877Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-13T11:05:53.0517066Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-13T11:05:53.0517182Z - Required stages: impl, unit
2026-06-13T11:05:53.0517305Z 
2026-06-13T11:05:53.0517443Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-13T11:05:53.0517619Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-13T11:05:53.0517734Z - Required stages: impl, unit
2026-06-13T11:05:53.0517763Z 
2026-06-13T11:05:53.0517897Z ### REQ-HAZARD-ENVELOPE-CR-LINESAFE
2026-06-13T11:05:53.0519685Z - Title: Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\n`→`<br>`) BEFORE framing, so a body carrying `\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).
2026-06-13T11:05:53.0519800Z - Required stages: impl, unit
2026-06-13T11:05:53.0519838Z 
2026-06-13T11:05:53.0519966Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-13T11:05:53.0520148Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-13T11:05:53.0520262Z - Required stages: impl, unit
2026-06-13T11:05:53.0520295Z 
2026-06-13T11:05:53.0520426Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-13T11:05:53.0520640Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-13T11:05:53.0520764Z - Required stages: impl, unit
2026-06-13T11:05:53.0520797Z 
2026-06-13T11:05:53.0520905Z ### REQ-HAZARD-ID-CHARSET
2026-06-13T11:05:53.0521267Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-13T11:05:53.0521388Z - Required stages: impl, unit
2026-06-13T11:05:53.0521416Z 
2026-06-13T11:05:53.0521530Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-13T11:05:53.0521721Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-13T11:05:53.0521840Z - Required stages: impl, unit
2026-06-13T11:05:53.0521877Z 
2026-06-13T11:05:53.0522002Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-13T11:05:53.0522264Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-13T11:05:53.0522375Z - Required stages: impl, unit
2026-06-13T11:05:53.0522407Z 
2026-06-13T11:05:53.0522531Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-13T11:05:53.0522908Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-13T11:05:53.0523028Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0523060Z 
2026-06-13T11:05:53.0523197Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-13T11:05:53.0523630Z - 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-13T11:05:53.0523744Z - Required stages: impl, unit
2026-06-13T11:05:53.0523776Z 
2026-06-13T11:05:53.0523906Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-13T11:05:53.0524054Z - Title: Deferred rows survive poll drain (4.4)
2026-06-13T11:05:53.0524167Z - Required stages: impl, unit
2026-06-13T11:05:53.0524202Z 
2026-06-13T11:05:53.0524321Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-13T11:05:53.0524463Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-13T11:05:53.0524574Z - Required stages: impl, unit
2026-06-13T11:05:53.0524607Z 
2026-06-13T11:05:53.0524744Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-13T11:05:53.0524922Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-13T11:05:53.0525041Z - Required stages: impl, unit
2026-06-13T11:05:53.0525069Z 
2026-06-13T11:05:53.0525194Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-13T11:05:53.0525374Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-13T11:05:53.0525494Z - Required stages: impl, unit
2026-06-13T11:05:53.0525528Z 
2026-06-13T11:05:53.0525655Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-13T11:05:53.0525814Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-13T11:05:53.0526046Z - Required stages: impl, unit
2026-06-13T11:05:53.0526078Z 
2026-06-13T11:05:53.0526198Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-13T11:05:53.0526367Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-13T11:05:53.0532243Z - Required stages: impl, unit
2026-06-13T11:05:53.0532291Z 
2026-06-13T11:05:53.0532442Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-13T11:05:53.0532676Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-13T11:05:53.0532810Z - Required stages: impl, unit
2026-06-13T11:05:53.0532839Z 
2026-06-13T11:05:53.0532958Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-13T11:05:53.0533188Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-13T11:05:53.0533306Z - Required stages: impl, unit
2026-06-13T11:05:53.0533338Z 
2026-06-13T11:05:53.0533478Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-13T11:05:53.0533658Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-13T11:05:53.0533776Z - Required stages: impl, unit
2026-06-13T11:05:53.0533815Z 
2026-06-13T11:05:53.0533947Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-13T11:05:53.0534108Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-13T11:05:53.0534228Z - Required stages: impl, unit
2026-06-13T11:05:53.0534262Z 
2026-06-13T11:05:53.0534394Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-13T11:05:53.0534624Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-13T11:05:53.0534742Z - Required stages: impl, unit
2026-06-13T11:05:53.0534781Z 
2026-06-13T11:05:53.0534900Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-13T11:05:53.0535601Z - 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-13T11:05:53.0535721Z - Required stages: impl, unit
2026-06-13T11:05:53.0535754Z 
2026-06-13T11:05:53.0535886Z ### REQ-HAZARD-DETACHED-PIPE-INHERIT
2026-06-13T11:05:53.0537023Z - 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-13T11:05:53.0537139Z - Required stages: impl, unit
2026-06-13T11:05:53.0537171Z 
2026-06-13T11:05:53.0537294Z ### REQ-HAZARD-CONPTY-DSR
2026-06-13T11:05:53.0537519Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-13T11:05:53.0537639Z - Required stages: impl, unit
2026-06-13T11:05:53.0537672Z 
2026-06-13T11:05:53.0537806Z ### REQ-HAZARD-CHILD-CONSOLE-FLASH
2026-06-13T11:05:53.0538243Z - 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-13T11:05:53.0538359Z - Required stages: impl, unit
2026-06-13T11:05:53.0538392Z 
2026-06-13T11:05:53.0538520Z ### REQ-HAZARD-INSTANT-UNDERFLOW
2026-06-13T11:05:53.0539200Z - 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-13T11:05:53.0539311Z - Required stages: impl, unit
2026-06-13T11:05:53.0539353Z 
2026-06-13T11:05:53.0539470Z ### REQ-HAZARD-PUMP-IPC-DEADLINE
2026-06-13T11:05:53.0540300Z - Title: The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump
2026-06-13T11:05:53.0540429Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0540462Z 
2026-06-13T11:05:53.0540578Z ### REQ-HAZARD-SUDO-SECURE-PATH
2026-06-13T11:05:53.0541421Z - 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-13T11:05:53.0541644Z - Required stages: impl, unit
2026-06-13T11:05:53.0541678Z 
2026-06-13T11:05:53.0541798Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-13T11:05:53.0542016Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-13T11:05:53.0542130Z - Required stages: impl, unit
2026-06-13T11:05:53.0542164Z 
2026-06-13T11:05:53.0542292Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-13T11:05:53.0542569Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-13T11:05:53.0542688Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0542716Z 
2026-06-13T11:05:53.0542841Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-13T11:05:53.0543094Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-13T11:05:53.0543227Z - Required stages: impl, unit
2026-06-13T11:05:53.0543261Z 
2026-06-13T11:05:53.0543394Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-13T11:05:53.0543824Z - 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-13T11:05:53.0543957Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0543990Z 
2026-06-13T11:05:53.0544119Z ### REQ-HAZARD-BROKER-PROCESS-ISOLATION
2026-06-13T11:05:53.0546824Z - Title: Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).
2026-06-13T11:05:53.0546968Z - Required stages: doc, impl, unit, int
2026-06-13T11:05:53.0547001Z 
2026-06-13T11:05:53.0547132Z ### REQ-HAZARD-ROLLBACK-STATE-COMPAT
2026-06-13T11:05:53.0548785Z - Title: A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.
2026-06-13T11:05:53.0548919Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0549023Z 
2026-06-13T11:05:53.0549153Z ### REQ-HAZARD-BRAIN-RESPAWN-PATH
2026-06-13T11:05:53.0551557Z - Title: The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.
2026-06-13T11:05:53.0551814Z - Required stages: doc, impl, unit, int
2026-06-13T11:05:53.0551842Z 
2026-06-13T11:05:53.0551967Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-13T11:05:53.0552787Z - 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-13T11:05:53.0552910Z - Required stages: impl, unit
2026-06-13T11:05:53.0552942Z 
2026-06-13T11:05:53.0553077Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-13T11:05:53.0553735Z - 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-13T11:05:53.0553863Z - Required stages: impl, unit
2026-06-13T11:05:53.0553896Z 
2026-06-13T11:05:53.0554035Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-13T11:05:53.0554684Z - 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-13T11:05:53.0554807Z - Required stages: impl, unit
2026-06-13T11:05:53.0554835Z 
2026-06-13T11:05:53.0554959Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-13T11:05:53.0555596Z - 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-13T11:05:53.0555720Z - Required stages: impl, unit
2026-06-13T11:05:53.0555753Z 
2026-06-13T11:05:53.0555872Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-13T11:05:53.0556745Z - 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-13T11:05:53.0556875Z - Required stages: impl, unit
2026-06-13T11:05:53.0556903Z 
2026-06-13T11:05:53.0557021Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-13T11:05:53.0557831Z - 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-13T11:05:53.0557962Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0558000Z 
2026-06-13T11:05:53.0558120Z ### REQ-CONSENT-1
2026-06-13T11:05:53.0559126Z - 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-13T11:05:53.0559250Z - Required stages: impl, unit
2026-06-13T11:05:53.0559283Z 
2026-06-13T11:05:53.0559398Z ### REQ-CONSENT-2
2026-06-13T11:05:53.0560235Z - 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-13T11:05:53.0560360Z - Required stages: impl, unit
2026-06-13T11:05:53.0560383Z 
2026-06-13T11:05:53.0560534Z ### REQ-PRES-1
2026-06-13T11:05:53.0561926Z - 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-13T11:05:53.0562155Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0562188Z 
2026-06-13T11:05:53.0562299Z ### REQ-SHELL-1
2026-06-13T11:05:53.0563179Z - 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-13T11:05:53.0563299Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0563327Z 
2026-06-13T11:05:53.0563446Z ### REQ-SHELL-2
2026-06-13T11:05:53.0564883Z - 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-13T11:05:53.0565014Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0565048Z 
2026-06-13T11:05:53.0565173Z ### REQ-HAZARD-ELEVATED-DAEMON-SPAWN
2026-06-13T11:05:53.0566604Z - 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-13T11:05:53.0566743Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0566777Z 
2026-06-13T11:05:53.0566909Z ### REQ-HAZARD-REGISTRY-GHOST-ROWS
2026-06-13T11:05:53.0568196Z - 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-13T11:05:53.0568324Z - Required stages: doc, impl, unit
2026-06-13T11:05:53.0568357Z 
2026-06-13T11:05:53.0568466Z ### REQ-CLI-1
2026-06-13T11:05:53.0569614Z - 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-13T11:05:53.0569739Z - Required stages: impl, unit
2026-06-13T11:05:53.0569772Z 
2026-06-13T11:05:53.0569881Z ### REQ-CLI-2
2026-06-13T11:05:53.0570593Z - 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-13T11:05:53.0570721Z - Required stages: impl, unit
2026-06-13T11:05:53.0570754Z 
2026-06-13T11:05:53.0570857Z ### REQ-CLI-3
2026-06-13T11:05:53.0571590Z - 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-13T11:05:53.0571818Z - Required stages: impl, unit
2026-06-13T11:05:53.0571847Z 
2026-06-13T11:05:53.0571957Z ### REQ-SUBNET-5
2026-06-13T11:05:53.0573092Z - 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-13T11:05:53.0573217Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0573250Z 
2026-06-13T11:05:53.0573359Z ### REQ-SUBNET-6
2026-06-13T11:05:53.0574058Z - 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-13T11:05:53.0574184Z - Required stages: impl, unit
2026-06-13T11:05:53.0574226Z 
2026-06-13T11:05:53.0574330Z ### REQ-SUBNET-7
2026-06-13T11:05:53.0576017Z - 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-13T11:05:53.0576136Z - Required stages: impl, unit
2026-06-13T11:05:53.0576168Z 
2026-06-13T11:05:53.0576263Z ### REQ-SUBNET-8
2026-06-13T11:05:53.0577332Z - 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-13T11:05:53.0577460Z - Required stages: impl, unit
2026-06-13T11:05:53.0577484Z 
2026-06-13T11:05:53.0577588Z ### REQ-INSTALL-6
2026-06-13T11:05:53.0578855Z - 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-13T11:05:53.0579036Z - Required stages: impl, unit
2026-06-13T11:05:53.0579059Z 
2026-06-13T11:05:53.0579172Z ### REQ-INSTALL-7
2026-06-13T11:05:53.0580280Z - 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-13T11:05:53.0580398Z - Required stages: impl
2026-06-13T11:05:53.0580432Z 
2026-06-13T11:05:53.0580548Z ### REQ-INSTALL-8
2026-06-13T11:05:53.0581607Z - 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-13T11:05:53.0581720Z - Required stages: impl
2026-06-13T11:05:53.0581754Z 
2026-06-13T11:05:53.0581859Z ### REQ-CONV-1
2026-06-13T11:05:53.0583252Z - 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-13T11:05:53.0583476Z - Required stages: impl, unit
2026-06-13T11:05:53.0583509Z 
2026-06-13T11:05:53.0583614Z ### REQ-CONV-2
2026-06-13T11:05:53.0584739Z - 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-13T11:05:53.0584853Z - Required stages: impl, unit
2026-06-13T11:05:53.0584890Z 
2026-06-13T11:05:53.0585001Z ### REQ-PAIR-8
2026-06-13T11:05:53.0586279Z - 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-13T11:05:53.0586398Z - Required stages: impl, unit
2026-06-13T11:05:53.0586425Z 
2026-06-13T11:05:53.0586654Z ### REQ-DAEMON-5
2026-06-13T11:05:53.0587902Z - 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-13T11:05:53.0588030Z - Required stages: impl, unit
2026-06-13T11:05:53.0588063Z 
2026-06-13T11:05:53.0588172Z ### REQ-DAEMON-6
2026-06-13T11:05:53.0590115Z - Title: Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.
2026-06-13T11:05:53.0590239Z - Required stages: impl, unit
2026-06-13T11:05:53.0590277Z 
2026-06-13T11:05:53.0590376Z ### REQ-DAEMON-7
2026-06-13T11:05:53.0591757Z - Title: `daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).
2026-06-13T11:05:53.0591878Z - Required stages: impl, unit
2026-06-13T11:05:53.0591912Z 
2026-06-13T11:05:53.0592021Z ### REQ-DAEMON-8
2026-06-13T11:05:53.0592948Z - Title: Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.
2026-06-13T11:05:53.0593077Z - Required stages: impl, unit
2026-06-13T11:05:53.0593220Z 
2026-06-13T11:05:53.0593321Z ### REQ-DAEMON-9
2026-06-13T11:05:53.0595571Z - Title: Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.
2026-06-13T11:05:53.0595684Z - Required stages: impl, unit
2026-06-13T11:05:53.0595719Z 
2026-06-13T11:05:53.0595846Z ### REQ-HAZARD-EPOCH-RESET
2026-06-13T11:05:53.0597152Z - 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-13T11:05:53.0597271Z - Required stages: 
2026-06-13T11:05:53.0597303Z 
2026-06-13T11:05:53.0597412Z ### REQ-MESH-1
2026-06-13T11:05:53.0599692Z - Title: Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).
2026-06-13T11:05:53.0599834Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0599867Z 
2026-06-13T11:05:53.0599976Z ### REQ-MESH-2
2026-06-13T11:05:53.0602523Z - Title: Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).
2026-06-13T11:05:53.0602648Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0602676Z 
2026-06-13T11:05:53.0602789Z ### REQ-MESH-3
2026-06-13T11:05:53.0604462Z - Title: Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.
2026-06-13T11:05:53.0604691Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0604720Z 
2026-06-13T11:05:53.0604830Z ### REQ-MESH-4
2026-06-13T11:05:53.0607055Z - Title: Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.
2026-06-13T11:05:53.0607180Z - Required stages: impl, unit, int
2026-06-13T11:05:53.0607222Z 
2026-06-13T11:05:53.0607322Z ### REQ-MESH-5
2026-06-13T11:05:53.0608693Z - Title: Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.
2026-06-13T11:05:53.0608892Z - Required stages: impl, unit
2026-06-13T11:05:53.0608920Z 
2026-06-13T11:05:53.0609093Z ### REQ-MESH-6
2026-06-13T11:05:53.0610314Z - Title: Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)
2026-06-13T11:05:53.0610432Z - Required stages: impl, unit
2026-06-13T11:05:53.0610469Z 
2026-06-13T11:05:53.0610579Z ## How to report back
2026-06-13T11:05:53.0610612Z 
2026-06-13T11:05:53.0610806Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-13T11:05:53.0610839Z 
2026-06-13T11:05:53.0610930Z     {
2026-06-13T11:05:53.0611059Z       "code": "requirement_quality",
2026-06-13T11:05:53.0611173Z       "requirementId": "REQ-...",
2026-06-13T11:05:53.0611354Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-13T11:05:53.0611473Z       "message": "<short reason>",
2026-06-13T11:05:53.0611603Z       "suggestedRevision": "<optional rewrite>"
2026-06-13T11:05:53.0611703Z     }
2026-06-13T11:05:53.0611736Z 
2026-06-13T11:05:53.0611927Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-13T11:05:53.0612102Z deterministic findings above don't need to be repeated.
2026-06-13T11:05:53.0715963Z Post job cleanup.
2026-06-13T11:05:53.1536095Z [command]/usr/bin/git version
2026-06-13T11:05:53.1575069Z git version 2.43.0
2026-06-13T11:05:53.1608405Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/6a784589-6121-4a2d-b1d4-16807d00441d' before making global git config changes
2026-06-13T11:05:53.1608698Z Adding repository directory to the temporary git global config as a safe directory
2026-06-13T11:05:53.1611910Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-13T11:05:53.1646562Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-13T11:05:53.1680132Z [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-13T11:05:53.1881056Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-13T11:05:53.1901794Z http.https://github.com/.extraheader
2026-06-13T11:05:53.1909830Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-13T11:05:53.1939928Z [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-13T11:05:53.2122244Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-13T11:05:53.2146704Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-13T11:05:53.2446485Z Cleaning up orphan processes
