﻿2026-06-04T02:39:06.1303431Z Current runner version: '2.334.0'
2026-06-04T02:39:06.1312621Z Runner name: 'gravity'
2026-06-04T02:39:06.1313628Z Runner group name: 'Default'
2026-06-04T02:39:06.1315034Z Machine name: 'gravity-linux'
2026-06-04T02:39:06.1318953Z ##[group]GITHUB_TOKEN Permissions
2026-06-04T02:39:06.1323000Z Contents: read
2026-06-04T02:39:06.1323939Z Metadata: read
2026-06-04T02:39:06.1324771Z Packages: read
2026-06-04T02:39:06.1325553Z ##[endgroup]
2026-06-04T02:39:06.1328968Z Secret source: Actions
2026-06-04T02:39:06.1330512Z Prepare workflow directory
2026-06-04T02:39:06.2105107Z Prepare all required actions
2026-06-04T02:39:06.2168729Z Getting action download info
2026-06-04T02:39:06.7989353Z Download action repository 'actions/checkout@v4' (SHA:34e114876b0b11c390a56381ad16ebd13914f8d5)
2026-06-04T02:39:07.8768933Z Complete job name: traceability
2026-06-04T02:39:08.0324034Z ##[group]Run actions/checkout@v4
2026-06-04T02:39:08.0326234Z with:
2026-06-04T02:39:08.0327402Z   repository: SaberMage/spt-core
2026-06-04T02:39:08.0341809Z   token: ***
2026-06-04T02:39:08.0342963Z   ssh-strict: true
2026-06-04T02:39:08.0344124Z   ssh-user: git
2026-06-04T02:39:08.0345309Z   persist-credentials: true
2026-06-04T02:39:08.0346628Z   clean: true
2026-06-04T02:39:08.0347828Z   sparse-checkout-cone-mode: true
2026-06-04T02:39:08.0349291Z   fetch-depth: 1
2026-06-04T02:39:08.0350454Z   fetch-tags: false
2026-06-04T02:39:08.0351653Z   show-progress: true
2026-06-04T02:39:08.0352858Z   lfs: false
2026-06-04T02:39:08.0354036Z   submodules: false
2026-06-04T02:39:08.0355226Z   set-safe-directory: true
2026-06-04T02:39:08.0357077Z ##[endgroup]
2026-06-04T02:39:08.2194836Z Syncing repository: SaberMage/spt-core
2026-06-04T02:39:08.2199511Z ##[group]Getting Git version info
2026-06-04T02:39:08.2202066Z Working directory is '/home/david/actions-runner/_work/spt-core/spt-core'
2026-06-04T02:39:08.2205502Z [command]/usr/bin/git version
2026-06-04T02:39:08.2207094Z git version 2.34.1
2026-06-04T02:39:08.2238452Z ##[endgroup]
2026-06-04T02:39:08.2256509Z Copying '/home/david/.gitconfig' to '/home/david/actions-runner/_work/_temp/966a9172-24cf-4f2c-a3d3-fcad19ce6391/.gitconfig'
2026-06-04T02:39:08.2309413Z Temporarily overriding HOME='/home/david/actions-runner/_work/_temp/966a9172-24cf-4f2c-a3d3-fcad19ce6391' before making global git config changes
2026-06-04T02:39:08.2314241Z Adding repository directory to the temporary git global config as a safe directory
2026-06-04T02:39:08.2321241Z [command]/usr/bin/git config --global --add safe.directory /home/david/actions-runner/_work/spt-core/spt-core
2026-06-04T02:39:08.2381906Z [command]/usr/bin/git config --local --get remote.origin.url
2026-06-04T02:39:08.2417428Z https://github.com/SaberMage/spt-core
2026-06-04T02:39:08.2441056Z ##[group]Removing previously created refs, to avoid conflicts
2026-06-04T02:39:08.2446948Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2026-06-04T02:39:08.2476317Z refs/heads/dev-freeform
2026-06-04T02:39:08.2493829Z [command]/usr/bin/git checkout --detach
2026-06-04T02:39:08.2547852Z HEAD is now at 017d103 fix(store): registry open creates the owlery dir — KNOWN-HAZARDS 4.9
2026-06-04T02:39:08.2614503Z [command]/usr/bin/git branch --delete --force dev-freeform
2026-06-04T02:39:08.2657718Z Deleted branch dev-freeform (was 017d103).
2026-06-04T02:39:08.2713759Z ##[endgroup]
2026-06-04T02:39:08.2716772Z [command]/usr/bin/git submodule status
2026-06-04T02:39:08.2976314Z ##[group]Cleaning the repository
2026-06-04T02:39:08.2981808Z [command]/usr/bin/git clean -ffdx
2026-06-04T02:39:08.9475997Z Removing target/
2026-06-04T02:39:08.9490840Z [command]/usr/bin/git reset --hard HEAD
2026-06-04T02:39:08.9553376Z HEAD is now at 017d103 fix(store): registry open creates the owlery dir — KNOWN-HAZARDS 4.9
2026-06-04T02:39:08.9559839Z ##[endgroup]
2026-06-04T02:39:08.9562235Z ##[group]Disabling automatic garbage collection
2026-06-04T02:39:08.9568475Z [command]/usr/bin/git config --local gc.auto 0
2026-06-04T02:39:08.9617067Z ##[endgroup]
2026-06-04T02:39:08.9619757Z ##[group]Setting up auth
2026-06-04T02:39:08.9627028Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-04T02:39:08.9669374Z [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-04T02:39:08.9906698Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-04T02:39:08.9945697Z [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-04T02:39:09.0181223Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-04T02:39:09.0236924Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-04T02:39:09.0518233Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-04T02:39:09.0586380Z ##[endgroup]
2026-06-04T02:39:09.0588618Z ##[group]Fetching the repository
2026-06-04T02:39:09.0603484Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +caab43332f3dec1bfdba4c526883ccd7c805a8dc:refs/remotes/origin/dev-freeform
2026-06-04T02:39:09.8189082Z From https://github.com/SaberMage/spt-core
2026-06-04T02:39:09.8191787Z  + 017d103...caab433 caab43332f3dec1bfdba4c526883ccd7c805a8dc -> origin/dev-freeform  (forced update)
2026-06-04T02:39:09.8217001Z ##[endgroup]
2026-06-04T02:39:09.8218153Z ##[group]Determining the checkout info
2026-06-04T02:39:09.8219346Z ##[endgroup]
2026-06-04T02:39:09.8227168Z [command]/usr/bin/git sparse-checkout disable
2026-06-04T02:39:09.8277258Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-04T02:39:09.8314901Z ##[group]Checking out the ref
2026-06-04T02:39:09.8317845Z [command]/usr/bin/git checkout --progress --force -B dev-freeform refs/remotes/origin/dev-freeform
2026-06-04T02:39:09.8393740Z Warning: you are leaving 1 commit behind, not connected to
2026-06-04T02:39:09.8394537Z any of your branches:
2026-06-04T02:39:09.8394856Z 
2026-06-04T02:39:09.8395778Z   017d103 fix(store): registry open creates the owlery dir — KNOWN-HAZARDS 4.9
2026-06-04T02:39:09.8396361Z 
2026-06-04T02:39:09.8396790Z If you want to keep it by creating a new branch, this may be a good time
2026-06-04T02:39:09.8497022Z to do so with:
2026-06-04T02:39:09.8497808Z 
2026-06-04T02:39:09.8498159Z  git branch <new-branch-name> 017d103
2026-06-04T02:39:09.8498638Z 
2026-06-04T02:39:09.8499447Z Switched to a new branch 'dev-freeform'
2026-06-04T02:39:09.8511380Z Branch 'dev-freeform' set up to track remote branch 'dev-freeform' from 'origin'.
2026-06-04T02:39:09.8514234Z ##[endgroup]
2026-06-04T02:39:09.8516983Z [command]/usr/bin/git log -1 --format=%H
2026-06-04T02:39:09.8517721Z caab43332f3dec1bfdba4c526883ccd7c805a8dc
2026-06-04T02:39:09.8787217Z ##[group]Run if command -v traceable-reqs >/dev/null; then
2026-06-04T02:39:09.8788105Z [36;1mif command -v traceable-reqs >/dev/null; then[0m
2026-06-04T02:39:09.8788773Z [36;1m  ln -sf "$(command -v traceable-reqs)" ./traceable-reqs[0m
2026-06-04T02:39:09.8789716Z [36;1melse[0m
2026-06-04T02:39:09.8790239Z [36;1m  gh release download --repo BigscreenVR/traceable-reqs \[0m
2026-06-04T02:39:09.8790949Z [36;1m    --pattern '*linux-x86_64' --output traceable-reqs[0m
2026-06-04T02:39:09.8791534Z [36;1m  chmod +x traceable-reqs[0m
2026-06-04T02:39:09.8791995Z [36;1mfi[0m
2026-06-04T02:39:09.8816462Z shell: /usr/bin/bash -e {0}
2026-06-04T02:39:09.8816946Z env:
2026-06-04T02:39:09.8818034Z   GH_TOKEN: ***
2026-06-04T02:39:09.8818420Z ##[endgroup]
2026-06-04T02:39:09.8985888Z ##[group]Run ./traceable-reqs check --json
2026-06-04T02:39:09.8986871Z [36;1m./traceable-reqs check --json[0m
2026-06-04T02:39:09.9005986Z shell: /usr/bin/bash -e {0}
2026-06-04T02:39:09.9006811Z ##[endgroup]
2026-06-04T02:39:09.9164880Z {
2026-06-04T02:39:09.9165411Z   "schemaVersion": 1,
2026-06-04T02:39:09.9165912Z   "summary": {
2026-06-04T02:39:09.9166382Z     "requirementCount": 128,
2026-06-04T02:39:09.9166902Z     "completeCount": 128,
2026-06-04T02:39:09.9167417Z     "incompleteCount": 0,
2026-06-04T02:39:09.9167937Z     "findingCount": 0
2026-06-04T02:39:09.9168372Z   },
2026-06-04T02:39:09.9168798Z   "requirements": [
2026-06-04T02:39:09.9169341Z     {
2026-06-04T02:39:09.9169811Z       "id": "REQ-API-1",
2026-06-04T02:39:09.9170534Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-04T02:39:09.9181966Z       "requiredStages": [
2026-06-04T02:39:09.9182621Z         "impl",
2026-06-04T02:39:09.9183056Z         "unit",
2026-06-04T02:39:09.9183643Z         "int"
2026-06-04T02:39:09.9184054Z       ],
2026-06-04T02:39:09.9184436Z       "stages": {
2026-06-04T02:39:09.9184879Z         "doc": {
2026-06-04T02:39:09.9185334Z           "complete": false,
2026-06-04T02:39:09.9185905Z           "evidence": []
2026-06-04T02:39:09.9186388Z         },
2026-06-04T02:39:09.9186790Z         "impl": {
2026-06-04T02:39:09.9187243Z           "complete": true,
2026-06-04T02:39:09.9187759Z           "evidence": [
2026-06-04T02:39:09.9188213Z             {
2026-06-04T02:39:09.9188695Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T02:39:09.9190348Z               "line": 15
2026-06-04T02:39:09.9190870Z             }
2026-06-04T02:39:09.9191289Z           ]
2026-06-04T02:39:09.9191683Z         },
2026-06-04T02:39:09.9192096Z         "int": {
2026-06-04T02:39:09.9192563Z           "complete": true,
2026-06-04T02:39:09.9193045Z           "evidence": [
2026-06-04T02:39:09.9193489Z             {
2026-06-04T02:39:09.9194023Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:39:09.9194636Z               "line": 13
2026-06-04T02:39:09.9195196Z             }
2026-06-04T02:39:09.9195594Z           ]
2026-06-04T02:39:09.9195998Z         },
2026-06-04T02:39:09.9198852Z         "unit": {
2026-06-04T02:39:09.9199382Z           "complete": true,
2026-06-04T02:39:09.9199865Z           "evidence": [
2026-06-04T02:39:09.9200298Z             {
2026-06-04T02:39:09.9200777Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T02:39:09.9201360Z               "line": 329
2026-06-04T02:39:09.9201822Z             },
2026-06-04T02:39:09.9202236Z             {
2026-06-04T02:39:09.9202711Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T02:39:09.9203274Z               "line": 335
2026-06-04T02:39:09.9203721Z             },
2026-06-04T02:39:09.9204121Z             {
2026-06-04T02:39:09.9204598Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T02:39:09.9205171Z               "line": 346
2026-06-04T02:39:09.9205630Z             }
2026-06-04T02:39:09.9206041Z           ]
2026-06-04T02:39:09.9206434Z         }
2026-06-04T02:39:09.9206815Z       }
2026-06-04T02:39:09.9207185Z     },
2026-06-04T02:39:09.9207563Z     {
2026-06-04T02:39:09.9207988Z       "id": "REQ-API-2",
2026-06-04T02:39:09.9208731Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-04T02:39:09.9209615Z       "requiredStages": [
2026-06-04T02:39:09.9210149Z         "impl",
2026-06-04T02:39:09.9210571Z         "unit",
2026-06-04T02:39:09.9211024Z         "int"
2026-06-04T02:39:09.9211436Z       ],
2026-06-04T02:39:09.9211837Z       "stages": {
2026-06-04T02:39:09.9212262Z         "doc": {
2026-06-04T02:39:09.9212711Z           "complete": false,
2026-06-04T02:39:09.9213218Z           "evidence": []
2026-06-04T02:39:09.9216679Z         },
2026-06-04T02:39:09.9217230Z         "impl": {
2026-06-04T02:39:09.9217675Z           "complete": true,
2026-06-04T02:39:09.9218157Z           "evidence": [
2026-06-04T02:39:09.9218964Z             {
2026-06-04T02:39:09.9219653Z               "path": "crates/spt-store/src/history.rs",
2026-06-04T02:39:09.9220260Z               "line": 15
2026-06-04T02:39:09.9220695Z             },
2026-06-04T02:39:09.9221315Z             {
2026-06-04T02:39:09.9221779Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:39:09.9222330Z               "line": 20
2026-06-04T02:39:09.9222743Z             },
2026-06-04T02:39:09.9223118Z             {
2026-06-04T02:39:09.9223574Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:39:09.9224129Z               "line": 125
2026-06-04T02:39:09.9224560Z             },
2026-06-04T02:39:09.9224932Z             {
2026-06-04T02:39:09.9225392Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:09.9225945Z               "line": 21
2026-06-04T02:39:09.9226359Z             },
2026-06-04T02:39:09.9226729Z             {
2026-06-04T02:39:09.9227193Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:09.9227767Z               "line": 36
2026-06-04T02:39:09.9228184Z             },
2026-06-04T02:39:09.9228568Z             {
2026-06-04T02:39:09.9229024Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:09.9229675Z               "line": 101
2026-06-04T02:39:09.9230100Z             },
2026-06-04T02:39:09.9230465Z             {
2026-06-04T02:39:09.9230932Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:09.9231489Z               "line": 123
2026-06-04T02:39:09.9231912Z             },
2026-06-04T02:39:09.9232300Z             {
2026-06-04T02:39:09.9232760Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:09.9233309Z               "line": 147
2026-06-04T02:39:09.9233729Z             },
2026-06-04T02:39:09.9234099Z             {
2026-06-04T02:39:09.9234543Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:39:09.9235084Z               "line": 17
2026-06-04T02:39:09.9235500Z             },
2026-06-04T02:39:09.9235886Z             {
2026-06-04T02:39:09.9236350Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:39:09.9236880Z               "line": 30
2026-06-04T02:39:09.9257118Z             },
2026-06-04T02:39:09.9257655Z             {
2026-06-04T02:39:09.9258141Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:39:09.9258703Z               "line": 63
2026-06-04T02:39:09.9259118Z             },
2026-06-04T02:39:09.9259567Z             {
2026-06-04T02:39:09.9260168Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:39:09.9260696Z               "line": 76
2026-06-04T02:39:09.9261089Z             }
2026-06-04T02:39:09.9261448Z           ]
2026-06-04T02:39:09.9261799Z         },
2026-06-04T02:39:09.9262152Z         "int": {
2026-06-04T02:39:09.9262548Z           "complete": true,
2026-06-04T02:39:09.9262972Z           "evidence": [
2026-06-04T02:39:09.9263360Z             {
2026-06-04T02:39:09.9263818Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:39:09.9264369Z               "line": 14
2026-06-04T02:39:09.9264767Z             },
2026-06-04T02:39:09.9265124Z             {
2026-06-04T02:39:09.9265587Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:39:09.9266138Z               "line": 151
2026-06-04T02:39:09.9266536Z             }
2026-06-04T02:39:09.9266886Z           ]
2026-06-04T02:39:09.9267229Z         },
2026-06-04T02:39:09.9267579Z         "unit": {
2026-06-04T02:39:09.9267980Z           "complete": true,
2026-06-04T02:39:09.9268415Z           "evidence": [
2026-06-04T02:39:09.9268811Z             {
2026-06-04T02:39:09.9269470Z               "path": "crates/spt-store/src/history.rs",
2026-06-04T02:39:09.9270187Z               "line": 42
2026-06-04T02:39:09.9270591Z             },
2026-06-04T02:39:09.9270955Z             {
2026-06-04T02:39:09.9271404Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:39:09.9271939Z               "line": 204
2026-06-04T02:39:09.9272349Z             },
2026-06-04T02:39:09.9273234Z             {
2026-06-04T02:39:09.9273756Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:09.9274295Z               "line": 220
2026-06-04T02:39:09.9274697Z             },
2026-06-04T02:39:09.9275242Z             {
2026-06-04T02:39:09.9275695Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:09.9276232Z               "line": 231
2026-06-04T02:39:09.9276643Z             },
2026-06-04T02:39:09.9277002Z             {
2026-06-04T02:39:09.9277466Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:09.9278004Z               "line": 267
2026-06-04T02:39:09.9278401Z             },
2026-06-04T02:39:09.9278771Z             {
2026-06-04T02:39:09.9279723Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:09.9280440Z               "line": 279
2026-06-04T02:39:09.9280848Z             },
2026-06-04T02:39:09.9281215Z             {
2026-06-04T02:39:09.9281675Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:39:09.9282220Z               "line": 137
2026-06-04T02:39:09.9282621Z             },
2026-06-04T02:39:09.9282977Z             {
2026-06-04T02:39:09.9283421Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:39:09.9283962Z               "line": 172
2026-06-04T02:39:09.9284364Z             }
2026-06-04T02:39:09.9284718Z           ]
2026-06-04T02:39:09.9285062Z         }
2026-06-04T02:39:09.9285418Z       }
2026-06-04T02:39:09.9285747Z     },
2026-06-04T02:39:09.9286093Z     {
2026-06-04T02:39:09.9286458Z       "id": "REQ-API-3",
2026-06-04T02:39:09.9287014Z       "title": "commune/signoff are file-drops, not commands",
2026-06-04T02:39:09.9287613Z       "requiredStages": [
2026-06-04T02:39:09.9288032Z         "impl",
2026-06-04T02:39:09.9288409Z         "unit",
2026-06-04T02:39:09.9288780Z         "int"
2026-06-04T02:39:09.9289148Z       ],
2026-06-04T02:39:09.9289857Z       "stages": {
2026-06-04T02:39:09.9290231Z         "doc": {
2026-06-04T02:39:09.9290633Z           "complete": false,
2026-06-04T02:39:09.9291091Z           "evidence": []
2026-06-04T02:39:09.9291501Z         },
2026-06-04T02:39:09.9291858Z         "impl": {
2026-06-04T02:39:09.9292259Z           "complete": true,
2026-06-04T02:39:09.9292710Z           "evidence": [
2026-06-04T02:39:09.9293128Z             {
2026-06-04T02:39:09.9293584Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T02:39:09.9294113Z               "line": 14
2026-06-04T02:39:09.9294591Z             },
2026-06-04T02:39:09.9294949Z             {
2026-06-04T02:39:09.9295406Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:09.9295948Z               "line": 157
2026-06-04T02:39:09.9296358Z             }
2026-06-04T02:39:09.9296722Z           ]
2026-06-04T02:39:09.9297065Z         },
2026-06-04T02:39:09.9297408Z         "int": {
2026-06-04T02:39:09.9297815Z           "complete": true,
2026-06-04T02:39:09.9298265Z           "evidence": [
2026-06-04T02:39:09.9298673Z             {
2026-06-04T02:39:09.9299205Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:39:09.9299772Z               "line": 203
2026-06-04T02:39:09.9300184Z             }
2026-06-04T02:39:09.9300560Z           ]
2026-06-04T02:39:09.9300938Z         },
2026-06-04T02:39:09.9301300Z         "unit": {
2026-06-04T02:39:09.9301716Z           "complete": true,
2026-06-04T02:39:09.9302149Z           "evidence": [
2026-06-04T02:39:09.9302530Z             {
2026-06-04T02:39:09.9302974Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T02:39:09.9303508Z               "line": 117
2026-06-04T02:39:09.9303911Z             },
2026-06-04T02:39:09.9304276Z             {
2026-06-04T02:39:09.9304736Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:09.9305274Z               "line": 288
2026-06-04T02:39:09.9305683Z             }
2026-06-04T02:39:09.9306043Z           ]
2026-06-04T02:39:09.9306397Z         }
2026-06-04T02:39:09.9306749Z       }
2026-06-04T02:39:09.9307094Z     },
2026-06-04T02:39:09.9307432Z     {
2026-06-04T02:39:09.9308051Z       "id": "REQ-ARCH-1",
2026-06-04T02:39:09.9308624Z       "title": "Many small acyclically-layered crates",
2026-06-04T02:39:09.9309256Z       "requiredStages": [
2026-06-04T02:39:09.9309972Z         "impl"
2026-06-04T02:39:09.9310340Z       ],
2026-06-04T02:39:09.9310696Z       "stages": {
2026-06-04T02:39:09.9311074Z         "doc": {
2026-06-04T02:39:09.9311484Z           "complete": false,
2026-06-04T02:39:09.9311943Z           "evidence": []
2026-06-04T02:39:09.9312343Z         },
2026-06-04T02:39:09.9312703Z         "impl": {
2026-06-04T02:39:09.9313131Z           "complete": true,
2026-06-04T02:39:09.9313572Z           "evidence": [
2026-06-04T02:39:09.9313973Z             {
2026-06-04T02:39:09.9314425Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-04T02:39:09.9314953Z               "line": 16
2026-06-04T02:39:09.9315365Z             },
2026-06-04T02:39:09.9315731Z             {
2026-06-04T02:39:09.9316184Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-04T02:39:09.9316735Z               "line": 12
2026-06-04T02:39:09.9317156Z             },
2026-06-04T02:39:09.9317522Z             {
2026-06-04T02:39:09.9317976Z               "path": "crates/spt-store/src/lib.rs",
2026-06-04T02:39:09.9318520Z               "line": 12
2026-06-04T02:39:09.9318933Z             }
2026-06-04T02:39:09.9319345Z           ]
2026-06-04T02:39:09.9319702Z         },
2026-06-04T02:39:09.9320060Z         "int": {
2026-06-04T02:39:09.9320469Z           "complete": false,
2026-06-04T02:39:09.9320935Z           "evidence": []
2026-06-04T02:39:09.9321344Z         },
2026-06-04T02:39:09.9321701Z         "unit": {
2026-06-04T02:39:09.9322112Z           "complete": false,
2026-06-04T02:39:09.9322557Z           "evidence": []
2026-06-04T02:39:09.9322962Z         }
2026-06-04T02:39:09.9323304Z       }
2026-06-04T02:39:09.9323644Z     },
2026-06-04T02:39:09.9324007Z     {
2026-06-04T02:39:09.9324390Z       "id": "REQ-ARCH-2",
2026-06-04T02:39:09.9325031Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-04T02:39:09.9325694Z       "requiredStages": [
2026-06-04T02:39:09.9326120Z         "impl"
2026-06-04T02:39:09.9326495Z       ],
2026-06-04T02:39:09.9326870Z       "stages": {
2026-06-04T02:39:09.9327255Z         "doc": {
2026-06-04T02:39:09.9327661Z           "complete": false,
2026-06-04T02:39:09.9328126Z           "evidence": []
2026-06-04T02:39:09.9328530Z         },
2026-06-04T02:39:09.9328893Z         "impl": {
2026-06-04T02:39:09.9329391Z           "complete": true,
2026-06-04T02:39:09.9329864Z           "evidence": [
2026-06-04T02:39:09.9330261Z             {
2026-06-04T02:39:09.9330713Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-04T02:39:09.9331244Z               "line": 18
2026-06-04T02:39:09.9331656Z             }
2026-06-04T02:39:09.9332018Z           ]
2026-06-04T02:39:09.9332371Z         },
2026-06-04T02:39:09.9332728Z         "int": {
2026-06-04T02:39:09.9333137Z           "complete": false,
2026-06-04T02:39:09.9333608Z           "evidence": []
2026-06-04T02:39:09.9334016Z         },
2026-06-04T02:39:09.9334377Z         "unit": {
2026-06-04T02:39:09.9334782Z           "complete": false,
2026-06-04T02:39:09.9335248Z           "evidence": []
2026-06-04T02:39:09.9335674Z         }
2026-06-04T02:39:09.9336019Z       }
2026-06-04T02:39:09.9336367Z     },
2026-06-04T02:39:09.9336709Z     {
2026-06-04T02:39:09.9337084Z       "id": "REQ-ARCH-3",
2026-06-04T02:39:09.9337779Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-04T02:39:09.9338526Z       "requiredStages": [
2026-06-04T02:39:09.9338979Z         "impl",
2026-06-04T02:39:09.9339477Z         "unit"
2026-06-04T02:39:09.9339856Z       ],
2026-06-04T02:39:09.9340216Z       "stages": {
2026-06-04T02:39:09.9340604Z         "doc": {
2026-06-04T02:39:09.9341023Z           "complete": false,
2026-06-04T02:39:09.9341469Z           "evidence": []
2026-06-04T02:39:09.9341883Z         },
2026-06-04T02:39:09.9342242Z         "impl": {
2026-06-04T02:39:09.9342872Z           "complete": true,
2026-06-04T02:39:09.9343354Z           "evidence": [
2026-06-04T02:39:09.9343764Z             {
2026-06-04T02:39:09.9344240Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T02:39:09.9344950Z               "line": 34
2026-06-04T02:39:09.9345356Z             },
2026-06-04T02:39:09.9345735Z             {
2026-06-04T02:39:09.9346212Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T02:39:09.9346772Z               "line": 41
2026-06-04T02:39:09.9347184Z             }
2026-06-04T02:39:09.9347545Z           ]
2026-06-04T02:39:09.9347897Z         },
2026-06-04T02:39:09.9348244Z         "int": {
2026-06-04T02:39:09.9348653Z           "complete": false,
2026-06-04T02:39:09.9349103Z           "evidence": []
2026-06-04T02:39:09.9349775Z         },
2026-06-04T02:39:09.9350301Z         "unit": {
2026-06-04T02:39:09.9350721Z           "complete": true,
2026-06-04T02:39:09.9351161Z           "evidence": [
2026-06-04T02:39:09.9351556Z             {
2026-06-04T02:39:09.9352036Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T02:39:09.9352592Z               "line": 51
2026-06-04T02:39:09.9352994Z             },
2026-06-04T02:39:09.9353387Z             {
2026-06-04T02:39:09.9353859Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T02:39:09.9354409Z               "line": 65
2026-06-04T02:39:09.9354826Z             },
2026-06-04T02:39:09.9355196Z             {
2026-06-04T02:39:09.9355658Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T02:39:09.9356210Z               "line": 74
2026-06-04T02:39:09.9356620Z             }
2026-06-04T02:39:09.9356979Z           ]
2026-06-04T02:39:09.9357336Z         }
2026-06-04T02:39:09.9357690Z       }
2026-06-04T02:39:09.9358047Z     },
2026-06-04T02:39:09.9358393Z     {
2026-06-04T02:39:09.9358764Z       "id": "REQ-ARCH-4",
2026-06-04T02:39:09.9359611Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-04T02:39:09.9360498Z       "requiredStages": [
2026-06-04T02:39:09.9360936Z         "impl",
2026-06-04T02:39:09.9361314Z         "unit"
2026-06-04T02:39:09.9361681Z       ],
2026-06-04T02:39:09.9362036Z       "stages": {
2026-06-04T02:39:09.9362447Z         "doc": {
2026-06-04T02:39:09.9362850Z           "complete": false,
2026-06-04T02:39:09.9363311Z           "evidence": []
2026-06-04T02:39:09.9363723Z         },
2026-06-04T02:39:09.9364084Z         "impl": {
2026-06-04T02:39:09.9364490Z           "complete": true,
2026-06-04T02:39:09.9364934Z           "evidence": [
2026-06-04T02:39:09.9365340Z             {
2026-06-04T02:39:09.9375542Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9376149Z               "line": 32
2026-06-04T02:39:09.9376570Z             },
2026-06-04T02:39:09.9376935Z             {
2026-06-04T02:39:09.9377384Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9377908Z               "line": 46
2026-06-04T02:39:09.9378309Z             },
2026-06-04T02:39:09.9378724Z             {
2026-06-04T02:39:09.9379285Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9379833Z               "line": 66
2026-06-04T02:39:09.9380233Z             },
2026-06-04T02:39:09.9380612Z             {
2026-06-04T02:39:09.9381056Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9381584Z               "line": 81
2026-06-04T02:39:09.9381986Z             },
2026-06-04T02:39:09.9382354Z             {
2026-06-04T02:39:09.9382795Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9383334Z               "line": 131
2026-06-04T02:39:09.9383737Z             }
2026-06-04T02:39:09.9384098Z           ]
2026-06-04T02:39:09.9384442Z         },
2026-06-04T02:39:09.9384793Z         "int": {
2026-06-04T02:39:09.9385192Z           "complete": false,
2026-06-04T02:39:09.9385633Z           "evidence": []
2026-06-04T02:39:09.9386035Z         },
2026-06-04T02:39:09.9386390Z         "unit": {
2026-06-04T02:39:09.9387102Z           "complete": true,
2026-06-04T02:39:09.9387561Z           "evidence": [
2026-06-04T02:39:09.9387952Z             {
2026-06-04T02:39:09.9388399Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9389153Z               "line": 195
2026-06-04T02:39:09.9389623Z             },
2026-06-04T02:39:09.9389987Z             {
2026-06-04T02:39:09.9390434Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9390975Z               "line": 205
2026-06-04T02:39:09.9391380Z             },
2026-06-04T02:39:09.9391746Z             {
2026-06-04T02:39:09.9392187Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9392715Z               "line": 216
2026-06-04T02:39:09.9393117Z             },
2026-06-04T02:39:09.9393484Z             {
2026-06-04T02:39:09.9393922Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9394448Z               "line": 227
2026-06-04T02:39:09.9394865Z             },
2026-06-04T02:39:09.9395224Z             {
2026-06-04T02:39:09.9395676Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9396207Z               "line": 239
2026-06-04T02:39:09.9396617Z             },
2026-06-04T02:39:09.9396978Z             {
2026-06-04T02:39:09.9397433Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9397968Z               "line": 252
2026-06-04T02:39:09.9398398Z             },
2026-06-04T02:39:09.9398757Z             {
2026-06-04T02:39:09.9399234Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9399768Z               "line": 263
2026-06-04T02:39:09.9400179Z             },
2026-06-04T02:39:09.9400538Z             {
2026-06-04T02:39:09.9400983Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9401508Z               "line": 277
2026-06-04T02:39:09.9401922Z             },
2026-06-04T02:39:09.9402285Z             {
2026-06-04T02:39:09.9402730Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:39:09.9403258Z               "line": 286
2026-06-04T02:39:09.9403679Z             }
2026-06-04T02:39:09.9404044Z           ]
2026-06-04T02:39:09.9404401Z         }
2026-06-04T02:39:09.9404739Z       }
2026-06-04T02:39:09.9405081Z     },
2026-06-04T02:39:09.9405451Z     {
2026-06-04T02:39:09.9405821Z       "id": "REQ-DAEMON-1",
2026-06-04T02:39:09.9406435Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-04T02:39:09.9407103Z       "requiredStages": [
2026-06-04T02:39:09.9407526Z         "impl",
2026-06-04T02:39:09.9407898Z         "unit",
2026-06-04T02:39:09.9408271Z         "int"
2026-06-04T02:39:09.9408635Z       ],
2026-06-04T02:39:09.9408980Z       "stages": {
2026-06-04T02:39:09.9409423Z         "doc": {
2026-06-04T02:39:09.9409840Z           "complete": false,
2026-06-04T02:39:09.9410291Z           "evidence": []
2026-06-04T02:39:09.9410691Z         },
2026-06-04T02:39:09.9411050Z         "impl": {
2026-06-04T02:39:09.9417144Z           "complete": true,
2026-06-04T02:39:09.9417627Z           "evidence": [
2026-06-04T02:39:09.9418077Z             {
2026-06-04T02:39:09.9418547Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:39:09.9419095Z               "line": 12
2026-06-04T02:39:09.9419811Z             },
2026-06-04T02:39:09.9420322Z             {
2026-06-04T02:39:09.9420786Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9421379Z               "line": 16
2026-06-04T02:39:09.9421781Z             },
2026-06-04T02:39:09.9422144Z             {
2026-06-04T02:39:09.9422589Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-04T02:39:09.9423123Z               "line": 15
2026-06-04T02:39:09.9423515Z             },
2026-06-04T02:39:09.9423870Z             {
2026-06-04T02:39:09.9424302Z               "path": "crates/spt/src/api/live.rs",
2026-06-04T02:39:09.9424819Z               "line": 13
2026-06-04T02:39:09.9425226Z             }
2026-06-04T02:39:09.9425579Z           ]
2026-06-04T02:39:09.9425928Z         },
2026-06-04T02:39:09.9426285Z         "int": {
2026-06-04T02:39:09.9426927Z           "complete": true,
2026-06-04T02:39:09.9427387Z           "evidence": [
2026-06-04T02:39:09.9427788Z             {
2026-06-04T02:39:09.9428273Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T02:39:09.9428991Z               "line": 32
2026-06-04T02:39:09.9429452Z             }
2026-06-04T02:39:09.9429810Z           ]
2026-06-04T02:39:09.9430154Z         },
2026-06-04T02:39:09.9430520Z         "unit": {
2026-06-04T02:39:09.9430920Z           "complete": true,
2026-06-04T02:39:09.9431350Z           "evidence": [
2026-06-04T02:39:09.9431740Z             {
2026-06-04T02:39:09.9432198Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:39:09.9432732Z               "line": 173
2026-06-04T02:39:09.9433141Z             },
2026-06-04T02:39:09.9433495Z             {
2026-06-04T02:39:09.9433957Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:39:09.9434492Z               "line": 181
2026-06-04T02:39:09.9434910Z             },
2026-06-04T02:39:09.9435269Z             {
2026-06-04T02:39:09.9435724Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:39:09.9436260Z               "line": 194
2026-06-04T02:39:09.9436671Z             },
2026-06-04T02:39:09.9437029Z             {
2026-06-04T02:39:09.9437482Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:39:09.9438038Z               "line": 202
2026-06-04T02:39:09.9438447Z             },
2026-06-04T02:39:09.9438814Z             {
2026-06-04T02:39:09.9439363Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9439919Z               "line": 451
2026-06-04T02:39:09.9440319Z             },
2026-06-04T02:39:09.9440674Z             {
2026-06-04T02:39:09.9441131Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9441688Z               "line": 510
2026-06-04T02:39:09.9442096Z             },
2026-06-04T02:39:09.9442452Z             {
2026-06-04T02:39:09.9442908Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-04T02:39:09.9443447Z               "line": 100
2026-06-04T02:39:09.9443850Z             },
2026-06-04T02:39:09.9444214Z             {
2026-06-04T02:39:09.9444682Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-04T02:39:09.9445228Z               "line": 125
2026-06-04T02:39:09.9445627Z             }
2026-06-04T02:39:09.9445981Z           ]
2026-06-04T02:39:09.9446323Z         }
2026-06-04T02:39:09.9446659Z       }
2026-06-04T02:39:09.9447002Z     },
2026-06-04T02:39:09.9447335Z     {
2026-06-04T02:39:09.9447706Z       "id": "REQ-DAEMON-2",
2026-06-04T02:39:09.9448262Z       "title": "Broker/brain split for seamless self-update",
2026-06-04T02:39:09.9448862Z       "requiredStages": [
2026-06-04T02:39:09.9449326Z         "impl",
2026-06-04T02:39:09.9449704Z         "unit",
2026-06-04T02:39:09.9450085Z         "int"
2026-06-04T02:39:09.9450443Z       ],
2026-06-04T02:39:09.9450785Z       "stages": {
2026-06-04T02:39:09.9451157Z         "doc": {
2026-06-04T02:39:09.9451569Z           "complete": false,
2026-06-04T02:39:09.9452011Z           "evidence": []
2026-06-04T02:39:09.9452421Z         },
2026-06-04T02:39:09.9457922Z         "impl": {
2026-06-04T02:39:09.9458497Z           "complete": true,
2026-06-04T02:39:09.9458939Z           "evidence": [
2026-06-04T02:39:09.9459422Z             {
2026-06-04T02:39:09.9459902Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:39:09.9460430Z               "line": 23
2026-06-04T02:39:09.9460826Z             },
2026-06-04T02:39:09.9461193Z             {
2026-06-04T02:39:09.9461636Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:39:09.9462165Z               "line": 474
2026-06-04T02:39:09.9462569Z             },
2026-06-04T02:39:09.9462921Z             {
2026-06-04T02:39:09.9463359Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:39:09.9463890Z               "line": 584
2026-06-04T02:39:09.9464289Z             },
2026-06-04T02:39:09.9464650Z             {
2026-06-04T02:39:09.9465365Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:39:09.9465938Z               "line": 32
2026-06-04T02:39:09.9466346Z             },
2026-06-04T02:39:09.9466859Z             {
2026-06-04T02:39:09.9467311Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:39:09.9467844Z               "line": 187
2026-06-04T02:39:09.9468248Z             },
2026-06-04T02:39:09.9468617Z             {
2026-06-04T02:39:09.9469074Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:39:09.9469718Z               "line": 485
2026-06-04T02:39:09.9470122Z             },
2026-06-04T02:39:09.9470481Z             {
2026-06-04T02:39:09.9470930Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:39:09.9471457Z               "line": 654
2026-06-04T02:39:09.9471860Z             },
2026-06-04T02:39:09.9472223Z             {
2026-06-04T02:39:09.9472677Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T02:39:09.9473220Z               "line": 11
2026-06-04T02:39:09.9473616Z             },
2026-06-04T02:39:09.9473976Z             {
2026-06-04T02:39:09.9474432Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-04T02:39:09.9474974Z               "line": 53
2026-06-04T02:39:09.9475369Z             },
2026-06-04T02:39:09.9475726Z             {
2026-06-04T02:39:09.9476154Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:39:09.9476684Z               "line": 13
2026-06-04T02:39:09.9477079Z             },
2026-06-04T02:39:09.9477436Z             {
2026-06-04T02:39:09.9477888Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:39:09.9478420Z               "line": 27
2026-06-04T02:39:09.9478815Z             },
2026-06-04T02:39:09.9479211Z             {
2026-06-04T02:39:09.9479666Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:39:09.9480213Z               "line": 94
2026-06-04T02:39:09.9480618Z             },
2026-06-04T02:39:09.9480974Z             {
2026-06-04T02:39:09.9481434Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:39:09.9481973Z               "line": 383
2026-06-04T02:39:09.9482370Z             },
2026-06-04T02:39:09.9482749Z             {
2026-06-04T02:39:09.9483203Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:39:09.9483745Z               "line": 450
2026-06-04T02:39:09.9484152Z             },
2026-06-04T02:39:09.9484509Z             {
2026-06-04T02:39:09.9484963Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:39:09.9485501Z               "line": 484
2026-06-04T02:39:09.9485908Z             },
2026-06-04T02:39:09.9486265Z             {
2026-06-04T02:39:09.9486716Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:39:09.9487262Z               "line": 526
2026-06-04T02:39:09.9487664Z             },
2026-06-04T02:39:09.9488027Z             {
2026-06-04T02:39:09.9488474Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:39:09.9489023Z               "line": 570
2026-06-04T02:39:09.9489476Z             },
2026-06-04T02:39:09.9489839Z             {
2026-06-04T02:39:09.9490300Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T02:39:09.9490864Z               "line": 10
2026-06-04T02:39:09.9491278Z             }
2026-06-04T02:39:09.9491634Z           ]
2026-06-04T02:39:09.9491970Z         },
2026-06-04T02:39:09.9492319Z         "int": {
2026-06-04T02:39:09.9492714Z           "complete": true,
2026-06-04T02:39:09.9493140Z           "evidence": [
2026-06-04T02:39:09.9493522Z             {
2026-06-04T02:39:09.9493982Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-04T02:39:09.9499857Z               "line": 17
2026-06-04T02:39:09.9500317Z             },
2026-06-04T02:39:09.9500682Z             {
2026-06-04T02:39:09.9501162Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T02:39:09.9501719Z               "line": 33
2026-06-04T02:39:09.9502112Z             },
2026-06-04T02:39:09.9502731Z             {
2026-06-04T02:39:09.9503229Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-04T02:39:09.9503786Z               "line": 19
2026-06-04T02:39:09.9504201Z             },
2026-06-04T02:39:09.9504726Z             {
2026-06-04T02:39:09.9505198Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T02:39:09.9505753Z               "line": 70
2026-06-04T02:39:09.9506156Z             },
2026-06-04T02:39:09.9506514Z             {
2026-06-04T02:39:09.9506980Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T02:39:09.9507533Z               "line": 90
2026-06-04T02:39:09.9507942Z             },
2026-06-04T02:39:09.9508306Z             {
2026-06-04T02:39:09.9508777Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T02:39:09.9509419Z               "line": 160
2026-06-04T02:39:09.9509824Z             },
2026-06-04T02:39:09.9510186Z             {
2026-06-04T02:39:09.9510679Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T02:39:09.9511240Z               "line": 196
2026-06-04T02:39:09.9511653Z             },
2026-06-04T02:39:09.9512015Z             {
2026-06-04T02:39:09.9512489Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-04T02:39:09.9513081Z               "line": 121
2026-06-04T02:39:09.9513570Z             }
2026-06-04T02:39:09.9513963Z           ]
2026-06-04T02:39:09.9514311Z         },
2026-06-04T02:39:09.9514662Z         "unit": {
2026-06-04T02:39:09.9515071Z           "complete": true,
2026-06-04T02:39:09.9515513Z           "evidence": [
2026-06-04T02:39:09.9515910Z             {
2026-06-04T02:39:09.9516356Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T02:39:09.9516883Z               "line": 62
2026-06-04T02:39:09.9517281Z             },
2026-06-04T02:39:09.9517634Z             {
2026-06-04T02:39:09.9518072Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T02:39:09.9518604Z               "line": 76
2026-06-04T02:39:09.9519021Z             },
2026-06-04T02:39:09.9519443Z             {
2026-06-04T02:39:09.9519886Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T02:39:09.9520415Z               "line": 88
2026-06-04T02:39:09.9520835Z             },
2026-06-04T02:39:09.9521187Z             {
2026-06-04T02:39:09.9521638Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T02:39:09.9522183Z               "line": 264
2026-06-04T02:39:09.9522653Z             },
2026-06-04T02:39:09.9523024Z             {
2026-06-04T02:39:09.9523463Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:39:09.9523988Z               "line": 471
2026-06-04T02:39:09.9524393Z             },
2026-06-04T02:39:09.9524758Z             {
2026-06-04T02:39:09.9525200Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:39:09.9525720Z               "line": 479
2026-06-04T02:39:09.9526122Z             },
2026-06-04T02:39:09.9526490Z             {
2026-06-04T02:39:09.9526952Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:39:09.9527479Z               "line": 496
2026-06-04T02:39:09.9527876Z             },
2026-06-04T02:39:09.9528231Z             {
2026-06-04T02:39:09.9528666Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:39:09.9529251Z               "line": 541
2026-06-04T02:39:09.9529666Z             },
2026-06-04T02:39:09.9530038Z             {
2026-06-04T02:39:09.9530487Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:39:09.9531022Z               "line": 637
2026-06-04T02:39:09.9531433Z             },
2026-06-04T02:39:09.9531792Z             {
2026-06-04T02:39:09.9532245Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:39:09.9532786Z               "line": 649
2026-06-04T02:39:09.9533194Z             },
2026-06-04T02:39:09.9533559Z             {
2026-06-04T02:39:09.9534015Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T02:39:09.9534561Z               "line": 112
2026-06-04T02:39:09.9535150Z             }
2026-06-04T02:39:09.9535530Z           ]
2026-06-04T02:39:09.9535876Z         }
2026-06-04T02:39:09.9536223Z       }
2026-06-04T02:39:09.9542199Z     },
2026-06-04T02:39:09.9542593Z     {
2026-06-04T02:39:09.9543301Z       "id": "REQ-DAEMON-3",
2026-06-04T02:39:09.9543895Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-04T02:39:09.9544531Z       "requiredStages": [
2026-06-04T02:39:09.9544948Z         "impl",
2026-06-04T02:39:09.9545315Z         "unit",
2026-06-04T02:39:09.9545686Z         "int"
2026-06-04T02:39:09.9546042Z       ],
2026-06-04T02:39:09.9546387Z       "stages": {
2026-06-04T02:39:09.9546758Z         "doc": {
2026-06-04T02:39:09.9547162Z           "complete": false,
2026-06-04T02:39:09.9547593Z           "evidence": []
2026-06-04T02:39:09.9547988Z         },
2026-06-04T02:39:09.9548334Z         "impl": {
2026-06-04T02:39:09.9548721Z           "complete": true,
2026-06-04T02:39:09.9549151Z           "evidence": [
2026-06-04T02:39:09.9549610Z             {
2026-06-04T02:39:09.9550079Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-04T02:39:09.9550626Z               "line": 14
2026-06-04T02:39:09.9551021Z             },
2026-06-04T02:39:09.9551387Z             {
2026-06-04T02:39:09.9551850Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-04T02:39:09.9552390Z               "line": 11
2026-06-04T02:39:09.9552793Z             },
2026-06-04T02:39:09.9553145Z             {
2026-06-04T02:39:09.9553562Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T02:39:09.9554077Z               "line": 203
2026-06-04T02:39:09.9554496Z             },
2026-06-04T02:39:09.9554859Z             {
2026-06-04T02:39:09.9555273Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:09.9555785Z               "line": 233
2026-06-04T02:39:09.9556181Z             }
2026-06-04T02:39:09.9556528Z           ]
2026-06-04T02:39:09.9556867Z         },
2026-06-04T02:39:09.9557214Z         "int": {
2026-06-04T02:39:09.9557629Z           "complete": true,
2026-06-04T02:39:09.9558056Z           "evidence": [
2026-06-04T02:39:09.9558440Z             {
2026-06-04T02:39:09.9558886Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:39:09.9559486Z               "line": 43
2026-06-04T02:39:09.9559886Z             },
2026-06-04T02:39:09.9560244Z             {
2026-06-04T02:39:09.9560694Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:39:09.9561227Z               "line": 315
2026-06-04T02:39:09.9561640Z             }
2026-06-04T02:39:09.9562032Z           ]
2026-06-04T02:39:09.9562381Z         },
2026-06-04T02:39:09.9562731Z         "unit": {
2026-06-04T02:39:09.9563133Z           "complete": true,
2026-06-04T02:39:09.9563557Z           "evidence": [
2026-06-04T02:39:09.9563944Z             {
2026-06-04T02:39:09.9564393Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-04T02:39:09.9564930Z               "line": 217
2026-06-04T02:39:09.9565335Z             }
2026-06-04T02:39:09.9565693Z           ]
2026-06-04T02:39:09.9566053Z         }
2026-06-04T02:39:09.9566392Z       }
2026-06-04T02:39:09.9566720Z     },
2026-06-04T02:39:09.9567058Z     {
2026-06-04T02:39:09.9567425Z       "id": "REQ-DAEMON-4",
2026-06-04T02:39:09.9567955Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-04T02:39:09.9568508Z       "requiredStages": [
2026-06-04T02:39:09.9568926Z         "impl",
2026-06-04T02:39:09.9569340Z         "unit",
2026-06-04T02:39:09.9569708Z         "int"
2026-06-04T02:39:09.9570080Z       ],
2026-06-04T02:39:09.9570485Z       "stages": {
2026-06-04T02:39:09.9570886Z         "doc": {
2026-06-04T02:39:09.9571310Z           "complete": false,
2026-06-04T02:39:09.9571761Z           "evidence": []
2026-06-04T02:39:09.9572177Z         },
2026-06-04T02:39:09.9572524Z         "impl": {
2026-06-04T02:39:09.9572921Z           "complete": true,
2026-06-04T02:39:09.9573347Z           "evidence": [
2026-06-04T02:39:09.9573735Z             {
2026-06-04T02:39:09.9574403Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9574983Z               "line": 262
2026-06-04T02:39:09.9575386Z             },
2026-06-04T02:39:09.9575758Z             {
2026-06-04T02:39:09.9576363Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9582430Z               "line": 324
2026-06-04T02:39:09.9583008Z             },
2026-06-04T02:39:09.9583380Z             {
2026-06-04T02:39:09.9583839Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9584393Z               "line": 346
2026-06-04T02:39:09.9584794Z             }
2026-06-04T02:39:09.9585148Z           ]
2026-06-04T02:39:09.9585498Z         },
2026-06-04T02:39:09.9585846Z         "int": {
2026-06-04T02:39:09.9586248Z           "complete": true,
2026-06-04T02:39:09.9586680Z           "evidence": [
2026-06-04T02:39:09.9587069Z             {
2026-06-04T02:39:09.9587537Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T02:39:09.9588086Z               "line": 34
2026-06-04T02:39:09.9588520Z             }
2026-06-04T02:39:09.9588881Z           ]
2026-06-04T02:39:09.9589295Z         },
2026-06-04T02:39:09.9589650Z         "unit": {
2026-06-04T02:39:09.9590047Z           "complete": true,
2026-06-04T02:39:09.9590491Z           "evidence": [
2026-06-04T02:39:09.9590881Z             {
2026-06-04T02:39:09.9591325Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:39:09.9591859Z               "line": 248
2026-06-04T02:39:09.9592262Z             },
2026-06-04T02:39:09.9592636Z             {
2026-06-04T02:39:09.9593092Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9593650Z               "line": 533
2026-06-04T02:39:09.9594043Z             },
2026-06-04T02:39:09.9594397Z             {
2026-06-04T02:39:09.9594849Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9595390Z               "line": 584
2026-06-04T02:39:09.9595791Z             },
2026-06-04T02:39:09.9596154Z             {
2026-06-04T02:39:09.9596620Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9597158Z               "line": 608
2026-06-04T02:39:09.9597571Z             },
2026-06-04T02:39:09.9597929Z             {
2026-06-04T02:39:09.9598397Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9598942Z               "line": 638
2026-06-04T02:39:09.9599389Z             }
2026-06-04T02:39:09.9599749Z           ]
2026-06-04T02:39:09.9600096Z         }
2026-06-04T02:39:09.9600430Z       }
2026-06-04T02:39:09.9600758Z     },
2026-06-04T02:39:09.9601094Z     {
2026-06-04T02:39:09.9601490Z       "id": "REQ-DOCS-1",
2026-06-04T02:39:09.9602157Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-04T02:39:09.9602874Z       "requiredStages": [],
2026-06-04T02:39:09.9603307Z       "stages": {
2026-06-04T02:39:09.9603693Z         "doc": {
2026-06-04T02:39:09.9604088Z           "complete": false,
2026-06-04T02:39:09.9604534Z           "evidence": []
2026-06-04T02:39:09.9604944Z         },
2026-06-04T02:39:09.9605294Z         "impl": {
2026-06-04T02:39:09.9605686Z           "complete": false,
2026-06-04T02:39:09.9606131Z           "evidence": []
2026-06-04T02:39:09.9606545Z         },
2026-06-04T02:39:09.9606894Z         "int": {
2026-06-04T02:39:09.9607295Z           "complete": false,
2026-06-04T02:39:09.9607732Z           "evidence": []
2026-06-04T02:39:09.9608132Z         },
2026-06-04T02:39:09.9608482Z         "unit": {
2026-06-04T02:39:09.9608884Z           "complete": false,
2026-06-04T02:39:09.9609369Z           "evidence": []
2026-06-04T02:39:09.9609770Z         }
2026-06-04T02:39:09.9610104Z       }
2026-06-04T02:39:09.9610429Z     },
2026-06-04T02:39:09.9610780Z     {
2026-06-04T02:39:09.9611138Z       "id": "REQ-DOCS-2",
2026-06-04T02:39:09.9611716Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-04T02:39:09.9612357Z       "requiredStages": [],
2026-06-04T02:39:09.9612776Z       "stages": {
2026-06-04T02:39:09.9613424Z         "doc": {
2026-06-04T02:39:09.9613870Z           "complete": false,
2026-06-04T02:39:09.9614323Z           "evidence": []
2026-06-04T02:39:09.9614720Z         },
2026-06-04T02:39:09.9615234Z         "impl": {
2026-06-04T02:39:09.9615642Z           "complete": false,
2026-06-04T02:39:09.9616077Z           "evidence": []
2026-06-04T02:39:09.9616472Z         },
2026-06-04T02:39:09.9616820Z         "int": {
2026-06-04T02:39:09.9617216Z           "complete": false,
2026-06-04T02:39:09.9622962Z           "evidence": []
2026-06-04T02:39:09.9623500Z         },
2026-06-04T02:39:09.9623870Z         "unit": {
2026-06-04T02:39:09.9624269Z           "complete": false,
2026-06-04T02:39:09.9624710Z           "evidence": []
2026-06-04T02:39:09.9625099Z         }
2026-06-04T02:39:09.9625432Z       }
2026-06-04T02:39:09.9625758Z     },
2026-06-04T02:39:09.9626099Z     {
2026-06-04T02:39:09.9626469Z       "id": "REQ-DOCS-3",
2026-06-04T02:39:09.9627564Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-04T02:39:09.9628246Z       "requiredStages": [],
2026-06-04T02:39:09.9628674Z       "stages": {
2026-06-04T02:39:09.9629046Z         "doc": {
2026-06-04T02:39:09.9629529Z           "complete": false,
2026-06-04T02:39:09.9629980Z           "evidence": []
2026-06-04T02:39:09.9630380Z         },
2026-06-04T02:39:09.9630733Z         "impl": {
2026-06-04T02:39:09.9631130Z           "complete": false,
2026-06-04T02:39:09.9631572Z           "evidence": []
2026-06-04T02:39:09.9631975Z         },
2026-06-04T02:39:09.9632319Z         "int": {
2026-06-04T02:39:09.9632706Z           "complete": false,
2026-06-04T02:39:09.9633143Z           "evidence": []
2026-06-04T02:39:09.9633534Z         },
2026-06-04T02:39:09.9633870Z         "unit": {
2026-06-04T02:39:09.9634259Z           "complete": false,
2026-06-04T02:39:09.9634694Z           "evidence": []
2026-06-04T02:39:09.9635093Z         }
2026-06-04T02:39:09.9635428Z       }
2026-06-04T02:39:09.9635759Z     },
2026-06-04T02:39:09.9636090Z     {
2026-06-04T02:39:09.9636468Z       "id": "REQ-DOCS-4",
2026-06-04T02:39:09.9637123Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-04T02:39:09.9637831Z       "requiredStages": [],
2026-06-04T02:39:09.9638273Z       "stages": {
2026-06-04T02:39:09.9638644Z         "doc": {
2026-06-04T02:39:09.9639047Z           "complete": false,
2026-06-04T02:39:09.9639533Z           "evidence": []
2026-06-04T02:39:09.9639925Z         },
2026-06-04T02:39:09.9640270Z         "impl": {
2026-06-04T02:39:09.9640669Z           "complete": false,
2026-06-04T02:39:09.9641115Z           "evidence": []
2026-06-04T02:39:09.9641507Z         },
2026-06-04T02:39:09.9641858Z         "int": {
2026-06-04T02:39:09.9642258Z           "complete": false,
2026-06-04T02:39:09.9642702Z           "evidence": []
2026-06-04T02:39:09.9643097Z         },
2026-06-04T02:39:09.9643447Z         "unit": {
2026-06-04T02:39:09.9643855Z           "complete": false,
2026-06-04T02:39:09.9644297Z           "evidence": []
2026-06-04T02:39:09.9644702Z         }
2026-06-04T02:39:09.9645041Z       }
2026-06-04T02:39:09.9645370Z     },
2026-06-04T02:39:09.9645712Z     {
2026-06-04T02:39:09.9646080Z       "id": "REQ-DOCS-5",
2026-06-04T02:39:09.9646764Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-04T02:39:09.9647476Z       "requiredStages": [],
2026-06-04T02:39:09.9647908Z       "stages": {
2026-06-04T02:39:09.9648281Z         "doc": {
2026-06-04T02:39:09.9648674Z           "complete": false,
2026-06-04T02:39:09.9649118Z           "evidence": []
2026-06-04T02:39:09.9649566Z         },
2026-06-04T02:39:09.9649917Z         "impl": {
2026-06-04T02:39:09.9650312Z           "complete": false,
2026-06-04T02:39:09.9650746Z           "evidence": []
2026-06-04T02:39:09.9651148Z         },
2026-06-04T02:39:09.9651496Z         "int": {
2026-06-04T02:39:09.9651895Z           "complete": false,
2026-06-04T02:39:09.9652328Z           "evidence": []
2026-06-04T02:39:09.9652727Z         },
2026-06-04T02:39:09.9653346Z         "unit": {
2026-06-04T02:39:09.9653777Z           "complete": false,
2026-06-04T02:39:09.9654232Z           "evidence": []
2026-06-04T02:39:09.9654628Z         }
2026-06-04T02:39:09.9655121Z       }
2026-06-04T02:39:09.9655441Z     },
2026-06-04T02:39:09.9655772Z     {
2026-06-04T02:39:09.9656133Z       "id": "REQ-EP-1",
2026-06-04T02:39:09.9656647Z       "title": "Day-one endpoint types; open type system",
2026-06-04T02:39:09.9657229Z       "requiredStages": [
2026-06-04T02:39:09.9657656Z         "impl",
2026-06-04T02:39:09.9663372Z         "unit"
2026-06-04T02:39:09.9663865Z       ],
2026-06-04T02:39:09.9664220Z       "stages": {
2026-06-04T02:39:09.9664588Z         "doc": {
2026-06-04T02:39:09.9664982Z           "complete": false,
2026-06-04T02:39:09.9665419Z           "evidence": []
2026-06-04T02:39:09.9665810Z         },
2026-06-04T02:39:09.9666171Z         "impl": {
2026-06-04T02:39:09.9666577Z           "complete": true,
2026-06-04T02:39:09.9667014Z           "evidence": [
2026-06-04T02:39:09.9667426Z             {
2026-06-04T02:39:09.9667887Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:39:09.9668427Z               "line": 77
2026-06-04T02:39:09.9668817Z             },
2026-06-04T02:39:09.9669246Z             {
2026-06-04T02:39:09.9669711Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:39:09.9670245Z               "line": 94
2026-06-04T02:39:09.9670640Z             }
2026-06-04T02:39:09.9670989Z           ]
2026-06-04T02:39:09.9671333Z         },
2026-06-04T02:39:09.9671673Z         "int": {
2026-06-04T02:39:09.9672068Z           "complete": false,
2026-06-04T02:39:09.9672512Z           "evidence": []
2026-06-04T02:39:09.9672906Z         },
2026-06-04T02:39:09.9673259Z         "unit": {
2026-06-04T02:39:09.9673642Z           "complete": true,
2026-06-04T02:39:09.9674062Z           "evidence": [
2026-06-04T02:39:09.9674446Z             {
2026-06-04T02:39:09.9674994Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:39:09.9675653Z               "line": 161
2026-06-04T02:39:09.9676184Z             },
2026-06-04T02:39:09.9676560Z             {
2026-06-04T02:39:09.9677022Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:39:09.9677585Z               "line": 178
2026-06-04T02:39:09.9677987Z             }
2026-06-04T02:39:09.9678337Z           ]
2026-06-04T02:39:09.9678682Z         }
2026-06-04T02:39:09.9679012Z       }
2026-06-04T02:39:09.9679399Z     },
2026-06-04T02:39:09.9679734Z     {
2026-06-04T02:39:09.9680093Z       "id": "REQ-EP-2",
2026-06-04T02:39:09.9680674Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-04T02:39:09.9681320Z       "requiredStages": [
2026-06-04T02:39:09.9681732Z         "impl",
2026-06-04T02:39:09.9682097Z         "unit"
2026-06-04T02:39:09.9682458Z       ],
2026-06-04T02:39:09.9682806Z       "stages": {
2026-06-04T02:39:09.9683176Z         "doc": {
2026-06-04T02:39:09.9683569Z           "complete": false,
2026-06-04T02:39:09.9684029Z           "evidence": []
2026-06-04T02:39:09.9684433Z         },
2026-06-04T02:39:09.9684775Z         "impl": {
2026-06-04T02:39:09.9685170Z           "complete": true,
2026-06-04T02:39:09.9685595Z           "evidence": [
2026-06-04T02:39:09.9685999Z             {
2026-06-04T02:39:09.9686455Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:39:09.9686992Z               "line": 114
2026-06-04T02:39:09.9687391Z             },
2026-06-04T02:39:09.9687761Z             {
2026-06-04T02:39:09.9688217Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:39:09.9688757Z               "line": 131
2026-06-04T02:39:09.9689205Z             },
2026-06-04T02:39:09.9689572Z             {
2026-06-04T02:39:09.9690017Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:39:09.9690551Z               "line": 138
2026-06-04T02:39:09.9690952Z             }
2026-06-04T02:39:09.9691320Z           ]
2026-06-04T02:39:09.9691713Z         },
2026-06-04T02:39:09.9692118Z         "int": {
2026-06-04T02:39:09.9692878Z           "complete": false,
2026-06-04T02:39:09.9693401Z           "evidence": []
2026-06-04T02:39:09.9693812Z         },
2026-06-04T02:39:09.9694173Z         "unit": {
2026-06-04T02:39:09.9694732Z           "complete": true,
2026-06-04T02:39:09.9695160Z           "evidence": [
2026-06-04T02:39:09.9695552Z             {
2026-06-04T02:39:09.9696005Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:39:09.9696548Z               "line": 193
2026-06-04T02:39:09.9696947Z             },
2026-06-04T02:39:09.9697321Z             {
2026-06-04T02:39:09.9697771Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:39:09.9704191Z               "line": 211
2026-06-04T02:39:09.9704774Z             },
2026-06-04T02:39:09.9705151Z             {
2026-06-04T02:39:09.9705614Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:39:09.9706164Z               "line": 224
2026-06-04T02:39:09.9706567Z             }
2026-06-04T02:39:09.9706958Z           ]
2026-06-04T02:39:09.9707313Z         }
2026-06-04T02:39:09.9707650Z       }
2026-06-04T02:39:09.9707980Z     },
2026-06-04T02:39:09.9708310Z     {
2026-06-04T02:39:09.9708676Z       "id": "REQ-EP-3",
2026-06-04T02:39:09.9709402Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-04T02:39:09.9709591Z       "requiredStages": [
2026-06-04T02:39:09.9709756Z         "impl",
2026-06-04T02:39:09.9709904Z         "unit"
2026-06-04T02:39:09.9710059Z       ],
2026-06-04T02:39:09.9710224Z       "stages": {
2026-06-04T02:39:09.9710379Z         "doc": {
2026-06-04T02:39:09.9710569Z           "complete": false,
2026-06-04T02:39:09.9710741Z           "evidence": []
2026-06-04T02:39:09.9710905Z         },
2026-06-04T02:39:09.9711063Z         "impl": {
2026-06-04T02:39:09.9711251Z           "complete": true,
2026-06-04T02:39:09.9711418Z           "evidence": [
2026-06-04T02:39:09.9711582Z             {
2026-06-04T02:39:09.9711853Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:39:09.9712023Z               "line": 31
2026-06-04T02:39:09.9712187Z             },
2026-06-04T02:39:09.9712335Z             {
2026-06-04T02:39:09.9712596Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:39:09.9712783Z               "line": 49
2026-06-04T02:39:09.9712936Z             }
2026-06-04T02:39:09.9713093Z           ]
2026-06-04T02:39:09.9713242Z         },
2026-06-04T02:39:09.9713401Z         "int": {
2026-06-04T02:39:09.9713578Z           "complete": false,
2026-06-04T02:39:09.9713760Z           "evidence": []
2026-06-04T02:39:09.9713915Z         },
2026-06-04T02:39:09.9714069Z         "unit": {
2026-06-04T02:39:09.9714253Z           "complete": true,
2026-06-04T02:39:09.9714421Z           "evidence": [
2026-06-04T02:39:09.9714578Z             {
2026-06-04T02:39:09.9714831Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:39:09.9715011Z               "line": 156
2026-06-04T02:39:09.9715171Z             },
2026-06-04T02:39:09.9715337Z             {
2026-06-04T02:39:09.9715593Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:39:09.9715762Z               "line": 164
2026-06-04T02:39:09.9715915Z             },
2026-06-04T02:39:09.9716078Z             {
2026-06-04T02:39:09.9716355Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:39:09.9716531Z               "line": 177
2026-06-04T02:39:09.9716679Z             },
2026-06-04T02:39:09.9716837Z             {
2026-06-04T02:39:09.9717079Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:39:09.9717255Z               "line": 197
2026-06-04T02:39:09.9717401Z             },
2026-06-04T02:39:09.9717555Z             {
2026-06-04T02:39:09.9717810Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:39:09.9717977Z               "line": 213
2026-06-04T02:39:09.9718131Z             },
2026-06-04T02:39:09.9718279Z             {
2026-06-04T02:39:09.9718526Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:39:09.9718943Z               "line": 227
2026-06-04T02:39:09.9719134Z             }
2026-06-04T02:39:09.9719342Z           ]
2026-06-04T02:39:09.9719493Z         }
2026-06-04T02:39:09.9719650Z       }
2026-06-04T02:39:09.9719943Z     },
2026-06-04T02:39:09.9720091Z     {
2026-06-04T02:39:09.9720263Z       "id": "REQ-EP-4",
2026-06-04T02:39:09.9720581Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-04T02:39:09.9720774Z       "requiredStages": [
2026-06-04T02:39:09.9720930Z         "impl",
2026-06-04T02:39:09.9721097Z         "unit"
2026-06-04T02:39:09.9721250Z       ],
2026-06-04T02:39:09.9721425Z       "stages": {
2026-06-04T02:39:09.9721579Z         "doc": {
2026-06-04T02:39:09.9721774Z           "complete": false,
2026-06-04T02:39:09.9721955Z           "evidence": []
2026-06-04T02:39:09.9722107Z         },
2026-06-04T02:39:09.9722276Z         "impl": {
2026-06-04T02:39:09.9722455Z           "complete": true,
2026-06-04T02:39:09.9722629Z           "evidence": [
2026-06-04T02:39:09.9722796Z             {
2026-06-04T02:39:09.9723048Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:39:09.9723226Z               "line": 404
2026-06-04T02:39:09.9723379Z             },
2026-06-04T02:39:09.9723548Z             {
2026-06-04T02:39:09.9723785Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:39:09.9723966Z               "line": 603
2026-06-04T02:39:09.9724118Z             },
2026-06-04T02:39:09.9724278Z             {
2026-06-04T02:39:09.9724533Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:39:09.9724702Z               "line": 671
2026-06-04T02:39:09.9724863Z             },
2026-06-04T02:39:09.9725010Z             {
2026-06-04T02:39:09.9725249Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:39:09.9725417Z               "line": 83
2026-06-04T02:39:09.9725581Z             },
2026-06-04T02:39:09.9725737Z             {
2026-06-04T02:39:09.9725968Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:39:09.9726155Z               "line": 372
2026-06-04T02:39:09.9726306Z             },
2026-06-04T02:39:09.9726470Z             {
2026-06-04T02:39:09.9726699Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:39:09.9726893Z               "line": 443
2026-06-04T02:39:09.9727057Z             },
2026-06-04T02:39:09.9727204Z             {
2026-06-04T02:39:09.9727460Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:39:09.9727632Z               "line": 181
2026-06-04T02:39:09.9727794Z             },
2026-06-04T02:39:09.9727941Z             {
2026-06-04T02:39:09.9728193Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:39:09.9728371Z               "line": 300
2026-06-04T02:39:09.9728526Z             },
2026-06-04T02:39:09.9728684Z             {
2026-06-04T02:39:09.9728929Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:39:09.9729107Z               "line": 602
2026-06-04T02:39:09.9729306Z             }
2026-06-04T02:39:09.9729487Z           ]
2026-06-04T02:39:09.9729641Z         },
2026-06-04T02:39:09.9729796Z         "int": {
2026-06-04T02:39:09.9729985Z           "complete": false,
2026-06-04T02:39:09.9730158Z           "evidence": []
2026-06-04T02:39:09.9730325Z         },
2026-06-04T02:39:09.9730478Z         "unit": {
2026-06-04T02:39:09.9730669Z           "complete": true,
2026-06-04T02:39:09.9730843Z           "evidence": [
2026-06-04T02:39:09.9730991Z             {
2026-06-04T02:39:09.9731232Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:39:09.9731404Z               "line": 516
2026-06-04T02:39:09.9731560Z             },
2026-06-04T02:39:09.9731706Z             {
2026-06-04T02:39:09.9731975Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-04T02:39:09.9732145Z               "line": 75
2026-06-04T02:39:09.9732299Z             },
2026-06-04T02:39:09.9732457Z             {
2026-06-04T02:39:09.9732712Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-04T02:39:09.9733036Z               "line": 131
2026-06-04T02:39:09.9733218Z             }
2026-06-04T02:39:09.9733370Z           ]
2026-06-04T02:39:09.9733527Z         }
2026-06-04T02:39:09.9733676Z       }
2026-06-04T02:39:09.9733962Z     },
2026-06-04T02:39:09.9734110Z     {
2026-06-04T02:39:09.9734298Z       "id": "REQ-EP-5",
2026-06-04T02:39:09.9735724Z       "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-04T02:39:09.9735919Z       "requiredStages": [],
2026-06-04T02:39:09.9741410Z       "stages": {
2026-06-04T02:39:09.9741667Z         "doc": {
2026-06-04T02:39:09.9741879Z           "complete": false,
2026-06-04T02:39:09.9742047Z           "evidence": []
2026-06-04T02:39:09.9742201Z         },
2026-06-04T02:39:09.9742364Z         "impl": {
2026-06-04T02:39:09.9742542Z           "complete": false,
2026-06-04T02:39:09.9742742Z           "evidence": []
2026-06-04T02:39:09.9742897Z         },
2026-06-04T02:39:09.9743063Z         "int": {
2026-06-04T02:39:09.9743240Z           "complete": false,
2026-06-04T02:39:09.9743428Z           "evidence": []
2026-06-04T02:39:09.9743586Z         },
2026-06-04T02:39:09.9743745Z         "unit": {
2026-06-04T02:39:09.9743931Z           "complete": false,
2026-06-04T02:39:09.9744102Z           "evidence": []
2026-06-04T02:39:09.9744257Z         }
2026-06-04T02:39:09.9744402Z       }
2026-06-04T02:39:09.9744554Z     },
2026-06-04T02:39:09.9744701Z     {
2026-06-04T02:39:09.9744878Z       "id": "REQ-FRONT-1",
2026-06-04T02:39:09.9745267Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-04T02:39:09.9745452Z       "requiredStages": [],
2026-06-04T02:39:09.9745615Z       "stages": {
2026-06-04T02:39:09.9745769Z         "doc": {
2026-06-04T02:39:09.9745955Z           "complete": false,
2026-06-04T02:39:09.9746130Z           "evidence": []
2026-06-04T02:39:09.9746286Z         },
2026-06-04T02:39:09.9746451Z         "impl": {
2026-06-04T02:39:09.9746627Z           "complete": false,
2026-06-04T02:39:09.9746803Z           "evidence": []
2026-06-04T02:39:09.9746963Z         },
2026-06-04T02:39:09.9747126Z         "int": {
2026-06-04T02:39:09.9747313Z           "complete": false,
2026-06-04T02:39:09.9747482Z           "evidence": []
2026-06-04T02:39:09.9747637Z         },
2026-06-04T02:39:09.9747794Z         "unit": {
2026-06-04T02:39:09.9747990Z           "complete": false,
2026-06-04T02:39:09.9748156Z           "evidence": []
2026-06-04T02:39:09.9748309Z         }
2026-06-04T02:39:09.9748465Z       }
2026-06-04T02:39:09.9748605Z     },
2026-06-04T02:39:09.9748762Z     {
2026-06-04T02:39:09.9748985Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-04T02:39:09.9749423Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-04T02:39:09.9749606Z       "requiredStages": [
2026-06-04T02:39:09.9749769Z         "impl",
2026-06-04T02:39:09.9749944Z         "unit"
2026-06-04T02:39:09.9750091Z       ],
2026-06-04T02:39:09.9750258Z       "stages": {
2026-06-04T02:39:09.9750409Z         "doc": {
2026-06-04T02:39:09.9750595Z           "complete": false,
2026-06-04T02:39:09.9750772Z           "evidence": []
2026-06-04T02:39:09.9750926Z         },
2026-06-04T02:39:09.9751089Z         "impl": {
2026-06-04T02:39:09.9751268Z           "complete": true,
2026-06-04T02:39:09.9751440Z           "evidence": [
2026-06-04T02:39:09.9751589Z             {
2026-06-04T02:39:09.9751851Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:09.9752019Z               "line": 60
2026-06-04T02:39:09.9752179Z             },
2026-06-04T02:39:09.9752337Z             {
2026-06-04T02:39:09.9752566Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:39:09.9752736Z               "line": 18
2026-06-04T02:39:09.9752883Z             },
2026-06-04T02:39:09.9753040Z             {
2026-06-04T02:39:09.9753498Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:39:09.9753704Z               "line": 94
2026-06-04T02:39:09.9753859Z             }
2026-06-04T02:39:09.9754004Z           ]
2026-06-04T02:39:09.9754161Z         },
2026-06-04T02:39:09.9754470Z         "int": {
2026-06-04T02:39:09.9754652Z           "complete": false,
2026-06-04T02:39:09.9754820Z           "evidence": []
2026-06-04T02:39:09.9754983Z         },
2026-06-04T02:39:09.9755141Z         "unit": {
2026-06-04T02:39:09.9755313Z           "complete": true,
2026-06-04T02:39:09.9755486Z           "evidence": [
2026-06-04T02:39:09.9755637Z             {
2026-06-04T02:39:09.9755891Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:09.9756063Z               "line": 255
2026-06-04T02:39:09.9756219Z             },
2026-06-04T02:39:09.9756371Z             {
2026-06-04T02:39:09.9756599Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:39:09.9756778Z               "line": 152
2026-06-04T02:39:09.9756929Z             },
2026-06-04T02:39:09.9757096Z             {
2026-06-04T02:39:09.9757329Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:39:09.9757509Z               "line": 188
2026-06-04T02:39:09.9757662Z             }
2026-06-04T02:39:09.9757821Z           ]
2026-06-04T02:39:09.9757977Z         }
2026-06-04T02:39:09.9758125Z       }
2026-06-04T02:39:09.9758277Z     },
2026-06-04T02:39:09.9758422Z     {
2026-06-04T02:39:09.9758670Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-04T02:39:09.9759132Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-04T02:39:09.9759368Z       "requiredStages": [
2026-06-04T02:39:09.9759532Z         "impl",
2026-06-04T02:39:09.9759682Z         "unit"
2026-06-04T02:39:09.9759840Z       ],
2026-06-04T02:39:09.9760000Z       "stages": {
2026-06-04T02:39:09.9760166Z         "doc": {
2026-06-04T02:39:09.9760352Z           "complete": false,
2026-06-04T02:39:09.9760521Z           "evidence": []
2026-06-04T02:39:09.9760678Z         },
2026-06-04T02:39:09.9760845Z         "impl": {
2026-06-04T02:39:09.9761035Z           "complete": true,
2026-06-04T02:39:09.9761202Z           "evidence": [
2026-06-04T02:39:09.9761359Z             {
2026-06-04T02:39:09.9761617Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T02:39:09.9761787Z               "line": 164
2026-06-04T02:39:09.9761945Z             }
2026-06-04T02:39:09.9762091Z           ]
2026-06-04T02:39:09.9762249Z         },
2026-06-04T02:39:09.9762403Z         "int": {
2026-06-04T02:39:09.9762591Z           "complete": true,
2026-06-04T02:39:09.9762767Z           "evidence": [
2026-06-04T02:39:09.9762916Z             {
2026-06-04T02:39:09.9763153Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-04T02:39:09.9763319Z               "line": 44
2026-06-04T02:39:09.9763474Z             },
2026-06-04T02:39:09.9763619Z             {
2026-06-04T02:39:09.9763860Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-04T02:39:09.9764029Z               "line": 66
2026-06-04T02:39:09.9764191Z             }
2026-06-04T02:39:09.9764342Z           ]
2026-06-04T02:39:09.9764489Z         },
2026-06-04T02:39:09.9764654Z         "unit": {
2026-06-04T02:39:09.9764831Z           "complete": true,
2026-06-04T02:39:09.9765016Z           "evidence": [
2026-06-04T02:39:09.9765170Z             {
2026-06-04T02:39:09.9765406Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T02:39:09.9765587Z               "line": 181
2026-06-04T02:39:09.9765735Z             },
2026-06-04T02:39:09.9765888Z             {
2026-06-04T02:39:09.9766120Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T02:39:09.9766302Z               "line": 233
2026-06-04T02:39:09.9766461Z             },
2026-06-04T02:39:09.9766609Z             {
2026-06-04T02:39:09.9766853Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T02:39:09.9767018Z               "line": 261
2026-06-04T02:39:09.9767176Z             }
2026-06-04T02:39:09.9767324Z           ]
2026-06-04T02:39:09.9767481Z         }
2026-06-04T02:39:09.9767841Z       }
2026-06-04T02:39:09.9768007Z     },
2026-06-04T02:39:09.9768154Z     {
2026-06-04T02:39:09.9768397Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-04T02:39:09.9769509Z       "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-04T02:39:09.9769710Z       "requiredStages": [
2026-06-04T02:39:09.9769863Z         "impl",
2026-06-04T02:39:09.9770028Z         "unit",
2026-06-04T02:39:09.9770175Z         "int"
2026-06-04T02:39:09.9770330Z       ],
2026-06-04T02:39:09.9770487Z       "stages": {
2026-06-04T02:39:09.9770650Z         "doc": {
2026-06-04T02:39:09.9770828Z           "complete": false,
2026-06-04T02:39:09.9771013Z           "evidence": []
2026-06-04T02:39:09.9771184Z         },
2026-06-04T02:39:09.9771375Z         "impl": {
2026-06-04T02:39:09.9771607Z           "complete": true,
2026-06-04T02:39:09.9771832Z           "evidence": [
2026-06-04T02:39:09.9777444Z             {
2026-06-04T02:39:09.9777815Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9778003Z               "line": 133
2026-06-04T02:39:09.9778178Z             },
2026-06-04T02:39:09.9778323Z             {
2026-06-04T02:39:09.9778588Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9778755Z               "line": 152
2026-06-04T02:39:09.9778910Z             },
2026-06-04T02:39:09.9779067Z             {
2026-06-04T02:39:09.9779405Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:09.9779609Z               "line": 79
2026-06-04T02:39:09.9779765Z             },
2026-06-04T02:39:09.9779924Z             {
2026-06-04T02:39:09.9780150Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:39:09.9780330Z               "line": 51
2026-06-04T02:39:09.9780489Z             },
2026-06-04T02:39:09.9780637Z             {
2026-06-04T02:39:09.9780876Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:39:09.9781051Z               "line": 93
2026-06-04T02:39:09.9781212Z             },
2026-06-04T02:39:09.9781358Z             {
2026-06-04T02:39:09.9781611Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:39:09.9781801Z               "line": 27
2026-06-04T02:39:09.9781949Z             },
2026-06-04T02:39:09.9782107Z             {
2026-06-04T02:39:09.9782354Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:39:09.9782524Z               "line": 79
2026-06-04T02:39:09.9782672Z             },
2026-06-04T02:39:09.9782826Z             {
2026-06-04T02:39:09.9783075Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:39:09.9783244Z               "line": 102
2026-06-04T02:39:09.9783409Z             },
2026-06-04T02:39:09.9783558Z             {
2026-06-04T02:39:09.9783817Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:09.9783988Z               "line": 108
2026-06-04T02:39:09.9784150Z             }
2026-06-04T02:39:09.9784317Z           ]
2026-06-04T02:39:09.9784467Z         },
2026-06-04T02:39:09.9784627Z         "int": {
2026-06-04T02:39:09.9784808Z           "complete": true,
2026-06-04T02:39:09.9784997Z           "evidence": [
2026-06-04T02:39:09.9785142Z             {
2026-06-04T02:39:09.9785423Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T02:39:09.9785596Z               "line": 35
2026-06-04T02:39:09.9785748Z             }
2026-06-04T02:39:09.9785904Z           ]
2026-06-04T02:39:09.9786050Z         },
2026-06-04T02:39:09.9786209Z         "unit": {
2026-06-04T02:39:09.9786384Z           "complete": true,
2026-06-04T02:39:09.9786559Z           "evidence": [
2026-06-04T02:39:09.9786716Z             {
2026-06-04T02:39:09.9786963Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9787139Z               "line": 467
2026-06-04T02:39:09.9787289Z             },
2026-06-04T02:39:09.9787447Z             {
2026-06-04T02:39:09.9787972Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:39:09.9788174Z               "line": 212
2026-06-04T02:39:09.9788336Z             },
2026-06-04T02:39:09.9788487Z             {
2026-06-04T02:39:09.9788890Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:39:09.9789067Z               "line": 124
2026-06-04T02:39:09.9789290Z             },
2026-06-04T02:39:09.9789440Z             {
2026-06-04T02:39:09.9789698Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:39:09.9789873Z               "line": 136
2026-06-04T02:39:09.9790024Z             },
2026-06-04T02:39:09.9790184Z             {
2026-06-04T02:39:09.9790427Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:39:09.9790605Z               "line": 146
2026-06-04T02:39:09.9790755Z             },
2026-06-04T02:39:09.9790915Z             {
2026-06-04T02:39:09.9791166Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:39:09.9791335Z               "line": 159
2026-06-04T02:39:09.9791507Z             },
2026-06-04T02:39:09.9791655Z             {
2026-06-04T02:39:09.9791903Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:39:09.9792077Z               "line": 171
2026-06-04T02:39:09.9792241Z             },
2026-06-04T02:39:09.9792400Z             {
2026-06-04T02:39:09.9792640Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:09.9792821Z               "line": 207
2026-06-04T02:39:09.9792968Z             }
2026-06-04T02:39:09.9793121Z           ]
2026-06-04T02:39:09.9793275Z         }
2026-06-04T02:39:09.9793422Z       }
2026-06-04T02:39:09.9793575Z     },
2026-06-04T02:39:09.9793717Z     {
2026-06-04T02:39:09.9793975Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-04T02:39:09.9795385Z       "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-04T02:39:09.9795582Z       "requiredStages": [],
2026-06-04T02:39:09.9795746Z       "stages": {
2026-06-04T02:39:09.9795906Z         "doc": {
2026-06-04T02:39:09.9796098Z           "complete": false,
2026-06-04T02:39:09.9796284Z           "evidence": []
2026-06-04T02:39:09.9796443Z         },
2026-06-04T02:39:09.9796601Z         "impl": {
2026-06-04T02:39:09.9796789Z           "complete": false,
2026-06-04T02:39:09.9796961Z           "evidence": []
2026-06-04T02:39:09.9797108Z         },
2026-06-04T02:39:09.9797270Z         "int": {
2026-06-04T02:39:09.9797446Z           "complete": false,
2026-06-04T02:39:09.9797623Z           "evidence": []
2026-06-04T02:39:09.9797770Z         },
2026-06-04T02:39:09.9797937Z         "unit": {
2026-06-04T02:39:09.9798118Z           "complete": false,
2026-06-04T02:39:09.9798289Z           "evidence": []
2026-06-04T02:39:09.9798447Z         }
2026-06-04T02:39:09.9798594Z       }
2026-06-04T02:39:09.9798748Z     },
2026-06-04T02:39:09.9798891Z     {
2026-06-04T02:39:09.9799128Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-04T02:39:09.9799586Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-04T02:39:09.9799789Z       "requiredStages": [
2026-06-04T02:39:09.9799954Z         "impl",
2026-06-04T02:39:09.9800106Z         "unit"
2026-06-04T02:39:09.9800261Z       ],
2026-06-04T02:39:09.9800424Z       "stages": {
2026-06-04T02:39:09.9800588Z         "doc": {
2026-06-04T02:39:09.9800776Z           "complete": false,
2026-06-04T02:39:09.9800948Z           "evidence": []
2026-06-04T02:39:09.9801104Z         },
2026-06-04T02:39:09.9801260Z         "impl": {
2026-06-04T02:39:09.9801448Z           "complete": true,
2026-06-04T02:39:09.9801619Z           "evidence": [
2026-06-04T02:39:09.9801776Z             {
2026-06-04T02:39:09.9802014Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:09.9802177Z               "line": 40
2026-06-04T02:39:09.9802340Z             },
2026-06-04T02:39:09.9802493Z             {
2026-06-04T02:39:09.9802890Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:09.9803086Z               "line": 98
2026-06-04T02:39:09.9803249Z             },
2026-06-04T02:39:09.9803546Z             {
2026-06-04T02:39:09.9803781Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:09.9803957Z               "line": 209
2026-06-04T02:39:09.9804110Z             },
2026-06-04T02:39:09.9804276Z             {
2026-06-04T02:39:09.9804502Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:09.9804680Z               "line": 291
2026-06-04T02:39:09.9804842Z             }
2026-06-04T02:39:09.9804990Z           ]
2026-06-04T02:39:09.9805149Z         },
2026-06-04T02:39:09.9805305Z         "int": {
2026-06-04T02:39:09.9805496Z           "complete": false,
2026-06-04T02:39:09.9805662Z           "evidence": []
2026-06-04T02:39:09.9805820Z         },
2026-06-04T02:39:09.9805982Z         "unit": {
2026-06-04T02:39:09.9806156Z           "complete": true,
2026-06-04T02:39:09.9806342Z           "evidence": [
2026-06-04T02:39:09.9806496Z             {
2026-06-04T02:39:09.9806731Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:09.9806910Z               "line": 326
2026-06-04T02:39:09.9807074Z             },
2026-06-04T02:39:09.9807240Z             {
2026-06-04T02:39:09.9807470Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:09.9807644Z               "line": 372
2026-06-04T02:39:09.9807793Z             },
2026-06-04T02:39:09.9807952Z             {
2026-06-04T02:39:09.9808191Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:09.9808358Z               "line": 413
2026-06-04T02:39:09.9808517Z             },
2026-06-04T02:39:09.9808668Z             {
2026-06-04T02:39:09.9814199Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:09.9814462Z               "line": 432
2026-06-04T02:39:09.9814632Z             }
2026-06-04T02:39:09.9814792Z           ]
2026-06-04T02:39:09.9814936Z         }
2026-06-04T02:39:09.9815122Z       }
2026-06-04T02:39:09.9815266Z     },
2026-06-04T02:39:09.9815419Z     {
2026-06-04T02:39:09.9815663Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-04T02:39:09.9815949Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-04T02:39:09.9816133Z       "requiredStages": [
2026-06-04T02:39:09.9816285Z         "impl",
2026-06-04T02:39:09.9816447Z         "unit"
2026-06-04T02:39:09.9816602Z       ],
2026-06-04T02:39:09.9816772Z       "stages": {
2026-06-04T02:39:09.9816928Z         "doc": {
2026-06-04T02:39:09.9817117Z           "complete": false,
2026-06-04T02:39:09.9817283Z           "evidence": []
2026-06-04T02:39:09.9817440Z         },
2026-06-04T02:39:09.9817603Z         "impl": {
2026-06-04T02:39:09.9817776Z           "complete": true,
2026-06-04T02:39:09.9817947Z           "evidence": [
2026-06-04T02:39:09.9818091Z             {
2026-06-04T02:39:09.9818327Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:09.9818513Z               "line": 111
2026-06-04T02:39:09.9818667Z             },
2026-06-04T02:39:09.9818826Z             {
2026-06-04T02:39:09.9819053Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:09.9819324Z               "line": 202
2026-06-04T02:39:09.9819478Z             }
2026-06-04T02:39:09.9819638Z           ]
2026-06-04T02:39:09.9819817Z         },
2026-06-04T02:39:09.9819983Z         "int": {
2026-06-04T02:39:09.9820171Z           "complete": false,
2026-06-04T02:39:09.9820337Z           "evidence": []
2026-06-04T02:39:09.9820499Z         },
2026-06-04T02:39:09.9820656Z         "unit": {
2026-06-04T02:39:09.9820845Z           "complete": true,
2026-06-04T02:39:09.9821010Z           "evidence": [
2026-06-04T02:39:09.9821175Z             {
2026-06-04T02:39:09.9821413Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:09.9821579Z               "line": 347
2026-06-04T02:39:09.9821737Z             },
2026-06-04T02:39:09.9821886Z             {
2026-06-04T02:39:09.9822364Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:09.9822580Z               "line": 391
2026-06-04T02:39:09.9822729Z             }
2026-06-04T02:39:09.9822882Z           ]
2026-06-04T02:39:09.9823216Z         }
2026-06-04T02:39:09.9823375Z       }
2026-06-04T02:39:09.9823517Z     },
2026-06-04T02:39:09.9823668Z     {
2026-06-04T02:39:09.9823917Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-04T02:39:09.9824377Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-04T02:39:09.9824566Z       "requiredStages": [
2026-06-04T02:39:09.9824722Z         "impl",
2026-06-04T02:39:09.9824882Z         "unit"
2026-06-04T02:39:09.9825029Z       ],
2026-06-04T02:39:09.9825194Z       "stages": {
2026-06-04T02:39:09.9825360Z         "doc": {
2026-06-04T02:39:09.9825537Z           "complete": false,
2026-06-04T02:39:09.9825713Z           "evidence": []
2026-06-04T02:39:09.9825855Z         },
2026-06-04T02:39:09.9826013Z         "impl": {
2026-06-04T02:39:09.9826206Z           "complete": true,
2026-06-04T02:39:09.9826381Z           "evidence": [
2026-06-04T02:39:09.9826539Z             {
2026-06-04T02:39:09.9826783Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:39:09.9826966Z               "line": 21
2026-06-04T02:39:09.9827115Z             },
2026-06-04T02:39:09.9827275Z             {
2026-06-04T02:39:09.9827509Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:39:09.9827685Z               "line": 152
2026-06-04T02:39:09.9827841Z             }
2026-06-04T02:39:09.9827986Z           ]
2026-06-04T02:39:09.9828138Z         },
2026-06-04T02:39:09.9828289Z         "int": {
2026-06-04T02:39:09.9828473Z           "complete": false,
2026-06-04T02:39:09.9828641Z           "evidence": []
2026-06-04T02:39:09.9828795Z         },
2026-06-04T02:39:09.9828956Z         "unit": {
2026-06-04T02:39:09.9829127Z           "complete": true,
2026-06-04T02:39:09.9829358Z           "evidence": [
2026-06-04T02:39:09.9829507Z             {
2026-06-04T02:39:09.9829757Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:39:09.9829926Z               "line": 169
2026-06-04T02:39:09.9830082Z             },
2026-06-04T02:39:09.9830248Z             {
2026-06-04T02:39:09.9830481Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:39:09.9830653Z               "line": 176
2026-06-04T02:39:09.9830809Z             },
2026-06-04T02:39:09.9830960Z             {
2026-06-04T02:39:09.9831192Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:39:09.9831374Z               "line": 185
2026-06-04T02:39:09.9831534Z             },
2026-06-04T02:39:09.9831688Z             {
2026-06-04T02:39:09.9831927Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:39:09.9832090Z               "line": 194
2026-06-04T02:39:09.9832248Z             },
2026-06-04T02:39:09.9832392Z             {
2026-06-04T02:39:09.9832630Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:39:09.9832817Z               "line": 203
2026-06-04T02:39:09.9832968Z             },
2026-06-04T02:39:09.9833123Z             {
2026-06-04T02:39:09.9833351Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:39:09.9833552Z               "line": 212
2026-06-04T02:39:09.9833704Z             },
2026-06-04T02:39:09.9833860Z             {
2026-06-04T02:39:09.9834092Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T02:39:09.9834263Z               "line": 132
2026-06-04T02:39:09.9834422Z             },
2026-06-04T02:39:09.9834572Z             {
2026-06-04T02:39:09.9834817Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:39:09.9834983Z               "line": 211
2026-06-04T02:39:09.9835140Z             }
2026-06-04T02:39:09.9835301Z           ]
2026-06-04T02:39:09.9835447Z         }
2026-06-04T02:39:09.9835603Z       }
2026-06-04T02:39:09.9835750Z     },
2026-06-04T02:39:09.9835902Z     {
2026-06-04T02:39:09.9836153Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-04T02:39:09.9836612Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-04T02:39:09.9836819Z       "requiredStages": [
2026-06-04T02:39:09.9836980Z         "impl",
2026-06-04T02:39:09.9837276Z         "unit"
2026-06-04T02:39:09.9837421Z       ],
2026-06-04T02:39:09.9837582Z       "stages": {
2026-06-04T02:39:09.9837734Z         "doc": {
2026-06-04T02:39:09.9837926Z           "complete": false,
2026-06-04T02:39:09.9838104Z           "evidence": []
2026-06-04T02:39:09.9838253Z         },
2026-06-04T02:39:09.9838416Z         "impl": {
2026-06-04T02:39:09.9838591Z           "complete": true,
2026-06-04T02:39:09.9838770Z           "evidence": [
2026-06-04T02:39:09.9838917Z             {
2026-06-04T02:39:09.9839232Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:39:09.9839425Z               "line": 25
2026-06-04T02:39:09.9839576Z             },
2026-06-04T02:39:09.9839736Z             {
2026-06-04T02:39:09.9839966Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T02:39:09.9840155Z               "line": 13
2026-06-04T02:39:09.9840307Z             },
2026-06-04T02:39:09.9840467Z             {
2026-06-04T02:39:09.9840706Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T02:39:09.9840886Z               "line": 78
2026-06-04T02:39:09.9841043Z             }
2026-06-04T02:39:09.9841191Z           ]
2026-06-04T02:39:09.9841344Z         },
2026-06-04T02:39:09.9841496Z         "int": {
2026-06-04T02:39:09.9841685Z           "complete": false,
2026-06-04T02:39:09.9841867Z           "evidence": []
2026-06-04T02:39:09.9842023Z         },
2026-06-04T02:39:09.9842184Z         "unit": {
2026-06-04T02:39:09.9842364Z           "complete": true,
2026-06-04T02:39:09.9842534Z           "evidence": [
2026-06-04T02:39:09.9842680Z             {
2026-06-04T02:39:09.9842914Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:39:09.9843090Z               "line": 180
2026-06-04T02:39:09.9843246Z             },
2026-06-04T02:39:09.9843400Z             {
2026-06-04T02:39:09.9843630Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:39:09.9843807Z               "line": 205
2026-06-04T02:39:09.9849255Z             },
2026-06-04T02:39:09.9849552Z             {
2026-06-04T02:39:09.9849817Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T02:39:09.9849987Z               "line": 96
2026-06-04T02:39:09.9850139Z             }
2026-06-04T02:39:09.9850287Z           ]
2026-06-04T02:39:09.9850442Z         }
2026-06-04T02:39:09.9850587Z       }
2026-06-04T02:39:09.9850737Z     },
2026-06-04T02:39:09.9850890Z     {
2026-06-04T02:39:09.9851096Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-04T02:39:09.9851449Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-04T02:39:09.9851634Z       "requiredStages": [
2026-06-04T02:39:09.9851801Z         "impl",
2026-06-04T02:39:09.9851952Z         "unit"
2026-06-04T02:39:09.9852110Z       ],
2026-06-04T02:39:09.9852276Z       "stages": {
2026-06-04T02:39:09.9852449Z         "doc": {
2026-06-04T02:39:09.9852638Z           "complete": false,
2026-06-04T02:39:09.9852807Z           "evidence": []
2026-06-04T02:39:09.9852961Z         },
2026-06-04T02:39:09.9853118Z         "impl": {
2026-06-04T02:39:09.9853313Z           "complete": true,
2026-06-04T02:39:09.9853483Z           "evidence": [
2026-06-04T02:39:09.9853630Z             {
2026-06-04T02:39:09.9853875Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:39:09.9854038Z               "line": 48
2026-06-04T02:39:09.9854191Z             },
2026-06-04T02:39:09.9854335Z             {
2026-06-04T02:39:09.9854576Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:39:09.9854747Z               "line": 55
2026-06-04T02:39:09.9854895Z             },
2026-06-04T02:39:09.9855049Z             {
2026-06-04T02:39:09.9855282Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:39:09.9855455Z               "line": 74
2026-06-04T02:39:09.9855604Z             },
2026-06-04T02:39:09.9856000Z             {
2026-06-04T02:39:09.9856264Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:39:09.9856426Z               "line": 91
2026-06-04T02:39:09.9856585Z             }
2026-06-04T02:39:09.9856874Z           ]
2026-06-04T02:39:09.9857036Z         },
2026-06-04T02:39:09.9857192Z         "int": {
2026-06-04T02:39:09.9857379Z           "complete": false,
2026-06-04T02:39:09.9858495Z           "evidence": []
2026-06-04T02:39:09.9858736Z         },
2026-06-04T02:39:09.9858945Z         "unit": {
2026-06-04T02:39:09.9859365Z           "complete": true,
2026-06-04T02:39:09.9859615Z           "evidence": [
2026-06-04T02:39:09.9859821Z             {
2026-06-04T02:39:09.9860126Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:39:09.9860362Z               "line": 149
2026-06-04T02:39:09.9860552Z             },
2026-06-04T02:39:09.9860748Z             {
2026-06-04T02:39:09.9861010Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:39:09.9861387Z               "line": 163
2026-06-04T02:39:09.9861548Z             },
2026-06-04T02:39:09.9861716Z             {
2026-06-04T02:39:09.9861957Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:39:09.9862141Z               "line": 173
2026-06-04T02:39:09.9862301Z             },
2026-06-04T02:39:09.9862453Z             {
2026-06-04T02:39:09.9862695Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:39:09.9862870Z               "line": 191
2026-06-04T02:39:09.9863019Z             },
2026-06-04T02:39:09.9863174Z             {
2026-06-04T02:39:09.9863411Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:39:09.9863595Z               "line": 204
2026-06-04T02:39:09.9863747Z             }
2026-06-04T02:39:09.9863909Z           ]
2026-06-04T02:39:09.9864066Z         }
2026-06-04T02:39:09.9864214Z       }
2026-06-04T02:39:09.9864370Z     },
2026-06-04T02:39:09.9864514Z     {
2026-06-04T02:39:09.9864779Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-04T02:39:09.9865195Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-04T02:39:09.9865391Z       "requiredStages": [
2026-06-04T02:39:09.9865556Z         "impl",
2026-06-04T02:39:09.9865724Z         "unit"
2026-06-04T02:39:09.9865883Z       ],
2026-06-04T02:39:09.9866039Z       "stages": {
2026-06-04T02:39:09.9866210Z         "doc": {
2026-06-04T02:39:09.9866389Z           "complete": false,
2026-06-04T02:39:09.9866563Z           "evidence": []
2026-06-04T02:39:09.9866725Z         },
2026-06-04T02:39:09.9866883Z         "impl": {
2026-06-04T02:39:09.9867070Z           "complete": true,
2026-06-04T02:39:09.9867234Z           "evidence": [
2026-06-04T02:39:09.9867392Z             {
2026-06-04T02:39:09.9867648Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9867831Z               "line": 264
2026-06-04T02:39:09.9867993Z             },
2026-06-04T02:39:09.9868138Z             {
2026-06-04T02:39:09.9868395Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:39:09.9868566Z               "line": 26
2026-06-04T02:39:09.9868725Z             }
2026-06-04T02:39:09.9868874Z           ]
2026-06-04T02:39:09.9869037Z         },
2026-06-04T02:39:09.9869290Z         "int": {
2026-06-04T02:39:09.9869477Z           "complete": false,
2026-06-04T02:39:09.9869654Z           "evidence": []
2026-06-04T02:39:09.9869803Z         },
2026-06-04T02:39:09.9869967Z         "unit": {
2026-06-04T02:39:09.9870144Z           "complete": true,
2026-06-04T02:39:09.9870317Z           "evidence": [
2026-06-04T02:39:09.9870481Z             {
2026-06-04T02:39:09.9870721Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:39:09.9870904Z               "line": 138
2026-06-04T02:39:09.9871058Z             },
2026-06-04T02:39:09.9871218Z             {
2026-06-04T02:39:09.9871453Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:39:09.9871633Z               "line": 181
2026-06-04T02:39:09.9871796Z             }
2026-06-04T02:39:09.9872185Z           ]
2026-06-04T02:39:09.9872376Z         }
2026-06-04T02:39:09.9872524Z       }
2026-06-04T02:39:09.9872684Z     },
2026-06-04T02:39:09.9872830Z     {
2026-06-04T02:39:09.9873328Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-04T02:39:09.9873670Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-04T02:39:09.9873850Z       "requiredStages": [
2026-06-04T02:39:09.9874019Z         "impl",
2026-06-04T02:39:09.9874169Z         "unit"
2026-06-04T02:39:09.9874330Z       ],
2026-06-04T02:39:09.9874486Z       "stages": {
2026-06-04T02:39:09.9874647Z         "doc": {
2026-06-04T02:39:09.9874832Z           "complete": false,
2026-06-04T02:39:09.9875025Z           "evidence": []
2026-06-04T02:39:09.9875186Z         },
2026-06-04T02:39:09.9875349Z         "impl": {
2026-06-04T02:39:09.9875533Z           "complete": true,
2026-06-04T02:39:09.9875697Z           "evidence": [
2026-06-04T02:39:09.9875857Z             {
2026-06-04T02:39:09.9876136Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:39:09.9876305Z               "line": 36
2026-06-04T02:39:09.9876467Z             },
2026-06-04T02:39:09.9876618Z             {
2026-06-04T02:39:09.9876887Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:39:09.9877050Z               "line": 68
2026-06-04T02:39:09.9877209Z             }
2026-06-04T02:39:09.9877366Z           ]
2026-06-04T02:39:09.9877513Z         },
2026-06-04T02:39:09.9877678Z         "int": {
2026-06-04T02:39:09.9877858Z           "complete": false,
2026-06-04T02:39:09.9878034Z           "evidence": []
2026-06-04T02:39:09.9878181Z         },
2026-06-04T02:39:09.9878345Z         "unit": {
2026-06-04T02:39:09.9878528Z           "complete": true,
2026-06-04T02:39:09.9878695Z           "evidence": [
2026-06-04T02:39:09.9878856Z             {
2026-06-04T02:39:09.9879103Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:39:09.9879340Z               "line": 143
2026-06-04T02:39:09.9879497Z             },
2026-06-04T02:39:09.9879677Z             {
2026-06-04T02:39:09.9879929Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:39:09.9880097Z               "line": 160
2026-06-04T02:39:09.9880267Z             },
2026-06-04T02:39:09.9880415Z             {
2026-06-04T02:39:09.9880679Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:39:09.9880850Z               "line": 168
2026-06-04T02:39:09.9881004Z             }
2026-06-04T02:39:09.9881162Z           ]
2026-06-04T02:39:09.9887555Z         }
2026-06-04T02:39:09.9887859Z       }
2026-06-04T02:39:09.9888008Z     },
2026-06-04T02:39:09.9888162Z     {
2026-06-04T02:39:09.9888442Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-04T02:39:09.9888821Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-04T02:39:09.9889016Z       "requiredStages": [
2026-06-04T02:39:09.9889282Z         "impl",
2026-06-04T02:39:09.9889446Z         "unit"
2026-06-04T02:39:09.9889600Z       ],
2026-06-04T02:39:09.9889800Z       "stages": {
2026-06-04T02:39:09.9889957Z         "doc": {
2026-06-04T02:39:09.9890147Z           "complete": false,
2026-06-04T02:39:09.9890327Z           "evidence": []
2026-06-04T02:39:09.9890492Z         },
2026-06-04T02:39:09.9890660Z         "impl": {
2026-06-04T02:39:09.9890835Z           "complete": true,
2026-06-04T02:39:09.9891011Z           "evidence": [
2026-06-04T02:39:09.9891160Z             {
2026-06-04T02:39:09.9891420Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:39:09.9891597Z               "line": 107
2026-06-04T02:39:09.9891747Z             }
2026-06-04T02:39:09.9891907Z           ]
2026-06-04T02:39:09.9892054Z         },
2026-06-04T02:39:09.9892216Z         "int": {
2026-06-04T02:39:09.9892391Z           "complete": false,
2026-06-04T02:39:09.9892572Z           "evidence": []
2026-06-04T02:39:09.9892730Z         },
2026-06-04T02:39:09.9892887Z         "unit": {
2026-06-04T02:39:09.9893072Z           "complete": true,
2026-06-04T02:39:09.9893473Z           "evidence": [
2026-06-04T02:39:09.9893658Z             {
2026-06-04T02:39:09.9893921Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:39:09.9894100Z               "line": 184
2026-06-04T02:39:09.9894469Z             },
2026-06-04T02:39:09.9894626Z             {
2026-06-04T02:39:09.9894886Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:39:09.9895059Z               "line": 193
2026-06-04T02:39:09.9895219Z             },
2026-06-04T02:39:09.9895369Z             {
2026-06-04T02:39:09.9895623Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:39:09.9895804Z               "line": 201
2026-06-04T02:39:09.9895955Z             },
2026-06-04T02:39:09.9896112Z             {
2026-06-04T02:39:09.9896359Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:39:09.9896536Z               "line": 210
2026-06-04T02:39:09.9896688Z             },
2026-06-04T02:39:09.9896849Z             {
2026-06-04T02:39:09.9897111Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:39:09.9897282Z               "line": 219
2026-06-04T02:39:09.9897441Z             }
2026-06-04T02:39:09.9897590Z           ]
2026-06-04T02:39:09.9897756Z         }
2026-06-04T02:39:09.9897898Z       }
2026-06-04T02:39:09.9898055Z     },
2026-06-04T02:39:09.9898207Z     {
2026-06-04T02:39:09.9898433Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-04T02:39:09.9898772Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-04T02:39:09.9898954Z       "requiredStages": [
2026-06-04T02:39:09.9899121Z         "impl",
2026-06-04T02:39:09.9899335Z         "unit"
2026-06-04T02:39:09.9899489Z       ],
2026-06-04T02:39:09.9899656Z       "stages": {
2026-06-04T02:39:09.9899808Z         "doc": {
2026-06-04T02:39:09.9899992Z           "complete": false,
2026-06-04T02:39:09.9900159Z           "evidence": []
2026-06-04T02:39:09.9900320Z         },
2026-06-04T02:39:09.9900482Z         "impl": {
2026-06-04T02:39:09.9900685Z           "complete": true,
2026-06-04T02:39:09.9900868Z           "evidence": [
2026-06-04T02:39:09.9901019Z             {
2026-06-04T02:39:09.9901253Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:39:09.9901431Z               "line": 14
2026-06-04T02:39:09.9901588Z             },
2026-06-04T02:39:09.9901737Z             {
2026-06-04T02:39:09.9901969Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:39:09.9902142Z               "line": 62
2026-06-04T02:39:09.9902294Z             }
2026-06-04T02:39:09.9902452Z           ]
2026-06-04T02:39:09.9902604Z         },
2026-06-04T02:39:09.9902764Z         "int": {
2026-06-04T02:39:09.9902944Z           "complete": false,
2026-06-04T02:39:09.9903123Z           "evidence": []
2026-06-04T02:39:09.9903278Z         },
2026-06-04T02:39:09.9903432Z         "unit": {
2026-06-04T02:39:09.9903616Z           "complete": true,
2026-06-04T02:39:09.9903781Z           "evidence": [
2026-06-04T02:39:09.9903938Z             {
2026-06-04T02:39:09.9904179Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:39:09.9904365Z               "line": 160
2026-06-04T02:39:09.9904524Z             },
2026-06-04T02:39:09.9904673Z             {
2026-06-04T02:39:09.9904913Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:39:09.9905080Z               "line": 197
2026-06-04T02:39:09.9905240Z             },
2026-06-04T02:39:09.9905388Z             {
2026-06-04T02:39:09.9905616Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:39:09.9905793Z               "line": 213
2026-06-04T02:39:09.9905941Z             }
2026-06-04T02:39:09.9906098Z           ]
2026-06-04T02:39:09.9906246Z         }
2026-06-04T02:39:09.9906401Z       }
2026-06-04T02:39:09.9906544Z     },
2026-06-04T02:39:09.9906699Z     {
2026-06-04T02:39:09.9906935Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-04T02:39:09.9907383Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-04T02:39:09.9907721Z       "requiredStages": [
2026-06-04T02:39:09.9907896Z         "impl",
2026-06-04T02:39:09.9908062Z         "unit"
2026-06-04T02:39:09.9908209Z       ],
2026-06-04T02:39:09.9908380Z       "stages": {
2026-06-04T02:39:09.9908689Z         "doc": {
2026-06-04T02:39:09.9908871Z           "complete": false,
2026-06-04T02:39:09.9909046Z           "evidence": []
2026-06-04T02:39:09.9909247Z         },
2026-06-04T02:39:09.9909415Z         "impl": {
2026-06-04T02:39:09.9909593Z           "complete": true,
2026-06-04T02:39:09.9909769Z           "evidence": [
2026-06-04T02:39:09.9909928Z             {
2026-06-04T02:39:09.9910167Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:39:09.9910344Z               "line": 76
2026-06-04T02:39:09.9910494Z             },
2026-06-04T02:39:09.9910650Z             {
2026-06-04T02:39:09.9910883Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:39:09.9911066Z               "line": 163
2026-06-04T02:39:09.9911223Z             },
2026-06-04T02:39:09.9911368Z             {
2026-06-04T02:39:09.9911619Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:39:09.9911790Z               "line": 229
2026-06-04T02:39:09.9911947Z             },
2026-06-04T02:39:09.9912109Z             {
2026-06-04T02:39:09.9912352Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:39:09.9912528Z               "line": 265
2026-06-04T02:39:09.9912678Z             }
2026-06-04T02:39:09.9912834Z           ]
2026-06-04T02:39:09.9912980Z         },
2026-06-04T02:39:09.9913146Z         "int": {
2026-06-04T02:39:09.9913322Z           "complete": false,
2026-06-04T02:39:09.9913499Z           "evidence": []
2026-06-04T02:39:09.9913658Z         },
2026-06-04T02:39:09.9913817Z         "unit": {
2026-06-04T02:39:09.9914002Z           "complete": true,
2026-06-04T02:39:09.9914168Z           "evidence": [
2026-06-04T02:39:09.9914331Z             {
2026-06-04T02:39:09.9914561Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:39:09.9914747Z               "line": 310
2026-06-04T02:39:09.9914908Z             },
2026-06-04T02:39:09.9915054Z             {
2026-06-04T02:39:09.9915293Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:39:09.9915470Z               "line": 318
2026-06-04T02:39:09.9915631Z             },
2026-06-04T02:39:09.9915789Z             {
2026-06-04T02:39:09.9916016Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:39:09.9916194Z               "line": 341
2026-06-04T02:39:09.9916345Z             },
2026-06-04T02:39:09.9916501Z             {
2026-06-04T02:39:09.9916728Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:39:09.9916904Z               "line": 378
2026-06-04T02:39:09.9917067Z             },
2026-06-04T02:39:09.9917215Z             {
2026-06-04T02:39:09.9917459Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:39:09.9917630Z               "line": 389
2026-06-04T02:39:09.9923063Z             },
2026-06-04T02:39:09.9923328Z             {
2026-06-04T02:39:09.9923622Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:39:09.9923804Z               "line": 401
2026-06-04T02:39:09.9923956Z             },
2026-06-04T02:39:09.9924111Z             {
2026-06-04T02:39:09.9924361Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:39:09.9924533Z               "line": 413
2026-06-04T02:39:09.9924679Z             }
2026-06-04T02:39:09.9924836Z           ]
2026-06-04T02:39:09.9924990Z         }
2026-06-04T02:39:09.9925137Z       }
2026-06-04T02:39:09.9925287Z     },
2026-06-04T02:39:09.9925434Z     {
2026-06-04T02:39:09.9925647Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-04T02:39:09.9925946Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-04T02:39:09.9926132Z       "requiredStages": [
2026-06-04T02:39:09.9926294Z         "impl",
2026-06-04T02:39:09.9926440Z         "int"
2026-06-04T02:39:09.9926595Z       ],
2026-06-04T02:39:09.9926750Z       "stages": {
2026-06-04T02:39:09.9926910Z         "doc": {
2026-06-04T02:39:09.9927329Z           "complete": false,
2026-06-04T02:39:09.9927523Z           "evidence": []
2026-06-04T02:39:09.9927678Z         },
2026-06-04T02:39:09.9927832Z         "impl": {
2026-06-04T02:39:09.9928160Z           "complete": true,
2026-06-04T02:39:09.9928322Z           "evidence": [
2026-06-04T02:39:09.9928476Z             {
2026-06-04T02:39:09.9928710Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:39:09.9928885Z               "line": 22
2026-06-04T02:39:09.9929046Z             }
2026-06-04T02:39:09.9929257Z           ]
2026-06-04T02:39:09.9929414Z         },
2026-06-04T02:39:09.9929566Z         "int": {
2026-06-04T02:39:09.9929751Z           "complete": true,
2026-06-04T02:39:09.9929918Z           "evidence": [
2026-06-04T02:39:09.9930078Z             {
2026-06-04T02:39:09.9930343Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-04T02:39:09.9930507Z               "line": 18
2026-06-04T02:39:09.9930664Z             }
2026-06-04T02:39:09.9930811Z           ]
2026-06-04T02:39:09.9930980Z         },
2026-06-04T02:39:09.9931137Z         "unit": {
2026-06-04T02:39:09.9931325Z           "complete": false,
2026-06-04T02:39:09.9931505Z           "evidence": []
2026-06-04T02:39:09.9931661Z         }
2026-06-04T02:39:09.9931814Z       }
2026-06-04T02:39:09.9931954Z     },
2026-06-04T02:39:09.9932106Z     {
2026-06-04T02:39:09.9932339Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-04T02:39:09.9932743Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-04T02:39:09.9932933Z       "requiredStages": [
2026-06-04T02:39:09.9933085Z         "impl",
2026-06-04T02:39:09.9933242Z         "unit"
2026-06-04T02:39:09.9933390Z       ],
2026-06-04T02:39:09.9933557Z       "stages": {
2026-06-04T02:39:09.9933710Z         "doc": {
2026-06-04T02:39:09.9933904Z           "complete": false,
2026-06-04T02:39:09.9934086Z           "evidence": []
2026-06-04T02:39:09.9934234Z         },
2026-06-04T02:39:09.9934399Z         "impl": {
2026-06-04T02:39:09.9934585Z           "complete": true,
2026-06-04T02:39:09.9934762Z           "evidence": [
2026-06-04T02:39:09.9934913Z             {
2026-06-04T02:39:09.9935178Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9935371Z               "line": 263
2026-06-04T02:39:09.9935527Z             },
2026-06-04T02:39:09.9935682Z             {
2026-06-04T02:39:09.9935915Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:39:09.9936089Z               "line": 27
2026-06-04T02:39:09.9936239Z             }
2026-06-04T02:39:09.9936395Z           ]
2026-06-04T02:39:09.9936552Z         },
2026-06-04T02:39:09.9936708Z         "int": {
2026-06-04T02:39:09.9936892Z           "complete": false,
2026-06-04T02:39:09.9937056Z           "evidence": []
2026-06-04T02:39:09.9937208Z         },
2026-06-04T02:39:09.9937363Z         "unit": {
2026-06-04T02:39:09.9937549Z           "complete": true,
2026-06-04T02:39:09.9937718Z           "evidence": [
2026-06-04T02:39:09.9937878Z             {
2026-06-04T02:39:09.9938132Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:09.9938296Z               "line": 561
2026-06-04T02:39:09.9938456Z             },
2026-06-04T02:39:09.9938615Z             {
2026-06-04T02:39:09.9938852Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:39:09.9939029Z               "line": 163
2026-06-04T02:39:09.9939213Z             }
2026-06-04T02:39:09.9939370Z           ]
2026-06-04T02:39:09.9939560Z         }
2026-06-04T02:39:09.9939717Z       }
2026-06-04T02:39:09.9939868Z     },
2026-06-04T02:39:09.9940017Z     {
2026-06-04T02:39:09.9940276Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-04T02:39:09.9940611Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-04T02:39:09.9940802Z       "requiredStages": [
2026-06-04T02:39:09.9940958Z         "impl",
2026-06-04T02:39:09.9941117Z         "unit"
2026-06-04T02:39:09.9941261Z       ],
2026-06-04T02:39:09.9941425Z       "stages": {
2026-06-04T02:39:09.9941744Z         "doc": {
2026-06-04T02:39:09.9941943Z           "complete": false,
2026-06-04T02:39:09.9942120Z           "evidence": []
2026-06-04T02:39:09.9942267Z         },
2026-06-04T02:39:09.9942583Z         "impl": {
2026-06-04T02:39:09.9942762Z           "complete": true,
2026-06-04T02:39:09.9942939Z           "evidence": [
2026-06-04T02:39:09.9943096Z             {
2026-06-04T02:39:09.9943331Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:39:09.9943499Z               "line": 20
2026-06-04T02:39:09.9943650Z             },
2026-06-04T02:39:09.9943807Z             {
2026-06-04T02:39:09.9944036Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:39:09.9944211Z               "line": 94
2026-06-04T02:39:09.9944369Z             },
2026-06-04T02:39:09.9944518Z             {
2026-06-04T02:39:09.9944777Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T02:39:09.9944944Z               "line": 70
2026-06-04T02:39:09.9945105Z             },
2026-06-04T02:39:09.9945269Z             {
2026-06-04T02:39:09.9945527Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T02:39:09.9945703Z               "line": 82
2026-06-04T02:39:09.9945864Z             }
2026-06-04T02:39:09.9946019Z           ]
2026-06-04T02:39:09.9946165Z         },
2026-06-04T02:39:09.9946320Z         "int": {
2026-06-04T02:39:09.9946495Z           "complete": false,
2026-06-04T02:39:09.9946669Z           "evidence": []
2026-06-04T02:39:09.9946825Z         },
2026-06-04T02:39:09.9946979Z         "unit": {
2026-06-04T02:39:09.9947162Z           "complete": true,
2026-06-04T02:39:09.9947326Z           "evidence": [
2026-06-04T02:39:09.9947488Z             {
2026-06-04T02:39:09.9947727Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:39:09.9947903Z               "line": 139
2026-06-04T02:39:09.9948070Z             },
2026-06-04T02:39:09.9948218Z             {
2026-06-04T02:39:09.9948455Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:39:09.9948637Z               "line": 162
2026-06-04T02:39:09.9948798Z             },
2026-06-04T02:39:09.9948944Z             {
2026-06-04T02:39:09.9949239Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:39:09.9949434Z               "line": 173
2026-06-04T02:39:09.9949587Z             },
2026-06-04T02:39:09.9949741Z             {
2026-06-04T02:39:09.9949972Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:39:09.9950144Z               "line": 189
2026-06-04T02:39:09.9950291Z             },
2026-06-04T02:39:09.9950448Z             {
2026-06-04T02:39:09.9950685Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:39:09.9950847Z               "line": 200
2026-06-04T02:39:09.9951004Z             },
2026-06-04T02:39:09.9951147Z             {
2026-06-04T02:39:09.9951401Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T02:39:09.9951565Z               "line": 139
2026-06-04T02:39:09.9951721Z             }
2026-06-04T02:39:09.9951890Z           ]
2026-06-04T02:39:09.9952038Z         }
2026-06-04T02:39:09.9952196Z       }
2026-06-04T02:39:09.9952338Z     },
2026-06-04T02:39:09.9952490Z     {
2026-06-04T02:39:09.9952696Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-04T02:39:09.9958320Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-04T02:39:09.9958580Z       "requiredStages": [
2026-06-04T02:39:09.9958744Z         "impl",
2026-06-04T02:39:09.9958901Z         "unit"
2026-06-04T02:39:09.9959044Z       ],
2026-06-04T02:39:09.9959290Z       "stages": {
2026-06-04T02:39:09.9959444Z         "doc": {
2026-06-04T02:39:09.9959626Z           "complete": true,
2026-06-04T02:39:09.9959798Z           "evidence": [
2026-06-04T02:39:09.9959944Z             {
2026-06-04T02:39:09.9960171Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T02:39:09.9960340Z               "line": 131
2026-06-04T02:39:09.9960496Z             }
2026-06-04T02:39:09.9960642Z           ]
2026-06-04T02:39:09.9961077Z         },
2026-06-04T02:39:09.9961281Z         "impl": {
2026-06-04T02:39:09.9961467Z           "complete": true,
2026-06-04T02:39:09.9961636Z           "evidence": [
2026-06-04T02:39:09.9961929Z             {
2026-06-04T02:39:09.9962167Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:39:09.9962334Z               "line": 50
2026-06-04T02:39:09.9962490Z             },
2026-06-04T02:39:09.9962642Z             {
2026-06-04T02:39:09.9962864Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:39:09.9963039Z               "line": 17
2026-06-04T02:39:09.9963187Z             },
2026-06-04T02:39:09.9963341Z             {
2026-06-04T02:39:09.9963569Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:09.9963743Z               "line": 171
2026-06-04T02:39:09.9963904Z             },
2026-06-04T02:39:09.9964049Z             {
2026-06-04T02:39:09.9964287Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:09.9964473Z               "line": 259
2026-06-04T02:39:09.9964633Z             },
2026-06-04T02:39:09.9964781Z             {
2026-06-04T02:39:09.9965018Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:39:09.9965201Z               "line": 32
2026-06-04T02:39:09.9965353Z             }
2026-06-04T02:39:09.9965510Z           ]
2026-06-04T02:39:09.9965656Z         },
2026-06-04T02:39:09.9965820Z         "int": {
2026-06-04T02:39:09.9966000Z           "complete": false,
2026-06-04T02:39:09.9966178Z           "evidence": []
2026-06-04T02:39:09.9966329Z         },
2026-06-04T02:39:09.9966482Z         "unit": {
2026-06-04T02:39:09.9966663Z           "complete": true,
2026-06-04T02:39:09.9966822Z           "evidence": [
2026-06-04T02:39:09.9966973Z             {
2026-06-04T02:39:09.9967193Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:39:09.9967367Z               "line": 94
2026-06-04T02:39:09.9967526Z             },
2026-06-04T02:39:09.9967672Z             {
2026-06-04T02:39:09.9967912Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:39:09.9968085Z               "line": 111
2026-06-04T02:39:09.9968246Z             },
2026-06-04T02:39:09.9968401Z             {
2026-06-04T02:39:09.9968631Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:39:09.9968810Z               "line": 124
2026-06-04T02:39:09.9968956Z             },
2026-06-04T02:39:09.9969111Z             {
2026-06-04T02:39:09.9969383Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:39:09.9969562Z               "line": 134
2026-06-04T02:39:09.9969716Z             },
2026-06-04T02:39:09.9969860Z             {
2026-06-04T02:39:09.9970084Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:39:09.9970250Z               "line": 142
2026-06-04T02:39:09.9970409Z             },
2026-06-04T02:39:09.9970555Z             {
2026-06-04T02:39:09.9970782Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:39:09.9970955Z               "line": 154
2026-06-04T02:39:09.9971116Z             }
2026-06-04T02:39:09.9971273Z           ]
2026-06-04T02:39:09.9971415Z         }
2026-06-04T02:39:09.9971575Z       }
2026-06-04T02:39:09.9971714Z     },
2026-06-04T02:39:09.9971867Z     {
2026-06-04T02:39:09.9972093Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-04T02:39:09.9972363Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-04T02:39:09.9972551Z       "requiredStages": [
2026-06-04T02:39:09.9972705Z         "impl",
2026-06-04T02:39:09.9972866Z         "unit"
2026-06-04T02:39:09.9973010Z       ],
2026-06-04T02:39:09.9973170Z       "stages": {
2026-06-04T02:39:09.9973331Z         "doc": {
2026-06-04T02:39:09.9973505Z           "complete": false,
2026-06-04T02:39:09.9973676Z           "evidence": []
2026-06-04T02:39:09.9973826Z         },
2026-06-04T02:39:09.9973990Z         "impl": {
2026-06-04T02:39:09.9974165Z           "complete": true,
2026-06-04T02:39:09.9974329Z           "evidence": [
2026-06-04T02:39:09.9974488Z             {
2026-06-04T02:39:09.9974875Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:09.9975060Z               "line": 128
2026-06-04T02:39:09.9975209Z             }
2026-06-04T02:39:09.9975361Z           ]
2026-06-04T02:39:09.9975659Z         },
2026-06-04T02:39:09.9975823Z         "int": {
2026-06-04T02:39:09.9976008Z           "complete": false,
2026-06-04T02:39:09.9976175Z           "evidence": []
2026-06-04T02:39:09.9976328Z         },
2026-06-04T02:39:09.9976479Z         "unit": {
2026-06-04T02:39:09.9976662Z           "complete": true,
2026-06-04T02:39:09.9976829Z           "evidence": [
2026-06-04T02:39:09.9976982Z             {
2026-06-04T02:39:09.9977223Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:09.9977392Z               "line": 205
2026-06-04T02:39:09.9977553Z             }
2026-06-04T02:39:09.9977699Z           ]
2026-06-04T02:39:09.9977853Z         }
2026-06-04T02:39:09.9978002Z       }
2026-06-04T02:39:09.9978154Z     },
2026-06-04T02:39:09.9978298Z     {
2026-06-04T02:39:09.9978543Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-04T02:39:09.9978857Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-04T02:39:09.9979035Z       "requiredStages": [
2026-06-04T02:39:09.9979260Z         "impl",
2026-06-04T02:39:09.9979418Z         "unit"
2026-06-04T02:39:09.9979578Z       ],
2026-06-04T02:39:09.9979746Z       "stages": {
2026-06-04T02:39:09.9979909Z         "doc": {
2026-06-04T02:39:09.9980092Z           "complete": false,
2026-06-04T02:39:09.9980258Z           "evidence": []
2026-06-04T02:39:09.9980413Z         },
2026-06-04T02:39:09.9980566Z         "impl": {
2026-06-04T02:39:09.9980749Z           "complete": true,
2026-06-04T02:39:09.9980918Z           "evidence": [
2026-06-04T02:39:09.9981067Z             {
2026-06-04T02:39:09.9981299Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:39:09.9981469Z               "line": 120
2026-06-04T02:39:09.9981623Z             },
2026-06-04T02:39:09.9981771Z             {
2026-06-04T02:39:09.9982016Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:39:09.9982192Z               "line": 131
2026-06-04T02:39:09.9982341Z             },
2026-06-04T02:39:09.9982494Z             {
2026-06-04T02:39:09.9982736Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:39:09.9982918Z               "line": 149
2026-06-04T02:39:09.9983063Z             }
2026-06-04T02:39:09.9983223Z           ]
2026-06-04T02:39:09.9983377Z         },
2026-06-04T02:39:09.9983529Z         "int": {
2026-06-04T02:39:09.9983716Z           "complete": false,
2026-06-04T02:39:09.9983885Z           "evidence": []
2026-06-04T02:39:09.9984041Z         },
2026-06-04T02:39:09.9984197Z         "unit": {
2026-06-04T02:39:09.9984378Z           "complete": true,
2026-06-04T02:39:09.9984544Z           "evidence": [
2026-06-04T02:39:09.9984687Z             {
2026-06-04T02:39:09.9984924Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:39:09.9985088Z               "line": 173
2026-06-04T02:39:09.9985253Z             },
2026-06-04T02:39:09.9985409Z             {
2026-06-04T02:39:09.9985644Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:39:09.9985812Z               "line": 191
2026-06-04T02:39:09.9985969Z             },
2026-06-04T02:39:09.9986121Z             {
2026-06-04T02:39:09.9986347Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:39:09.9986524Z               "line": 253
2026-06-04T02:39:09.9986680Z             },
2026-06-04T02:39:09.9986836Z             {
2026-06-04T02:39:09.9987066Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:39:09.9987230Z               "line": 264
2026-06-04T02:39:09.9992490Z             },
2026-06-04T02:39:09.9992733Z             {
2026-06-04T02:39:09.9992988Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:39:09.9993156Z               "line": 277
2026-06-04T02:39:09.9993311Z             }
2026-06-04T02:39:09.9993468Z           ]
2026-06-04T02:39:09.9993611Z         }
2026-06-04T02:39:09.9993764Z       }
2026-06-04T02:39:09.9994154Z     },
2026-06-04T02:39:09.9994330Z     {
2026-06-04T02:39:09.9994541Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-04T02:39:09.9995044Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-04T02:39:09.9995381Z       "requiredStages": [
2026-06-04T02:39:09.9995535Z         "impl",
2026-06-04T02:39:09.9995696Z         "unit"
2026-06-04T02:39:09.9995840Z       ],
2026-06-04T02:39:09.9996004Z       "stages": {
2026-06-04T02:39:09.9996157Z         "doc": {
2026-06-04T02:39:09.9996343Z           "complete": false,
2026-06-04T02:39:09.9996520Z           "evidence": []
2026-06-04T02:39:09.9996665Z         },
2026-06-04T02:39:09.9996831Z         "impl": {
2026-06-04T02:39:09.9997003Z           "complete": true,
2026-06-04T02:39:09.9997176Z           "evidence": [
2026-06-04T02:39:09.9997327Z             {
2026-06-04T02:39:09.9997556Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:39:09.9997729Z               "line": 14
2026-06-04T02:39:09.9997897Z             },
2026-06-04T02:39:09.9998055Z             {
2026-06-04T02:39:09.9998276Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T02:39:09.9998466Z               "line": 298
2026-06-04T02:39:09.9998619Z             }
2026-06-04T02:39:09.9998772Z           ]
2026-06-04T02:39:09.9998927Z         },
2026-06-04T02:39:09.9999079Z         "int": {
2026-06-04T02:39:09.9999325Z           "complete": false,
2026-06-04T02:39:09.9999502Z           "evidence": []
2026-06-04T02:39:09.9999659Z         },
2026-06-04T02:39:09.9999809Z         "unit": {
2026-06-04T02:39:09.9999995Z           "complete": true,
2026-06-04T02:39:10.0000169Z           "evidence": [
2026-06-04T02:39:10.0000317Z             {
2026-06-04T02:39:10.0000549Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:39:10.0000713Z               "line": 130
2026-06-04T02:39:10.0000871Z             },
2026-06-04T02:39:10.0001023Z             {
2026-06-04T02:39:10.0001268Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:39:10.0001442Z               "line": 138
2026-06-04T02:39:10.0001589Z             },
2026-06-04T02:39:10.0001744Z             {
2026-06-04T02:39:10.0001972Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:39:10.0002146Z               "line": 146
2026-06-04T02:39:10.0002294Z             },
2026-06-04T02:39:10.0002447Z             {
2026-06-04T02:39:10.0002674Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:39:10.0002846Z               "line": 154
2026-06-04T02:39:10.0003002Z             },
2026-06-04T02:39:10.0003150Z             {
2026-06-04T02:39:10.0003378Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:39:10.0003543Z               "line": 162
2026-06-04T02:39:10.0003700Z             },
2026-06-04T02:39:10.0003856Z             {
2026-06-04T02:39:10.0004071Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:39:10.0004246Z               "line": 170
2026-06-04T02:39:10.0004394Z             }
2026-06-04T02:39:10.0004558Z           ]
2026-06-04T02:39:10.0004709Z         }
2026-06-04T02:39:10.0004861Z       }
2026-06-04T02:39:10.0005008Z     },
2026-06-04T02:39:10.0005151Z     {
2026-06-04T02:39:10.0005387Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-04T02:39:10.0007480Z       "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-04T02:39:10.0007684Z       "requiredStages": [
2026-06-04T02:39:10.0007846Z         "impl",
2026-06-04T02:39:10.0007996Z         "unit"
2026-06-04T02:39:10.0008151Z       ],
2026-06-04T02:39:10.0008304Z       "stages": {
2026-06-04T02:39:10.0008467Z         "doc": {
2026-06-04T02:39:10.0008651Z           "complete": false,
2026-06-04T02:39:10.0008828Z           "evidence": []
2026-06-04T02:39:10.0008980Z         },
2026-06-04T02:39:10.0009371Z         "impl": {
2026-06-04T02:39:10.0009574Z           "complete": true,
2026-06-04T02:39:10.0009742Z           "evidence": [
2026-06-04T02:39:10.0009898Z             {
2026-06-04T02:39:10.0010333Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:39:10.0010506Z               "line": 34
2026-06-04T02:39:10.0010664Z             }
2026-06-04T02:39:10.0010811Z           ]
2026-06-04T02:39:10.0010960Z         },
2026-06-04T02:39:10.0011112Z         "int": {
2026-06-04T02:39:10.0011299Z           "complete": false,
2026-06-04T02:39:10.0011467Z           "evidence": []
2026-06-04T02:39:10.0011624Z         },
2026-06-04T02:39:10.0011792Z         "unit": {
2026-06-04T02:39:10.0011970Z           "complete": true,
2026-06-04T02:39:10.0012145Z           "evidence": [
2026-06-04T02:39:10.0012294Z             {
2026-06-04T02:39:10.0012589Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:39:10.0012760Z               "line": 188
2026-06-04T02:39:10.0012931Z             },
2026-06-04T02:39:10.0013087Z             {
2026-06-04T02:39:10.0013375Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:39:10.0013565Z               "line": 200
2026-06-04T02:39:10.0013715Z             },
2026-06-04T02:39:10.0013874Z             {
2026-06-04T02:39:10.0014156Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:39:10.0014337Z               "line": 211
2026-06-04T02:39:10.0014494Z             },
2026-06-04T02:39:10.0014637Z             {
2026-06-04T02:39:10.0014927Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:39:10.0015100Z               "line": 245
2026-06-04T02:39:10.0015258Z             },
2026-06-04T02:39:10.0015406Z             {
2026-06-04T02:39:10.0015692Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:39:10.0015868Z               "line": 267
2026-06-04T02:39:10.0016018Z             },
2026-06-04T02:39:10.0016189Z             {
2026-06-04T02:39:10.0016473Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:39:10.0016652Z               "line": 288
2026-06-04T02:39:10.0016813Z             },
2026-06-04T02:39:10.0016970Z             {
2026-06-04T02:39:10.0017265Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:39:10.0017434Z               "line": 304
2026-06-04T02:39:10.0017591Z             }
2026-06-04T02:39:10.0017738Z           ]
2026-06-04T02:39:10.0017890Z         }
2026-06-04T02:39:10.0018046Z       }
2026-06-04T02:39:10.0018194Z     },
2026-06-04T02:39:10.0018345Z     {
2026-06-04T02:39:10.0018563Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-04T02:39:10.0019731Z       "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-04T02:39:10.0019920Z       "requiredStages": [
2026-06-04T02:39:10.0020100Z         "impl",
2026-06-04T02:39:10.0020261Z         "unit"
2026-06-04T02:39:10.0020409Z       ],
2026-06-04T02:39:10.0020584Z       "stages": {
2026-06-04T02:39:10.0020734Z         "doc": {
2026-06-04T02:39:10.0020934Z           "complete": false,
2026-06-04T02:39:10.0021131Z           "evidence": []
2026-06-04T02:39:10.0021347Z         },
2026-06-04T02:39:10.0021559Z         "impl": {
2026-06-04T02:39:10.0021747Z           "complete": true,
2026-06-04T02:39:10.0021925Z           "evidence": [
2026-06-04T02:39:10.0022073Z             {
2026-06-04T02:39:10.0022330Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0022497Z               "line": 29
2026-06-04T02:39:10.0022653Z             },
2026-06-04T02:39:10.0022807Z             {
2026-06-04T02:39:10.0023043Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0023217Z               "line": 154
2026-06-04T02:39:10.0023367Z             },
2026-06-04T02:39:10.0023520Z             {
2026-06-04T02:39:10.0023960Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0024161Z               "line": 173
2026-06-04T02:39:10.0024321Z             },
2026-06-04T02:39:10.0024616Z             {
2026-06-04T02:39:10.0024861Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0025032Z               "line": 200
2026-06-04T02:39:10.0025190Z             }
2026-06-04T02:39:10.0025335Z           ]
2026-06-04T02:39:10.0025495Z         },
2026-06-04T02:39:10.0031134Z         "int": {
2026-06-04T02:39:10.0031435Z           "complete": false,
2026-06-04T02:39:10.0031628Z           "evidence": []
2026-06-04T02:39:10.0031939Z         },
2026-06-04T02:39:10.0032132Z         "unit": {
2026-06-04T02:39:10.0032360Z           "complete": true,
2026-06-04T02:39:10.0032548Z           "evidence": [
2026-06-04T02:39:10.0032710Z             {
2026-06-04T02:39:10.0032973Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0033162Z               "line": 276
2026-06-04T02:39:10.0033359Z             },
2026-06-04T02:39:10.0033524Z             {
2026-06-04T02:39:10.0033769Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0033957Z               "line": 291
2026-06-04T02:39:10.0034140Z             },
2026-06-04T02:39:10.0034297Z             {
2026-06-04T02:39:10.0034552Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0034727Z               "line": 310
2026-06-04T02:39:10.0034888Z             },
2026-06-04T02:39:10.0035042Z             {
2026-06-04T02:39:10.0035295Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0035479Z               "line": 326
2026-06-04T02:39:10.0035632Z             },
2026-06-04T02:39:10.0035793Z             {
2026-06-04T02:39:10.0036032Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0036213Z               "line": 376
2026-06-04T02:39:10.0036377Z             },
2026-06-04T02:39:10.0036529Z             {
2026-06-04T02:39:10.0036784Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0036961Z               "line": 390
2026-06-04T02:39:10.0037129Z             },
2026-06-04T02:39:10.0037284Z             {
2026-06-04T02:39:10.0037546Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0037735Z               "line": 401
2026-06-04T02:39:10.0037888Z             },
2026-06-04T02:39:10.0038054Z             {
2026-06-04T02:39:10.0038296Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0038481Z               "line": 412
2026-06-04T02:39:10.0038631Z             }
2026-06-04T02:39:10.0038795Z           ]
2026-06-04T02:39:10.0038959Z         }
2026-06-04T02:39:10.0039110Z       }
2026-06-04T02:39:10.0039338Z     },
2026-06-04T02:39:10.0039634Z     {
2026-06-04T02:39:10.0039882Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-04T02:39:10.0041431Z       "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-04T02:39:10.0041634Z       "requiredStages": [
2026-06-04T02:39:10.0041794Z         "impl",
2026-06-04T02:39:10.0041958Z         "unit"
2026-06-04T02:39:10.0042114Z       ],
2026-06-04T02:39:10.0042271Z       "stages": {
2026-06-04T02:39:10.0042435Z         "doc": {
2026-06-04T02:39:10.0042615Z           "complete": false,
2026-06-04T02:39:10.0042801Z           "evidence": []
2026-06-04T02:39:10.0042960Z         },
2026-06-04T02:39:10.0043116Z         "impl": {
2026-06-04T02:39:10.0043301Z           "complete": true,
2026-06-04T02:39:10.0043468Z           "evidence": [
2026-06-04T02:39:10.0043626Z             {
2026-06-04T02:39:10.0043902Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0044080Z               "line": 27
2026-06-04T02:39:10.0044246Z             },
2026-06-04T02:39:10.0044400Z             {
2026-06-04T02:39:10.0044987Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0045189Z               "line": 110
2026-06-04T02:39:10.0045354Z             },
2026-06-04T02:39:10.0045505Z             {
2026-06-04T02:39:10.0045785Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0046112Z               "line": 153
2026-06-04T02:39:10.0046267Z             },
2026-06-04T02:39:10.0046426Z             {
2026-06-04T02:39:10.0046693Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0046872Z               "line": 182
2026-06-04T02:39:10.0047036Z             },
2026-06-04T02:39:10.0047182Z             {
2026-06-04T02:39:10.0047484Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:39:10.0047648Z               "line": 31
2026-06-04T02:39:10.0047803Z             },
2026-06-04T02:39:10.0047959Z             {
2026-06-04T02:39:10.0048262Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:39:10.0048455Z               "line": 113
2026-06-04T02:39:10.0048605Z             },
2026-06-04T02:39:10.0048759Z             {
2026-06-04T02:39:10.0049054Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:39:10.0049305Z               "line": 138
2026-06-04T02:39:10.0049631Z             }
2026-06-04T02:39:10.0049808Z           ]
2026-06-04T02:39:10.0050131Z         },
2026-06-04T02:39:10.0050292Z         "int": {
2026-06-04T02:39:10.0050482Z           "complete": false,
2026-06-04T02:39:10.0050650Z           "evidence": []
2026-06-04T02:39:10.0050810Z         },
2026-06-04T02:39:10.0050966Z         "unit": {
2026-06-04T02:39:10.0051156Z           "complete": true,
2026-06-04T02:39:10.0051332Z           "evidence": [
2026-06-04T02:39:10.0051485Z             {
2026-06-04T02:39:10.0051766Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0051933Z               "line": 261
2026-06-04T02:39:10.0052093Z             },
2026-06-04T02:39:10.0052240Z             {
2026-06-04T02:39:10.0052530Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0052713Z               "line": 276
2026-06-04T02:39:10.0052867Z             },
2026-06-04T02:39:10.0053039Z             {
2026-06-04T02:39:10.0053303Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0053491Z               "line": 293
2026-06-04T02:39:10.0053642Z             },
2026-06-04T02:39:10.0053805Z             {
2026-06-04T02:39:10.0054080Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0054254Z               "line": 310
2026-06-04T02:39:10.0054411Z             },
2026-06-04T02:39:10.0054564Z             {
2026-06-04T02:39:10.0054841Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0055012Z               "line": 327
2026-06-04T02:39:10.0055174Z             },
2026-06-04T02:39:10.0055341Z             {
2026-06-04T02:39:10.0055607Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0055799Z               "line": 366
2026-06-04T02:39:10.0055952Z             },
2026-06-04T02:39:10.0056114Z             {
2026-06-04T02:39:10.0056418Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:39:10.0056606Z               "line": 179
2026-06-04T02:39:10.0056769Z             },
2026-06-04T02:39:10.0056924Z             {
2026-06-04T02:39:10.0057226Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:39:10.0057392Z               "line": 194
2026-06-04T02:39:10.0057552Z             },
2026-06-04T02:39:10.0057717Z             {
2026-06-04T02:39:10.0058011Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:39:10.0058192Z               "line": 204
2026-06-04T02:39:10.0058346Z             },
2026-06-04T02:39:10.0058501Z             {
2026-06-04T02:39:10.0058792Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:39:10.0058975Z               "line": 259
2026-06-04T02:39:10.0059330Z             },
2026-06-04T02:39:10.0059688Z             {
2026-06-04T02:39:10.0060016Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:39:10.0060347Z               "line": 269
2026-06-04T02:39:10.0060520Z             },
2026-06-04T02:39:10.0060676Z             {
2026-06-04T02:39:10.0060987Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:39:10.0061173Z               "line": 283
2026-06-04T02:39:10.0061331Z             }
2026-06-04T02:39:10.0061494Z           ]
2026-06-04T02:39:10.0061646Z         }
2026-06-04T02:39:10.0061806Z       }
2026-06-04T02:39:10.0061950Z     },
2026-06-04T02:39:10.0062105Z     {
2026-06-04T02:39:10.0062340Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-04T02:39:10.0062770Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-04T02:39:10.0063120Z       "requiredStages": [],
2026-06-04T02:39:10.0063282Z       "stages": {
2026-06-04T02:39:10.0063460Z         "doc": {
2026-06-04T02:39:10.0063644Z           "complete": false,
2026-06-04T02:39:10.0063819Z           "evidence": []
2026-06-04T02:39:10.0063974Z         },
2026-06-04T02:39:10.0064144Z         "impl": {
2026-06-04T02:39:10.0064335Z           "complete": false,
2026-06-04T02:39:10.0064504Z           "evidence": []
2026-06-04T02:39:10.0064658Z         },
2026-06-04T02:39:10.0064806Z         "int": {
2026-06-04T02:39:10.0064993Z           "complete": false,
2026-06-04T02:39:10.0070739Z           "evidence": []
2026-06-04T02:39:10.0070993Z         },
2026-06-04T02:39:10.0071189Z         "unit": {
2026-06-04T02:39:10.0071396Z           "complete": false,
2026-06-04T02:39:10.0071583Z           "evidence": []
2026-06-04T02:39:10.0071731Z         }
2026-06-04T02:39:10.0071885Z       }
2026-06-04T02:39:10.0072034Z     },
2026-06-04T02:39:10.0072178Z     {
2026-06-04T02:39:10.0072480Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-04T02:39:10.0080791Z       "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-04T02:39:10.0081088Z       "requiredStages": [],
2026-06-04T02:39:10.0081272Z       "stages": {
2026-06-04T02:39:10.0081430Z         "doc": {
2026-06-04T02:39:10.0081627Z           "complete": false,
2026-06-04T02:39:10.0081799Z           "evidence": []
2026-06-04T02:39:10.0081961Z         },
2026-06-04T02:39:10.0082121Z         "impl": {
2026-06-04T02:39:10.0082310Z           "complete": false,
2026-06-04T02:39:10.0082494Z           "evidence": []
2026-06-04T02:39:10.0082649Z         },
2026-06-04T02:39:10.0082816Z         "int": {
2026-06-04T02:39:10.0082996Z           "complete": false,
2026-06-04T02:39:10.0083173Z           "evidence": []
2026-06-04T02:39:10.0083325Z         },
2026-06-04T02:39:10.0083488Z         "unit": {
2026-06-04T02:39:10.0083682Z           "complete": false,
2026-06-04T02:39:10.0083867Z           "evidence": []
2026-06-04T02:39:10.0084033Z         }
2026-06-04T02:39:10.0084186Z       }
2026-06-04T02:39:10.0084346Z     },
2026-06-04T02:39:10.0084490Z     {
2026-06-04T02:39:10.0084753Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-04T02:39:10.0085294Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-04T02:39:10.0085479Z       "requiredStages": [
2026-06-04T02:39:10.0085647Z         "impl",
2026-06-04T02:39:10.0085802Z         "unit"
2026-06-04T02:39:10.0085962Z       ],
2026-06-04T02:39:10.0086122Z       "stages": {
2026-06-04T02:39:10.0086290Z         "doc": {
2026-06-04T02:39:10.0086477Z           "complete": true,
2026-06-04T02:39:10.0086643Z           "evidence": [
2026-06-04T02:39:10.0086801Z             {
2026-06-04T02:39:10.0087018Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T02:39:10.0087201Z               "line": 137
2026-06-04T02:39:10.0087351Z             }
2026-06-04T02:39:10.0087916Z           ]
2026-06-04T02:39:10.0088099Z         },
2026-06-04T02:39:10.0088265Z         "impl": {
2026-06-04T02:39:10.0088453Z           "complete": true,
2026-06-04T02:39:10.0088827Z           "evidence": [
2026-06-04T02:39:10.0088984Z             {
2026-06-04T02:39:10.0089264Z               "path": "crates/spt-store/src/db.rs",
2026-06-04T02:39:10.0089444Z               "line": 29
2026-06-04T02:39:10.0089608Z             },
2026-06-04T02:39:10.0089760Z             {
2026-06-04T02:39:10.0090018Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0090186Z               "line": 30
2026-06-04T02:39:10.0090348Z             },
2026-06-04T02:39:10.0090495Z             {
2026-06-04T02:39:10.0090738Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:10.0090918Z               "line": 48
2026-06-04T02:39:10.0091068Z             }
2026-06-04T02:39:10.0091223Z           ]
2026-06-04T02:39:10.0091372Z         },
2026-06-04T02:39:10.0091535Z         "int": {
2026-06-04T02:39:10.0091731Z           "complete": false,
2026-06-04T02:39:10.0091914Z           "evidence": []
2026-06-04T02:39:10.0092072Z         },
2026-06-04T02:39:10.0092228Z         "unit": {
2026-06-04T02:39:10.0092426Z           "complete": true,
2026-06-04T02:39:10.0092592Z           "evidence": [
2026-06-04T02:39:10.0092754Z             {
2026-06-04T02:39:10.0092998Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0093177Z               "line": 152
2026-06-04T02:39:10.0093336Z             }
2026-06-04T02:39:10.0093485Z           ]
2026-06-04T02:39:10.0093641Z         }
2026-06-04T02:39:10.0093786Z       }
2026-06-04T02:39:10.0093943Z     },
2026-06-04T02:39:10.0094085Z     {
2026-06-04T02:39:10.0094322Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-04T02:39:10.0095145Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-04T02:39:10.0095330Z       "requiredStages": [
2026-06-04T02:39:10.0095503Z         "doc",
2026-06-04T02:39:10.0095660Z         "impl",
2026-06-04T02:39:10.0095819Z         "unit"
2026-06-04T02:39:10.0095976Z       ],
2026-06-04T02:39:10.0096140Z       "stages": {
2026-06-04T02:39:10.0096314Z         "doc": {
2026-06-04T02:39:10.0096496Z           "complete": true,
2026-06-04T02:39:10.0096675Z           "evidence": [
2026-06-04T02:39:10.0096825Z             {
2026-06-04T02:39:10.0097052Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T02:39:10.0097230Z               "line": 149
2026-06-04T02:39:10.0097385Z             }
2026-06-04T02:39:10.0097544Z           ]
2026-06-04T02:39:10.0097697Z         },
2026-06-04T02:39:10.0097866Z         "impl": {
2026-06-04T02:39:10.0098045Z           "complete": true,
2026-06-04T02:39:10.0098221Z           "evidence": [
2026-06-04T02:39:10.0098368Z             {
2026-06-04T02:39:10.0098628Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0098803Z               "line": 22
2026-06-04T02:39:10.0098963Z             }
2026-06-04T02:39:10.0099124Z           ]
2026-06-04T02:39:10.0099320Z         },
2026-06-04T02:39:10.0099488Z         "int": {
2026-06-04T02:39:10.0099669Z           "complete": false,
2026-06-04T02:39:10.0099862Z           "evidence": []
2026-06-04T02:39:10.0100020Z         },
2026-06-04T02:39:10.0100185Z         "unit": {
2026-06-04T02:39:10.0100372Z           "complete": true,
2026-06-04T02:39:10.0100535Z           "evidence": [
2026-06-04T02:39:10.0100695Z             {
2026-06-04T02:39:10.0100944Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0101126Z               "line": 257
2026-06-04T02:39:10.0101284Z             }
2026-06-04T02:39:10.0101434Z           ]
2026-06-04T02:39:10.0101596Z         }
2026-06-04T02:39:10.0101745Z       }
2026-06-04T02:39:10.0101900Z     },
2026-06-04T02:39:10.0102043Z     {
2026-06-04T02:39:10.0102288Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-04T02:39:10.0103388Z       "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-04T02:39:10.0103587Z       "requiredStages": [
2026-06-04T02:39:10.0103756Z         "impl",
2026-06-04T02:39:10.0104053Z         "unit"
2026-06-04T02:39:10.0104213Z       ],
2026-06-04T02:39:10.0104379Z       "stages": {
2026-06-04T02:39:10.0104533Z         "doc": {
2026-06-04T02:39:10.0104722Z           "complete": true,
2026-06-04T02:39:10.0104893Z           "evidence": [
2026-06-04T02:39:10.0105049Z             {
2026-06-04T02:39:10.0105266Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T02:39:10.0105444Z               "line": 143
2026-06-04T02:39:10.0105603Z             }
2026-06-04T02:39:10.0105751Z           ]
2026-06-04T02:39:10.0105909Z         },
2026-06-04T02:39:10.0106067Z         "impl": {
2026-06-04T02:39:10.0106254Z           "complete": true,
2026-06-04T02:39:10.0106419Z           "evidence": [
2026-06-04T02:39:10.0106581Z             {
2026-06-04T02:39:10.0106859Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0107032Z               "line": 117
2026-06-04T02:39:10.0107195Z             },
2026-06-04T02:39:10.0107340Z             {
2026-06-04T02:39:10.0107589Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T02:39:10.0107756Z               "line": 15
2026-06-04T02:39:10.0107916Z             }
2026-06-04T02:39:10.0108072Z           ]
2026-06-04T02:39:10.0108225Z         },
2026-06-04T02:39:10.0108388Z         "int": {
2026-06-04T02:39:10.0108569Z           "complete": false,
2026-06-04T02:39:10.0108743Z           "evidence": []
2026-06-04T02:39:10.0108888Z         },
2026-06-04T02:39:10.0109052Z         "unit": {
2026-06-04T02:39:10.0109290Z           "complete": true,
2026-06-04T02:39:10.0109464Z           "evidence": [
2026-06-04T02:39:10.0109626Z             {
2026-06-04T02:39:10.0109888Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-04T02:39:10.0110068Z               "line": 87
2026-06-04T02:39:10.0116476Z             },
2026-06-04T02:39:10.0116735Z             {
2026-06-04T02:39:10.0117023Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0117197Z               "line": 508
2026-06-04T02:39:10.0117370Z             },
2026-06-04T02:39:10.0117519Z             {
2026-06-04T02:39:10.0117775Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0117947Z               "line": 527
2026-06-04T02:39:10.0118107Z             },
2026-06-04T02:39:10.0118265Z             {
2026-06-04T02:39:10.0118521Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:39:10.0118695Z               "line": 148
2026-06-04T02:39:10.0118849Z             },
2026-06-04T02:39:10.0119009Z             {
2026-06-04T02:39:10.0119331Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T02:39:10.0119511Z               "line": 74
2026-06-04T02:39:10.0119671Z             },
2026-06-04T02:39:10.0119818Z             {
2026-06-04T02:39:10.0120069Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T02:39:10.0120238Z               "line": 88
2026-06-04T02:39:10.0120398Z             },
2026-06-04T02:39:10.0120546Z             {
2026-06-04T02:39:10.0120802Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T02:39:10.0120978Z               "line": 104
2026-06-04T02:39:10.0121130Z             }
2026-06-04T02:39:10.0121285Z           ]
2026-06-04T02:39:10.0121431Z         }
2026-06-04T02:39:10.0121584Z       }
2026-06-04T02:39:10.0121729Z     },
2026-06-04T02:39:10.0121885Z     {
2026-06-04T02:39:10.0122126Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-04T02:39:10.0122523Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-04T02:39:10.0122713Z       "requiredStages": [
2026-06-04T02:39:10.0122870Z         "impl",
2026-06-04T02:39:10.0123031Z         "unit"
2026-06-04T02:39:10.0123179Z       ],
2026-06-04T02:39:10.0123349Z       "stages": {
2026-06-04T02:39:10.0123512Z         "doc": {
2026-06-04T02:39:10.0123937Z           "complete": false,
2026-06-04T02:39:10.0124150Z           "evidence": []
2026-06-04T02:39:10.0124299Z         },
2026-06-04T02:39:10.0124462Z         "impl": {
2026-06-04T02:39:10.0124789Z           "complete": true,
2026-06-04T02:39:10.0124967Z           "evidence": [
2026-06-04T02:39:10.0125128Z             {
2026-06-04T02:39:10.0125360Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T02:39:10.0125534Z               "line": 15
2026-06-04T02:39:10.0125684Z             },
2026-06-04T02:39:10.0125837Z             {
2026-06-04T02:39:10.0126086Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0126262Z               "line": 55
2026-06-04T02:39:10.0126419Z             },
2026-06-04T02:39:10.0126567Z             {
2026-06-04T02:39:10.0126822Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0126990Z               "line": 62
2026-06-04T02:39:10.0127155Z             },
2026-06-04T02:39:10.0127309Z             {
2026-06-04T02:39:10.0127572Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0127755Z               "line": 107
2026-06-04T02:39:10.0127906Z             },
2026-06-04T02:39:10.0128074Z             {
2026-06-04T02:39:10.0128316Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0128498Z               "line": 128
2026-06-04T02:39:10.0128655Z             }
2026-06-04T02:39:10.0128802Z           ]
2026-06-04T02:39:10.0128958Z         },
2026-06-04T02:39:10.0129110Z         "int": {
2026-06-04T02:39:10.0129347Z           "complete": false,
2026-06-04T02:39:10.0129515Z           "evidence": []
2026-06-04T02:39:10.0129676Z         },
2026-06-04T02:39:10.0129836Z         "unit": {
2026-06-04T02:39:10.0130024Z           "complete": true,
2026-06-04T02:39:10.0130200Z           "evidence": [
2026-06-04T02:39:10.0130351Z             {
2026-06-04T02:39:10.0130592Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T02:39:10.0130776Z               "line": 113
2026-06-04T02:39:10.0130934Z             },
2026-06-04T02:39:10.0131084Z             {
2026-06-04T02:39:10.0131324Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T02:39:10.0131515Z               "line": 119
2026-06-04T02:39:10.0131666Z             },
2026-06-04T02:39:10.0131823Z             {
2026-06-04T02:39:10.0132049Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T02:39:10.0132227Z               "line": 130
2026-06-04T02:39:10.0132386Z             },
2026-06-04T02:39:10.0132532Z             {
2026-06-04T02:39:10.0132783Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0132952Z               "line": 183
2026-06-04T02:39:10.0133116Z             },
2026-06-04T02:39:10.0133265Z             {
2026-06-04T02:39:10.0133513Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0133694Z               "line": 193
2026-06-04T02:39:10.0133844Z             },
2026-06-04T02:39:10.0133999Z             {
2026-06-04T02:39:10.0134250Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0134428Z               "line": 237
2026-06-04T02:39:10.0134581Z             },
2026-06-04T02:39:10.0134874Z             {
2026-06-04T02:39:10.0135127Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0135296Z               "line": 249
2026-06-04T02:39:10.0135455Z             },
2026-06-04T02:39:10.0135605Z             {
2026-06-04T02:39:10.0135857Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0136030Z               "line": 275
2026-06-04T02:39:10.0136184Z             }
2026-06-04T02:39:10.0136347Z           ]
2026-06-04T02:39:10.0136508Z         }
2026-06-04T02:39:10.0136668Z       }
2026-06-04T02:39:10.0136815Z     },
2026-06-04T02:39:10.0136968Z     {
2026-06-04T02:39:10.0137194Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-04T02:39:10.0137760Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-04T02:39:10.0138106Z       "requiredStages": [
2026-06-04T02:39:10.0138277Z         "impl",
2026-06-04T02:39:10.0138440Z         "unit",
2026-06-04T02:39:10.0138595Z         "int"
2026-06-04T02:39:10.0138891Z       ],
2026-06-04T02:39:10.0139051Z       "stages": {
2026-06-04T02:39:10.0139262Z         "doc": {
2026-06-04T02:39:10.0139455Z           "complete": false,
2026-06-04T02:39:10.0139630Z           "evidence": []
2026-06-04T02:39:10.0139788Z         },
2026-06-04T02:39:10.0139949Z         "impl": {
2026-06-04T02:39:10.0140139Z           "complete": true,
2026-06-04T02:39:10.0140307Z           "evidence": [
2026-06-04T02:39:10.0140468Z             {
2026-06-04T02:39:10.0140723Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:39:10.0140895Z               "line": 236
2026-06-04T02:39:10.0141060Z             },
2026-06-04T02:39:10.0141213Z             {
2026-06-04T02:39:10.0141462Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:39:10.0141650Z               "line": 491
2026-06-04T02:39:10.0141813Z             },
2026-06-04T02:39:10.0141972Z             {
2026-06-04T02:39:10.0142202Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:39:10.0142393Z               "line": 514
2026-06-04T02:39:10.0142543Z             },
2026-06-04T02:39:10.0142704Z             {
2026-06-04T02:39:10.0142936Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:39:10.0143116Z               "line": 538
2026-06-04T02:39:10.0143277Z             },
2026-06-04T02:39:10.0143425Z             {
2026-06-04T02:39:10.0143675Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:39:10.0143846Z               "line": 438
2026-06-04T02:39:10.0144011Z             },
2026-06-04T02:39:10.0144162Z             {
2026-06-04T02:39:10.0144409Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:39:10.0144584Z               "line": 519
2026-06-04T02:39:10.0144735Z             },
2026-06-04T02:39:10.0144895Z             {
2026-06-04T02:39:10.0145145Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:39:10.0145330Z               "line": 563
2026-06-04T02:39:10.0145486Z             },
2026-06-04T02:39:10.0145642Z             {
2026-06-04T02:39:10.0145885Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:39:10.0146052Z               "line": 606
2026-06-04T02:39:10.0146212Z             },
2026-06-04T02:39:10.0146357Z             {
2026-06-04T02:39:10.0146609Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T02:39:10.0146783Z               "line": 46
2026-06-04T02:39:10.0146929Z             },
2026-06-04T02:39:10.0147086Z             {
2026-06-04T02:39:10.0152594Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T02:39:10.0152856Z               "line": 160
2026-06-04T02:39:10.0153013Z             },
2026-06-04T02:39:10.0153169Z             {
2026-06-04T02:39:10.0153413Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-04T02:39:10.0153609Z               "line": 63
2026-06-04T02:39:10.0153770Z             },
2026-06-04T02:39:10.0153919Z             {
2026-06-04T02:39:10.0154157Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:10.0154343Z               "line": 128
2026-06-04T02:39:10.0154500Z             },
2026-06-04T02:39:10.0154657Z             {
2026-06-04T02:39:10.0154887Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:10.0155068Z               "line": 174
2026-06-04T02:39:10.0155215Z             }
2026-06-04T02:39:10.0155371Z           ]
2026-06-04T02:39:10.0155519Z         },
2026-06-04T02:39:10.0155685Z         "int": {
2026-06-04T02:39:10.0155865Z           "complete": true,
2026-06-04T02:39:10.0156030Z           "evidence": [
2026-06-04T02:39:10.0156186Z             {
2026-06-04T02:39:10.0156458Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-04T02:39:10.0156632Z               "line": 27
2026-06-04T02:39:10.0156778Z             },
2026-06-04T02:39:10.0156937Z             {
2026-06-04T02:39:10.0157442Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T02:39:10.0157633Z               "line": 125
2026-06-04T02:39:10.0157788Z             },
2026-06-04T02:39:10.0158313Z             {
2026-06-04T02:39:10.0158589Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-04T02:39:10.0158756Z               "line": 189
2026-06-04T02:39:10.0158913Z             }
2026-06-04T02:39:10.0159069Z           ]
2026-06-04T02:39:10.0159281Z         },
2026-06-04T02:39:10.0159448Z         "unit": {
2026-06-04T02:39:10.0159626Z           "complete": true,
2026-06-04T02:39:10.0159802Z           "evidence": [
2026-06-04T02:39:10.0159954Z             {
2026-06-04T02:39:10.0160201Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T02:39:10.0160384Z               "line": 282
2026-06-04T02:39:10.0160539Z             },
2026-06-04T02:39:10.0160696Z             {
2026-06-04T02:39:10.0160941Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T02:39:10.0161129Z               "line": 300
2026-06-04T02:39:10.0161282Z             },
2026-06-04T02:39:10.0161442Z             {
2026-06-04T02:39:10.0161685Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T02:39:10.0161861Z               "line": 318
2026-06-04T02:39:10.0162017Z             },
2026-06-04T02:39:10.0162163Z             {
2026-06-04T02:39:10.0162418Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-04T02:39:10.0162591Z               "line": 204
2026-06-04T02:39:10.0162751Z             },
2026-06-04T02:39:10.0162907Z             {
2026-06-04T02:39:10.0163137Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:10.0163315Z               "line": 441
2026-06-04T02:39:10.0163466Z             },
2026-06-04T02:39:10.0163625Z             {
2026-06-04T02:39:10.0163866Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:10.0164034Z               "line": 465
2026-06-04T02:39:10.0164187Z             }
2026-06-04T02:39:10.0164344Z           ]
2026-06-04T02:39:10.0164506Z         }
2026-06-04T02:39:10.0164656Z       }
2026-06-04T02:39:10.0164807Z     },
2026-06-04T02:39:10.0164949Z     {
2026-06-04T02:39:10.0165214Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-04T02:39:10.0168894Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-04T02:39:10.0169085Z       "requiredStages": [
2026-06-04T02:39:10.0169301Z         "impl",
2026-06-04T02:39:10.0169454Z         "unit"
2026-06-04T02:39:10.0169610Z       ],
2026-06-04T02:39:10.0169779Z       "stages": {
2026-06-04T02:39:10.0169931Z         "doc": {
2026-06-04T02:39:10.0170115Z           "complete": false,
2026-06-04T02:39:10.0170282Z           "evidence": []
2026-06-04T02:39:10.0170437Z         },
2026-06-04T02:39:10.0170593Z         "impl": {
2026-06-04T02:39:10.0170777Z           "complete": true,
2026-06-04T02:39:10.0170951Z           "evidence": [
2026-06-04T02:39:10.0171100Z             {
2026-06-04T02:39:10.0171359Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0171531Z               "line": 33
2026-06-04T02:39:10.0171686Z             },
2026-06-04T02:39:10.0171833Z             {
2026-06-04T02:39:10.0172086Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0172267Z               "line": 61
2026-06-04T02:39:10.0172418Z             },
2026-06-04T02:39:10.0172575Z             {
2026-06-04T02:39:10.0172804Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0172980Z               "line": 70
2026-06-04T02:39:10.0173128Z             },
2026-06-04T02:39:10.0173285Z             {
2026-06-04T02:39:10.0173526Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0173690Z               "line": 79
2026-06-04T02:39:10.0173849Z             },
2026-06-04T02:39:10.0173998Z             {
2026-06-04T02:39:10.0174235Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0174399Z               "line": 88
2026-06-04T02:39:10.0174728Z             },
2026-06-04T02:39:10.0174902Z             {
2026-06-04T02:39:10.0175139Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0175313Z               "line": 96
2026-06-04T02:39:10.0175599Z             },
2026-06-04T02:39:10.0175759Z             {
2026-06-04T02:39:10.0175986Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0176167Z               "line": 105
2026-06-04T02:39:10.0176329Z             },
2026-06-04T02:39:10.0176478Z             {
2026-06-04T02:39:10.0176713Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0176883Z               "line": 112
2026-06-04T02:39:10.0177043Z             },
2026-06-04T02:39:10.0177191Z             {
2026-06-04T02:39:10.0177439Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0177620Z               "line": 119
2026-06-04T02:39:10.0177769Z             },
2026-06-04T02:39:10.0177926Z             {
2026-06-04T02:39:10.0178166Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0178348Z               "line": 186
2026-06-04T02:39:10.0178510Z             },
2026-06-04T02:39:10.0178658Z             {
2026-06-04T02:39:10.0178895Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0179072Z               "line": 198
2026-06-04T02:39:10.0179282Z             },
2026-06-04T02:39:10.0179433Z             {
2026-06-04T02:39:10.0179671Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0179849Z               "line": 285
2026-06-04T02:39:10.0179998Z             }
2026-06-04T02:39:10.0180151Z           ]
2026-06-04T02:39:10.0180299Z         },
2026-06-04T02:39:10.0180459Z         "int": {
2026-06-04T02:39:10.0180641Z           "complete": false,
2026-06-04T02:39:10.0180822Z           "evidence": []
2026-06-04T02:39:10.0180977Z         },
2026-06-04T02:39:10.0181137Z         "unit": {
2026-06-04T02:39:10.0181325Z           "complete": true,
2026-06-04T02:39:10.0181493Z           "evidence": [
2026-06-04T02:39:10.0181662Z             {
2026-06-04T02:39:10.0181897Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0182075Z               "line": 355
2026-06-04T02:39:10.0182238Z             },
2026-06-04T02:39:10.0182395Z             {
2026-06-04T02:39:10.0182631Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0182798Z               "line": 381
2026-06-04T02:39:10.0182960Z             },
2026-06-04T02:39:10.0183114Z             {
2026-06-04T02:39:10.0183357Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0183533Z               "line": 394
2026-06-04T02:39:10.0183682Z             },
2026-06-04T02:39:10.0183837Z             {
2026-06-04T02:39:10.0184064Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0184240Z               "line": 436
2026-06-04T02:39:10.0184386Z             }
2026-06-04T02:39:10.0184542Z           ]
2026-06-04T02:39:10.0184701Z         }
2026-06-04T02:39:10.0184846Z       }
2026-06-04T02:39:10.0185007Z     },
2026-06-04T02:39:10.0190779Z     {
2026-06-04T02:39:10.0191125Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-04T02:39:10.0191540Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-04T02:39:10.0191767Z       "requiredStages": [
2026-06-04T02:39:10.0191931Z         "impl",
2026-06-04T02:39:10.0192084Z         "unit"
2026-06-04T02:39:10.0192242Z       ],
2026-06-04T02:39:10.0192397Z       "stages": {
2026-06-04T02:39:10.0192557Z         "doc": {
2026-06-04T02:39:10.0192738Z           "complete": false,
2026-06-04T02:39:10.0192915Z           "evidence": []
2026-06-04T02:39:10.0193072Z         },
2026-06-04T02:39:10.0193231Z         "impl": {
2026-06-04T02:39:10.0193416Z           "complete": true,
2026-06-04T02:39:10.0193582Z           "evidence": [
2026-06-04T02:39:10.0193738Z             {
2026-06-04T02:39:10.0193964Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:39:10.0194143Z               "line": 107
2026-06-04T02:39:10.0194543Z             },
2026-06-04T02:39:10.0194715Z             {
2026-06-04T02:39:10.0194970Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:10.0195137Z               "line": 59
2026-06-04T02:39:10.0195426Z             }
2026-06-04T02:39:10.0195574Z           ]
2026-06-04T02:39:10.0195729Z         },
2026-06-04T02:39:10.0195887Z         "int": {
2026-06-04T02:39:10.0196066Z           "complete": false,
2026-06-04T02:39:10.0196246Z           "evidence": []
2026-06-04T02:39:10.0196396Z         },
2026-06-04T02:39:10.0196560Z         "unit": {
2026-06-04T02:39:10.0196736Z           "complete": true,
2026-06-04T02:39:10.0196912Z           "evidence": [
2026-06-04T02:39:10.0197069Z             {
2026-06-04T02:39:10.0197296Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:39:10.0197474Z               "line": 225
2026-06-04T02:39:10.0197624Z             },
2026-06-04T02:39:10.0197778Z             {
2026-06-04T02:39:10.0198019Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:10.0198211Z               "line": 237
2026-06-04T02:39:10.0198373Z             },
2026-06-04T02:39:10.0198521Z             {
2026-06-04T02:39:10.0198770Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:10.0198947Z               "line": 247
2026-06-04T02:39:10.0199107Z             }
2026-06-04T02:39:10.0199324Z           ]
2026-06-04T02:39:10.0199480Z         }
2026-06-04T02:39:10.0199640Z       }
2026-06-04T02:39:10.0199785Z     },
2026-06-04T02:39:10.0199936Z     {
2026-06-04T02:39:10.0200145Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-04T02:39:10.0200435Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-04T02:39:10.0200623Z       "requiredStages": [],
2026-06-04T02:39:10.0200795Z       "stages": {
2026-06-04T02:39:10.0200957Z         "doc": {
2026-06-04T02:39:10.0201138Z           "complete": false,
2026-06-04T02:39:10.0201319Z           "evidence": []
2026-06-04T02:39:10.0201468Z         },
2026-06-04T02:39:10.0201632Z         "impl": {
2026-06-04T02:39:10.0201823Z           "complete": false,
2026-06-04T02:39:10.0202003Z           "evidence": []
2026-06-04T02:39:10.0202166Z         },
2026-06-04T02:39:10.0202316Z         "int": {
2026-06-04T02:39:10.0202513Z           "complete": false,
2026-06-04T02:39:10.0202681Z           "evidence": []
2026-06-04T02:39:10.0202841Z         },
2026-06-04T02:39:10.0202993Z         "unit": {
2026-06-04T02:39:10.0203181Z           "complete": false,
2026-06-04T02:39:10.0203351Z           "evidence": []
2026-06-04T02:39:10.0203494Z         }
2026-06-04T02:39:10.0203644Z       }
2026-06-04T02:39:10.0203788Z     },
2026-06-04T02:39:10.0203937Z     {
2026-06-04T02:39:10.0204169Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-04T02:39:10.0204506Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-04T02:39:10.0204696Z       "requiredStages": [
2026-06-04T02:39:10.0204853Z         "impl",
2026-06-04T02:39:10.0205013Z         "unit"
2026-06-04T02:39:10.0205161Z       ],
2026-06-04T02:39:10.0205332Z       "stages": {
2026-06-04T02:39:10.0205487Z         "doc": {
2026-06-04T02:39:10.0205672Z           "complete": false,
2026-06-04T02:39:10.0205851Z           "evidence": []
2026-06-04T02:39:10.0206009Z         },
2026-06-04T02:39:10.0206173Z         "impl": {
2026-06-04T02:39:10.0206350Z           "complete": true,
2026-06-04T02:39:10.0206524Z           "evidence": [
2026-06-04T02:39:10.0206673Z             {
2026-06-04T02:39:10.0206930Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:10.0207108Z               "line": 347
2026-06-04T02:39:10.0207258Z             },
2026-06-04T02:39:10.0207417Z             {
2026-06-04T02:39:10.0207649Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:39:10.0207824Z               "line": 28
2026-06-04T02:39:10.0207972Z             }
2026-06-04T02:39:10.0208128Z           ]
2026-06-04T02:39:10.0208283Z         },
2026-06-04T02:39:10.0208436Z         "int": {
2026-06-04T02:39:10.0208778Z           "complete": false,
2026-06-04T02:39:10.0208968Z           "evidence": []
2026-06-04T02:39:10.0209125Z         },
2026-06-04T02:39:10.0209328Z         "unit": {
2026-06-04T02:39:10.0209515Z           "complete": true,
2026-06-04T02:39:10.0209839Z           "evidence": [
2026-06-04T02:39:10.0209994Z             {
2026-06-04T02:39:10.0210234Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:39:10.0210403Z               "line": 199
2026-06-04T02:39:10.0210559Z             }
2026-06-04T02:39:10.0210704Z           ]
2026-06-04T02:39:10.0210860Z         }
2026-06-04T02:39:10.0211017Z       }
2026-06-04T02:39:10.0211163Z     },
2026-06-04T02:39:10.0211317Z     {
2026-06-04T02:39:10.0211530Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-04T02:39:10.0211814Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-04T02:39:10.0211999Z       "requiredStages": [],
2026-06-04T02:39:10.0212166Z       "stages": {
2026-06-04T02:39:10.0212330Z         "doc": {
2026-06-04T02:39:10.0212524Z           "complete": false,
2026-06-04T02:39:10.0212700Z           "evidence": []
2026-06-04T02:39:10.0212848Z         },
2026-06-04T02:39:10.0213009Z         "impl": {
2026-06-04T02:39:10.0213199Z           "complete": false,
2026-06-04T02:39:10.0213373Z           "evidence": []
2026-06-04T02:39:10.0213524Z         },
2026-06-04T02:39:10.0213675Z         "int": {
2026-06-04T02:39:10.0213861Z           "complete": false,
2026-06-04T02:39:10.0214032Z           "evidence": []
2026-06-04T02:39:10.0214190Z         },
2026-06-04T02:39:10.0214344Z         "unit": {
2026-06-04T02:39:10.0214526Z           "complete": false,
2026-06-04T02:39:10.0214702Z           "evidence": []
2026-06-04T02:39:10.0214872Z         }
2026-06-04T02:39:10.0215025Z       }
2026-06-04T02:39:10.0215170Z     },
2026-06-04T02:39:10.0215324Z     {
2026-06-04T02:39:10.0215541Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-04T02:39:10.0215857Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-04T02:39:10.0216058Z       "requiredStages": [
2026-06-04T02:39:10.0216212Z         "impl",
2026-06-04T02:39:10.0216372Z         "unit"
2026-06-04T02:39:10.0216525Z       ],
2026-06-04T02:39:10.0216694Z       "stages": {
2026-06-04T02:39:10.0216857Z         "doc": {
2026-06-04T02:39:10.0217041Z           "complete": false,
2026-06-04T02:39:10.0217213Z           "evidence": []
2026-06-04T02:39:10.0217356Z         },
2026-06-04T02:39:10.0217518Z         "impl": {
2026-06-04T02:39:10.0217697Z           "complete": true,
2026-06-04T02:39:10.0217868Z           "evidence": [
2026-06-04T02:39:10.0218025Z             {
2026-06-04T02:39:10.0218292Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:39:10.0218468Z               "line": 325
2026-06-04T02:39:10.0218616Z             },
2026-06-04T02:39:10.0218773Z             {
2026-06-04T02:39:10.0219022Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:39:10.0219237Z               "line": 361
2026-06-04T02:39:10.0219386Z             }
2026-06-04T02:39:10.0219554Z           ]
2026-06-04T02:39:10.0219708Z         },
2026-06-04T02:39:10.0219859Z         "int": {
2026-06-04T02:39:10.0220046Z           "complete": false,
2026-06-04T02:39:10.0220228Z           "evidence": []
2026-06-04T02:39:10.0225708Z         },
2026-06-04T02:39:10.0225959Z         "unit": {
2026-06-04T02:39:10.0226156Z           "complete": true,
2026-06-04T02:39:10.0226323Z           "evidence": [
2026-06-04T02:39:10.0226480Z             {
2026-06-04T02:39:10.0226740Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:39:10.0226909Z               "line": 453
2026-06-04T02:39:10.0227068Z             }
2026-06-04T02:39:10.0227213Z           ]
2026-06-04T02:39:10.0227370Z         }
2026-06-04T02:39:10.0227518Z       }
2026-06-04T02:39:10.0227668Z     },
2026-06-04T02:39:10.0227817Z     {
2026-06-04T02:39:10.0228059Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-04T02:39:10.0228380Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-04T02:39:10.0228877Z       "requiredStages": [
2026-06-04T02:39:10.0229065Z         "impl",
2026-06-04T02:39:10.0229304Z         "unit"
2026-06-04T02:39:10.0229457Z       ],
2026-06-04T02:39:10.0229770Z       "stages": {
2026-06-04T02:39:10.0229924Z         "doc": {
2026-06-04T02:39:10.0230108Z           "complete": false,
2026-06-04T02:39:10.0230273Z           "evidence": []
2026-06-04T02:39:10.0230428Z         },
2026-06-04T02:39:10.0230581Z         "impl": {
2026-06-04T02:39:10.0230762Z           "complete": true,
2026-06-04T02:39:10.0230932Z           "evidence": [
2026-06-04T02:39:10.0231079Z             {
2026-06-04T02:39:10.0231322Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:39:10.0231488Z               "line": 35
2026-06-04T02:39:10.0231644Z             }
2026-06-04T02:39:10.0231798Z           ]
2026-06-04T02:39:10.0231953Z         },
2026-06-04T02:39:10.0232114Z         "int": {
2026-06-04T02:39:10.0232294Z           "complete": false,
2026-06-04T02:39:10.0232483Z           "evidence": []
2026-06-04T02:39:10.0232629Z         },
2026-06-04T02:39:10.0232793Z         "unit": {
2026-06-04T02:39:10.0232970Z           "complete": true,
2026-06-04T02:39:10.0233140Z           "evidence": [
2026-06-04T02:39:10.0233309Z             {
2026-06-04T02:39:10.0233542Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:39:10.0233717Z               "line": 217
2026-06-04T02:39:10.0233864Z             }
2026-06-04T02:39:10.0234016Z           ]
2026-06-04T02:39:10.0234159Z         }
2026-06-04T02:39:10.0234312Z       }
2026-06-04T02:39:10.0234465Z     },
2026-06-04T02:39:10.0234609Z     {
2026-06-04T02:39:10.0234824Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-04T02:39:10.0235367Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-04T02:39:10.0235559Z       "requiredStages": [
2026-06-04T02:39:10.0235724Z         "impl",
2026-06-04T02:39:10.0235877Z         "unit"
2026-06-04T02:39:10.0236032Z       ],
2026-06-04T02:39:10.0236200Z       "stages": {
2026-06-04T02:39:10.0236368Z         "doc": {
2026-06-04T02:39:10.0236548Z           "complete": false,
2026-06-04T02:39:10.0236730Z           "evidence": []
2026-06-04T02:39:10.0236888Z         },
2026-06-04T02:39:10.0237054Z         "impl": {
2026-06-04T02:39:10.0237237Z           "complete": true,
2026-06-04T02:39:10.0237400Z           "evidence": [
2026-06-04T02:39:10.0237555Z             {
2026-06-04T02:39:10.0237807Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.0237987Z               "line": 159
2026-06-04T02:39:10.0238145Z             },
2026-06-04T02:39:10.0238291Z             {
2026-06-04T02:39:10.0238542Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:39:10.0238705Z               "line": 150
2026-06-04T02:39:10.0238862Z             }
2026-06-04T02:39:10.0239010Z           ]
2026-06-04T02:39:10.0239209Z         },
2026-06-04T02:39:10.0239365Z         "int": {
2026-06-04T02:39:10.0239729Z           "complete": false,
2026-06-04T02:39:10.0239969Z           "evidence": []
2026-06-04T02:39:10.0240303Z         },
2026-06-04T02:39:10.0240486Z         "unit": {
2026-06-04T02:39:10.0240664Z           "complete": true,
2026-06-04T02:39:10.0240853Z           "evidence": [
2026-06-04T02:39:10.0240996Z             {
2026-06-04T02:39:10.0241252Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.0241425Z               "line": 382
2026-06-04T02:39:10.0241571Z             },
2026-06-04T02:39:10.0241730Z             {
2026-06-04T02:39:10.0241975Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.0242151Z               "line": 393
2026-06-04T02:39:10.0242310Z             },
2026-06-04T02:39:10.0242457Z             {
2026-06-04T02:39:10.0242710Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.0242874Z               "line": 409
2026-06-04T02:39:10.0243031Z             },
2026-06-04T02:39:10.0243178Z             {
2026-06-04T02:39:10.0243604Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.0243798Z               "line": 423
2026-06-04T02:39:10.0243949Z             }
2026-06-04T02:39:10.0244107Z           ]
2026-06-04T02:39:10.0244404Z         }
2026-06-04T02:39:10.0244561Z       }
2026-06-04T02:39:10.0244707Z     },
2026-06-04T02:39:10.0244858Z     {
2026-06-04T02:39:10.0245073Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-04T02:39:10.0246986Z       "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-04T02:39:10.0247190Z       "requiredStages": [
2026-06-04T02:39:10.0247341Z         "doc",
2026-06-04T02:39:10.0247502Z         "impl",
2026-06-04T02:39:10.0247652Z         "unit"
2026-06-04T02:39:10.0247813Z       ],
2026-06-04T02:39:10.0247977Z       "stages": {
2026-06-04T02:39:10.0248161Z         "doc": {
2026-06-04T02:39:10.0248360Z           "complete": true,
2026-06-04T02:39:10.0248526Z           "evidence": [
2026-06-04T02:39:10.0248682Z             {
2026-06-04T02:39:10.0248898Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T02:39:10.0249095Z               "line": 253
2026-06-04T02:39:10.0249305Z             }
2026-06-04T02:39:10.0249457Z           ]
2026-06-04T02:39:10.0249625Z         },
2026-06-04T02:39:10.0249805Z         "impl": {
2026-06-04T02:39:10.0250003Z           "complete": true,
2026-06-04T02:39:10.0250173Z           "evidence": [
2026-06-04T02:39:10.0250330Z             {
2026-06-04T02:39:10.0250566Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-04T02:39:10.0250728Z               "line": 62
2026-06-04T02:39:10.0250884Z             },
2026-06-04T02:39:10.0251032Z             {
2026-06-04T02:39:10.0251283Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-04T02:39:10.0251461Z               "line": 36
2026-06-04T02:39:10.0251610Z             }
2026-06-04T02:39:10.0251783Z           ]
2026-06-04T02:39:10.0251934Z         },
2026-06-04T02:39:10.0252099Z         "int": {
2026-06-04T02:39:10.0252274Z           "complete": false,
2026-06-04T02:39:10.0252465Z           "evidence": []
2026-06-04T02:39:10.0252612Z         },
2026-06-04T02:39:10.0252773Z         "unit": {
2026-06-04T02:39:10.0252959Z           "complete": true,
2026-06-04T02:39:10.0253124Z           "evidence": [
2026-06-04T02:39:10.0253280Z             {
2026-06-04T02:39:10.0253531Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-04T02:39:10.0253711Z               "line": 147
2026-06-04T02:39:10.0253864Z             },
2026-06-04T02:39:10.0254024Z             {
2026-06-04T02:39:10.0254272Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-04T02:39:10.0254437Z               "line": 126
2026-06-04T02:39:10.0254592Z             }
2026-06-04T02:39:10.0254735Z           ]
2026-06-04T02:39:10.0254890Z         }
2026-06-04T02:39:10.0255036Z       }
2026-06-04T02:39:10.0255204Z     },
2026-06-04T02:39:10.0255355Z     {
2026-06-04T02:39:10.0255583Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-04T02:39:10.0255910Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-04T02:39:10.0256102Z       "requiredStages": [
2026-06-04T02:39:10.0256267Z         "impl",
2026-06-04T02:39:10.0256431Z         "unit"
2026-06-04T02:39:10.0256580Z       ],
2026-06-04T02:39:10.0256739Z       "stages": {
2026-06-04T02:39:10.0256886Z         "doc": {
2026-06-04T02:39:10.0257072Z           "complete": false,
2026-06-04T02:39:10.0257243Z           "evidence": []
2026-06-04T02:39:10.0257398Z         },
2026-06-04T02:39:10.0257566Z         "impl": {
2026-06-04T02:39:10.0263325Z           "complete": true,
2026-06-04T02:39:10.0263514Z           "evidence": [
2026-06-04T02:39:10.0263664Z             {
2026-06-04T02:39:10.0263914Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:10.0264083Z               "line": 95
2026-06-04T02:39:10.0264519Z             },
2026-06-04T02:39:10.0264694Z             {
2026-06-04T02:39:10.0264942Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0265121Z               "line": 96
2026-06-04T02:39:10.0265431Z             }
2026-06-04T02:39:10.0265591Z           ]
2026-06-04T02:39:10.0265742Z         },
2026-06-04T02:39:10.0265902Z         "int": {
2026-06-04T02:39:10.0266079Z           "complete": false,
2026-06-04T02:39:10.0266259Z           "evidence": []
2026-06-04T02:39:10.0266412Z         },
2026-06-04T02:39:10.0266573Z         "unit": {
2026-06-04T02:39:10.0266754Z           "complete": true,
2026-06-04T02:39:10.0266919Z           "evidence": [
2026-06-04T02:39:10.0267079Z             {
2026-06-04T02:39:10.0267306Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:10.0267481Z               "line": 250
2026-06-04T02:39:10.0267640Z             },
2026-06-04T02:39:10.0267785Z             {
2026-06-04T02:39:10.0268020Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T02:39:10.0268201Z               "line": 139
2026-06-04T02:39:10.0268365Z             },
2026-06-04T02:39:10.0268515Z             {
2026-06-04T02:39:10.0268757Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0268943Z               "line": 375
2026-06-04T02:39:10.0269098Z             },
2026-06-04T02:39:10.0269327Z             {
2026-06-04T02:39:10.0269564Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0269742Z               "line": 405
2026-06-04T02:39:10.0269903Z             }
2026-06-04T02:39:10.0270049Z           ]
2026-06-04T02:39:10.0270208Z         }
2026-06-04T02:39:10.0270354Z       }
2026-06-04T02:39:10.0270507Z     },
2026-06-04T02:39:10.0270651Z     {
2026-06-04T02:39:10.0270866Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-04T02:39:10.0271249Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-04T02:39:10.0271429Z       "requiredStages": [
2026-06-04T02:39:10.0271589Z         "impl",
2026-06-04T02:39:10.0271753Z         "unit"
2026-06-04T02:39:10.0271910Z       ],
2026-06-04T02:39:10.0272067Z       "stages": {
2026-06-04T02:39:10.0272226Z         "doc": {
2026-06-04T02:39:10.0272424Z           "complete": false,
2026-06-04T02:39:10.0272593Z           "evidence": []
2026-06-04T02:39:10.0272747Z         },
2026-06-04T02:39:10.0272905Z         "impl": {
2026-06-04T02:39:10.0273089Z           "complete": true,
2026-06-04T02:39:10.0273255Z           "evidence": [
2026-06-04T02:39:10.0273409Z             {
2026-06-04T02:39:10.0273652Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0273816Z               "line": 142
2026-06-04T02:39:10.0273972Z             },
2026-06-04T02:39:10.0274119Z             {
2026-06-04T02:39:10.0274358Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0274523Z               "line": 187
2026-06-04T02:39:10.0274679Z             },
2026-06-04T02:39:10.0274843Z             {
2026-06-04T02:39:10.0275080Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0275252Z               "line": 199
2026-06-04T02:39:10.0275400Z             }
2026-06-04T02:39:10.0275555Z           ]
2026-06-04T02:39:10.0275714Z         },
2026-06-04T02:39:10.0275874Z         "int": {
2026-06-04T02:39:10.0276059Z           "complete": false,
2026-06-04T02:39:10.0276224Z           "evidence": []
2026-06-04T02:39:10.0276379Z         },
2026-06-04T02:39:10.0276531Z         "unit": {
2026-06-04T02:39:10.0276711Z           "complete": true,
2026-06-04T02:39:10.0276877Z           "evidence": [
2026-06-04T02:39:10.0277033Z             {
2026-06-04T02:39:10.0277270Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0277436Z               "line": 335
2026-06-04T02:39:10.0277590Z             },
2026-06-04T02:39:10.0277737Z             {
2026-06-04T02:39:10.0277971Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0278137Z               "line": 364
2026-06-04T02:39:10.0278293Z             }
2026-06-04T02:39:10.0278609Z           ]
2026-06-04T02:39:10.0278775Z         }
2026-06-04T02:39:10.0278930Z       }
2026-06-04T02:39:10.0279072Z     },
2026-06-04T02:39:10.0279269Z     {
2026-06-04T02:39:10.0279590Z       "id": "REQ-INFRA-1",
2026-06-04T02:39:10.0279967Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-04T02:39:10.0280159Z       "requiredStages": [],
2026-06-04T02:39:10.0280319Z       "stages": {
2026-06-04T02:39:10.0280482Z         "doc": {
2026-06-04T02:39:10.0280657Z           "complete": false,
2026-06-04T02:39:10.0280834Z           "evidence": []
2026-06-04T02:39:10.0280980Z         },
2026-06-04T02:39:10.0281143Z         "impl": {
2026-06-04T02:39:10.0281327Z           "complete": false,
2026-06-04T02:39:10.0281497Z           "evidence": []
2026-06-04T02:39:10.0281650Z         },
2026-06-04T02:39:10.0281801Z         "int": {
2026-06-04T02:39:10.0281981Z           "complete": false,
2026-06-04T02:39:10.0282149Z           "evidence": []
2026-06-04T02:39:10.0282325Z         },
2026-06-04T02:39:10.0282490Z         "unit": {
2026-06-04T02:39:10.0282667Z           "complete": false,
2026-06-04T02:39:10.0282841Z           "evidence": []
2026-06-04T02:39:10.0283005Z         }
2026-06-04T02:39:10.0283159Z       }
2026-06-04T02:39:10.0283304Z     },
2026-06-04T02:39:10.0283455Z     {
2026-06-04T02:39:10.0283624Z       "id": "REQ-INST-1",
2026-06-04T02:39:10.0283954Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-04T02:39:10.0284144Z       "requiredStages": [],
2026-06-04T02:39:10.0284303Z       "stages": {
2026-06-04T02:39:10.0284468Z         "doc": {
2026-06-04T02:39:10.0284646Z           "complete": false,
2026-06-04T02:39:10.0284821Z           "evidence": []
2026-06-04T02:39:10.0284976Z         },
2026-06-04T02:39:10.0285132Z         "impl": {
2026-06-04T02:39:10.0285314Z           "complete": false,
2026-06-04T02:39:10.0285480Z           "evidence": []
2026-06-04T02:39:10.0285629Z         },
2026-06-04T02:39:10.0285779Z         "int": {
2026-06-04T02:39:10.0285971Z           "complete": false,
2026-06-04T02:39:10.0286150Z           "evidence": []
2026-06-04T02:39:10.0286298Z         },
2026-06-04T02:39:10.0286460Z         "unit": {
2026-06-04T02:39:10.0286641Z           "complete": false,
2026-06-04T02:39:10.0286816Z           "evidence": []
2026-06-04T02:39:10.0286965Z         }
2026-06-04T02:39:10.0287118Z       }
2026-06-04T02:39:10.0287262Z     },
2026-06-04T02:39:10.0287419Z     {
2026-06-04T02:39:10.0287602Z       "id": "REQ-INST-10",
2026-06-04T02:39:10.0288025Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-04T02:39:10.0288217Z       "requiredStages": [
2026-06-04T02:39:10.0288371Z         "impl",
2026-06-04T02:39:10.0288534Z         "unit"
2026-06-04T02:39:10.0288680Z       ],
2026-06-04T02:39:10.0288852Z       "stages": {
2026-06-04T02:39:10.0289011Z         "doc": {
2026-06-04T02:39:10.0289236Z           "complete": false,
2026-06-04T02:39:10.0289412Z           "evidence": []
2026-06-04T02:39:10.0289567Z         },
2026-06-04T02:39:10.0289728Z         "impl": {
2026-06-04T02:39:10.0289901Z           "complete": true,
2026-06-04T02:39:10.0290073Z           "evidence": [
2026-06-04T02:39:10.0290248Z             {
2026-06-04T02:39:10.0290498Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0290668Z               "line": 351
2026-06-04T02:39:10.0290819Z             },
2026-06-04T02:39:10.0290971Z             {
2026-06-04T02:39:10.0291228Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0291399Z               "line": 406
2026-06-04T02:39:10.0291558Z             },
2026-06-04T02:39:10.0291705Z             {
2026-06-04T02:39:10.0291939Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T02:39:10.0292101Z               "line": 13
2026-06-04T02:39:10.0292259Z             },
2026-06-04T02:39:10.0292413Z             {
2026-06-04T02:39:10.0292643Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T02:39:10.0298417Z               "line": 67
2026-06-04T02:39:10.0298689Z             }
2026-06-04T02:39:10.0298846Z           ]
2026-06-04T02:39:10.0299003Z         },
2026-06-04T02:39:10.0299248Z         "int": {
2026-06-04T02:39:10.0299594Z           "complete": false,
2026-06-04T02:39:10.0299764Z           "evidence": []
2026-06-04T02:39:10.0299919Z         },
2026-06-04T02:39:10.0300072Z         "unit": {
2026-06-04T02:39:10.0300256Z           "complete": true,
2026-06-04T02:39:10.0300422Z           "evidence": [
2026-06-04T02:39:10.0300576Z             {
2026-06-04T02:39:10.0300847Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0301013Z               "line": 550
2026-06-04T02:39:10.0301168Z             },
2026-06-04T02:39:10.0301316Z             {
2026-06-04T02:39:10.0301566Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0301732Z               "line": 559
2026-06-04T02:39:10.0301888Z             },
2026-06-04T02:39:10.0302041Z             {
2026-06-04T02:39:10.0302299Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0302477Z               "line": 567
2026-06-04T02:39:10.0302624Z             },
2026-06-04T02:39:10.0302791Z             {
2026-06-04T02:39:10.0303032Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0303204Z               "line": 580
2026-06-04T02:39:10.0303360Z             },
2026-06-04T02:39:10.0303507Z             {
2026-06-04T02:39:10.0303760Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0303926Z               "line": 593
2026-06-04T02:39:10.0304086Z             },
2026-06-04T02:39:10.0304234Z             {
2026-06-04T02:39:10.0304485Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0304662Z               "line": 609
2026-06-04T02:39:10.0304814Z             },
2026-06-04T02:39:10.0304968Z             {
2026-06-04T02:39:10.0305211Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0305395Z               "line": 838
2026-06-04T02:39:10.0305544Z             },
2026-06-04T02:39:10.0305707Z             {
2026-06-04T02:39:10.0305950Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T02:39:10.0306124Z               "line": 121
2026-06-04T02:39:10.0306282Z             },
2026-06-04T02:39:10.0306430Z             {
2026-06-04T02:39:10.0306663Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T02:39:10.0306825Z               "line": 142
2026-06-04T02:39:10.0306981Z             },
2026-06-04T02:39:10.0307136Z             {
2026-06-04T02:39:10.0307362Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T02:39:10.0307536Z               "line": 150
2026-06-04T02:39:10.0307680Z             },
2026-06-04T02:39:10.0307833Z             {
2026-06-04T02:39:10.0308068Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T02:39:10.0308239Z               "line": 158
2026-06-04T02:39:10.0308395Z             }
2026-06-04T02:39:10.0308544Z           ]
2026-06-04T02:39:10.0308705Z         }
2026-06-04T02:39:10.0308852Z       }
2026-06-04T02:39:10.0309003Z     },
2026-06-04T02:39:10.0309147Z     {
2026-06-04T02:39:10.0309375Z       "id": "REQ-INST-11",
2026-06-04T02:39:10.0309841Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-04T02:39:10.0310020Z       "requiredStages": [
2026-06-04T02:39:10.0310183Z         "impl",
2026-06-04T02:39:10.0310341Z         "unit"
2026-06-04T02:39:10.0310496Z       ],
2026-06-04T02:39:10.0310646Z       "stages": {
2026-06-04T02:39:10.0310805Z         "doc": {
2026-06-04T02:39:10.0310988Z           "complete": false,
2026-06-04T02:39:10.0311157Z           "evidence": []
2026-06-04T02:39:10.0311309Z         },
2026-06-04T02:39:10.0311467Z         "impl": {
2026-06-04T02:39:10.0311645Z           "complete": true,
2026-06-04T02:39:10.0311806Z           "evidence": [
2026-06-04T02:39:10.0311961Z             {
2026-06-04T02:39:10.0312362Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0312542Z               "line": 253
2026-06-04T02:39:10.0312699Z             },
2026-06-04T02:39:10.0312846Z             {
2026-06-04T02:39:10.0313086Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T02:39:10.0313414Z               "line": 59
2026-06-04T02:39:10.0313563Z             },
2026-06-04T02:39:10.0313718Z             {
2026-06-04T02:39:10.0313925Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0314102Z               "line": 586
2026-06-04T02:39:10.0314253Z             }
2026-06-04T02:39:10.0314406Z           ]
2026-06-04T02:39:10.0314558Z         },
2026-06-04T02:39:10.0314713Z         "int": {
2026-06-04T02:39:10.0314902Z           "complete": false,
2026-06-04T02:39:10.0315070Z           "evidence": []
2026-06-04T02:39:10.0315228Z         },
2026-06-04T02:39:10.0315384Z         "unit": {
2026-06-04T02:39:10.0315564Z           "complete": true,
2026-06-04T02:39:10.0315728Z           "evidence": [
2026-06-04T02:39:10.0315898Z             {
2026-06-04T02:39:10.0316150Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0316317Z               "line": 702
2026-06-04T02:39:10.0316472Z             },
2026-06-04T02:39:10.0316631Z             {
2026-06-04T02:39:10.0316881Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0317052Z               "line": 725
2026-06-04T02:39:10.0317204Z             },
2026-06-04T02:39:10.0317366Z             {
2026-06-04T02:39:10.0317599Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T02:39:10.0317772Z               "line": 156
2026-06-04T02:39:10.0317922Z             },
2026-06-04T02:39:10.0318078Z             {
2026-06-04T02:39:10.0318315Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T02:39:10.0318487Z               "line": 177
2026-06-04T02:39:10.0318651Z             },
2026-06-04T02:39:10.0318800Z             {
2026-06-04T02:39:10.0319040Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T02:39:10.0319270Z               "line": 209
2026-06-04T02:39:10.0319435Z             },
2026-06-04T02:39:10.0319593Z             {
2026-06-04T02:39:10.0319805Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0319993Z               "line": 635
2026-06-04T02:39:10.0320143Z             }
2026-06-04T02:39:10.0320299Z           ]
2026-06-04T02:39:10.0320444Z         }
2026-06-04T02:39:10.0320596Z       }
2026-06-04T02:39:10.0320747Z     },
2026-06-04T02:39:10.0320888Z     {
2026-06-04T02:39:10.0321071Z       "id": "REQ-INST-12",
2026-06-04T02:39:10.0321667Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-04T02:39:10.0321855Z       "requiredStages": [
2026-06-04T02:39:10.0322009Z         "impl",
2026-06-04T02:39:10.0322170Z         "unit"
2026-06-04T02:39:10.0322329Z       ],
2026-06-04T02:39:10.0322491Z       "stages": {
2026-06-04T02:39:10.0322647Z         "doc": {
2026-06-04T02:39:10.0322835Z           "complete": false,
2026-06-04T02:39:10.0323014Z           "evidence": []
2026-06-04T02:39:10.0323162Z         },
2026-06-04T02:39:10.0323322Z         "impl": {
2026-06-04T02:39:10.0323512Z           "complete": true,
2026-06-04T02:39:10.0323686Z           "evidence": [
2026-06-04T02:39:10.0323844Z             {
2026-06-04T02:39:10.0324092Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0324271Z               "line": 305
2026-06-04T02:39:10.0324421Z             },
2026-06-04T02:39:10.0324573Z             {
2026-06-04T02:39:10.0324824Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0324989Z               "line": 362
2026-06-04T02:39:10.0325142Z             },
2026-06-04T02:39:10.0325288Z             {
2026-06-04T02:39:10.0325544Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0325706Z               "line": 420
2026-06-04T02:39:10.0325860Z             },
2026-06-04T02:39:10.0326012Z             {
2026-06-04T02:39:10.0326407Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0326598Z               "line": 87
2026-06-04T02:39:10.0326746Z             },
2026-06-04T02:39:10.0326907Z             {
2026-06-04T02:39:10.0327270Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0327443Z               "line": 216
2026-06-04T02:39:10.0327598Z             },
2026-06-04T02:39:10.0327746Z             {
2026-06-04T02:39:10.0328000Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:39:10.0328169Z               "line": 132
2026-06-04T02:39:10.0328325Z             }
2026-06-04T02:39:10.0333779Z           ]
2026-06-04T02:39:10.0334029Z         },
2026-06-04T02:39:10.0334203Z         "int": {
2026-06-04T02:39:10.0334392Z           "complete": false,
2026-06-04T02:39:10.0334570Z           "evidence": []
2026-06-04T02:39:10.0334717Z         },
2026-06-04T02:39:10.0334882Z         "unit": {
2026-06-04T02:39:10.0335058Z           "complete": true,
2026-06-04T02:39:10.0335263Z           "evidence": [
2026-06-04T02:39:10.0335430Z             {
2026-06-04T02:39:10.0335689Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0335863Z               "line": 760
2026-06-04T02:39:10.0336022Z             },
2026-06-04T02:39:10.0336175Z             {
2026-06-04T02:39:10.0336419Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0336595Z               "line": 777
2026-06-04T02:39:10.0336750Z             },
2026-06-04T02:39:10.0336896Z             {
2026-06-04T02:39:10.0337149Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0337314Z               "line": 808
2026-06-04T02:39:10.0337470Z             },
2026-06-04T02:39:10.0337616Z             {
2026-06-04T02:39:10.0337859Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0338034Z               "line": 350
2026-06-04T02:39:10.0338181Z             },
2026-06-04T02:39:10.0338332Z             {
2026-06-04T02:39:10.0338594Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:39:10.0338769Z               "line": 169
2026-06-04T02:39:10.0338930Z             },
2026-06-04T02:39:10.0339077Z             {
2026-06-04T02:39:10.0339426Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:39:10.0339601Z               "line": 181
2026-06-04T02:39:10.0339754Z             },
2026-06-04T02:39:10.0339906Z             {
2026-06-04T02:39:10.0340161Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:39:10.0340334Z               "line": 198
2026-06-04T02:39:10.0340482Z             }
2026-06-04T02:39:10.0340639Z           ]
2026-06-04T02:39:10.0340782Z         }
2026-06-04T02:39:10.0340937Z       }
2026-06-04T02:39:10.0341081Z     },
2026-06-04T02:39:10.0341232Z     {
2026-06-04T02:39:10.0341420Z       "id": "REQ-INST-13",
2026-06-04T02:39:10.0341796Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-04T02:39:10.0341984Z       "requiredStages": [
2026-06-04T02:39:10.0342146Z         "impl",
2026-06-04T02:39:10.0342307Z         "unit"
2026-06-04T02:39:10.0342454Z       ],
2026-06-04T02:39:10.0342617Z       "stages": {
2026-06-04T02:39:10.0342789Z         "doc": {
2026-06-04T02:39:10.0342965Z           "complete": false,
2026-06-04T02:39:10.0343139Z           "evidence": []
2026-06-04T02:39:10.0343288Z         },
2026-06-04T02:39:10.0343450Z         "impl": {
2026-06-04T02:39:10.0343626Z           "complete": true,
2026-06-04T02:39:10.0343802Z           "evidence": [
2026-06-04T02:39:10.0343962Z             {
2026-06-04T02:39:10.0344215Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:39:10.0344394Z               "line": 155
2026-06-04T02:39:10.0344542Z             }
2026-06-04T02:39:10.0344695Z           ]
2026-06-04T02:39:10.0344839Z         },
2026-06-04T02:39:10.0344997Z         "int": {
2026-06-04T02:39:10.0345183Z           "complete": false,
2026-06-04T02:39:10.0345351Z           "evidence": []
2026-06-04T02:39:10.0345760Z         },
2026-06-04T02:39:10.0345950Z         "unit": {
2026-06-04T02:39:10.0346134Z           "complete": true,
2026-06-04T02:39:10.0346300Z           "evidence": [
2026-06-04T02:39:10.0346620Z             {
2026-06-04T02:39:10.0346881Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:39:10.0347048Z               "line": 221
2026-06-04T02:39:10.0347202Z             },
2026-06-04T02:39:10.0347347Z             {
2026-06-04T02:39:10.0347601Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:39:10.0347766Z               "line": 233
2026-06-04T02:39:10.0347922Z             }
2026-06-04T02:39:10.0348076Z           ]
2026-06-04T02:39:10.0348225Z         }
2026-06-04T02:39:10.0348375Z       }
2026-06-04T02:39:10.0348517Z     },
2026-06-04T02:39:10.0348668Z     {
2026-06-04T02:39:10.0348842Z       "id": "REQ-INST-14",
2026-06-04T02:39:10.0349689Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-04T02:39:10.0349885Z       "requiredStages": [],
2026-06-04T02:39:10.0350040Z       "stages": {
2026-06-04T02:39:10.0350199Z         "doc": {
2026-06-04T02:39:10.0350391Z           "complete": false,
2026-06-04T02:39:10.0350567Z           "evidence": []
2026-06-04T02:39:10.0350722Z         },
2026-06-04T02:39:10.0350883Z         "impl": {
2026-06-04T02:39:10.0351073Z           "complete": false,
2026-06-04T02:39:10.0351243Z           "evidence": []
2026-06-04T02:39:10.0351397Z         },
2026-06-04T02:39:10.0351547Z         "int": {
2026-06-04T02:39:10.0351733Z           "complete": false,
2026-06-04T02:39:10.0351899Z           "evidence": []
2026-06-04T02:39:10.0352054Z         },
2026-06-04T02:39:10.0352219Z         "unit": {
2026-06-04T02:39:10.0352395Z           "complete": false,
2026-06-04T02:39:10.0352566Z           "evidence": []
2026-06-04T02:39:10.0352719Z         }
2026-06-04T02:39:10.0352877Z       }
2026-06-04T02:39:10.0353022Z     },
2026-06-04T02:39:10.0353189Z     {
2026-06-04T02:39:10.0353370Z       "id": "REQ-INST-15",
2026-06-04T02:39:10.0354863Z       "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-04T02:39:10.0355067Z       "requiredStages": [],
2026-06-04T02:39:10.0355225Z       "stages": {
2026-06-04T02:39:10.0355391Z         "doc": {
2026-06-04T02:39:10.0355582Z           "complete": false,
2026-06-04T02:39:10.0355753Z           "evidence": []
2026-06-04T02:39:10.0355910Z         },
2026-06-04T02:39:10.0356071Z         "impl": {
2026-06-04T02:39:10.0356255Z           "complete": false,
2026-06-04T02:39:10.0356422Z           "evidence": []
2026-06-04T02:39:10.0356582Z         },
2026-06-04T02:39:10.0356743Z         "int": {
2026-06-04T02:39:10.0356922Z           "complete": false,
2026-06-04T02:39:10.0357112Z           "evidence": []
2026-06-04T02:39:10.0357262Z         },
2026-06-04T02:39:10.0357422Z         "unit": {
2026-06-04T02:39:10.0357598Z           "complete": false,
2026-06-04T02:39:10.0357769Z           "evidence": []
2026-06-04T02:39:10.0357929Z         }
2026-06-04T02:39:10.0358082Z       }
2026-06-04T02:39:10.0358234Z     },
2026-06-04T02:39:10.0358375Z     {
2026-06-04T02:39:10.0358550Z       "id": "REQ-INST-2",
2026-06-04T02:39:10.0358795Z       "title": "Per-node files, synced Psyche mind",
2026-06-04T02:39:10.0358984Z       "requiredStages": [],
2026-06-04T02:39:10.0359141Z       "stages": {
2026-06-04T02:39:10.0359354Z         "doc": {
2026-06-04T02:39:10.0359542Z           "complete": false,
2026-06-04T02:39:10.0359708Z           "evidence": []
2026-06-04T02:39:10.0359860Z         },
2026-06-04T02:39:10.0360020Z         "impl": {
2026-06-04T02:39:10.0360206Z           "complete": false,
2026-06-04T02:39:10.0360375Z           "evidence": []
2026-06-04T02:39:10.0360532Z         },
2026-06-04T02:39:10.0360853Z         "int": {
2026-06-04T02:39:10.0361052Z           "complete": false,
2026-06-04T02:39:10.0361228Z           "evidence": []
2026-06-04T02:39:10.0361374Z         },
2026-06-04T02:39:10.0361671Z         "unit": {
2026-06-04T02:39:10.0361845Z           "complete": false,
2026-06-04T02:39:10.0362019Z           "evidence": []
2026-06-04T02:39:10.0362171Z         }
2026-06-04T02:39:10.0362319Z       }
2026-06-04T02:39:10.0362471Z     },
2026-06-04T02:39:10.0362612Z     {
2026-06-04T02:39:10.0362786Z       "id": "REQ-INST-3",
2026-06-04T02:39:10.0363085Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-04T02:39:10.0363277Z       "requiredStages": [],
2026-06-04T02:39:10.0363439Z       "stages": {
2026-06-04T02:39:10.0363591Z         "doc": {
2026-06-04T02:39:10.0363774Z           "complete": false,
2026-06-04T02:39:10.0363942Z           "evidence": []
2026-06-04T02:39:10.0364099Z         },
2026-06-04T02:39:10.0364255Z         "impl": {
2026-06-04T02:39:10.0364452Z           "complete": false,
2026-06-04T02:39:10.0364629Z           "evidence": []
2026-06-04T02:39:10.0370111Z         },
2026-06-04T02:39:10.0370376Z         "int": {
2026-06-04T02:39:10.0370565Z           "complete": false,
2026-06-04T02:39:10.0370777Z           "evidence": []
2026-06-04T02:39:10.0370926Z         },
2026-06-04T02:39:10.0371086Z         "unit": {
2026-06-04T02:39:10.0371273Z           "complete": false,
2026-06-04T02:39:10.0371445Z           "evidence": []
2026-06-04T02:39:10.0371597Z         }
2026-06-04T02:39:10.0371742Z       }
2026-06-04T02:39:10.0371896Z     },
2026-06-04T02:39:10.0372039Z     {
2026-06-04T02:39:10.0372225Z       "id": "REQ-INST-4",
2026-06-04T02:39:10.0372594Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-04T02:39:10.0372775Z       "requiredStages": [],
2026-06-04T02:39:10.0372936Z       "stages": {
2026-06-04T02:39:10.0373087Z         "doc": {
2026-06-04T02:39:10.0373273Z           "complete": false,
2026-06-04T02:39:10.0373451Z           "evidence": []
2026-06-04T02:39:10.0373604Z         },
2026-06-04T02:39:10.0373765Z         "impl": {
2026-06-04T02:39:10.0373942Z           "complete": false,
2026-06-04T02:39:10.0374119Z           "evidence": []
2026-06-04T02:39:10.0374283Z         },
2026-06-04T02:39:10.0374443Z         "int": {
2026-06-04T02:39:10.0374615Z           "complete": false,
2026-06-04T02:39:10.0374789Z           "evidence": []
2026-06-04T02:39:10.0374944Z         },
2026-06-04T02:39:10.0375099Z         "unit": {
2026-06-04T02:39:10.0375281Z           "complete": false,
2026-06-04T02:39:10.0375444Z           "evidence": []
2026-06-04T02:39:10.0375596Z         }
2026-06-04T02:39:10.0375739Z       }
2026-06-04T02:39:10.0375894Z     },
2026-06-04T02:39:10.0376043Z     {
2026-06-04T02:39:10.0376212Z       "id": "REQ-INST-5",
2026-06-04T02:39:10.0376586Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-04T02:39:10.0376772Z       "requiredStages": [],
2026-06-04T02:39:10.0376942Z       "stages": {
2026-06-04T02:39:10.0377105Z         "doc": {
2026-06-04T02:39:10.0377296Z           "complete": false,
2026-06-04T02:39:10.0377469Z           "evidence": []
2026-06-04T02:39:10.0377614Z         },
2026-06-04T02:39:10.0377785Z         "impl": {
2026-06-04T02:39:10.0377964Z           "complete": false,
2026-06-04T02:39:10.0378137Z           "evidence": []
2026-06-04T02:39:10.0378280Z         },
2026-06-04T02:39:10.0378440Z         "int": {
2026-06-04T02:39:10.0378620Z           "complete": false,
2026-06-04T02:39:10.0378785Z           "evidence": []
2026-06-04T02:39:10.0378941Z         },
2026-06-04T02:39:10.0379096Z         "unit": {
2026-06-04T02:39:10.0379341Z           "complete": false,
2026-06-04T02:39:10.0379509Z           "evidence": []
2026-06-04T02:39:10.0379666Z         }
2026-06-04T02:39:10.0379823Z       }
2026-06-04T02:39:10.0379976Z     },
2026-06-04T02:39:10.0380123Z     {
2026-06-04T02:39:10.0380294Z       "id": "REQ-INST-6",
2026-06-04T02:39:10.0380934Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-04T02:39:10.0381152Z       "requiredStages": [],
2026-06-04T02:39:10.0381318Z       "stages": {
2026-06-04T02:39:10.0381480Z         "doc": {
2026-06-04T02:39:10.0381799Z           "complete": false,
2026-06-04T02:39:10.0381974Z           "evidence": []
2026-06-04T02:39:10.0382125Z         },
2026-06-04T02:39:10.0382288Z         "impl": {
2026-06-04T02:39:10.0382464Z           "complete": false,
2026-06-04T02:39:10.0382641Z           "evidence": []
2026-06-04T02:39:10.0382801Z         },
2026-06-04T02:39:10.0382954Z         "int": {
2026-06-04T02:39:10.0383137Z           "complete": false,
2026-06-04T02:39:10.0383301Z           "evidence": []
2026-06-04T02:39:10.0383455Z         },
2026-06-04T02:39:10.0383606Z         "unit": {
2026-06-04T02:39:10.0383795Z           "complete": false,
2026-06-04T02:39:10.0383969Z           "evidence": []
2026-06-04T02:39:10.0384120Z         }
2026-06-04T02:39:10.0384272Z       }
2026-06-04T02:39:10.0384412Z     },
2026-06-04T02:39:10.0384576Z     {
2026-06-04T02:39:10.0384755Z       "id": "REQ-INST-7",
2026-06-04T02:39:10.0385047Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-04T02:39:10.0385228Z       "requiredStages": [
2026-06-04T02:39:10.0385393Z         "impl",
2026-06-04T02:39:10.0385554Z         "unit"
2026-06-04T02:39:10.0385707Z       ],
2026-06-04T02:39:10.0385866Z       "stages": {
2026-06-04T02:39:10.0386016Z         "doc": {
2026-06-04T02:39:10.0386200Z           "complete": false,
2026-06-04T02:39:10.0386375Z           "evidence": []
2026-06-04T02:39:10.0386526Z         },
2026-06-04T02:39:10.0386688Z         "impl": {
2026-06-04T02:39:10.0386868Z           "complete": true,
2026-06-04T02:39:10.0387043Z           "evidence": [
2026-06-04T02:39:10.0387192Z             {
2026-06-04T02:39:10.0387448Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-04T02:39:10.0387619Z               "line": 56
2026-06-04T02:39:10.0387768Z             },
2026-06-04T02:39:10.0387926Z             {
2026-06-04T02:39:10.0388186Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0388361Z               "line": 41
2026-06-04T02:39:10.0388510Z             },
2026-06-04T02:39:10.0388687Z             {
2026-06-04T02:39:10.0388953Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:39:10.0389121Z               "line": 27
2026-06-04T02:39:10.0389331Z             },
2026-06-04T02:39:10.0389481Z             {
2026-06-04T02:39:10.0389749Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:39:10.0389917Z               "line": 59
2026-06-04T02:39:10.0390077Z             },
2026-06-04T02:39:10.0390235Z             {
2026-06-04T02:39:10.0390490Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:39:10.0390661Z               "line": 68
2026-06-04T02:39:10.0390812Z             },
2026-06-04T02:39:10.0390970Z             {
2026-06-04T02:39:10.0391216Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:39:10.0391407Z               "line": 129
2026-06-04T02:39:10.0391568Z             }
2026-06-04T02:39:10.0391719Z           ]
2026-06-04T02:39:10.0391874Z         },
2026-06-04T02:39:10.0392025Z         "int": {
2026-06-04T02:39:10.0392225Z           "complete": false,
2026-06-04T02:39:10.0392394Z           "evidence": []
2026-06-04T02:39:10.0392546Z         },
2026-06-04T02:39:10.0392713Z         "unit": {
2026-06-04T02:39:10.0392893Z           "complete": true,
2026-06-04T02:39:10.0393067Z           "evidence": [
2026-06-04T02:39:10.0393215Z             {
2026-06-04T02:39:10.0393489Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-04T02:39:10.0393656Z               "line": 83
2026-06-04T02:39:10.0393814Z             },
2026-06-04T02:39:10.0393969Z             {
2026-06-04T02:39:10.0394221Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0394400Z               "line": 475
2026-06-04T02:39:10.0394554Z             },
2026-06-04T02:39:10.0394710Z             {
2026-06-04T02:39:10.0395113Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0395312Z               "line": 486
2026-06-04T02:39:10.0395473Z             },
2026-06-04T02:39:10.0395765Z             {
2026-06-04T02:39:10.0396025Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0396194Z               "line": 495
2026-06-04T02:39:10.0396352Z             },
2026-06-04T02:39:10.0396497Z             {
2026-06-04T02:39:10.0396758Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:39:10.0396928Z               "line": 90
2026-06-04T02:39:10.0397083Z             },
2026-06-04T02:39:10.0397240Z             {
2026-06-04T02:39:10.0397498Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:39:10.0397671Z               "line": 105
2026-06-04T02:39:10.0397825Z             },
2026-06-04T02:39:10.0397973Z             {
2026-06-04T02:39:10.0398234Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:39:10.0398416Z               "line": 131
2026-06-04T02:39:10.0398574Z             }
2026-06-04T02:39:10.0398723Z           ]
2026-06-04T02:39:10.0398883Z         }
2026-06-04T02:39:10.0399044Z       }
2026-06-04T02:39:10.0399239Z     },
2026-06-04T02:39:10.0399394Z     {
2026-06-04T02:39:10.0399567Z       "id": "REQ-INST-8",
2026-06-04T02:39:10.0405085Z       "title": "Remote-control mode distinct from local operation",
2026-06-04T02:39:10.0405374Z       "requiredStages": [],
2026-06-04T02:39:10.0405550Z       "stages": {
2026-06-04T02:39:10.0405714Z         "doc": {
2026-06-04T02:39:10.0405904Z           "complete": false,
2026-06-04T02:39:10.0406080Z           "evidence": []
2026-06-04T02:39:10.0406231Z         },
2026-06-04T02:39:10.0406399Z         "impl": {
2026-06-04T02:39:10.0406578Z           "complete": false,
2026-06-04T02:39:10.0406753Z           "evidence": []
2026-06-04T02:39:10.0406904Z         },
2026-06-04T02:39:10.0407074Z         "int": {
2026-06-04T02:39:10.0407301Z           "complete": false,
2026-06-04T02:39:10.0407481Z           "evidence": []
2026-06-04T02:39:10.0407637Z         },
2026-06-04T02:39:10.0407793Z         "unit": {
2026-06-04T02:39:10.0407977Z           "complete": false,
2026-06-04T02:39:10.0408157Z           "evidence": []
2026-06-04T02:39:10.0408311Z         }
2026-06-04T02:39:10.0408463Z       }
2026-06-04T02:39:10.0408607Z     },
2026-06-04T02:39:10.0408762Z     {
2026-06-04T02:39:10.0408941Z       "id": "REQ-INST-9",
2026-06-04T02:39:10.0409563Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-04T02:39:10.0409763Z       "requiredStages": [
2026-06-04T02:39:10.0409925Z         "impl",
2026-06-04T02:39:10.0410086Z         "unit"
2026-06-04T02:39:10.0410236Z       ],
2026-06-04T02:39:10.0410404Z       "stages": {
2026-06-04T02:39:10.0410559Z         "doc": {
2026-06-04T02:39:10.0410747Z           "complete": false,
2026-06-04T02:39:10.0410920Z           "evidence": []
2026-06-04T02:39:10.0411080Z         },
2026-06-04T02:39:10.0411263Z         "impl": {
2026-06-04T02:39:10.0411447Z           "complete": true,
2026-06-04T02:39:10.0411627Z           "evidence": [
2026-06-04T02:39:10.0411777Z             {
2026-06-04T02:39:10.0412052Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0412224Z               "line": 191
2026-06-04T02:39:10.0412382Z             }
2026-06-04T02:39:10.0412536Z           ]
2026-06-04T02:39:10.0412686Z         },
2026-06-04T02:39:10.0412847Z         "int": {
2026-06-04T02:39:10.0413028Z           "complete": false,
2026-06-04T02:39:10.0413202Z           "evidence": []
2026-06-04T02:39:10.0413347Z         },
2026-06-04T02:39:10.0413515Z         "unit": {
2026-06-04T02:39:10.0413699Z           "complete": true,
2026-06-04T02:39:10.0413864Z           "evidence": [
2026-06-04T02:39:10.0414022Z             {
2026-06-04T02:39:10.0414271Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0414449Z               "line": 626
2026-06-04T02:39:10.0414862Z             },
2026-06-04T02:39:10.0415061Z             {
2026-06-04T02:39:10.0415320Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0415497Z               "line": 635
2026-06-04T02:39:10.0415856Z             },
2026-06-04T02:39:10.0416003Z             {
2026-06-04T02:39:10.0416268Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0416448Z               "line": 649
2026-06-04T02:39:10.0416600Z             },
2026-06-04T02:39:10.0416757Z             {
2026-06-04T02:39:10.0417005Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0417188Z               "line": 659
2026-06-04T02:39:10.0417345Z             },
2026-06-04T02:39:10.0417509Z             {
2026-06-04T02:39:10.0417763Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:39:10.0417932Z               "line": 678
2026-06-04T02:39:10.0418095Z             }
2026-06-04T02:39:10.0418244Z           ]
2026-06-04T02:39:10.0418399Z         }
2026-06-04T02:39:10.0418560Z       }
2026-06-04T02:39:10.0418718Z     },
2026-06-04T02:39:10.0418863Z     {
2026-06-04T02:39:10.0419054Z       "id": "REQ-INSTALL-1",
2026-06-04T02:39:10.0419518Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-04T02:39:10.0419723Z       "requiredStages": [],
2026-06-04T02:39:10.0419893Z       "stages": {
2026-06-04T02:39:10.0420051Z         "doc": {
2026-06-04T02:39:10.0420235Z           "complete": false,
2026-06-04T02:39:10.0420408Z           "evidence": []
2026-06-04T02:39:10.0420557Z         },
2026-06-04T02:39:10.0420723Z         "impl": {
2026-06-04T02:39:10.0420897Z           "complete": false,
2026-06-04T02:39:10.0421072Z           "evidence": []
2026-06-04T02:39:10.0421225Z         },
2026-06-04T02:39:10.0421391Z         "int": {
2026-06-04T02:39:10.0421575Z           "complete": false,
2026-06-04T02:39:10.0421742Z           "evidence": []
2026-06-04T02:39:10.0421907Z         },
2026-06-04T02:39:10.0422064Z         "unit": {
2026-06-04T02:39:10.0422261Z           "complete": false,
2026-06-04T02:39:10.0422431Z           "evidence": []
2026-06-04T02:39:10.0422599Z         }
2026-06-04T02:39:10.0422746Z       }
2026-06-04T02:39:10.0422919Z     },
2026-06-04T02:39:10.0423073Z     {
2026-06-04T02:39:10.0423254Z       "id": "REQ-INSTALL-2",
2026-06-04T02:39:10.0423547Z       "title": "Marketplace-repackaging-friendly install",
2026-06-04T02:39:10.0423729Z       "requiredStages": [],
2026-06-04T02:39:10.0423901Z       "stages": {
2026-06-04T02:39:10.0424057Z         "doc": {
2026-06-04T02:39:10.0424243Z           "complete": false,
2026-06-04T02:39:10.0424425Z           "evidence": []
2026-06-04T02:39:10.0424583Z         },
2026-06-04T02:39:10.0424746Z         "impl": {
2026-06-04T02:39:10.0424919Z           "complete": false,
2026-06-04T02:39:10.0425096Z           "evidence": []
2026-06-04T02:39:10.0425244Z         },
2026-06-04T02:39:10.0425410Z         "int": {
2026-06-04T02:39:10.0425598Z           "complete": false,
2026-06-04T02:39:10.0425780Z           "evidence": []
2026-06-04T02:39:10.0425944Z         },
2026-06-04T02:39:10.0426101Z         "unit": {
2026-06-04T02:39:10.0426290Z           "complete": false,
2026-06-04T02:39:10.0426470Z           "evidence": []
2026-06-04T02:39:10.0426637Z         }
2026-06-04T02:39:10.0426793Z       }
2026-06-04T02:39:10.0426940Z     },
2026-06-04T02:39:10.0427093Z     {
2026-06-04T02:39:10.0427276Z       "id": "REQ-INSTALL-3",
2026-06-04T02:39:10.0427581Z       "title": "Idempotent + interactive-optional first run",
2026-06-04T02:39:10.0427767Z       "requiredStages": [],
2026-06-04T02:39:10.0427932Z       "stages": {
2026-06-04T02:39:10.0428089Z         "doc": {
2026-06-04T02:39:10.0428267Z           "complete": false,
2026-06-04T02:39:10.0428446Z           "evidence": []
2026-06-04T02:39:10.0428594Z         },
2026-06-04T02:39:10.0428762Z         "impl": {
2026-06-04T02:39:10.0428941Z           "complete": false,
2026-06-04T02:39:10.0429118Z           "evidence": []
2026-06-04T02:39:10.0429321Z         },
2026-06-04T02:39:10.0429640Z         "int": {
2026-06-04T02:39:10.0429841Z           "complete": false,
2026-06-04T02:39:10.0430015Z           "evidence": []
2026-06-04T02:39:10.0430173Z         },
2026-06-04T02:39:10.0430474Z         "unit": {
2026-06-04T02:39:10.0430673Z           "complete": false,
2026-06-04T02:39:10.0430852Z           "evidence": []
2026-06-04T02:39:10.0431002Z         }
2026-06-04T02:39:10.0431160Z       }
2026-06-04T02:39:10.0431308Z     },
2026-06-04T02:39:10.0431460Z     {
2026-06-04T02:39:10.0431635Z       "id": "REQ-INSTALL-4",
2026-06-04T02:39:10.0432994Z       "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-04T02:39:10.0433190Z       "requiredStages": [],
2026-06-04T02:39:10.0433344Z       "stages": {
2026-06-04T02:39:10.0433512Z         "doc": {
2026-06-04T02:39:10.0433706Z           "complete": false,
2026-06-04T02:39:10.0433890Z           "evidence": []
2026-06-04T02:39:10.0434051Z         },
2026-06-04T02:39:10.0434207Z         "impl": {
2026-06-04T02:39:10.0434390Z           "complete": false,
2026-06-04T02:39:10.0434570Z           "evidence": []
2026-06-04T02:39:10.0434726Z         },
2026-06-04T02:39:10.0434884Z         "int": {
2026-06-04T02:39:10.0435068Z           "complete": false,
2026-06-04T02:39:10.0435247Z           "evidence": []
2026-06-04T02:39:10.0435418Z         },
2026-06-04T02:39:10.0435581Z         "unit": {
2026-06-04T02:39:10.0435755Z           "complete": false,
2026-06-04T02:39:10.0435929Z           "evidence": []
2026-06-04T02:39:10.0436076Z         }
2026-06-04T02:39:10.0443611Z       }
2026-06-04T02:39:10.0443895Z     },
2026-06-04T02:39:10.0444054Z     {
2026-06-04T02:39:10.0444264Z       "id": "REQ-MANIFEST-1",
2026-06-04T02:39:10.0444673Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-04T02:39:10.0444909Z       "requiredStages": [
2026-06-04T02:39:10.0445069Z         "doc",
2026-06-04T02:39:10.0445233Z         "impl",
2026-06-04T02:39:10.0445394Z         "unit"
2026-06-04T02:39:10.0445545Z       ],
2026-06-04T02:39:10.0445728Z       "stages": {
2026-06-04T02:39:10.0445884Z         "doc": {
2026-06-04T02:39:10.0446068Z           "complete": true,
2026-06-04T02:39:10.0446232Z           "evidence": [
2026-06-04T02:39:10.0446396Z             {
2026-06-04T02:39:10.0446599Z               "path": "docs/MANIFEST.md",
2026-06-04T02:39:10.0446767Z               "line": 19
2026-06-04T02:39:10.0446924Z             }
2026-06-04T02:39:10.0447074Z           ]
2026-06-04T02:39:10.0447227Z         },
2026-06-04T02:39:10.0447386Z         "impl": {
2026-06-04T02:39:10.0447571Z           "complete": true,
2026-06-04T02:39:10.0447746Z           "evidence": [
2026-06-04T02:39:10.0447893Z             {
2026-06-04T02:39:10.0448153Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0448316Z               "line": 18
2026-06-04T02:39:10.0448485Z             }
2026-06-04T02:39:10.0448638Z           ]
2026-06-04T02:39:10.0448794Z         },
2026-06-04T02:39:10.0448949Z         "int": {
2026-06-04T02:39:10.0449149Z           "complete": false,
2026-06-04T02:39:10.0449479Z           "evidence": []
2026-06-04T02:39:10.0449636Z         },
2026-06-04T02:39:10.0449834Z         "unit": {
2026-06-04T02:39:10.0450032Z           "complete": true,
2026-06-04T02:39:10.0450205Z           "evidence": [
2026-06-04T02:39:10.0450355Z             {
2026-06-04T02:39:10.0450620Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0450796Z               "line": 695
2026-06-04T02:39:10.0450947Z             },
2026-06-04T02:39:10.0451112Z             {
2026-06-04T02:39:10.0451357Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0451537Z               "line": 791
2026-06-04T02:39:10.0451697Z             },
2026-06-04T02:39:10.0451843Z             {
2026-06-04T02:39:10.0452371Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0452569Z               "line": 803
2026-06-04T02:39:10.0452732Z             },
2026-06-04T02:39:10.0452882Z             {
2026-06-04T02:39:10.0453286Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0453466Z               "line": 811
2026-06-04T02:39:10.0453619Z             },
2026-06-04T02:39:10.0453782Z             {
2026-06-04T02:39:10.0454026Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0454207Z               "line": 828
2026-06-04T02:39:10.0454361Z             },
2026-06-04T02:39:10.0454521Z             {
2026-06-04T02:39:10.0454772Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0454941Z               "line": 842
2026-06-04T02:39:10.0455101Z             },
2026-06-04T02:39:10.0455254Z             {
2026-06-04T02:39:10.0455507Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0455675Z               "line": 857
2026-06-04T02:39:10.0455848Z             },
2026-06-04T02:39:10.0456013Z             {
2026-06-04T02:39:10.0456259Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0456448Z               "line": 872
2026-06-04T02:39:10.0456601Z             },
2026-06-04T02:39:10.0456759Z             {
2026-06-04T02:39:10.0457004Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0457181Z               "line": 887
2026-06-04T02:39:10.0457338Z             },
2026-06-04T02:39:10.0457487Z             {
2026-06-04T02:39:10.0457737Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0457902Z               "line": 898
2026-06-04T02:39:10.0458059Z             }
2026-06-04T02:39:10.0458209Z           ]
2026-06-04T02:39:10.0458368Z         }
2026-06-04T02:39:10.0458523Z       }
2026-06-04T02:39:10.0458670Z     },
2026-06-04T02:39:10.0458822Z     {
2026-06-04T02:39:10.0459003Z       "id": "REQ-MIGRATE-1",
2026-06-04T02:39:10.0459447Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-04T02:39:10.0459645Z       "requiredStages": [],
2026-06-04T02:39:10.0459814Z       "stages": {
2026-06-04T02:39:10.0459997Z         "doc": {
2026-06-04T02:39:10.0460176Z           "complete": false,
2026-06-04T02:39:10.0460352Z           "evidence": []
2026-06-04T02:39:10.0460501Z         },
2026-06-04T02:39:10.0460665Z         "impl": {
2026-06-04T02:39:10.0460843Z           "complete": false,
2026-06-04T02:39:10.0461023Z           "evidence": []
2026-06-04T02:39:10.0461183Z         },
2026-06-04T02:39:10.0461337Z         "int": {
2026-06-04T02:39:10.0461521Z           "complete": false,
2026-06-04T02:39:10.0461691Z           "evidence": []
2026-06-04T02:39:10.0461849Z         },
2026-06-04T02:39:10.0462003Z         "unit": {
2026-06-04T02:39:10.0462187Z           "complete": false,
2026-06-04T02:39:10.0462362Z           "evidence": []
2026-06-04T02:39:10.0462512Z         }
2026-06-04T02:39:10.0462662Z       }
2026-06-04T02:39:10.0462823Z     },
2026-06-04T02:39:10.0462979Z     {
2026-06-04T02:39:10.0463173Z       "id": "REQ-MSG-1",
2026-06-04T02:39:10.0464115Z       "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-04T02:39:10.0464325Z       "requiredStages": [
2026-06-04T02:39:10.0464481Z         "impl",
2026-06-04T02:39:10.0464647Z         "unit",
2026-06-04T02:39:10.0464800Z         "int"
2026-06-04T02:39:10.0464956Z       ],
2026-06-04T02:39:10.0465116Z       "stages": {
2026-06-04T02:39:10.0465282Z         "doc": {
2026-06-04T02:39:10.0465469Z           "complete": false,
2026-06-04T02:39:10.0465639Z           "evidence": []
2026-06-04T02:39:10.0465800Z         },
2026-06-04T02:39:10.0465962Z         "impl": {
2026-06-04T02:39:10.0466149Z           "complete": true,
2026-06-04T02:39:10.0466318Z           "evidence": [
2026-06-04T02:39:10.0466479Z             {
2026-06-04T02:39:10.0466878Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:10.0467071Z               "line": 28
2026-06-04T02:39:10.0467233Z             },
2026-06-04T02:39:10.0467387Z             {
2026-06-04T02:39:10.0467749Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:10.0467930Z               "line": 94
2026-06-04T02:39:10.0468083Z             },
2026-06-04T02:39:10.0468243Z             {
2026-06-04T02:39:10.0468481Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:10.0468657Z               "line": 127
2026-06-04T02:39:10.0468811Z             },
2026-06-04T02:39:10.0468968Z             {
2026-06-04T02:39:10.0469260Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:10.0469434Z               "line": 149
2026-06-04T02:39:10.0469592Z             },
2026-06-04T02:39:10.0469740Z             {
2026-06-04T02:39:10.0469983Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:10.0470155Z               "line": 174
2026-06-04T02:39:10.0470334Z             },
2026-06-04T02:39:10.0470496Z             {
2026-06-04T02:39:10.0470731Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T02:39:10.0470909Z               "line": 18
2026-06-04T02:39:10.0471071Z             },
2026-06-04T02:39:10.0471229Z             {
2026-06-04T02:39:10.0471448Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:39:10.0471620Z               "line": 13
2026-06-04T02:39:10.0471779Z             },
2026-06-04T02:39:10.0471929Z             {
2026-06-04T02:39:10.0472159Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:39:10.0472323Z               "line": 61
2026-06-04T02:39:10.0472479Z             },
2026-06-04T02:39:10.0472629Z             {
2026-06-04T02:39:10.0472853Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T02:39:10.0473025Z               "line": 10
2026-06-04T02:39:10.0473175Z             }
2026-06-04T02:39:10.0473337Z           ]
2026-06-04T02:39:10.0473486Z         },
2026-06-04T02:39:10.0473662Z         "int": {
2026-06-04T02:39:10.0473839Z           "complete": true,
2026-06-04T02:39:10.0474015Z           "evidence": [
2026-06-04T02:39:10.0474171Z             {
2026-06-04T02:39:10.0474476Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T02:39:10.0480772Z               "line": 9
2026-06-04T02:39:10.0481020Z             },
2026-06-04T02:39:10.0481180Z             {
2026-06-04T02:39:10.0481485Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T02:39:10.0481667Z               "line": 66
2026-06-04T02:39:10.0481826Z             },
2026-06-04T02:39:10.0481976Z             {
2026-06-04T02:39:10.0482262Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T02:39:10.0482433Z               "line": 116
2026-06-04T02:39:10.0482594Z             }
2026-06-04T02:39:10.0482746Z           ]
2026-06-04T02:39:10.0482907Z         },
2026-06-04T02:39:10.0483072Z         "unit": {
2026-06-04T02:39:10.0483255Z           "complete": true,
2026-06-04T02:39:10.0483458Z           "evidence": [
2026-06-04T02:39:10.0483615Z             {
2026-06-04T02:39:10.0483855Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:10.0484041Z               "line": 203
2026-06-04T02:39:10.0484202Z             },
2026-06-04T02:39:10.0484357Z             {
2026-06-04T02:39:10.0484588Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:10.0484764Z               "line": 232
2026-06-04T02:39:10.0484914Z             },
2026-06-04T02:39:10.0485069Z             {
2026-06-04T02:39:10.0485294Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:10.0485470Z               "line": 277
2026-06-04T02:39:10.0485629Z             },
2026-06-04T02:39:10.0485780Z             {
2026-06-04T02:39:10.0486016Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:10.0486190Z               "line": 300
2026-06-04T02:39:10.0486356Z             },
2026-06-04T02:39:10.0486511Z             {
2026-06-04T02:39:10.0486981Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:39:10.0487196Z               "line": 322
2026-06-04T02:39:10.0487351Z             },
2026-06-04T02:39:10.0487506Z             {
2026-06-04T02:39:10.0487880Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T02:39:10.0488060Z               "line": 203
2026-06-04T02:39:10.0488218Z             },
2026-06-04T02:39:10.0488374Z             {
2026-06-04T02:39:10.0488612Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T02:39:10.0488784Z               "line": 233
2026-06-04T02:39:10.0488940Z             },
2026-06-04T02:39:10.0489093Z             {
2026-06-04T02:39:10.0489385Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T02:39:10.0489569Z               "line": 247
2026-06-04T02:39:10.0489746Z             },
2026-06-04T02:39:10.0489925Z             {
2026-06-04T02:39:10.0490162Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T02:39:10.0490339Z               "line": 259
2026-06-04T02:39:10.0490504Z             },
2026-06-04T02:39:10.0490671Z             {
2026-06-04T02:39:10.0490904Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:39:10.0491073Z               "line": 158
2026-06-04T02:39:10.0491245Z             },
2026-06-04T02:39:10.0491394Z             {
2026-06-04T02:39:10.0491630Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:39:10.0491799Z               "line": 235
2026-06-04T02:39:10.0491961Z             },
2026-06-04T02:39:10.0492116Z             {
2026-06-04T02:39:10.0492333Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T02:39:10.0492510Z               "line": 68
2026-06-04T02:39:10.0492657Z             },
2026-06-04T02:39:10.0492816Z             {
2026-06-04T02:39:10.0493041Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T02:39:10.0493214Z               "line": 74
2026-06-04T02:39:10.0493369Z             },
2026-06-04T02:39:10.0493517Z             {
2026-06-04T02:39:10.0493756Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T02:39:10.0493923Z               "line": 80
2026-06-04T02:39:10.0494081Z             },
2026-06-04T02:39:10.0494231Z             {
2026-06-04T02:39:10.0494470Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T02:39:10.0494644Z               "line": 99
2026-06-04T02:39:10.0494794Z             }
2026-06-04T02:39:10.0494950Z           ]
2026-06-04T02:39:10.0495100Z         }
2026-06-04T02:39:10.0495252Z       }
2026-06-04T02:39:10.0495399Z     },
2026-06-04T02:39:10.0495550Z     {
2026-06-04T02:39:10.0495725Z       "id": "REQ-MSG-2",
2026-06-04T02:39:10.0496295Z       "title": "spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes",
2026-06-04T02:39:10.0496490Z       "requiredStages": [
2026-06-04T02:39:10.0496643Z         "impl",
2026-06-04T02:39:10.0496803Z         "unit"
2026-06-04T02:39:10.0496953Z       ],
2026-06-04T02:39:10.0497119Z       "stages": {
2026-06-04T02:39:10.0497281Z         "doc": {
2026-06-04T02:39:10.0497486Z           "complete": false,
2026-06-04T02:39:10.0497669Z           "evidence": []
2026-06-04T02:39:10.0497816Z         },
2026-06-04T02:39:10.0497988Z         "impl": {
2026-06-04T02:39:10.0498178Z           "complete": true,
2026-06-04T02:39:10.0498352Z           "evidence": [
2026-06-04T02:39:10.0498511Z             {
2026-06-04T02:39:10.0498723Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0498897Z               "line": 11
2026-06-04T02:39:10.0499049Z             },
2026-06-04T02:39:10.0499316Z             {
2026-06-04T02:39:10.0499544Z               "path": "crates/spt/src/main.rs",
2026-06-04T02:39:10.0499729Z               "line": 8
2026-06-04T02:39:10.0499885Z             }
2026-06-04T02:39:10.0500036Z           ]
2026-06-04T02:39:10.0500194Z         },
2026-06-04T02:39:10.0500351Z         "int": {
2026-06-04T02:39:10.0500544Z           "complete": false,
2026-06-04T02:39:10.0500716Z           "evidence": []
2026-06-04T02:39:10.0500872Z         },
2026-06-04T02:39:10.0501204Z         "unit": {
2026-06-04T02:39:10.0501397Z           "complete": true,
2026-06-04T02:39:10.0501577Z           "evidence": [
2026-06-04T02:39:10.0501728Z             {
2026-06-04T02:39:10.0502128Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0502303Z               "line": 622
2026-06-04T02:39:10.0502462Z             },
2026-06-04T02:39:10.0502619Z             {
2026-06-04T02:39:10.0502832Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0503009Z               "line": 659
2026-06-04T02:39:10.0503158Z             },
2026-06-04T02:39:10.0503321Z             {
2026-06-04T02:39:10.0503531Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0503715Z               "line": 668
2026-06-04T02:39:10.0503874Z             },
2026-06-04T02:39:10.0504025Z             {
2026-06-04T02:39:10.0504239Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0504408Z               "line": 680
2026-06-04T02:39:10.0504569Z             }
2026-06-04T02:39:10.0504736Z           ]
2026-06-04T02:39:10.0504896Z         }
2026-06-04T02:39:10.0505054Z       }
2026-06-04T02:39:10.0505201Z     },
2026-06-04T02:39:10.0505352Z     {
2026-06-04T02:39:10.0505534Z       "id": "REQ-MSG-3",
2026-06-04T02:39:10.0506370Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-04T02:39:10.0506556Z       "requiredStages": [
2026-06-04T02:39:10.0506720Z         "impl",
2026-06-04T02:39:10.0506886Z         "unit",
2026-06-04T02:39:10.0507041Z         "int"
2026-06-04T02:39:10.0507201Z       ],
2026-06-04T02:39:10.0507360Z       "stages": {
2026-06-04T02:39:10.0507529Z         "doc": {
2026-06-04T02:39:10.0507715Z           "complete": false,
2026-06-04T02:39:10.0507895Z           "evidence": []
2026-06-04T02:39:10.0508053Z         },
2026-06-04T02:39:10.0508207Z         "impl": {
2026-06-04T02:39:10.0508391Z           "complete": true,
2026-06-04T02:39:10.0508570Z           "evidence": [
2026-06-04T02:39:10.0508736Z             {
2026-06-04T02:39:10.0508979Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T02:39:10.0509211Z               "line": 19
2026-06-04T02:39:10.0509394Z             },
2026-06-04T02:39:10.0509545Z             {
2026-06-04T02:39:10.0509787Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:39:10.0509951Z               "line": 21
2026-06-04T02:39:10.0510111Z             },
2026-06-04T02:39:10.0510260Z             {
2026-06-04T02:39:10.0510494Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:39:10.0510666Z               "line": 48
2026-06-04T02:39:10.0510814Z             },
2026-06-04T02:39:10.0510970Z             {
2026-06-04T02:39:10.0511191Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:39:10.0511369Z               "line": 106
2026-06-04T02:39:10.0517176Z             }
2026-06-04T02:39:10.0517461Z           ]
2026-06-04T02:39:10.0517623Z         },
2026-06-04T02:39:10.0517828Z         "int": {
2026-06-04T02:39:10.0518018Z           "complete": true,
2026-06-04T02:39:10.0518179Z           "evidence": [
2026-06-04T02:39:10.0518338Z             {
2026-06-04T02:39:10.0518630Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T02:39:10.0518820Z               "line": 10
2026-06-04T02:39:10.0518986Z             },
2026-06-04T02:39:10.0519135Z             {
2026-06-04T02:39:10.0519532Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T02:39:10.0519706Z               "line": 66
2026-06-04T02:39:10.0519866Z             }
2026-06-04T02:39:10.0520026Z           ]
2026-06-04T02:39:10.0520176Z         },
2026-06-04T02:39:10.0520338Z         "unit": {
2026-06-04T02:39:10.0520515Z           "complete": true,
2026-06-04T02:39:10.0520690Z           "evidence": [
2026-06-04T02:39:10.0520839Z             {
2026-06-04T02:39:10.0521075Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:39:10.0521254Z               "line": 160
2026-06-04T02:39:10.0521660Z             },
2026-06-04T02:39:10.0521848Z             {
2026-06-04T02:39:10.0522079Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:39:10.0522255Z               "line": 179
2026-06-04T02:39:10.0522535Z             },
2026-06-04T02:39:10.0522695Z             {
2026-06-04T02:39:10.0522931Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:39:10.0523103Z               "line": 198
2026-06-04T02:39:10.0523270Z             }
2026-06-04T02:39:10.0523422Z           ]
2026-06-04T02:39:10.0523579Z         }
2026-06-04T02:39:10.0523730Z       }
2026-06-04T02:39:10.0523886Z     },
2026-06-04T02:39:10.0524030Z     {
2026-06-04T02:39:10.0524208Z       "id": "REQ-NET-1",
2026-06-04T02:39:10.0524597Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-04T02:39:10.0524776Z       "requiredStages": [
2026-06-04T02:39:10.0524942Z         "impl",
2026-06-04T02:39:10.0525093Z         "unit"
2026-06-04T02:39:10.0525250Z       ],
2026-06-04T02:39:10.0525426Z       "stages": {
2026-06-04T02:39:10.0525580Z         "doc": {
2026-06-04T02:39:10.0525764Z           "complete": false,
2026-06-04T02:39:10.0525932Z           "evidence": []
2026-06-04T02:39:10.0526102Z         },
2026-06-04T02:39:10.0526258Z         "impl": {
2026-06-04T02:39:10.0526443Z           "complete": true,
2026-06-04T02:39:10.0526607Z           "evidence": [
2026-06-04T02:39:10.0526765Z             {
2026-06-04T02:39:10.0527006Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-04T02:39:10.0527172Z               "line": 61
2026-06-04T02:39:10.0527331Z             },
2026-06-04T02:39:10.0527480Z             {
2026-06-04T02:39:10.0527745Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0527918Z               "line": 65
2026-06-04T02:39:10.0528078Z             },
2026-06-04T02:39:10.0528236Z             {
2026-06-04T02:39:10.0528481Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0528673Z               "line": 122
2026-06-04T02:39:10.0528825Z             },
2026-06-04T02:39:10.0528982Z             {
2026-06-04T02:39:10.0529293Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0529484Z               "line": 138
2026-06-04T02:39:10.0529646Z             },
2026-06-04T02:39:10.0529794Z             {
2026-06-04T02:39:10.0530049Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0530220Z               "line": 153
2026-06-04T02:39:10.0530383Z             },
2026-06-04T02:39:10.0530539Z             {
2026-06-04T02:39:10.0530786Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0530959Z               "line": 207
2026-06-04T02:39:10.0531112Z             },
2026-06-04T02:39:10.0531266Z             {
2026-06-04T02:39:10.0531511Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0531687Z               "line": 242
2026-06-04T02:39:10.0531845Z             },
2026-06-04T02:39:10.0531994Z             {
2026-06-04T02:39:10.0532259Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0532431Z               "line": 248
2026-06-04T02:39:10.0532588Z             },
2026-06-04T02:39:10.0532751Z             {
2026-06-04T02:39:10.0533006Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0533190Z               "line": 254
2026-06-04T02:39:10.0533343Z             },
2026-06-04T02:39:10.0533501Z             {
2026-06-04T02:39:10.0533745Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0533921Z               "line": 270
2026-06-04T02:39:10.0534071Z             },
2026-06-04T02:39:10.0534228Z             {
2026-06-04T02:39:10.0534481Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-04T02:39:10.0534653Z               "line": 35
2026-06-04T02:39:10.0534813Z             },
2026-06-04T02:39:10.0534962Z             {
2026-06-04T02:39:10.0535214Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-04T02:39:10.0535535Z               "line": 82
2026-06-04T02:39:10.0535703Z             },
2026-06-04T02:39:10.0535859Z             {
2026-06-04T02:39:10.0536092Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:10.0536391Z               "line": 129
2026-06-04T02:39:10.0536541Z             }
2026-06-04T02:39:10.0536704Z           ]
2026-06-04T02:39:10.0536863Z         },
2026-06-04T02:39:10.0537019Z         "int": {
2026-06-04T02:39:10.0537201Z           "complete": false,
2026-06-04T02:39:10.0537370Z           "evidence": []
2026-06-04T02:39:10.0537526Z         },
2026-06-04T02:39:10.0537686Z         "unit": {
2026-06-04T02:39:10.0537875Z           "complete": true,
2026-06-04T02:39:10.0538042Z           "evidence": [
2026-06-04T02:39:10.0538204Z             {
2026-06-04T02:39:10.0538459Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-04T02:39:10.0538630Z               "line": 142
2026-06-04T02:39:10.0538790Z             },
2026-06-04T02:39:10.0538942Z             {
2026-06-04T02:39:10.0539261Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0539445Z               "line": 331
2026-06-04T02:39:10.0539603Z             },
2026-06-04T02:39:10.0539775Z             {
2026-06-04T02:39:10.0540028Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0540203Z               "line": 345
2026-06-04T02:39:10.0540351Z             },
2026-06-04T02:39:10.0540508Z             {
2026-06-04T02:39:10.0540762Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0540931Z               "line": 364
2026-06-04T02:39:10.0541094Z             },
2026-06-04T02:39:10.0541242Z             {
2026-06-04T02:39:10.0541494Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-04T02:39:10.0541663Z               "line": 106
2026-06-04T02:39:10.0541830Z             },
2026-06-04T02:39:10.0541992Z             {
2026-06-04T02:39:10.0542234Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-04T02:39:10.0542423Z               "line": 148
2026-06-04T02:39:10.0542579Z             },
2026-06-04T02:39:10.0542735Z             {
2026-06-04T02:39:10.0542974Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:39:10.0543165Z               "line": 445
2026-06-04T02:39:10.0543326Z             }
2026-06-04T02:39:10.0543473Z           ]
2026-06-04T02:39:10.0543635Z         }
2026-06-04T02:39:10.0543781Z       }
2026-06-04T02:39:10.0543935Z     },
2026-06-04T02:39:10.0544086Z     {
2026-06-04T02:39:10.0544262Z       "id": "REQ-NET-2",
2026-06-04T02:39:10.0544641Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-04T02:39:10.0544822Z       "requiredStages": [
2026-06-04T02:39:10.0544987Z         "impl"
2026-06-04T02:39:10.0545135Z       ],
2026-06-04T02:39:10.0545306Z       "stages": {
2026-06-04T02:39:10.0545458Z         "doc": {
2026-06-04T02:39:10.0545645Z           "complete": false,
2026-06-04T02:39:10.0545824Z           "evidence": []
2026-06-04T02:39:10.0545974Z         },
2026-06-04T02:39:10.0546147Z         "impl": {
2026-06-04T02:39:10.0546323Z           "complete": true,
2026-06-04T02:39:10.0546500Z           "evidence": [
2026-06-04T02:39:10.0546648Z             {
2026-06-04T02:39:10.0546906Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:39:10.0547080Z               "line": 40
2026-06-04T02:39:10.0547227Z             },
2026-06-04T02:39:10.0547386Z             {
2026-06-04T02:39:10.0553350Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0553627Z               "line": 39
2026-06-04T02:39:10.0553780Z             },
2026-06-04T02:39:10.0553941Z             {
2026-06-04T02:39:10.0554205Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0554368Z               "line": 49
2026-06-04T02:39:10.0554527Z             },
2026-06-04T02:39:10.0554677Z             {
2026-06-04T02:39:10.0554929Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0555351Z               "line": 122
2026-06-04T02:39:10.0555532Z             },
2026-06-04T02:39:10.0555691Z             {
2026-06-04T02:39:10.0555937Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0556254Z               "line": 138
2026-06-04T02:39:10.0556411Z             },
2026-06-04T02:39:10.0556568Z             {
2026-06-04T02:39:10.0556807Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:39:10.0556987Z               "line": 153
2026-06-04T02:39:10.0557144Z             }
2026-06-04T02:39:10.0557290Z           ]
2026-06-04T02:39:10.0557445Z         },
2026-06-04T02:39:10.0557599Z         "int": {
2026-06-04T02:39:10.0557786Z           "complete": false,
2026-06-04T02:39:10.0557952Z           "evidence": []
2026-06-04T02:39:10.0558109Z         },
2026-06-04T02:39:10.0558270Z         "unit": {
2026-06-04T02:39:10.0558444Z           "complete": true,
2026-06-04T02:39:10.0558616Z           "evidence": [
2026-06-04T02:39:10.0558767Z             {
2026-06-04T02:39:10.0559040Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:39:10.0559273Z               "line": 229
2026-06-04T02:39:10.0559440Z             }
2026-06-04T02:39:10.0559601Z           ]
2026-06-04T02:39:10.0559763Z         }
2026-06-04T02:39:10.0559918Z       }
2026-06-04T02:39:10.0560062Z     },
2026-06-04T02:39:10.0560211Z     {
2026-06-04T02:39:10.0560382Z       "id": "REQ-NET-3",
2026-06-04T02:39:10.0560759Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-04T02:39:10.0560955Z       "requiredStages": [],
2026-06-04T02:39:10.0561111Z       "stages": {
2026-06-04T02:39:10.0561276Z         "doc": {
2026-06-04T02:39:10.0561454Z           "complete": false,
2026-06-04T02:39:10.0561636Z           "evidence": []
2026-06-04T02:39:10.0561785Z         },
2026-06-04T02:39:10.0561949Z         "impl": {
2026-06-04T02:39:10.0562136Z           "complete": false,
2026-06-04T02:39:10.0562304Z           "evidence": []
2026-06-04T02:39:10.0562460Z         },
2026-06-04T02:39:10.0562629Z         "int": {
2026-06-04T02:39:10.0562818Z           "complete": false,
2026-06-04T02:39:10.0562990Z           "evidence": []
2026-06-04T02:39:10.0563159Z         },
2026-06-04T02:39:10.0563356Z         "unit": {
2026-06-04T02:39:10.0563541Z           "complete": false,
2026-06-04T02:39:10.0563723Z           "evidence": []
2026-06-04T02:39:10.0563877Z         }
2026-06-04T02:39:10.0564034Z       }
2026-06-04T02:39:10.0564183Z     },
2026-06-04T02:39:10.0564337Z     {
2026-06-04T02:39:10.0564534Z       "id": "REQ-NODE-IDENTITY",
2026-06-04T02:39:10.0565003Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-04T02:39:10.0565194Z       "requiredStages": [
2026-06-04T02:39:10.0565353Z         "impl",
2026-06-04T02:39:10.0565516Z         "unit"
2026-06-04T02:39:10.0565662Z       ],
2026-06-04T02:39:10.0565826Z       "stages": {
2026-06-04T02:39:10.0565990Z         "doc": {
2026-06-04T02:39:10.0566175Z           "complete": false,
2026-06-04T02:39:10.0566364Z           "evidence": []
2026-06-04T02:39:10.0566515Z         },
2026-06-04T02:39:10.0566681Z         "impl": {
2026-06-04T02:39:10.0566853Z           "complete": true,
2026-06-04T02:39:10.0567043Z           "evidence": [
2026-06-04T02:39:10.0567196Z             {
2026-06-04T02:39:10.0567452Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:39:10.0567624Z               "line": 60
2026-06-04T02:39:10.0567773Z             },
2026-06-04T02:39:10.0567931Z             {
2026-06-04T02:39:10.0568175Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:39:10.0568350Z               "line": 68
2026-06-04T02:39:10.0568508Z             },
2026-06-04T02:39:10.0568656Z             {
2026-06-04T02:39:10.0568908Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:39:10.0569073Z               "line": 86
2026-06-04T02:39:10.0569280Z             },
2026-06-04T02:39:10.0569437Z             {
2026-06-04T02:39:10.0569884Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:39:10.0570085Z               "line": 120
2026-06-04T02:39:10.0570241Z             },
2026-06-04T02:39:10.0570399Z             {
2026-06-04T02:39:10.0570645Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:39:10.0571003Z               "line": 127
2026-06-04T02:39:10.0571159Z             },
2026-06-04T02:39:10.0571321Z             {
2026-06-04T02:39:10.0571572Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:39:10.0571742Z               "line": 143
2026-06-04T02:39:10.0571902Z             },
2026-06-04T02:39:10.0572050Z             {
2026-06-04T02:39:10.0572313Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T02:39:10.0572514Z               "line": 16
2026-06-04T02:39:10.0572699Z             }
2026-06-04T02:39:10.0572862Z           ]
2026-06-04T02:39:10.0573013Z         },
2026-06-04T02:39:10.0573174Z         "int": {
2026-06-04T02:39:10.0573354Z           "complete": false,
2026-06-04T02:39:10.0573551Z           "evidence": []
2026-06-04T02:39:10.0573715Z         },
2026-06-04T02:39:10.0573875Z         "unit": {
2026-06-04T02:39:10.0574063Z           "complete": true,
2026-06-04T02:39:10.0574231Z           "evidence": [
2026-06-04T02:39:10.0574410Z             {
2026-06-04T02:39:10.0574659Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:39:10.0574839Z               "line": 199
2026-06-04T02:39:10.0575000Z             },
2026-06-04T02:39:10.0575150Z             {
2026-06-04T02:39:10.0575408Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:39:10.0575577Z               "line": 218
2026-06-04T02:39:10.0575732Z             },
2026-06-04T02:39:10.0575883Z             {
2026-06-04T02:39:10.0576135Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:39:10.0576312Z               "line": 232
2026-06-04T02:39:10.0576463Z             },
2026-06-04T02:39:10.0576619Z             {
2026-06-04T02:39:10.0576858Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:39:10.0577047Z               "line": 248
2026-06-04T02:39:10.0577202Z             },
2026-06-04T02:39:10.0577362Z             {
2026-06-04T02:39:10.0577604Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T02:39:10.0577780Z               "line": 107
2026-06-04T02:39:10.0577940Z             },
2026-06-04T02:39:10.0578087Z             {
2026-06-04T02:39:10.0578330Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T02:39:10.0578496Z               "line": 123
2026-06-04T02:39:10.0578660Z             },
2026-06-04T02:39:10.0578818Z             {
2026-06-04T02:39:10.0579050Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T02:39:10.0579281Z               "line": 135
2026-06-04T02:39:10.0579438Z             }
2026-06-04T02:39:10.0579598Z           ]
2026-06-04T02:39:10.0579747Z         }
2026-06-04T02:39:10.0579912Z       }
2026-06-04T02:39:10.0580066Z     },
2026-06-04T02:39:10.0580215Z     {
2026-06-04T02:39:10.0580394Z       "id": "REQ-NOTIF-1",
2026-06-04T02:39:10.0581160Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-04T02:39:10.0581363Z       "requiredStages": [],
2026-06-04T02:39:10.0581521Z       "stages": {
2026-06-04T02:39:10.0581684Z         "doc": {
2026-06-04T02:39:10.0581871Z           "complete": false,
2026-06-04T02:39:10.0582041Z           "evidence": []
2026-06-04T02:39:10.0582199Z         },
2026-06-04T02:39:10.0582353Z         "impl": {
2026-06-04T02:39:10.0582542Z           "complete": false,
2026-06-04T02:39:10.0582708Z           "evidence": []
2026-06-04T02:39:10.0582864Z         },
2026-06-04T02:39:10.0583027Z         "int": {
2026-06-04T02:39:10.0583202Z           "complete": false,
2026-06-04T02:39:10.0583374Z           "evidence": []
2026-06-04T02:39:10.0583526Z         },
2026-06-04T02:39:10.0583689Z         "unit": {
2026-06-04T02:39:10.0583865Z           "complete": false,
2026-06-04T02:39:10.0589988Z           "evidence": []
2026-06-04T02:39:10.0590277Z         }
2026-06-04T02:39:10.0590431Z       }
2026-06-04T02:39:10.0590585Z     },
2026-06-04T02:39:10.0590729Z     {
2026-06-04T02:39:10.0590934Z       "id": "REQ-NOTIF-2",
2026-06-04T02:39:10.0591648Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-04T02:39:10.0591845Z       "requiredStages": [],
2026-06-04T02:39:10.0592009Z       "stages": {
2026-06-04T02:39:10.0592169Z         "doc": {
2026-06-04T02:39:10.0592358Z           "complete": false,
2026-06-04T02:39:10.0592527Z           "evidence": []
2026-06-04T02:39:10.0592690Z         },
2026-06-04T02:39:10.0592851Z         "impl": {
2026-06-04T02:39:10.0593043Z           "complete": false,
2026-06-04T02:39:10.0593218Z           "evidence": []
2026-06-04T02:39:10.0593363Z         },
2026-06-04T02:39:10.0593525Z         "int": {
2026-06-04T02:39:10.0593705Z           "complete": false,
2026-06-04T02:39:10.0593883Z           "evidence": []
2026-06-04T02:39:10.0594045Z         },
2026-06-04T02:39:10.0594214Z         "unit": {
2026-06-04T02:39:10.0594398Z           "complete": false,
2026-06-04T02:39:10.0594565Z           "evidence": []
2026-06-04T02:39:10.0594732Z         }
2026-06-04T02:39:10.0594877Z       }
2026-06-04T02:39:10.0595031Z     },
2026-06-04T02:39:10.0595174Z     {
2026-06-04T02:39:10.0595362Z       "id": "REQ-PAIR-1",
2026-06-04T02:39:10.0595585Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-04T02:39:10.0595766Z       "requiredStages": [
2026-06-04T02:39:10.0595934Z         "impl",
2026-06-04T02:39:10.0596084Z         "unit"
2026-06-04T02:39:10.0596242Z       ],
2026-06-04T02:39:10.0596403Z       "stages": {
2026-06-04T02:39:10.0596566Z         "doc": {
2026-06-04T02:39:10.0596752Z           "complete": false,
2026-06-04T02:39:10.0596918Z           "evidence": []
2026-06-04T02:39:10.0597074Z         },
2026-06-04T02:39:10.0597229Z         "impl": {
2026-06-04T02:39:10.0597420Z           "complete": true,
2026-06-04T02:39:10.0597594Z           "evidence": [
2026-06-04T02:39:10.0597756Z             {
2026-06-04T02:39:10.0598040Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0598207Z               "line": 27
2026-06-04T02:39:10.0598375Z             },
2026-06-04T02:39:10.0598524Z             {
2026-06-04T02:39:10.0598805Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0598971Z               "line": 88
2026-06-04T02:39:10.0599130Z             },
2026-06-04T02:39:10.0599342Z             {
2026-06-04T02:39:10.0599610Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0599799Z               "line": 110
2026-06-04T02:39:10.0599951Z             },
2026-06-04T02:39:10.0600110Z             {
2026-06-04T02:39:10.0600375Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0600558Z               "line": 153
2026-06-04T02:39:10.0600738Z             },
2026-06-04T02:39:10.0600905Z             {
2026-06-04T02:39:10.0601219Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0601394Z               "line": 182
2026-06-04T02:39:10.0601556Z             },
2026-06-04T02:39:10.0601717Z             {
2026-06-04T02:39:10.0601994Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:39:10.0602172Z               "line": 29
2026-06-04T02:39:10.0602322Z             },
2026-06-04T02:39:10.0602477Z             {
2026-06-04T02:39:10.0602776Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:39:10.0602953Z               "line": 31
2026-06-04T02:39:10.0603111Z             },
2026-06-04T02:39:10.0603260Z             {
2026-06-04T02:39:10.0603530Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0603696Z               "line": 40
2026-06-04T02:39:10.0603851Z             },
2026-06-04T02:39:10.0603999Z             {
2026-06-04T02:39:10.0604267Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0604632Z               "line": 131
2026-06-04T02:39:10.0604804Z             },
2026-06-04T02:39:10.0604965Z             {
2026-06-04T02:39:10.0605220Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0605532Z               "line": 306
2026-06-04T02:39:10.0605681Z             }
2026-06-04T02:39:10.0605840Z           ]
2026-06-04T02:39:10.0605995Z         },
2026-06-04T02:39:10.0606153Z         "int": {
2026-06-04T02:39:10.0606343Z           "complete": false,
2026-06-04T02:39:10.0606522Z           "evidence": []
2026-06-04T02:39:10.0606674Z         },
2026-06-04T02:39:10.0606829Z         "unit": {
2026-06-04T02:39:10.0607020Z           "complete": true,
2026-06-04T02:39:10.0607196Z           "evidence": [
2026-06-04T02:39:10.0607349Z             {
2026-06-04T02:39:10.0607626Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0607807Z               "line": 236
2026-06-04T02:39:10.0607964Z             },
2026-06-04T02:39:10.0608127Z             {
2026-06-04T02:39:10.0608408Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:39:10.0608586Z               "line": 349
2026-06-04T02:39:10.0608753Z             },
2026-06-04T02:39:10.0608909Z             {
2026-06-04T02:39:10.0609215Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:39:10.0609400Z               "line": 194
2026-06-04T02:39:10.0609550Z             },
2026-06-04T02:39:10.0609710Z             {
2026-06-04T02:39:10.0609976Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:39:10.0610147Z               "line": 216
2026-06-04T02:39:10.0610310Z             },
2026-06-04T02:39:10.0610456Z             {
2026-06-04T02:39:10.0610720Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:39:10.0610888Z               "line": 230
2026-06-04T02:39:10.0611048Z             },
2026-06-04T02:39:10.0611203Z             {
2026-06-04T02:39:10.0611474Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:39:10.0611656Z               "line": 242
2026-06-04T02:39:10.0611812Z             },
2026-06-04T02:39:10.0611972Z             {
2026-06-04T02:39:10.0612249Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:39:10.0612429Z               "line": 256
2026-06-04T02:39:10.0612584Z             },
2026-06-04T02:39:10.0612731Z             {
2026-06-04T02:39:10.0612998Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:39:10.0613168Z               "line": 270
2026-06-04T02:39:10.0613332Z             },
2026-06-04T02:39:10.0613490Z             {
2026-06-04T02:39:10.0613749Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:39:10.0613928Z               "line": 277
2026-06-04T02:39:10.0614080Z             },
2026-06-04T02:39:10.0614237Z             {
2026-06-04T02:39:10.0614495Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:39:10.0614677Z               "line": 295
2026-06-04T02:39:10.0614852Z             },
2026-06-04T02:39:10.0615000Z             {
2026-06-04T02:39:10.0615260Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0615440Z               "line": 696
2026-06-04T02:39:10.0615600Z             },
2026-06-04T02:39:10.0615748Z             {
2026-06-04T02:39:10.0616011Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0616190Z               "line": 757
2026-06-04T02:39:10.0616341Z             },
2026-06-04T02:39:10.0616500Z             {
2026-06-04T02:39:10.0616758Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0616935Z               "line": 814
2026-06-04T02:39:10.0617084Z             },
2026-06-04T02:39:10.0617242Z             {
2026-06-04T02:39:10.0617501Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0617666Z               "line": 868
2026-06-04T02:39:10.0617824Z             },
2026-06-04T02:39:10.0618117Z             {
2026-06-04T02:39:10.0618411Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0618584Z               "line": 920
2026-06-04T02:39:10.0618746Z             },
2026-06-04T02:39:10.0619039Z             {
2026-06-04T02:39:10.0619340Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0619528Z               "line": 1084
2026-06-04T02:39:10.0619682Z             }
2026-06-04T02:39:10.0619841Z           ]
2026-06-04T02:39:10.0619991Z         }
2026-06-04T02:39:10.0620147Z       }
2026-06-04T02:39:10.0620298Z     },
2026-06-04T02:39:10.0620444Z     {
2026-06-04T02:39:10.0620627Z       "id": "REQ-PAIR-2",
2026-06-04T02:39:10.0620908Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-04T02:39:10.0626618Z       "requiredStages": [
2026-06-04T02:39:10.0626878Z         "impl",
2026-06-04T02:39:10.0627040Z         "unit"
2026-06-04T02:39:10.0627200Z       ],
2026-06-04T02:39:10.0627358Z       "stages": {
2026-06-04T02:39:10.0627556Z         "doc": {
2026-06-04T02:39:10.0627743Z           "complete": false,
2026-06-04T02:39:10.0627925Z           "evidence": []
2026-06-04T02:39:10.0628072Z         },
2026-06-04T02:39:10.0628253Z         "impl": {
2026-06-04T02:39:10.0628440Z           "complete": true,
2026-06-04T02:39:10.0628607Z           "evidence": [
2026-06-04T02:39:10.0628771Z             {
2026-06-04T02:39:10.0629021Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0629289Z               "line": 42
2026-06-04T02:39:10.0629445Z             },
2026-06-04T02:39:10.0629601Z             {
2026-06-04T02:39:10.0629841Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0630011Z               "line": 151
2026-06-04T02:39:10.0630169Z             },
2026-06-04T02:39:10.0630316Z             {
2026-06-04T02:39:10.0630557Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0630724Z               "line": 171
2026-06-04T02:39:10.0630887Z             },
2026-06-04T02:39:10.0631051Z             {
2026-06-04T02:39:10.0631284Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0631461Z               "line": 209
2026-06-04T02:39:10.0631612Z             },
2026-06-04T02:39:10.0631782Z             {
2026-06-04T02:39:10.0632021Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0632191Z               "line": 232
2026-06-04T02:39:10.0632350Z             }
2026-06-04T02:39:10.0632499Z           ]
2026-06-04T02:39:10.0632659Z         },
2026-06-04T02:39:10.0632821Z         "int": {
2026-06-04T02:39:10.0633007Z           "complete": false,
2026-06-04T02:39:10.0633173Z           "evidence": []
2026-06-04T02:39:10.0633329Z         },
2026-06-04T02:39:10.0633492Z         "unit": {
2026-06-04T02:39:10.0633667Z           "complete": true,
2026-06-04T02:39:10.0633839Z           "evidence": [
2026-06-04T02:39:10.0633989Z             {
2026-06-04T02:39:10.0634228Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0634417Z               "line": 253
2026-06-04T02:39:10.0634575Z             },
2026-06-04T02:39:10.0634731Z             {
2026-06-04T02:39:10.0634961Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0635148Z               "line": 272
2026-06-04T02:39:10.0635299Z             },
2026-06-04T02:39:10.0635456Z             {
2026-06-04T02:39:10.0635694Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0635866Z               "line": 284
2026-06-04T02:39:10.0636029Z             },
2026-06-04T02:39:10.0636187Z             {
2026-06-04T02:39:10.0636427Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0636600Z               "line": 303
2026-06-04T02:39:10.0636763Z             },
2026-06-04T02:39:10.0636920Z             {
2026-06-04T02:39:10.0637150Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0637325Z               "line": 319
2026-06-04T02:39:10.0637476Z             },
2026-06-04T02:39:10.0637631Z             {
2026-06-04T02:39:10.0638174Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0638381Z               "line": 331
2026-06-04T02:39:10.0638544Z             },
2026-06-04T02:39:10.0638828Z             {
2026-06-04T02:39:10.0639065Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0639280Z               "line": 343
2026-06-04T02:39:10.0639448Z             },
2026-06-04T02:39:10.0639596Z             {
2026-06-04T02:39:10.0639830Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0640007Z               "line": 356
2026-06-04T02:39:10.0640156Z             },
2026-06-04T02:39:10.0640315Z             {
2026-06-04T02:39:10.0640542Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:39:10.0640723Z               "line": 370
2026-06-04T02:39:10.0640873Z             }
2026-06-04T02:39:10.0641028Z           ]
2026-06-04T02:39:10.0641185Z         }
2026-06-04T02:39:10.0641332Z       }
2026-06-04T02:39:10.0641483Z     },
2026-06-04T02:39:10.0641643Z     {
2026-06-04T02:39:10.0641826Z       "id": "REQ-PAIR-3",
2026-06-04T02:39:10.0642128Z       "title": "Fetch current pairing code from any paired node",
2026-06-04T02:39:10.0642333Z       "requiredStages": [
2026-06-04T02:39:10.0642500Z         "impl",
2026-06-04T02:39:10.0642654Z         "unit"
2026-06-04T02:39:10.0642805Z       ],
2026-06-04T02:39:10.0642959Z       "stages": {
2026-06-04T02:39:10.0643124Z         "doc": {
2026-06-04T02:39:10.0643305Z           "complete": false,
2026-06-04T02:39:10.0643485Z           "evidence": []
2026-06-04T02:39:10.0643650Z         },
2026-06-04T02:39:10.0643812Z         "impl": {
2026-06-04T02:39:10.0643998Z           "complete": true,
2026-06-04T02:39:10.0644163Z           "evidence": [
2026-06-04T02:39:10.0644325Z             {
2026-06-04T02:39:10.0644536Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0644712Z               "line": 464
2026-06-04T02:39:10.0644872Z             },
2026-06-04T02:39:10.0645020Z             {
2026-06-04T02:39:10.0645247Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0645417Z               "line": 500
2026-06-04T02:39:10.0645579Z             },
2026-06-04T02:39:10.0645731Z             {
2026-06-04T02:39:10.0645961Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0646138Z               "line": 560
2026-06-04T02:39:10.0646289Z             }
2026-06-04T02:39:10.0646448Z           ]
2026-06-04T02:39:10.0646595Z         },
2026-06-04T02:39:10.0646757Z         "int": {
2026-06-04T02:39:10.0646932Z           "complete": false,
2026-06-04T02:39:10.0647116Z           "evidence": []
2026-06-04T02:39:10.0647275Z         },
2026-06-04T02:39:10.0647432Z         "unit": {
2026-06-04T02:39:10.0647614Z           "complete": true,
2026-06-04T02:39:10.0647783Z           "evidence": [
2026-06-04T02:39:10.0647942Z             {
2026-06-04T02:39:10.0648152Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0648327Z               "line": 696
2026-06-04T02:39:10.0648499Z             },
2026-06-04T02:39:10.0648651Z             {
2026-06-04T02:39:10.0648870Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0649038Z               "line": 713
2026-06-04T02:39:10.0649249Z             },
2026-06-04T02:39:10.0649402Z             {
2026-06-04T02:39:10.0649623Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0649794Z               "line": 727
2026-06-04T02:39:10.0649946Z             },
2026-06-04T02:39:10.0650109Z             {
2026-06-04T02:39:10.0650315Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0650489Z               "line": 743
2026-06-04T02:39:10.0650639Z             },
2026-06-04T02:39:10.0650796Z             {
2026-06-04T02:39:10.0651010Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0651178Z               "line": 764
2026-06-04T02:39:10.0651335Z             },
2026-06-04T02:39:10.0651487Z             {
2026-06-04T02:39:10.0651701Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0652023Z               "line": 780
2026-06-04T02:39:10.0652209Z             },
2026-06-04T02:39:10.0652376Z             {
2026-06-04T02:39:10.0652586Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0652888Z               "line": 793
2026-06-04T02:39:10.0653040Z             },
2026-06-04T02:39:10.0653195Z             {
2026-06-04T02:39:10.0653401Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0653580Z               "line": 802
2026-06-04T02:39:10.0653740Z             }
2026-06-04T02:39:10.0653893Z           ]
2026-06-04T02:39:10.0654049Z         }
2026-06-04T02:39:10.0654198Z       }
2026-06-04T02:39:10.0654350Z     },
2026-06-04T02:39:10.0654500Z     {
2026-06-04T02:39:10.0654687Z       "id": "REQ-PAIR-4",
2026-06-04T02:39:10.0654916Z       "title": "Subnet naming on first pairing",
2026-06-04T02:39:10.0655096Z       "requiredStages": [
2026-06-04T02:39:10.0655262Z         "impl",
2026-06-04T02:39:10.0655412Z         "unit"
2026-06-04T02:39:10.0655571Z       ],
2026-06-04T02:39:10.0655739Z       "stages": {
2026-06-04T02:39:10.0655905Z         "doc": {
2026-06-04T02:39:10.0661469Z           "complete": false,
2026-06-04T02:39:10.0661745Z           "evidence": []
2026-06-04T02:39:10.0661943Z         },
2026-06-04T02:39:10.0662102Z         "impl": {
2026-06-04T02:39:10.0662285Z           "complete": true,
2026-06-04T02:39:10.0662447Z           "evidence": [
2026-06-04T02:39:10.0662605Z             {
2026-06-04T02:39:10.0662859Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:39:10.0663025Z               "line": 154
2026-06-04T02:39:10.0663185Z             }
2026-06-04T02:39:10.0663333Z           ]
2026-06-04T02:39:10.0663493Z         },
2026-06-04T02:39:10.0663651Z         "int": {
2026-06-04T02:39:10.0663835Z           "complete": false,
2026-06-04T02:39:10.0664011Z           "evidence": []
2026-06-04T02:39:10.0664159Z         },
2026-06-04T02:39:10.0664318Z         "unit": {
2026-06-04T02:39:10.0664492Z           "complete": true,
2026-06-04T02:39:10.0664675Z           "evidence": [
2026-06-04T02:39:10.0664828Z             {
2026-06-04T02:39:10.0665105Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0665292Z               "line": 972
2026-06-04T02:39:10.0665440Z             }
2026-06-04T02:39:10.0665620Z           ]
2026-06-04T02:39:10.0665766Z         }
2026-06-04T02:39:10.0665919Z       }
2026-06-04T02:39:10.0666062Z     },
2026-06-04T02:39:10.0666216Z     {
2026-06-04T02:39:10.0666403Z       "id": "REQ-PAIR-5",
2026-06-04T02:39:10.0667036Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-04T02:39:10.0667227Z       "requiredStages": [
2026-06-04T02:39:10.0667384Z         "impl",
2026-06-04T02:39:10.0667544Z         "unit"
2026-06-04T02:39:10.0667692Z       ],
2026-06-04T02:39:10.0667858Z       "stages": {
2026-06-04T02:39:10.0668025Z         "doc": {
2026-06-04T02:39:10.0668199Z           "complete": false,
2026-06-04T02:39:10.0668387Z           "evidence": []
2026-06-04T02:39:10.0668538Z         },
2026-06-04T02:39:10.0668704Z         "impl": {
2026-06-04T02:39:10.0668884Z           "complete": true,
2026-06-04T02:39:10.0669055Z           "evidence": [
2026-06-04T02:39:10.0669280Z             {
2026-06-04T02:39:10.0669581Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:39:10.0669761Z               "line": 33
2026-06-04T02:39:10.0669909Z             },
2026-06-04T02:39:10.0670066Z             {
2026-06-04T02:39:10.0670354Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:39:10.0670532Z               "line": 45
2026-06-04T02:39:10.0670691Z             },
2026-06-04T02:39:10.0670841Z             {
2026-06-04T02:39:10.0671138Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:39:10.0671306Z               "line": 59
2026-06-04T02:39:10.0671466Z             },
2026-06-04T02:39:10.0671616Z             {
2026-06-04T02:39:10.0672114Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0672333Z               "line": 306
2026-06-04T02:39:10.0672487Z             }
2026-06-04T02:39:10.0672647Z           ]
2026-06-04T02:39:10.0672928Z         },
2026-06-04T02:39:10.0673091Z         "int": {
2026-06-04T02:39:10.0673271Z           "complete": false,
2026-06-04T02:39:10.0673475Z           "evidence": []
2026-06-04T02:39:10.0673671Z         },
2026-06-04T02:39:10.0673861Z         "unit": {
2026-06-04T02:39:10.0674054Z           "complete": true,
2026-06-04T02:39:10.0674221Z           "evidence": [
2026-06-04T02:39:10.0674378Z             {
2026-06-04T02:39:10.0674675Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:39:10.0674855Z               "line": 72
2026-06-04T02:39:10.0675016Z             },
2026-06-04T02:39:10.0675167Z             {
2026-06-04T02:39:10.0675459Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:39:10.0675628Z               "line": 82
2026-06-04T02:39:10.0675803Z             },
2026-06-04T02:39:10.0675964Z             {
2026-06-04T02:39:10.0676255Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:39:10.0676445Z               "line": 92
2026-06-04T02:39:10.0676596Z             },
2026-06-04T02:39:10.0676750Z             {
2026-06-04T02:39:10.0677032Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:39:10.0677209Z               "line": 102
2026-06-04T02:39:10.0677362Z             },
2026-06-04T02:39:10.0677517Z             {
2026-06-04T02:39:10.0677831Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:39:10.0678004Z               "line": 117
2026-06-04T02:39:10.0678165Z             },
2026-06-04T02:39:10.0678312Z             {
2026-06-04T02:39:10.0678583Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0678761Z               "line": 750
2026-06-04T02:39:10.0678912Z             },
2026-06-04T02:39:10.0679082Z             {
2026-06-04T02:39:10.0679423Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0679620Z               "line": 806
2026-06-04T02:39:10.0679769Z             },
2026-06-04T02:39:10.0679955Z             {
2026-06-04T02:39:10.0680222Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:39:10.0680394Z               "line": 1026
2026-06-04T02:39:10.0680554Z             }
2026-06-04T02:39:10.0680703Z           ]
2026-06-04T02:39:10.0680860Z         }
2026-06-04T02:39:10.0681008Z       }
2026-06-04T02:39:10.0681159Z     },
2026-06-04T02:39:10.0681317Z     {
2026-06-04T02:39:10.0681498Z       "id": "REQ-PAIR-6",
2026-06-04T02:39:10.0682050Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-04T02:39:10.0682233Z       "requiredStages": [
2026-06-04T02:39:10.0682400Z         "impl",
2026-06-04T02:39:10.0682548Z         "unit"
2026-06-04T02:39:10.0682706Z       ],
2026-06-04T02:39:10.0682888Z       "stages": {
2026-06-04T02:39:10.0683043Z         "doc": {
2026-06-04T02:39:10.0683233Z           "complete": false,
2026-06-04T02:39:10.0683400Z           "evidence": []
2026-06-04T02:39:10.0683571Z         },
2026-06-04T02:39:10.0683727Z         "impl": {
2026-06-04T02:39:10.0683912Z           "complete": true,
2026-06-04T02:39:10.0684087Z           "evidence": [
2026-06-04T02:39:10.0684240Z             {
2026-06-04T02:39:10.0684627Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0684833Z               "line": 500
2026-06-04T02:39:10.0685051Z             },
2026-06-04T02:39:10.0685272Z             {
2026-06-04T02:39:10.0685573Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0685796Z               "line": 560
2026-06-04T02:39:10.0685975Z             },
2026-06-04T02:39:10.0686163Z             {
2026-06-04T02:39:10.0686427Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T02:39:10.0686637Z               "line": 18
2026-06-04T02:39:10.0687016Z             },
2026-06-04T02:39:10.0687255Z             {
2026-06-04T02:39:10.0687536Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T02:39:10.0687736Z               "line": 49
2026-06-04T02:39:10.0688122Z             },
2026-06-04T02:39:10.0688283Z             {
2026-06-04T02:39:10.0688539Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T02:39:10.0688735Z               "line": 70
2026-06-04T02:39:10.0688896Z             }
2026-06-04T02:39:10.0689071Z           ]
2026-06-04T02:39:10.0689292Z         },
2026-06-04T02:39:10.0689490Z         "int": {
2026-06-04T02:39:10.0689687Z           "complete": false,
2026-06-04T02:39:10.0689886Z           "evidence": []
2026-06-04T02:39:10.0690046Z         },
2026-06-04T02:39:10.0690228Z         "unit": {
2026-06-04T02:39:10.0690425Z           "complete": true,
2026-06-04T02:39:10.0690606Z           "evidence": [
2026-06-04T02:39:10.0690783Z             {
2026-06-04T02:39:10.0691006Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0691220Z               "line": 815
2026-06-04T02:39:10.0691386Z             },
2026-06-04T02:39:10.0691561Z             {
2026-06-04T02:39:10.0691786Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0691978Z               "line": 832
2026-06-04T02:39:10.0692150Z             },
2026-06-04T02:39:10.0692317Z             {
2026-06-04T02:39:10.0692567Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T02:39:10.0692755Z               "line": 132
2026-06-04T02:39:10.0692923Z             },
2026-06-04T02:39:10.0693090Z             {
2026-06-04T02:39:10.0693324Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T02:39:10.0693506Z               "line": 141
2026-06-04T02:39:10.0693664Z             }
2026-06-04T02:39:10.0700796Z           ]
2026-06-04T02:39:10.0701074Z         }
2026-06-04T02:39:10.0701228Z       }
2026-06-04T02:39:10.0701384Z     },
2026-06-04T02:39:10.0701531Z     {
2026-06-04T02:39:10.0701730Z       "id": "REQ-PAIR-7",
2026-06-04T02:39:10.0702120Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-04T02:39:10.0702317Z       "requiredStages": [],
2026-06-04T02:39:10.0702486Z       "stages": {
2026-06-04T02:39:10.0702661Z         "doc": {
2026-06-04T02:39:10.0702851Z           "complete": false,
2026-06-04T02:39:10.0703023Z           "evidence": []
2026-06-04T02:39:10.0703180Z         },
2026-06-04T02:39:10.0703338Z         "impl": {
2026-06-04T02:39:10.0703524Z           "complete": false,
2026-06-04T02:39:10.0703692Z           "evidence": []
2026-06-04T02:39:10.0703853Z         },
2026-06-04T02:39:10.0704143Z         "int": {
2026-06-04T02:39:10.0704320Z           "complete": false,
2026-06-04T02:39:10.0704495Z           "evidence": []
2026-06-04T02:39:10.0704643Z         },
2026-06-04T02:39:10.0704806Z         "unit": {
2026-06-04T02:39:10.0704983Z           "complete": false,
2026-06-04T02:39:10.0705163Z           "evidence": []
2026-06-04T02:39:10.0705318Z         }
2026-06-04T02:39:10.0705465Z       }
2026-06-04T02:39:10.0705627Z     },
2026-06-04T02:39:10.0705772Z     {
2026-06-04T02:39:10.0705957Z       "id": "REQ-REACH-1",
2026-06-04T02:39:10.0706256Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-04T02:39:10.0706462Z       "requiredStages": [],
2026-06-04T02:39:10.0706630Z       "stages": {
2026-06-04T02:39:10.0706784Z         "doc": {
2026-06-04T02:39:10.0706973Z           "complete": false,
2026-06-04T02:39:10.0707142Z           "evidence": []
2026-06-04T02:39:10.0707298Z         },
2026-06-04T02:39:10.0707453Z         "impl": {
2026-06-04T02:39:10.0707645Z           "complete": false,
2026-06-04T02:39:10.0707821Z           "evidence": []
2026-06-04T02:39:10.0707975Z         },
2026-06-04T02:39:10.0708139Z         "int": {
2026-06-04T02:39:10.0708317Z           "complete": false,
2026-06-04T02:39:10.0708496Z           "evidence": []
2026-06-04T02:39:10.0708645Z         },
2026-06-04T02:39:10.0708806Z         "unit": {
2026-06-04T02:39:10.0708989Z           "complete": false,
2026-06-04T02:39:10.0709491Z           "evidence": []
2026-06-04T02:39:10.0709667Z         }
2026-06-04T02:39:10.0709817Z       }
2026-06-04T02:39:10.0709979Z     },
2026-06-04T02:39:10.0710123Z     {
2026-06-04T02:39:10.0710444Z       "id": "REQ-REACH-2",
2026-06-04T02:39:10.0710774Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-04T02:39:10.0710959Z       "requiredStages": [],
2026-06-04T02:39:10.0711126Z       "stages": {
2026-06-04T02:39:10.0711286Z         "doc": {
2026-06-04T02:39:10.0711473Z           "complete": false,
2026-06-04T02:39:10.0711643Z           "evidence": []
2026-06-04T02:39:10.0711802Z         },
2026-06-04T02:39:10.0711970Z         "impl": {
2026-06-04T02:39:10.0712144Z           "complete": false,
2026-06-04T02:39:10.0712320Z           "evidence": []
2026-06-04T02:39:10.0712468Z         },
2026-06-04T02:39:10.0712636Z         "int": {
2026-06-04T02:39:10.0712813Z           "complete": false,
2026-06-04T02:39:10.0712997Z           "evidence": []
2026-06-04T02:39:10.0713168Z         },
2026-06-04T02:39:10.0713324Z         "unit": {
2026-06-04T02:39:10.0713508Z           "complete": false,
2026-06-04T02:39:10.0713676Z           "evidence": []
2026-06-04T02:39:10.0713847Z         }
2026-06-04T02:39:10.0713992Z       }
2026-06-04T02:39:10.0714147Z     },
2026-06-04T02:39:10.0714301Z     {
2026-06-04T02:39:10.0714522Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-04T02:39:10.0714912Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-04T02:39:10.0715094Z       "requiredStages": [
2026-06-04T02:39:10.0715256Z         "impl",
2026-06-04T02:39:10.0715411Z         "unit"
2026-06-04T02:39:10.0715568Z       ],
2026-06-04T02:39:10.0715733Z       "stages": {
2026-06-04T02:39:10.0715885Z         "doc": {
2026-06-04T02:39:10.0716069Z           "complete": false,
2026-06-04T02:39:10.0716238Z           "evidence": []
2026-06-04T02:39:10.0716396Z         },
2026-06-04T02:39:10.0716556Z         "impl": {
2026-06-04T02:39:10.0716740Z           "complete": true,
2026-06-04T02:39:10.0716923Z           "evidence": [
2026-06-04T02:39:10.0717075Z             {
2026-06-04T02:39:10.0717322Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:39:10.0717500Z               "line": 18
2026-06-04T02:39:10.0717663Z             },
2026-06-04T02:39:10.0717813Z             {
2026-06-04T02:39:10.0718064Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:39:10.0718236Z               "line": 35
2026-06-04T02:39:10.0718386Z             },
2026-06-04T02:39:10.0718550Z             {
2026-06-04T02:39:10.0718786Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:39:10.0718958Z               "line": 65
2026-06-04T02:39:10.0719107Z             }
2026-06-04T02:39:10.0719317Z           ]
2026-06-04T02:39:10.0719474Z         },
2026-06-04T02:39:10.0719630Z         "int": {
2026-06-04T02:39:10.0719817Z           "complete": false,
2026-06-04T02:39:10.0719985Z           "evidence": []
2026-06-04T02:39:10.0720143Z         },
2026-06-04T02:39:10.0720312Z         "unit": {
2026-06-04T02:39:10.0720499Z           "complete": true,
2026-06-04T02:39:10.0720677Z           "evidence": [
2026-06-04T02:39:10.0720825Z             {
2026-06-04T02:39:10.0721079Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:39:10.0721246Z               "line": 170
2026-06-04T02:39:10.0721407Z             },
2026-06-04T02:39:10.0721558Z             {
2026-06-04T02:39:10.0721797Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:39:10.0721976Z               "line": 184
2026-06-04T02:39:10.0722128Z             },
2026-06-04T02:39:10.0722288Z             {
2026-06-04T02:39:10.0722518Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:39:10.0722693Z               "line": 193
2026-06-04T02:39:10.0722844Z             }
2026-06-04T02:39:10.0723002Z           ]
2026-06-04T02:39:10.0723160Z         }
2026-06-04T02:39:10.0723309Z       }
2026-06-04T02:39:10.0723460Z     },
2026-06-04T02:39:10.0723605Z     {
2026-06-04T02:39:10.0723964Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-04T02:39:10.0724279Z       "title": "Hostable endpoint-types capability declaration",
2026-06-04T02:39:10.0724470Z       "requiredStages": [
2026-06-04T02:39:10.0724772Z         "impl",
2026-06-04T02:39:10.0724928Z         "unit"
2026-06-04T02:39:10.0725084Z       ],
2026-06-04T02:39:10.0725238Z       "stages": {
2026-06-04T02:39:10.0725402Z         "doc": {
2026-06-04T02:39:10.0725581Z           "complete": false,
2026-06-04T02:39:10.0725761Z           "evidence": []
2026-06-04T02:39:10.0725921Z         },
2026-06-04T02:39:10.0726076Z         "impl": {
2026-06-04T02:39:10.0726260Z           "complete": true,
2026-06-04T02:39:10.0726425Z           "evidence": [
2026-06-04T02:39:10.0726586Z             {
2026-06-04T02:39:10.0726830Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:10.0727007Z               "line": 186
2026-06-04T02:39:10.0727164Z             }
2026-06-04T02:39:10.0727309Z           ]
2026-06-04T02:39:10.0727479Z         },
2026-06-04T02:39:10.0727635Z         "int": {
2026-06-04T02:39:10.0727820Z           "complete": false,
2026-06-04T02:39:10.0727990Z           "evidence": []
2026-06-04T02:39:10.0728162Z         },
2026-06-04T02:39:10.0728328Z         "unit": {
2026-06-04T02:39:10.0728504Z           "complete": true,
2026-06-04T02:39:10.0728678Z           "evidence": [
2026-06-04T02:39:10.0728828Z             {
2026-06-04T02:39:10.0729079Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:10.0729298Z               "line": 301
2026-06-04T02:39:10.0729457Z             }
2026-06-04T02:39:10.0729613Z           ]
2026-06-04T02:39:10.0729760Z         }
2026-06-04T02:39:10.0729915Z       }
2026-06-04T02:39:10.0730059Z     },
2026-06-04T02:39:10.0730211Z     {
2026-06-04T02:39:10.0735931Z       "id": "REQ-SEAM-HISTORY",
2026-06-04T02:39:10.0736403Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-04T02:39:10.0736596Z       "requiredStages": [
2026-06-04T02:39:10.0736784Z         "impl",
2026-06-04T02:39:10.0736948Z         "unit",
2026-06-04T02:39:10.0737098Z         "int"
2026-06-04T02:39:10.0737258Z       ],
2026-06-04T02:39:10.0737414Z       "stages": {
2026-06-04T02:39:10.0737587Z         "doc": {
2026-06-04T02:39:10.0737776Z           "complete": false,
2026-06-04T02:39:10.0737950Z           "evidence": []
2026-06-04T02:39:10.0738112Z         },
2026-06-04T02:39:10.0738273Z         "impl": {
2026-06-04T02:39:10.0738458Z           "complete": true,
2026-06-04T02:39:10.0738624Z           "evidence": [
2026-06-04T02:39:10.0738783Z             {
2026-06-04T02:39:10.0739015Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:39:10.0739262Z               "line": 24
2026-06-04T02:39:10.0739439Z             },
2026-06-04T02:39:10.0739589Z             {
2026-06-04T02:39:10.0739832Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:39:10.0739998Z               "line": 22
2026-06-04T02:39:10.0740160Z             }
2026-06-04T02:39:10.0740326Z           ]
2026-06-04T02:39:10.0740479Z         },
2026-06-04T02:39:10.0740639Z         "int": {
2026-06-04T02:39:10.0740817Z           "complete": true,
2026-06-04T02:39:10.0741001Z           "evidence": [
2026-06-04T02:39:10.0741151Z             {
2026-06-04T02:39:10.0741405Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:39:10.0741584Z               "line": 202
2026-06-04T02:39:10.0741736Z             }
2026-06-04T02:39:10.0741894Z           ]
2026-06-04T02:39:10.0742043Z         },
2026-06-04T02:39:10.0742209Z         "unit": {
2026-06-04T02:39:10.0742386Z           "complete": true,
2026-06-04T02:39:10.0742560Z           "evidence": [
2026-06-04T02:39:10.0742717Z             {
2026-06-04T02:39:10.0742940Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:39:10.0743116Z               "line": 163
2026-06-04T02:39:10.0743269Z             },
2026-06-04T02:39:10.0743429Z             {
2026-06-04T02:39:10.0743878Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:39:10.0744075Z               "line": 186
2026-06-04T02:39:10.0744231Z             },
2026-06-04T02:39:10.0744383Z             {
2026-06-04T02:39:10.0744614Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:39:10.0744922Z               "line": 195
2026-06-04T02:39:10.0745084Z             },
2026-06-04T02:39:10.0745232Z             {
2026-06-04T02:39:10.0745480Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:39:10.0745657Z               "line": 195
2026-06-04T02:39:10.0745811Z             },
2026-06-04T02:39:10.0745970Z             {
2026-06-04T02:39:10.0746201Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:39:10.0746381Z               "line": 209
2026-06-04T02:39:10.0746534Z             },
2026-06-04T02:39:10.0746693Z             {
2026-06-04T02:39:10.0746932Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:39:10.0747101Z               "line": 228
2026-06-04T02:39:10.0747260Z             },
2026-06-04T02:39:10.0747422Z             {
2026-06-04T02:39:10.0747659Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:39:10.0747827Z               "line": 248
2026-06-04T02:39:10.0748008Z             },
2026-06-04T02:39:10.0748165Z             {
2026-06-04T02:39:10.0748391Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:39:10.0748569Z               "line": 264
2026-06-04T02:39:10.0748724Z             },
2026-06-04T02:39:10.0748882Z             {
2026-06-04T02:39:10.0749120Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:39:10.0749336Z               "line": 279
2026-06-04T02:39:10.0749491Z             }
2026-06-04T02:39:10.0749637Z           ]
2026-06-04T02:39:10.0749791Z         }
2026-06-04T02:39:10.0749939Z       }
2026-06-04T02:39:10.0750090Z     },
2026-06-04T02:39:10.0750235Z     {
2026-06-04T02:39:10.0750430Z       "id": "REQ-SEAM-INJECT",
2026-06-04T02:39:10.0750769Z       "title": "inject-input methods configurable per activity-state",
2026-06-04T02:39:10.0750962Z       "requiredStages": [
2026-06-04T02:39:10.0751128Z         "impl",
2026-06-04T02:39:10.0751280Z         "unit"
2026-06-04T02:39:10.0751438Z       ],
2026-06-04T02:39:10.0751606Z       "stages": {
2026-06-04T02:39:10.0751769Z         "doc": {
2026-06-04T02:39:10.0751955Z           "complete": false,
2026-06-04T02:39:10.0752120Z           "evidence": []
2026-06-04T02:39:10.0752277Z         },
2026-06-04T02:39:10.0752435Z         "impl": {
2026-06-04T02:39:10.0752620Z           "complete": true,
2026-06-04T02:39:10.0752789Z           "evidence": [
2026-06-04T02:39:10.0752948Z             {
2026-06-04T02:39:10.0753189Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:39:10.0753361Z               "line": 19
2026-06-04T02:39:10.0753518Z             },
2026-06-04T02:39:10.0753665Z             {
2026-06-04T02:39:10.0753904Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:39:10.0754078Z               "line": 104
2026-06-04T02:39:10.0754238Z             }
2026-06-04T02:39:10.0754519Z           ]
2026-06-04T02:39:10.0754666Z         },
2026-06-04T02:39:10.0754831Z         "int": {
2026-06-04T02:39:10.0755009Z           "complete": false,
2026-06-04T02:39:10.0755202Z           "evidence": []
2026-06-04T02:39:10.0755352Z         },
2026-06-04T02:39:10.0755514Z         "unit": {
2026-06-04T02:39:10.0755703Z           "complete": true,
2026-06-04T02:39:10.0755866Z           "evidence": [
2026-06-04T02:39:10.0756025Z             {
2026-06-04T02:39:10.0756258Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:39:10.0756434Z               "line": 222
2026-06-04T02:39:10.0756594Z             },
2026-06-04T02:39:10.0756745Z             {
2026-06-04T02:39:10.0756983Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:39:10.0757151Z               "line": 236
2026-06-04T02:39:10.0757312Z             }
2026-06-04T02:39:10.0757464Z           ]
2026-06-04T02:39:10.0757623Z         }
2026-06-04T02:39:10.0757771Z       }
2026-06-04T02:39:10.0758084Z     },
2026-06-04T02:39:10.0758246Z     {
2026-06-04T02:39:10.0758445Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-04T02:39:10.0758728Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-04T02:39:10.0759077Z       "requiredStages": [
2026-06-04T02:39:10.0759287Z         "impl",
2026-06-04T02:39:10.0759449Z         "unit"
2026-06-04T02:39:10.0759613Z       ],
2026-06-04T02:39:10.0759778Z       "stages": {
2026-06-04T02:39:10.0759932Z         "doc": {
2026-06-04T02:39:10.0760123Z           "complete": false,
2026-06-04T02:39:10.0760293Z           "evidence": []
2026-06-04T02:39:10.0760454Z         },
2026-06-04T02:39:10.0760611Z         "impl": {
2026-06-04T02:39:10.0760797Z           "complete": true,
2026-06-04T02:39:10.0760969Z           "evidence": [
2026-06-04T02:39:10.0761120Z             {
2026-06-04T02:39:10.0761367Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0761531Z               "line": 18
2026-06-04T02:39:10.0761694Z             },
2026-06-04T02:39:10.0761859Z             {
2026-06-04T02:39:10.0762102Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0762281Z               "line": 257
2026-06-04T02:39:10.0762445Z             }
2026-06-04T02:39:10.0762601Z           ]
2026-06-04T02:39:10.0762749Z         },
2026-06-04T02:39:10.0762912Z         "int": {
2026-06-04T02:39:10.0763091Z           "complete": false,
2026-06-04T02:39:10.0763270Z           "evidence": []
2026-06-04T02:39:10.0763431Z         },
2026-06-04T02:39:10.0763583Z         "unit": {
2026-06-04T02:39:10.0763766Z           "complete": true,
2026-06-04T02:39:10.0763934Z           "evidence": [
2026-06-04T02:39:10.0764095Z             {
2026-06-04T02:39:10.0764324Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0764497Z               "line": 420
2026-06-04T02:39:10.0764660Z             },
2026-06-04T02:39:10.0764814Z             {
2026-06-04T02:39:10.0765050Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0765224Z               "line": 430
2026-06-04T02:39:10.0765382Z             }
2026-06-04T02:39:10.0765542Z           ]
2026-06-04T02:39:10.0771138Z         }
2026-06-04T02:39:10.0771444Z       }
2026-06-04T02:39:10.0771758Z     },
2026-06-04T02:39:10.0772084Z     {
2026-06-04T02:39:10.0772306Z       "id": "REQ-SEAM-PSYCHE",
2026-06-04T02:39:10.0772822Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-04T02:39:10.0773049Z       "requiredStages": [
2026-06-04T02:39:10.0773257Z         "impl",
2026-06-04T02:39:10.0773456Z         "unit",
2026-06-04T02:39:10.0773649Z         "int"
2026-06-04T02:39:10.0773837Z       ],
2026-06-04T02:39:10.0774162Z       "stages": {
2026-06-04T02:39:10.0774399Z         "doc": {
2026-06-04T02:39:10.0774621Z           "complete": false,
2026-06-04T02:39:10.0774802Z           "evidence": []
2026-06-04T02:39:10.0774976Z         },
2026-06-04T02:39:10.0775146Z         "impl": {
2026-06-04T02:39:10.0775327Z           "complete": true,
2026-06-04T02:39:10.0775519Z           "evidence": [
2026-06-04T02:39:10.0775675Z             {
2026-06-04T02:39:10.0775929Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T02:39:10.0776100Z               "line": 19
2026-06-04T02:39:10.0776279Z             },
2026-06-04T02:39:10.0776441Z             {
2026-06-04T02:39:10.0776667Z               "path": "crates/spt/src/api/live.rs",
2026-06-04T02:39:10.0776843Z               "line": 12
2026-06-04T02:39:10.0776992Z             },
2026-06-04T02:39:10.0777154Z             {
2026-06-04T02:39:10.0777389Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0777568Z               "line": 164
2026-06-04T02:39:10.0777733Z             }
2026-06-04T02:39:10.0777885Z           ]
2026-06-04T02:39:10.0778044Z         },
2026-06-04T02:39:10.0778203Z         "int": {
2026-06-04T02:39:10.0778384Z           "complete": true,
2026-06-04T02:39:10.0778551Z           "evidence": [
2026-06-04T02:39:10.0778710Z             {
2026-06-04T02:39:10.0779269Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:39:10.0779779Z               "line": 201
2026-06-04T02:39:10.0779956Z             }
2026-06-04T02:39:10.0780107Z           ]
2026-06-04T02:39:10.0780422Z         },
2026-06-04T02:39:10.0780580Z         "unit": {
2026-06-04T02:39:10.0780770Z           "complete": true,
2026-06-04T02:39:10.0780950Z           "evidence": [
2026-06-04T02:39:10.0781099Z             {
2026-06-04T02:39:10.0781344Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T02:39:10.0781514Z               "line": 161
2026-06-04T02:39:10.0781677Z             },
2026-06-04T02:39:10.0781829Z             {
2026-06-04T02:39:10.0782078Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T02:39:10.0782261Z               "line": 168
2026-06-04T02:39:10.0782418Z             },
2026-06-04T02:39:10.0782582Z             {
2026-06-04T02:39:10.0782820Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T02:39:10.0782999Z               "line": 191
2026-06-04T02:39:10.0783172Z             },
2026-06-04T02:39:10.0783336Z             {
2026-06-04T02:39:10.0783579Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-04T02:39:10.0783745Z               "line": 105
2026-06-04T02:39:10.0783916Z             },
2026-06-04T02:39:10.0784065Z             {
2026-06-04T02:39:10.0784305Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-04T02:39:10.0784485Z               "line": 122
2026-06-04T02:39:10.0784647Z             },
2026-06-04T02:39:10.0784806Z             {
2026-06-04T02:39:10.0785033Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-04T02:39:10.0785211Z               "line": 136
2026-06-04T02:39:10.0785361Z             }
2026-06-04T02:39:10.0785524Z           ]
2026-06-04T02:39:10.0785670Z         }
2026-06-04T02:39:10.0785826Z       }
2026-06-04T02:39:10.0785978Z     },
2026-06-04T02:39:10.0786124Z     {
2026-06-04T02:39:10.0786317Z       "id": "REQ-SEAM-RESUME",
2026-06-04T02:39:10.0786708Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-04T02:39:10.0786899Z       "requiredStages": [
2026-06-04T02:39:10.0787053Z         "impl",
2026-06-04T02:39:10.0787215Z         "unit"
2026-06-04T02:39:10.0787377Z       ],
2026-06-04T02:39:10.0787533Z       "stages": {
2026-06-04T02:39:10.0787691Z         "doc": {
2026-06-04T02:39:10.0787869Z           "complete": false,
2026-06-04T02:39:10.0788047Z           "evidence": []
2026-06-04T02:39:10.0788196Z         },
2026-06-04T02:39:10.0788368Z         "impl": {
2026-06-04T02:39:10.0788552Z           "complete": true,
2026-06-04T02:39:10.0788723Z           "evidence": [
2026-06-04T02:39:10.0788883Z             {
2026-06-04T02:39:10.0789116Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T02:39:10.0789367Z               "line": 19
2026-06-04T02:39:10.0789534Z             }
2026-06-04T02:39:10.0789702Z           ]
2026-06-04T02:39:10.0789862Z         },
2026-06-04T02:39:10.0790017Z         "int": {
2026-06-04T02:39:10.0790219Z           "complete": false,
2026-06-04T02:39:10.0790395Z           "evidence": []
2026-06-04T02:39:10.0790551Z         },
2026-06-04T02:39:10.0790704Z         "unit": {
2026-06-04T02:39:10.0790891Z           "complete": true,
2026-06-04T02:39:10.0791078Z           "evidence": [
2026-06-04T02:39:10.0791231Z             {
2026-06-04T02:39:10.0791476Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T02:39:10.0791648Z               "line": 145
2026-06-04T02:39:10.0791811Z             },
2026-06-04T02:39:10.0791959Z             {
2026-06-04T02:39:10.0792198Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T02:39:10.0792384Z               "line": 164
2026-06-04T02:39:10.0792536Z             },
2026-06-04T02:39:10.0792693Z             {
2026-06-04T02:39:10.0792918Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T02:39:10.0793097Z               "line": 182
2026-06-04T02:39:10.0793247Z             },
2026-06-04T02:39:10.0793406Z             {
2026-06-04T02:39:10.0793817Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T02:39:10.0794007Z               "line": 206
2026-06-04T02:39:10.0794168Z             }
2026-06-04T02:39:10.0794322Z           ]
2026-06-04T02:39:10.0794619Z         }
2026-06-04T02:39:10.0794775Z       }
2026-06-04T02:39:10.0794933Z     },
2026-06-04T02:39:10.0795086Z     {
2026-06-04T02:39:10.0795272Z       "id": "REQ-SEAM-SPAWN",
2026-06-04T02:39:10.0795475Z       "title": "spawn-session seam",
2026-06-04T02:39:10.0795659Z       "requiredStages": [
2026-06-04T02:39:10.0795828Z         "impl",
2026-06-04T02:39:10.0795984Z         "unit"
2026-06-04T02:39:10.0796144Z       ],
2026-06-04T02:39:10.0796310Z       "stages": {
2026-06-04T02:39:10.0796468Z         "doc": {
2026-06-04T02:39:10.0796657Z           "complete": false,
2026-06-04T02:39:10.0796826Z           "evidence": []
2026-06-04T02:39:10.0796986Z         },
2026-06-04T02:39:10.0797147Z         "impl": {
2026-06-04T02:39:10.0797333Z           "complete": true,
2026-06-04T02:39:10.0797529Z           "evidence": [
2026-06-04T02:39:10.0797687Z             {
2026-06-04T02:39:10.0797950Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:39:10.0798115Z               "line": 20
2026-06-04T02:39:10.0798288Z             }
2026-06-04T02:39:10.0798438Z           ]
2026-06-04T02:39:10.0798597Z         },
2026-06-04T02:39:10.0798761Z         "int": {
2026-06-04T02:39:10.0798939Z           "complete": false,
2026-06-04T02:39:10.0799123Z           "evidence": []
2026-06-04T02:39:10.0799338Z         },
2026-06-04T02:39:10.0799511Z         "unit": {
2026-06-04T02:39:10.0799692Z           "complete": true,
2026-06-04T02:39:10.0799875Z           "evidence": [
2026-06-04T02:39:10.0800039Z             {
2026-06-04T02:39:10.0800291Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:39:10.0800470Z               "line": 397
2026-06-04T02:39:10.0800621Z             },
2026-06-04T02:39:10.0800780Z             {
2026-06-04T02:39:10.0801036Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:39:10.0801223Z               "line": 404
2026-06-04T02:39:10.0801380Z             },
2026-06-04T02:39:10.0801528Z             {
2026-06-04T02:39:10.0801780Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:39:10.0801962Z               "line": 414
2026-06-04T02:39:10.0802120Z             },
2026-06-04T02:39:10.0808464Z             {
2026-06-04T02:39:10.0808856Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:39:10.0809046Z               "line": 420
2026-06-04T02:39:10.0809286Z             },
2026-06-04T02:39:10.0809444Z             {
2026-06-04T02:39:10.0809696Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:39:10.0809876Z               "line": 440
2026-06-04T02:39:10.0810026Z             },
2026-06-04T02:39:10.0810187Z             {
2026-06-04T02:39:10.0810444Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:39:10.0810612Z               "line": 473
2026-06-04T02:39:10.0810809Z             }
2026-06-04T02:39:10.0810966Z           ]
2026-06-04T02:39:10.0811126Z         }
2026-06-04T02:39:10.0811280Z       }
2026-06-04T02:39:10.0811436Z     },
2026-06-04T02:39:10.0811590Z     {
2026-06-04T02:39:10.0811794Z       "id": "REQ-SEAM-UPDATE",
2026-06-04T02:39:10.0812140Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-04T02:39:10.0812322Z       "requiredStages": [
2026-06-04T02:39:10.0812486Z         "impl",
2026-06-04T02:39:10.0812643Z         "unit"
2026-06-04T02:39:10.0812805Z       ],
2026-06-04T02:39:10.0812971Z       "stages": {
2026-06-04T02:39:10.0813125Z         "doc": {
2026-06-04T02:39:10.0813314Z           "complete": false,
2026-06-04T02:39:10.0813481Z           "evidence": []
2026-06-04T02:39:10.0813639Z         },
2026-06-04T02:39:10.0813796Z         "impl": {
2026-06-04T02:39:10.0813984Z           "complete": true,
2026-06-04T02:39:10.0814166Z           "evidence": [
2026-06-04T02:39:10.0814316Z             {
2026-06-04T02:39:10.0814863Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:39:10.0815060Z               "line": 28
2026-06-04T02:39:10.0815226Z             },
2026-06-04T02:39:10.0815377Z             {
2026-06-04T02:39:10.0815796Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:39:10.0815972Z               "line": 83
2026-06-04T02:39:10.0816122Z             }
2026-06-04T02:39:10.0816282Z           ]
2026-06-04T02:39:10.0816429Z         },
2026-06-04T02:39:10.0816596Z         "int": {
2026-06-04T02:39:10.0816778Z           "complete": false,
2026-06-04T02:39:10.0816965Z           "evidence": []
2026-06-04T02:39:10.0817123Z         },
2026-06-04T02:39:10.0817279Z         "unit": {
2026-06-04T02:39:10.0817467Z           "complete": true,
2026-06-04T02:39:10.0817632Z           "evidence": [
2026-06-04T02:39:10.0817790Z             {
2026-06-04T02:39:10.0818055Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:39:10.0818233Z               "line": 248
2026-06-04T02:39:10.0818402Z             },
2026-06-04T02:39:10.0818555Z             {
2026-06-04T02:39:10.0818835Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:39:10.0819015Z               "line": 259
2026-06-04T02:39:10.0819222Z             }
2026-06-04T02:39:10.0819374Z           ]
2026-06-04T02:39:10.0819715Z         }
2026-06-04T02:39:10.0819897Z       }
2026-06-04T02:39:10.0820199Z     },
2026-06-04T02:39:10.0820355Z     {
2026-06-04T02:39:10.0820536Z       "id": "REQ-SEC-1",
2026-06-04T02:39:10.0821380Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-04T02:39:10.0821575Z       "requiredStages": [],
2026-06-04T02:39:10.0821739Z       "stages": {
2026-06-04T02:39:10.0821911Z         "doc": {
2026-06-04T02:39:10.0822092Z           "complete": false,
2026-06-04T02:39:10.0822272Z           "evidence": []
2026-06-04T02:39:10.0822429Z         },
2026-06-04T02:39:10.0822612Z         "impl": {
2026-06-04T02:39:10.0822802Z           "complete": false,
2026-06-04T02:39:10.0822969Z           "evidence": []
2026-06-04T02:39:10.0823128Z         },
2026-06-04T02:39:10.0823294Z         "int": {
2026-06-04T02:39:10.0823478Z           "complete": false,
2026-06-04T02:39:10.0823646Z           "evidence": []
2026-06-04T02:39:10.0823809Z         },
2026-06-04T02:39:10.0823974Z         "unit": {
2026-06-04T02:39:10.0824152Z           "complete": false,
2026-06-04T02:39:10.0824325Z           "evidence": []
2026-06-04T02:39:10.0824474Z         }
2026-06-04T02:39:10.0824632Z       }
2026-06-04T02:39:10.0824779Z     },
2026-06-04T02:39:10.0824933Z     {
2026-06-04T02:39:10.0825108Z       "id": "REQ-START-1",
2026-06-04T02:39:10.0825523Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-04T02:39:10.0825717Z       "requiredStages": [
2026-06-04T02:39:10.0825869Z         "impl",
2026-06-04T02:39:10.0826042Z         "unit"
2026-06-04T02:39:10.0826204Z       ],
2026-06-04T02:39:10.0826370Z       "stages": {
2026-06-04T02:39:10.0826525Z         "doc": {
2026-06-04T02:39:10.0826719Z           "complete": false,
2026-06-04T02:39:10.0826894Z           "evidence": []
2026-06-04T02:39:10.0827057Z         },
2026-06-04T02:39:10.0827221Z         "impl": {
2026-06-04T02:39:10.0827398Z           "complete": true,
2026-06-04T02:39:10.0827572Z           "evidence": [
2026-06-04T02:39:10.0827722Z             {
2026-06-04T02:39:10.0827966Z               "path": "crates/spt-store/src/seed.rs",
2026-06-04T02:39:10.0828136Z               "line": 16
2026-06-04T02:39:10.0828288Z             }
2026-06-04T02:39:10.0828447Z           ]
2026-06-04T02:39:10.0828602Z         },
2026-06-04T02:39:10.0828767Z         "int": {
2026-06-04T02:39:10.0828947Z           "complete": false,
2026-06-04T02:39:10.0829126Z           "evidence": []
2026-06-04T02:39:10.0829344Z         },
2026-06-04T02:39:10.0829504Z         "unit": {
2026-06-04T02:39:10.0829702Z           "complete": true,
2026-06-04T02:39:10.0830095Z           "evidence": [
2026-06-04T02:39:10.0830279Z             {
2026-06-04T02:39:10.0830518Z               "path": "crates/spt-store/src/seed.rs",
2026-06-04T02:39:10.0830839Z               "line": 43
2026-06-04T02:39:10.0831002Z             },
2026-06-04T02:39:10.0831152Z             {
2026-06-04T02:39:10.0831397Z               "path": "crates/spt-store/src/seed.rs",
2026-06-04T02:39:10.0831566Z               "line": 59
2026-06-04T02:39:10.0831726Z             }
2026-06-04T02:39:10.0831886Z           ]
2026-06-04T02:39:10.0832038Z         }
2026-06-04T02:39:10.0832200Z       }
2026-06-04T02:39:10.0832346Z     },
2026-06-04T02:39:10.0832501Z     {
2026-06-04T02:39:10.0832677Z       "id": "REQ-START-2",
2026-06-04T02:39:10.0832978Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-04T02:39:10.0833162Z       "requiredStages": [
2026-06-04T02:39:10.0833332Z         "impl",
2026-06-04T02:39:10.0833490Z         "unit",
2026-06-04T02:39:10.0833640Z         "int"
2026-06-04T02:39:10.0833807Z       ],
2026-06-04T02:39:10.0833975Z       "stages": {
2026-06-04T02:39:10.0834138Z         "doc": {
2026-06-04T02:39:10.0834315Z           "complete": false,
2026-06-04T02:39:10.0834505Z           "evidence": []
2026-06-04T02:39:10.0834662Z         },
2026-06-04T02:39:10.0834818Z         "impl": {
2026-06-04T02:39:10.0835008Z           "complete": true,
2026-06-04T02:39:10.0835173Z           "evidence": [
2026-06-04T02:39:10.0835330Z             {
2026-06-04T02:39:10.0835572Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0835751Z               "line": 16
2026-06-04T02:39:10.0835908Z             },
2026-06-04T02:39:10.0836059Z             {
2026-06-04T02:39:10.0836291Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0836457Z               "line": 94
2026-06-04T02:39:10.0836617Z             },
2026-06-04T02:39:10.0836770Z             {
2026-06-04T02:39:10.0837018Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0837209Z               "line": 163
2026-06-04T02:39:10.0837359Z             }
2026-06-04T02:39:10.0837518Z           ]
2026-06-04T02:39:10.0837666Z         },
2026-06-04T02:39:10.0837828Z         "int": {
2026-06-04T02:39:10.0838016Z           "complete": true,
2026-06-04T02:39:10.0838197Z           "evidence": [
2026-06-04T02:39:10.0838361Z             {
2026-06-04T02:39:10.0838603Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:39:10.0838779Z               "line": 150
2026-06-04T02:39:10.0838926Z             }
2026-06-04T02:39:10.0839082Z           ]
2026-06-04T02:39:10.0839278Z         },
2026-06-04T02:39:10.0844964Z         "unit": {
2026-06-04T02:39:10.0845276Z           "complete": true,
2026-06-04T02:39:10.0845448Z           "evidence": [
2026-06-04T02:39:10.0845607Z             {
2026-06-04T02:39:10.0845846Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0846022Z               "line": 354
2026-06-04T02:39:10.0846174Z             },
2026-06-04T02:39:10.0846367Z             {
2026-06-04T02:39:10.0846608Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0846777Z               "line": 387
2026-06-04T02:39:10.0846952Z             }
2026-06-04T02:39:10.0847105Z           ]
2026-06-04T02:39:10.0847268Z         }
2026-06-04T02:39:10.0847415Z       }
2026-06-04T02:39:10.0847582Z     },
2026-06-04T02:39:10.0847737Z     {
2026-06-04T02:39:10.0847911Z       "id": "REQ-START-3",
2026-06-04T02:39:10.0848274Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-04T02:39:10.0848458Z       "requiredStages": [
2026-06-04T02:39:10.0848624Z         "impl",
2026-06-04T02:39:10.0848779Z         "unit",
2026-06-04T02:39:10.0848939Z         "int"
2026-06-04T02:39:10.0849094Z       ],
2026-06-04T02:39:10.0849343Z       "stages": {
2026-06-04T02:39:10.0849512Z         "doc": {
2026-06-04T02:39:10.0849691Z           "complete": false,
2026-06-04T02:39:10.0849869Z           "evidence": []
2026-06-04T02:39:10.0850255Z         },
2026-06-04T02:39:10.0850448Z         "impl": {
2026-06-04T02:39:10.0850631Z           "complete": true,
2026-06-04T02:39:10.0850798Z           "evidence": [
2026-06-04T02:39:10.0850962Z             {
2026-06-04T02:39:10.0851361Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T02:39:10.0851544Z               "line": 23
2026-06-04T02:39:10.0851700Z             },
2026-06-04T02:39:10.0851869Z             {
2026-06-04T02:39:10.0852123Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T02:39:10.0852291Z               "line": 167
2026-06-04T02:39:10.0852450Z             },
2026-06-04T02:39:10.0852600Z             {
2026-06-04T02:39:10.0852853Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T02:39:10.0853033Z               "line": 180
2026-06-04T02:39:10.0853186Z             },
2026-06-04T02:39:10.0853347Z             {
2026-06-04T02:39:10.0853582Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0853772Z               "line": 17
2026-06-04T02:39:10.0853927Z             },
2026-06-04T02:39:10.0854090Z             {
2026-06-04T02:39:10.0854327Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0854505Z               "line": 43
2026-06-04T02:39:10.0854663Z             },
2026-06-04T02:39:10.0854811Z             {
2026-06-04T02:39:10.0855048Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0855218Z               "line": 95
2026-06-04T02:39:10.0855374Z             }
2026-06-04T02:39:10.0855533Z           ]
2026-06-04T02:39:10.0855681Z         },
2026-06-04T02:39:10.0855847Z         "int": {
2026-06-04T02:39:10.0856023Z           "complete": true,
2026-06-04T02:39:10.0856204Z           "evidence": [
2026-06-04T02:39:10.0856354Z             {
2026-06-04T02:39:10.0856605Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:39:10.0856781Z               "line": 316
2026-06-04T02:39:10.0856930Z             }
2026-06-04T02:39:10.0857091Z           ]
2026-06-04T02:39:10.0857256Z         },
2026-06-04T02:39:10.0857425Z         "unit": {
2026-06-04T02:39:10.0857604Z           "complete": true,
2026-06-04T02:39:10.0857778Z           "evidence": [
2026-06-04T02:39:10.0857950Z             {
2026-06-04T02:39:10.0858196Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T02:39:10.0858370Z               "line": 245
2026-06-04T02:39:10.0858522Z             },
2026-06-04T02:39:10.0858682Z             {
2026-06-04T02:39:10.0858924Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T02:39:10.0859101Z               "line": 263
2026-06-04T02:39:10.0859312Z             },
2026-06-04T02:39:10.0859475Z             {
2026-06-04T02:39:10.0859724Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T02:39:10.0859891Z               "line": 273
2026-06-04T02:39:10.0860048Z             },
2026-06-04T02:39:10.0860202Z             {
2026-06-04T02:39:10.0860440Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0860635Z               "line": 355
2026-06-04T02:39:10.0860788Z             },
2026-06-04T02:39:10.0860948Z             {
2026-06-04T02:39:10.0861186Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0861374Z               "line": 388
2026-06-04T02:39:10.0861530Z             },
2026-06-04T02:39:10.0861687Z             {
2026-06-04T02:39:10.0861925Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:39:10.0862098Z               "line": 396
2026-06-04T02:39:10.0862258Z             }
2026-06-04T02:39:10.0862408Z           ]
2026-06-04T02:39:10.0862565Z         }
2026-06-04T02:39:10.0862712Z       }
2026-06-04T02:39:10.0862870Z     },
2026-06-04T02:39:10.0863022Z     {
2026-06-04T02:39:10.0863196Z       "id": "REQ-START-4",
2026-06-04T02:39:10.0863496Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-04T02:39:10.0863676Z       "requiredStages": [
2026-06-04T02:39:10.0863839Z         "impl",
2026-06-04T02:39:10.0863994Z         "unit"
2026-06-04T02:39:10.0864317Z       ],
2026-06-04T02:39:10.0864507Z       "stages": {
2026-06-04T02:39:10.0864664Z         "doc": {
2026-06-04T02:39:10.0864854Z           "complete": false,
2026-06-04T02:39:10.0865024Z           "evidence": []
2026-06-04T02:39:10.0865319Z         },
2026-06-04T02:39:10.0865481Z         "impl": {
2026-06-04T02:39:10.0865669Z           "complete": true,
2026-06-04T02:39:10.0865844Z           "evidence": [
2026-06-04T02:39:10.0865994Z             {
2026-06-04T02:39:10.0866248Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:10.0866419Z               "line": 173
2026-06-04T02:39:10.0866582Z             }
2026-06-04T02:39:10.0866733Z           ]
2026-06-04T02:39:10.0866897Z         },
2026-06-04T02:39:10.0867060Z         "int": {
2026-06-04T02:39:10.0867239Z           "complete": false,
2026-06-04T02:39:10.0867421Z           "evidence": []
2026-06-04T02:39:10.0867574Z         },
2026-06-04T02:39:10.0867736Z         "unit": {
2026-06-04T02:39:10.0867907Z           "complete": true,
2026-06-04T02:39:10.0868091Z           "evidence": [
2026-06-04T02:39:10.0868251Z             {
2026-06-04T02:39:10.0868502Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:39:10.0868694Z               "line": 314
2026-06-04T02:39:10.0868846Z             }
2026-06-04T02:39:10.0869004Z           ]
2026-06-04T02:39:10.0869152Z         }
2026-06-04T02:39:10.0869367Z       }
2026-06-04T02:39:10.0869520Z     },
2026-06-04T02:39:10.0869668Z     {
2026-06-04T02:39:10.0869855Z       "id": "REQ-STORE-1",
2026-06-04T02:39:10.0871730Z       "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-04T02:39:10.0871934Z       "requiredStages": [],
2026-06-04T02:39:10.0872102Z       "stages": {
2026-06-04T02:39:10.0872270Z         "doc": {
2026-06-04T02:39:10.0872458Z           "complete": false,
2026-06-04T02:39:10.0872629Z           "evidence": []
2026-06-04T02:39:10.0872789Z         },
2026-06-04T02:39:10.0872945Z         "impl": {
2026-06-04T02:39:10.0873147Z           "complete": false,
2026-06-04T02:39:10.0873320Z           "evidence": []
2026-06-04T02:39:10.0873468Z         },
2026-06-04T02:39:10.0873633Z         "int": {
2026-06-04T02:39:10.0873814Z           "complete": false,
2026-06-04T02:39:10.0873993Z           "evidence": []
2026-06-04T02:39:10.0874146Z         },
2026-06-04T02:39:10.0874305Z         "unit": {
2026-06-04T02:39:10.0874488Z           "complete": false,
2026-06-04T02:39:10.0874661Z           "evidence": []
2026-06-04T02:39:10.0874826Z         }
2026-06-04T02:39:10.0874970Z       }
2026-06-04T02:39:10.0875123Z     },
2026-06-04T02:39:10.0875266Z     {
2026-06-04T02:39:10.0875448Z       "id": "REQ-TERM-1",
2026-06-04T02:39:10.0875806Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-04T02:39:10.0875997Z       "requiredStages": [
2026-06-04T02:39:10.0876165Z         "impl",
2026-06-04T02:39:10.0876318Z         "unit"
2026-06-04T02:39:10.0881980Z       ],
2026-06-04T02:39:10.0882283Z       "stages": {
2026-06-04T02:39:10.0882450Z         "doc": {
2026-06-04T02:39:10.0882642Z           "complete": false,
2026-06-04T02:39:10.0882810Z           "evidence": []
2026-06-04T02:39:10.0882962Z         },
2026-06-04T02:39:10.0883118Z         "impl": {
2026-06-04T02:39:10.0883305Z           "complete": true,
2026-06-04T02:39:10.0883472Z           "evidence": [
2026-06-04T02:39:10.0883628Z             {
2026-06-04T02:39:10.0883882Z               "path": "crates/spt-term/src/pty.rs",
2026-06-04T02:39:10.0884048Z               "line": 61
2026-06-04T02:39:10.0884209Z             },
2026-06-04T02:39:10.0884359Z             {
2026-06-04T02:39:10.0884598Z               "path": "crates/spt-term/src/pty.rs",
2026-06-04T02:39:10.0884762Z               "line": 169
2026-06-04T02:39:10.0884919Z             },
2026-06-04T02:39:10.0885317Z             {
2026-06-04T02:39:10.0885578Z               "path": "crates/spt-term/src/surface.rs",
2026-06-04T02:39:10.0885752Z               "line": 95
2026-06-04T02:39:10.0886042Z             }
2026-06-04T02:39:10.0886200Z           ]
2026-06-04T02:39:10.0886355Z         },
2026-06-04T02:39:10.0886521Z         "int": {
2026-06-04T02:39:10.0886704Z           "complete": false,
2026-06-04T02:39:10.0886869Z           "evidence": []
2026-06-04T02:39:10.0887026Z         },
2026-06-04T02:39:10.0887181Z         "unit": {
2026-06-04T02:39:10.0887366Z           "complete": true,
2026-06-04T02:39:10.0887530Z           "evidence": [
2026-06-04T02:39:10.0887688Z             {
2026-06-04T02:39:10.0887946Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-04T02:39:10.0888108Z               "line": 28
2026-06-04T02:39:10.0888267Z             },
2026-06-04T02:39:10.0888421Z             {
2026-06-04T02:39:10.0888679Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-04T02:39:10.0888859Z               "line": 60
2026-06-04T02:39:10.0889020Z             }
2026-06-04T02:39:10.0889244Z           ]
2026-06-04T02:39:10.0889395Z         }
2026-06-04T02:39:10.0889564Z       }
2026-06-04T02:39:10.0889710Z     },
2026-06-04T02:39:10.0889864Z     {
2026-06-04T02:39:10.0890037Z       "id": "REQ-TERM-2",
2026-06-04T02:39:10.0890426Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-04T02:39:10.0890613Z       "requiredStages": [
2026-06-04T02:39:10.0890767Z         "impl",
2026-06-04T02:39:10.0890924Z         "unit"
2026-06-04T02:39:10.0891074Z       ],
2026-06-04T02:39:10.0891240Z       "stages": {
2026-06-04T02:39:10.0891396Z         "doc": {
2026-06-04T02:39:10.0891613Z           "complete": false,
2026-06-04T02:39:10.0891793Z           "evidence": []
2026-06-04T02:39:10.0891947Z         },
2026-06-04T02:39:10.0892113Z         "impl": {
2026-06-04T02:39:10.0892294Z           "complete": true,
2026-06-04T02:39:10.0892478Z           "evidence": [
2026-06-04T02:39:10.0892627Z             {
2026-06-04T02:39:10.0892870Z               "path": "crates/spt-term/src/surface.rs",
2026-06-04T02:39:10.0893042Z               "line": 112
2026-06-04T02:39:10.0893202Z             },
2026-06-04T02:39:10.0893358Z             {
2026-06-04T02:39:10.0893588Z               "path": "crates/spt-term/src/surface.rs",
2026-06-04T02:39:10.0893765Z               "line": 122
2026-06-04T02:39:10.0893915Z             }
2026-06-04T02:39:10.0894079Z           ]
2026-06-04T02:39:10.0894233Z         },
2026-06-04T02:39:10.0894388Z         "int": {
2026-06-04T02:39:10.0894575Z           "complete": false,
2026-06-04T02:39:10.0894746Z           "evidence": []
2026-06-04T02:39:10.0894902Z         },
2026-06-04T02:39:10.0895054Z         "unit": {
2026-06-04T02:39:10.0895236Z           "complete": true,
2026-06-04T02:39:10.0895409Z           "evidence": [
2026-06-04T02:39:10.0895557Z             {
2026-06-04T02:39:10.0895807Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-04T02:39:10.0895984Z               "line": 46
2026-06-04T02:39:10.0896148Z             },
2026-06-04T02:39:10.0896297Z             {
2026-06-04T02:39:10.0896548Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-04T02:39:10.0896729Z               "line": 71
2026-06-04T02:39:10.0896880Z             }
2026-06-04T02:39:10.0897035Z           ]
2026-06-04T02:39:10.0897185Z         }
2026-06-04T02:39:10.0897339Z       }
2026-06-04T02:39:10.0897484Z     },
2026-06-04T02:39:10.0897636Z     {
2026-06-04T02:39:10.0897813Z       "id": "REQ-TERM-3",
2026-06-04T02:39:10.0898101Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-04T02:39:10.0898286Z       "requiredStages": [
2026-06-04T02:39:10.0898443Z         "impl",
2026-06-04T02:39:10.0898601Z         "unit"
2026-06-04T02:39:10.0898749Z       ],
2026-06-04T02:39:10.0898924Z       "stages": {
2026-06-04T02:39:10.0899087Z         "doc": {
2026-06-04T02:39:10.0899314Z           "complete": false,
2026-06-04T02:39:10.0899701Z           "evidence": []
2026-06-04T02:39:10.0899873Z         },
2026-06-04T02:39:10.0900040Z         "impl": {
2026-06-04T02:39:10.0900216Z           "complete": true,
2026-06-04T02:39:10.0900543Z           "evidence": [
2026-06-04T02:39:10.0900702Z             {
2026-06-04T02:39:10.0900936Z               "path": "crates/spt-term/src/stream.rs",
2026-06-04T02:39:10.0901109Z               "line": 71
2026-06-04T02:39:10.0901255Z             }
2026-06-04T02:39:10.0901413Z           ]
2026-06-04T02:39:10.0901560Z         },
2026-06-04T02:39:10.0901719Z         "int": {
2026-06-04T02:39:10.0901907Z           "complete": false,
2026-06-04T02:39:10.0902074Z           "evidence": []
2026-06-04T02:39:10.0902230Z         },
2026-06-04T02:39:10.0902385Z         "unit": {
2026-06-04T02:39:10.0902568Z           "complete": true,
2026-06-04T02:39:10.0902737Z           "evidence": [
2026-06-04T02:39:10.0902897Z             {
2026-06-04T02:39:10.0903240Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-04T02:39:10.0903439Z               "line": 37
2026-06-04T02:39:10.0903633Z             },
2026-06-04T02:39:10.0903803Z             {
2026-06-04T02:39:10.0904088Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-04T02:39:10.0904326Z               "line": 67
2026-06-04T02:39:10.0904523Z             }
2026-06-04T02:39:10.0904694Z           ]
2026-06-04T02:39:10.0904865Z         }
2026-06-04T02:39:10.0905032Z       }
2026-06-04T02:39:10.0905179Z     },
2026-06-04T02:39:10.0905338Z     {
2026-06-04T02:39:10.0905517Z       "id": "REQ-TERM-4",
2026-06-04T02:39:10.0906288Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-04T02:39:10.0906479Z       "requiredStages": [
2026-06-04T02:39:10.0906636Z         "impl",
2026-06-04T02:39:10.0906795Z         "unit",
2026-06-04T02:39:10.0906945Z         "int"
2026-06-04T02:39:10.0907105Z       ],
2026-06-04T02:39:10.0907262Z       "stages": {
2026-06-04T02:39:10.0907442Z         "doc": {
2026-06-04T02:39:10.0907627Z           "complete": true,
2026-06-04T02:39:10.0907800Z           "evidence": [
2026-06-04T02:39:10.0907958Z             {
2026-06-04T02:39:10.0908176Z               "path": "docs/MANIFEST.md",
2026-06-04T02:39:10.0908351Z               "line": 106
2026-06-04T02:39:10.0908500Z             }
2026-06-04T02:39:10.0908657Z           ]
2026-06-04T02:39:10.0908811Z         },
2026-06-04T02:39:10.0908964Z         "impl": {
2026-06-04T02:39:10.0909143Z           "complete": true,
2026-06-04T02:39:10.0909370Z           "evidence": [
2026-06-04T02:39:10.0909538Z             {
2026-06-04T02:39:10.0909776Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:39:10.0909955Z               "line": 448
2026-06-04T02:39:10.0910114Z             },
2026-06-04T02:39:10.0910264Z             {
2026-06-04T02:39:10.0910510Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:39:10.0910675Z               "line": 41
2026-06-04T02:39:10.0910851Z             },
2026-06-04T02:39:10.0911004Z             {
2026-06-04T02:39:10.0911258Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:39:10.0911432Z               "line": 91
2026-06-04T02:39:10.0911594Z             },
2026-06-04T02:39:10.0911752Z             {
2026-06-04T02:39:10.0911989Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:39:10.0912165Z               "line": 152
2026-06-04T02:39:10.0912316Z             },
2026-06-04T02:39:10.0918108Z             {
2026-06-04T02:39:10.0918391Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:39:10.0918565Z               "line": 212
2026-06-04T02:39:10.0918723Z             },
2026-06-04T02:39:10.0918870Z             {
2026-06-04T02:39:10.0919128Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:39:10.0919399Z               "line": 20
2026-06-04T02:39:10.0919555Z             },
2026-06-04T02:39:10.0919712Z             {
2026-06-04T02:39:10.0920243Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:39:10.0920454Z               "line": 212
2026-06-04T02:39:10.0920610Z             },
2026-06-04T02:39:10.0920774Z             {
2026-06-04T02:39:10.0921191Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:39:10.0921367Z               "line": 226
2026-06-04T02:39:10.0921524Z             },
2026-06-04T02:39:10.0921673Z             {
2026-06-04T02:39:10.0921928Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0922099Z               "line": 574
2026-06-04T02:39:10.0922258Z             },
2026-06-04T02:39:10.0922419Z             {
2026-06-04T02:39:10.0922653Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:39:10.0922833Z               "line": 157
2026-06-04T02:39:10.0922983Z             },
2026-06-04T02:39:10.0923138Z             {
2026-06-04T02:39:10.0923363Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:39:10.0923541Z               "line": 199
2026-06-04T02:39:10.0923722Z             },
2026-06-04T02:39:10.0923874Z             {
2026-06-04T02:39:10.0924112Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:39:10.0924279Z               "line": 226
2026-06-04T02:39:10.0924452Z             },
2026-06-04T02:39:10.0924604Z             {
2026-06-04T02:39:10.0924832Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0925011Z               "line": 176
2026-06-04T02:39:10.0925160Z             }
2026-06-04T02:39:10.0925317Z           ]
2026-06-04T02:39:10.0925467Z         },
2026-06-04T02:39:10.0925628Z         "int": {
2026-06-04T02:39:10.0925811Z           "complete": true,
2026-06-04T02:39:10.0925987Z           "evidence": [
2026-06-04T02:39:10.0926147Z             {
2026-06-04T02:39:10.0926392Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-04T02:39:10.0926564Z               "line": 18
2026-06-04T02:39:10.0926709Z             }
2026-06-04T02:39:10.0926865Z           ]
2026-06-04T02:39:10.0927012Z         },
2026-06-04T02:39:10.0927187Z         "unit": {
2026-06-04T02:39:10.0927369Z           "complete": true,
2026-06-04T02:39:10.0927537Z           "evidence": [
2026-06-04T02:39:10.0927691Z             {
2026-06-04T02:39:10.0927938Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:39:10.0928119Z               "line": 250
2026-06-04T02:39:10.0928268Z             },
2026-06-04T02:39:10.0928429Z             {
2026-06-04T02:39:10.0928675Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:39:10.0928842Z               "line": 263
2026-06-04T02:39:10.0928999Z             },
2026-06-04T02:39:10.0929144Z             {
2026-06-04T02:39:10.0929454Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:39:10.0929620Z               "line": 275
2026-06-04T02:39:10.0929780Z             },
2026-06-04T02:39:10.0929941Z             {
2026-06-04T02:39:10.0930183Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:39:10.0930358Z               "line": 290
2026-06-04T02:39:10.0930517Z             },
2026-06-04T02:39:10.0930677Z             {
2026-06-04T02:39:10.0930913Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:39:10.0931095Z               "line": 305
2026-06-04T02:39:10.0931274Z             },
2026-06-04T02:39:10.0931423Z             {
2026-06-04T02:39:10.0931668Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:39:10.0931835Z               "line": 327
2026-06-04T02:39:10.0931991Z             },
2026-06-04T02:39:10.0932141Z             {
2026-06-04T02:39:10.0932392Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:39:10.0932571Z               "line": 337
2026-06-04T02:39:10.0932726Z             },
2026-06-04T02:39:10.0932877Z             {
2026-06-04T02:39:10.0933111Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:39:10.0933284Z               "line": 364
2026-06-04T02:39:10.0933445Z             },
2026-06-04T02:39:10.0933590Z             {
2026-06-04T02:39:10.0934019Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:39:10.0934216Z               "line": 338
2026-06-04T02:39:10.0934383Z             },
2026-06-04T02:39:10.0934531Z             {
2026-06-04T02:39:10.0934922Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:39:10.0935107Z               "line": 350
2026-06-04T02:39:10.0935259Z             },
2026-06-04T02:39:10.0935420Z             {
2026-06-04T02:39:10.0935672Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:39:10.0935851Z               "line": 367
2026-06-04T02:39:10.0936004Z             },
2026-06-04T02:39:10.0936166Z             {
2026-06-04T02:39:10.0936425Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:39:10.0936593Z               "line": 378
2026-06-04T02:39:10.0936750Z             },
2026-06-04T02:39:10.0936897Z             {
2026-06-04T02:39:10.0937150Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0937333Z               "line": 759
2026-06-04T02:39:10.0937490Z             },
2026-06-04T02:39:10.0937650Z             {
2026-06-04T02:39:10.0937900Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0938092Z               "line": 766
2026-06-04T02:39:10.0938244Z             },
2026-06-04T02:39:10.0938404Z             {
2026-06-04T02:39:10.0938653Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.0938833Z               "line": 781
2026-06-04T02:39:10.0938993Z             },
2026-06-04T02:39:10.0939141Z             {
2026-06-04T02:39:10.0939432Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:39:10.0939602Z               "line": 381
2026-06-04T02:39:10.0939763Z             },
2026-06-04T02:39:10.0939912Z             {
2026-06-04T02:39:10.0940154Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:39:10.0940332Z               "line": 402
2026-06-04T02:39:10.0940483Z             },
2026-06-04T02:39:10.0940638Z             {
2026-06-04T02:39:10.0940878Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:39:10.0941060Z               "line": 415
2026-06-04T02:39:10.0941219Z             },
2026-06-04T02:39:10.0941380Z             {
2026-06-04T02:39:10.0941618Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:39:10.0941792Z               "line": 434
2026-06-04T02:39:10.0941958Z             },
2026-06-04T02:39:10.0942108Z             {
2026-06-04T02:39:10.0942348Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:39:10.0942522Z               "line": 461
2026-06-04T02:39:10.0942672Z             },
2026-06-04T02:39:10.0942827Z             {
2026-06-04T02:39:10.0943070Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-04T02:39:10.0943247Z               "line": 32
2026-06-04T02:39:10.0943398Z             },
2026-06-04T02:39:10.0943555Z             {
2026-06-04T02:39:10.0943774Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:39:10.0943946Z               "line": 646
2026-06-04T02:39:10.0944116Z             }
2026-06-04T02:39:10.0944266Z           ]
2026-06-04T02:39:10.0944424Z         }
2026-06-04T02:39:10.0944574Z       }
2026-06-04T02:39:10.0944725Z     },
2026-06-04T02:39:10.0944889Z     {
2026-06-04T02:39:10.0945059Z       "id": "REQ-UPD-1",
2026-06-04T02:39:10.0945303Z       "title": "Peer-propagated update over P2P",
2026-06-04T02:39:10.0945485Z       "requiredStages": [],
2026-06-04T02:39:10.0945655Z       "stages": {
2026-06-04T02:39:10.0945808Z         "doc": {
2026-06-04T02:39:10.0945996Z           "complete": false,
2026-06-04T02:39:10.0946167Z           "evidence": []
2026-06-04T02:39:10.0946315Z         },
2026-06-04T02:39:10.0946477Z         "impl": {
2026-06-04T02:39:10.0946657Z           "complete": false,
2026-06-04T02:39:10.0946833Z           "evidence": []
2026-06-04T02:39:10.0946982Z         },
2026-06-04T02:39:10.0947141Z         "int": {
2026-06-04T02:39:10.0947324Z           "complete": false,
2026-06-04T02:39:10.0947486Z           "evidence": []
2026-06-04T02:39:10.0947794Z         },
2026-06-04T02:39:10.0947965Z         "unit": {
2026-06-04T02:39:10.0948149Z           "complete": false,
2026-06-04T02:39:10.0948318Z           "evidence": []
2026-06-04T02:39:10.0954134Z         }
2026-06-04T02:39:10.0954360Z       }
2026-06-04T02:39:10.0954521Z     },
2026-06-04T02:39:10.0954675Z     {
2026-06-04T02:39:10.0954866Z       "id": "REQ-UPD-2",
2026-06-04T02:39:10.0955186Z       "title": "All binaries signature-verified before handoff",
2026-06-04T02:39:10.0955371Z       "requiredStages": [
2026-06-04T02:39:10.0955535Z         "impl",
2026-06-04T02:39:10.0955690Z         "unit"
2026-06-04T02:39:10.0955851Z       ],
2026-06-04T02:39:10.0956017Z       "stages": {
2026-06-04T02:39:10.0956171Z         "doc": {
2026-06-04T02:39:10.0956360Z           "complete": false,
2026-06-04T02:39:10.0956532Z           "evidence": []
2026-06-04T02:39:10.0956689Z         },
2026-06-04T02:39:10.0956844Z         "impl": {
2026-06-04T02:39:10.0957026Z           "complete": true,
2026-06-04T02:39:10.0957231Z           "evidence": [
2026-06-04T02:39:10.0957384Z             {
2026-06-04T02:39:10.0957641Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.0957817Z               "line": 29
2026-06-04T02:39:10.0957977Z             },
2026-06-04T02:39:10.0958134Z             {
2026-06-04T02:39:10.0958385Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.0958559Z               "line": 158
2026-06-04T02:39:10.0958708Z             },
2026-06-04T02:39:10.0958867Z             {
2026-06-04T02:39:10.0959112Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.0959368Z               "line": 239
2026-06-04T02:39:10.0959530Z             },
2026-06-04T02:39:10.0959679Z             {
2026-06-04T02:39:10.0959926Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:39:10.0960092Z               "line": 149
2026-06-04T02:39:10.0960253Z             }
2026-06-04T02:39:10.0960404Z           ]
2026-06-04T02:39:10.0960574Z         },
2026-06-04T02:39:10.0960734Z         "int": {
2026-06-04T02:39:10.0960926Z           "complete": false,
2026-06-04T02:39:10.0961101Z           "evidence": []
2026-06-04T02:39:10.0961263Z         },
2026-06-04T02:39:10.0961427Z         "unit": {
2026-06-04T02:39:10.0961602Z           "complete": true,
2026-06-04T02:39:10.0961776Z           "evidence": [
2026-06-04T02:39:10.0961927Z             {
2026-06-04T02:39:10.0962174Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.0962352Z               "line": 336
2026-06-04T02:39:10.0962505Z             },
2026-06-04T02:39:10.0962660Z             {
2026-06-04T02:39:10.0962900Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.0963073Z               "line": 350
2026-06-04T02:39:10.0963228Z             },
2026-06-04T02:39:10.0963379Z             {
2026-06-04T02:39:10.0963629Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.0963798Z               "line": 361
2026-06-04T02:39:10.0963971Z             },
2026-06-04T02:39:10.0964125Z             {
2026-06-04T02:39:10.0964375Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.0964566Z               "line": 437
2026-06-04T02:39:10.0964720Z             },
2026-06-04T02:39:10.0964875Z             {
2026-06-04T02:39:10.0965114Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:39:10.0965285Z               "line": 326
2026-06-04T02:39:10.0965438Z             },
2026-06-04T02:39:10.0965597Z             {
2026-06-04T02:39:10.0965845Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:39:10.0966015Z               "line": 339
2026-06-04T02:39:10.0966170Z             }
2026-06-04T02:39:10.0966318Z           ]
2026-06-04T02:39:10.0966479Z         }
2026-06-04T02:39:10.0966628Z       }
2026-06-04T02:39:10.0966782Z     },
2026-06-04T02:39:10.0966936Z     {
2026-06-04T02:39:10.0967109Z       "id": "REQ-UPD-3",
2026-06-04T02:39:10.0967740Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-04T02:39:10.0967957Z       "requiredStages": [
2026-06-04T02:39:10.0968120Z         "impl",
2026-06-04T02:39:10.0968278Z         "unit",
2026-06-04T02:39:10.0968579Z         "int"
2026-06-04T02:39:10.0968733Z       ],
2026-06-04T02:39:10.0968888Z       "stages": {
2026-06-04T02:39:10.0969055Z         "doc": {
2026-06-04T02:39:10.0969283Z           "complete": false,
2026-06-04T02:39:10.0969470Z           "evidence": []
2026-06-04T02:39:10.0969620Z         },
2026-06-04T02:39:10.0969788Z         "impl": {
2026-06-04T02:39:10.0969978Z           "complete": true,
2026-06-04T02:39:10.0970146Z           "evidence": [
2026-06-04T02:39:10.0970301Z             {
2026-06-04T02:39:10.0970548Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:39:10.0970726Z               "line": 26
2026-06-04T02:39:10.0970876Z             },
2026-06-04T02:39:10.0971036Z             {
2026-06-04T02:39:10.0971303Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:39:10.0971474Z               "line": 111
2026-06-04T02:39:10.0971632Z             },
2026-06-04T02:39:10.0971783Z             {
2026-06-04T02:39:10.0972027Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:39:10.0972208Z               "line": 213
2026-06-04T02:39:10.0972365Z             }
2026-06-04T02:39:10.0972519Z           ]
2026-06-04T02:39:10.0972672Z         },
2026-06-04T02:39:10.0972833Z         "int": {
2026-06-04T02:39:10.0973012Z           "complete": true,
2026-06-04T02:39:10.0973183Z           "evidence": [
2026-06-04T02:39:10.0973332Z             {
2026-06-04T02:39:10.0973604Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-04T02:39:10.0973777Z               "line": 23
2026-06-04T02:39:10.0973928Z             }
2026-06-04T02:39:10.0974086Z           ]
2026-06-04T02:39:10.0974232Z         },
2026-06-04T02:39:10.0974397Z         "unit": {
2026-06-04T02:39:10.0974574Z           "complete": true,
2026-06-04T02:39:10.0974757Z           "evidence": [
2026-06-04T02:39:10.0974918Z             {
2026-06-04T02:39:10.0975159Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:39:10.0975335Z               "line": 238
2026-06-04T02:39:10.0975500Z             },
2026-06-04T02:39:10.0975662Z             {
2026-06-04T02:39:10.0975905Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:39:10.0976087Z               "line": 262
2026-06-04T02:39:10.0976253Z             },
2026-06-04T02:39:10.0976403Z             {
2026-06-04T02:39:10.0976652Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:39:10.0976817Z               "line": 273
2026-06-04T02:39:10.0976973Z             },
2026-06-04T02:39:10.0977126Z             {
2026-06-04T02:39:10.0977378Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:39:10.0977556Z               "line": 286
2026-06-04T02:39:10.0977706Z             }
2026-06-04T02:39:10.0977863Z           ]
2026-06-04T02:39:10.0978022Z         }
2026-06-04T02:39:10.0978189Z       }
2026-06-04T02:39:10.0978336Z     },
2026-06-04T02:39:10.0978487Z     {
2026-06-04T02:39:10.0978667Z       "id": "REQ-UPD-4",
2026-06-04T02:39:10.0979043Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-04T02:39:10.0979299Z       "requiredStages": [
2026-06-04T02:39:10.0979461Z         "impl",
2026-06-04T02:39:10.0979623Z         "unit"
2026-06-04T02:39:10.0979768Z       ],
2026-06-04T02:39:10.0979940Z       "stages": {
2026-06-04T02:39:10.0980099Z         "doc": {
2026-06-04T02:39:10.0980277Z           "complete": false,
2026-06-04T02:39:10.0980452Z           "evidence": []
2026-06-04T02:39:10.0980599Z         },
2026-06-04T02:39:10.0980760Z         "impl": {
2026-06-04T02:39:10.0980937Z           "complete": true,
2026-06-04T02:39:10.0981111Z           "evidence": [
2026-06-04T02:39:10.0981268Z             {
2026-06-04T02:39:10.0981514Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T02:39:10.0981686Z               "line": 23
2026-06-04T02:39:10.0981990Z             },
2026-06-04T02:39:10.0982167Z             {
2026-06-04T02:39:10.0982414Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T02:39:10.0982726Z               "line": 60
2026-06-04T02:39:10.0982883Z             },
2026-06-04T02:39:10.0983033Z             {
2026-06-04T02:39:10.0983278Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T02:39:10.0983443Z               "line": 79
2026-06-04T02:39:10.0983607Z             },
2026-06-04T02:39:10.0983754Z             {
2026-06-04T02:39:10.0984013Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:39:10.0989562Z               "line": 162
2026-06-04T02:39:10.0989804Z             },
2026-06-04T02:39:10.0989966Z             {
2026-06-04T02:39:10.0990215Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:39:10.0990394Z               "line": 106
2026-06-04T02:39:10.0990546Z             }
2026-06-04T02:39:10.0990710Z           ]
2026-06-04T02:39:10.0990904Z         },
2026-06-04T02:39:10.0991063Z         "int": {
2026-06-04T02:39:10.0991251Z           "complete": false,
2026-06-04T02:39:10.0991420Z           "evidence": []
2026-06-04T02:39:10.0991591Z         },
2026-06-04T02:39:10.0991762Z         "unit": {
2026-06-04T02:39:10.0991946Z           "complete": true,
2026-06-04T02:39:10.0992118Z           "evidence": [
2026-06-04T02:39:10.0992267Z             {
2026-06-04T02:39:10.0992516Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:39:10.0992682Z               "line": 217
2026-06-04T02:39:10.0992842Z             },
2026-06-04T02:39:10.0992991Z             {
2026-06-04T02:39:10.0993240Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T02:39:10.0993417Z               "line": 118
2026-06-04T02:39:10.0993566Z             },
2026-06-04T02:39:10.0993720Z             {
2026-06-04T02:39:10.0993961Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T02:39:10.0994131Z               "line": 133
2026-06-04T02:39:10.0994302Z             },
2026-06-04T02:39:10.0994453Z             {
2026-06-04T02:39:10.0994698Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T02:39:10.0994868Z               "line": 152
2026-06-04T02:39:10.0995037Z             },
2026-06-04T02:39:10.0995186Z             {
2026-06-04T02:39:10.0995426Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:39:10.0995603Z               "line": 234
2026-06-04T02:39:10.0995755Z             },
2026-06-04T02:39:10.0995909Z             {
2026-06-04T02:39:10.0996143Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:39:10.0996320Z               "line": 407
2026-06-04T02:39:10.0996467Z             }
2026-06-04T02:39:10.0996628Z           ]
2026-06-04T02:39:10.0996786Z         }
2026-06-04T02:39:10.0996934Z       }
2026-06-04T02:39:10.0997088Z     },
2026-06-04T02:39:10.0997234Z     {
2026-06-04T02:39:10.0997412Z       "id": "REQ-UPD-5",
2026-06-04T02:39:10.0997715Z       "title": "spt-core ripple-updates registered adapters",
2026-06-04T02:39:10.0997907Z       "requiredStages": [
2026-06-04T02:39:10.0998067Z         "impl",
2026-06-04T02:39:10.0998223Z         "unit"
2026-06-04T02:39:10.0998379Z       ],
2026-06-04T02:39:10.0998549Z       "stages": {
2026-06-04T02:39:10.0998711Z         "doc": {
2026-06-04T02:39:10.0998895Z           "complete": false,
2026-06-04T02:39:10.0999075Z           "evidence": []
2026-06-04T02:39:10.0999283Z         },
2026-06-04T02:39:10.0999448Z         "impl": {
2026-06-04T02:39:10.0999635Z           "complete": true,
2026-06-04T02:39:10.0999801Z           "evidence": [
2026-06-04T02:39:10.0999955Z             {
2026-06-04T02:39:10.1000233Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:39:10.1000415Z               "line": 27
2026-06-04T02:39:10.1000574Z             },
2026-06-04T02:39:10.1000722Z             {
2026-06-04T02:39:10.1001004Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:39:10.1001182Z               "line": 82
2026-06-04T02:39:10.1001588Z             },
2026-06-04T02:39:10.1001768Z             {
2026-06-04T02:39:10.1002049Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:39:10.1002371Z               "line": 134
2026-06-04T02:39:10.1002524Z             },
2026-06-04T02:39:10.1002679Z             {
2026-06-04T02:39:10.1002919Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.1003094Z               "line": 198
2026-06-04T02:39:10.1003242Z             },
2026-06-04T02:39:10.1003406Z             {
2026-06-04T02:39:10.1003655Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:39:10.1003829Z               "line": 226
2026-06-04T02:39:10.1003988Z             }
2026-06-04T02:39:10.1004135Z           ]
2026-06-04T02:39:10.1004289Z         },
2026-06-04T02:39:10.1004445Z         "int": {
2026-06-04T02:39:10.1004631Z           "complete": false,
2026-06-04T02:39:10.1004806Z           "evidence": []
2026-06-04T02:39:10.1004956Z         },
2026-06-04T02:39:10.1005133Z         "unit": {
2026-06-04T02:39:10.1005318Z           "complete": true,
2026-06-04T02:39:10.1005489Z           "evidence": [
2026-06-04T02:39:10.1005633Z             {
2026-06-04T02:39:10.1005923Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:39:10.1006101Z               "line": 194
2026-06-04T02:39:10.1006250Z             },
2026-06-04T02:39:10.1006405Z             {
2026-06-04T02:39:10.1006673Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:39:10.1006850Z               "line": 208
2026-06-04T02:39:10.1007004Z             },
2026-06-04T02:39:10.1007165Z             {
2026-06-04T02:39:10.1007436Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:39:10.1007605Z               "line": 222
2026-06-04T02:39:10.1007762Z             },
2026-06-04T02:39:10.1007909Z             {
2026-06-04T02:39:10.1008182Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:39:10.1008363Z               "line": 236
2026-06-04T02:39:10.1008530Z             },
2026-06-04T02:39:10.1008687Z             {
2026-06-04T02:39:10.1008949Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:39:10.1009139Z               "line": 270
2026-06-04T02:39:10.1009344Z             },
2026-06-04T02:39:10.1009501Z             {
2026-06-04T02:39:10.1009751Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:39:10.1009933Z               "line": 729
2026-06-04T02:39:10.1010090Z             }
2026-06-04T02:39:10.1010240Z           ]
2026-06-04T02:39:10.1010400Z         }
2026-06-04T02:39:10.1010551Z       }
2026-06-04T02:39:10.1010708Z     }
2026-06-04T02:39:10.1010854Z   ],
2026-06-04T02:39:10.1011027Z   "findings": []
2026-06-04T02:39:10.1011183Z }
2026-06-04T02:39:10.1071469Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T02:39:10.1071749Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T02:39:10.1089775Z shell: /usr/bin/bash -e {0}
2026-06-04T02:39:10.1089941Z ##[endgroup]
2026-06-04T02:39:10.1262005Z Requirement quality findings (16); 128 requirements queued for agent review:
2026-06-04T02:39:10.1263153Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1264736Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T02:39:10.1265767Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1266722Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1267754Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T02:39:10.1268579Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T02:39:10.1269741Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1271118Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1271887Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T02:39:10.1272581Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-04T02:39:10.1273145Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T02:39:10.1273761Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T02:39:10.1274601Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1275392Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1276001Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T02:39:10.1276575Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T02:39:10.1276599Z 
2026-06-04T02:39:10.1276816Z # Requirement quality review
2026-06-04T02:39:10.1276835Z 
2026-06-04T02:39:10.1277277Z You are reviewing 128 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T02:39:10.1277715Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T02:39:10.1278171Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T02:39:10.1278479Z this command's output. Your task is the rubric items below.
2026-06-04T02:39:10.1278497Z 
2026-06-04T02:39:10.1278673Z ## Rubric
2026-06-04T02:39:10.1278690Z 
2026-06-04T02:39:10.1279334Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T02:39:10.1280015Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T02:39:10.1280481Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T02:39:10.1280799Z - **active-voice** — clear subject and active verb.
2026-06-04T02:39:10.1280832Z 
2026-06-04T02:39:10.1281314Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T02:39:10.1281493Z clear concerns.
2026-06-04T02:39:10.1281511Z 
2026-06-04T02:39:10.1281674Z ## Requirements
2026-06-04T02:39:10.1281689Z 
2026-06-04T02:39:10.1281867Z ### REQ-ARCH-1
2026-06-04T02:39:10.1282404Z - Title: Many small acyclically-layered crates
2026-06-04T02:39:10.1282631Z - Required stages: impl
2026-06-04T02:39:10.1282649Z 
2026-06-04T02:39:10.1282825Z ### REQ-ARCH-2
2026-06-04T02:39:10.1283149Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T02:39:10.1283341Z - Required stages: impl
2026-06-04T02:39:10.1283357Z 
2026-06-04T02:39:10.1283513Z ### REQ-ARCH-3
2026-06-04T02:39:10.1283940Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T02:39:10.1284146Z - Required stages: impl, unit
2026-06-04T02:39:10.1284162Z 
2026-06-04T02:39:10.1284319Z ### REQ-ARCH-4
2026-06-04T02:39:10.1284656Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T02:39:10.1284851Z - Required stages: impl, unit
2026-06-04T02:39:10.1284868Z 
2026-06-04T02:39:10.1285043Z ### REQ-DAEMON-1
2026-06-04T02:39:10.1285367Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T02:39:10.1285584Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1285604Z 
2026-06-04T02:39:10.1285785Z ### REQ-DAEMON-2
2026-06-04T02:39:10.1286055Z - Title: Broker/brain split for seamless self-update
2026-06-04T02:39:10.1286271Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1286289Z 
2026-06-04T02:39:10.1286465Z ### REQ-DAEMON-3
2026-06-04T02:39:10.1286759Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T02:39:10.1286968Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1287149Z 
2026-06-04T02:39:10.1287327Z ### REQ-DAEMON-4
2026-06-04T02:39:10.1287560Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T02:39:10.1287753Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1287783Z 
2026-06-04T02:39:10.1287953Z ### REQ-STORE-1
2026-06-04T02:39:10.1290064Z - 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-04T02:39:10.1290256Z - Required stages: 
2026-06-04T02:39:10.1290275Z 
2026-06-04T02:39:10.1290461Z ### REQ-MANIFEST-1
2026-06-04T02:39:10.1290835Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T02:39:10.1291037Z - Required stages: doc, impl, unit
2026-06-04T02:39:10.1291054Z 
2026-06-04T02:39:10.1291252Z ### REQ-SEAM-SPAWN
2026-06-04T02:39:10.1291452Z - Title: spawn-session seam
2026-06-04T02:39:10.1291660Z - Required stages: impl, unit
2026-06-04T02:39:10.1291676Z 
2026-06-04T02:39:10.1291874Z ### REQ-SEAM-POSTSPAWN
2026-06-04T02:39:10.1292150Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T02:39:10.1292357Z - Required stages: impl, unit
2026-06-04T02:39:10.1292373Z 
2026-06-04T02:39:10.1292551Z ### REQ-SEAM-PSYCHE
2026-06-04T02:39:10.1292832Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T02:39:10.1293043Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1293086Z 
2026-06-04T02:39:10.1293265Z ### REQ-SEAM-HISTORY
2026-06-04T02:39:10.1293636Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T02:39:10.1293843Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1293859Z 
2026-06-04T02:39:10.1294045Z ### REQ-SEAM-ACTIVITY
2026-06-04T02:39:10.1294402Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T02:39:10.1305402Z - Required stages: impl, unit
2026-06-04T02:39:10.1305480Z 
2026-06-04T02:39:10.1305720Z ### REQ-SEAM-INJECT
2026-06-04T02:39:10.1306067Z - Title: inject-input methods configurable per activity-state
2026-06-04T02:39:10.1306271Z - Required stages: impl, unit
2026-06-04T02:39:10.1306288Z 
2026-06-04T02:39:10.1306463Z ### REQ-SEAM-RESUME
2026-06-04T02:39:10.1306830Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T02:39:10.1307036Z - Required stages: impl, unit
2026-06-04T02:39:10.1307055Z 
2026-06-04T02:39:10.1307240Z ### REQ-SEAM-CAPABILITY
2026-06-04T02:39:10.1307929Z - Title: Hostable endpoint-types capability declaration
2026-06-04T02:39:10.1308150Z - Required stages: impl, unit
2026-06-04T02:39:10.1308169Z 
2026-06-04T02:39:10.1308356Z ### REQ-SEAM-UPDATE
2026-06-04T02:39:10.1308692Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T02:39:10.1308889Z - Required stages: impl, unit
2026-06-04T02:39:10.1308906Z 
2026-06-04T02:39:10.1309096Z ### REQ-API-1
2026-06-04T02:39:10.1309487Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T02:39:10.1309708Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1309725Z 
2026-06-04T02:39:10.1309889Z ### REQ-API-2
2026-06-04T02:39:10.1310311Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T02:39:10.1310530Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1310546Z 
2026-06-04T02:39:10.1310714Z ### REQ-API-3
2026-06-04T02:39:10.1310995Z - Title: commune/signoff are file-drops, not commands
2026-06-04T02:39:10.1311211Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1311227Z 
2026-06-04T02:39:10.1311408Z ### REQ-START-1
2026-06-04T02:39:10.1311802Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T02:39:10.1312002Z - Required stages: impl, unit
2026-06-04T02:39:10.1312020Z 
2026-06-04T02:39:10.1312195Z ### REQ-START-2
2026-06-04T02:39:10.1312461Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T02:39:10.1312847Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1312866Z 
2026-06-04T02:39:10.1313040Z ### REQ-START-3
2026-06-04T02:39:10.1313376Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T02:39:10.1313587Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1313602Z 
2026-06-04T02:39:10.1313768Z ### REQ-START-4
2026-06-04T02:39:10.1314039Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T02:39:10.1314248Z - Required stages: impl, unit
2026-06-04T02:39:10.1314264Z 
2026-06-04T02:39:10.1314424Z ### REQ-EP-1
2026-06-04T02:39:10.1314692Z - Title: Day-one endpoint types; open type system
2026-06-04T02:39:10.1314889Z - Required stages: impl, unit
2026-06-04T02:39:10.1314906Z 
2026-06-04T02:39:10.1315079Z ### REQ-EP-2
2026-06-04T02:39:10.1315417Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T02:39:10.1315612Z - Required stages: impl, unit
2026-06-04T02:39:10.1315627Z 
2026-06-04T02:39:10.1315795Z ### REQ-EP-3
2026-06-04T02:39:10.1316169Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T02:39:10.1316380Z - Required stages: impl, unit
2026-06-04T02:39:10.1316397Z 
2026-06-04T02:39:10.1316561Z ### REQ-EP-4
2026-06-04T02:39:10.1316856Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T02:39:10.1317060Z - Required stages: impl, unit
2026-06-04T02:39:10.1317077Z 
2026-06-04T02:39:10.1317237Z ### REQ-EP-5
2026-06-04T02:39:10.1318660Z - 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-04T02:39:10.1318852Z - Required stages: 
2026-06-04T02:39:10.1318868Z 
2026-06-04T02:39:10.1319034Z ### REQ-INST-1
2026-06-04T02:39:10.1319401Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T02:39:10.1319744Z - Required stages: 
2026-06-04T02:39:10.1319773Z 
2026-06-04T02:39:10.1319954Z ### REQ-INST-2
2026-06-04T02:39:10.1320173Z - Title: Per-node files, synced Psyche mind
2026-06-04T02:39:10.1320349Z - Required stages: 
2026-06-04T02:39:10.1320365Z 
2026-06-04T02:39:10.1320528Z ### REQ-INST-3
2026-06-04T02:39:10.1320800Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T02:39:10.1320976Z - Required stages: 
2026-06-04T02:39:10.1320992Z 
2026-06-04T02:39:10.1321145Z ### REQ-INST-4
2026-06-04T02:39:10.1321487Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T02:39:10.1321663Z - Required stages: 
2026-06-04T02:39:10.1321822Z 
2026-06-04T02:39:10.1321996Z ### REQ-INST-5
2026-06-04T02:39:10.1322345Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T02:39:10.1322518Z - Required stages: 
2026-06-04T02:39:10.1322534Z 
2026-06-04T02:39:10.1322704Z ### REQ-INST-6
2026-06-04T02:39:10.1323063Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T02:39:10.1323253Z - Required stages: 
2026-06-04T02:39:10.1323270Z 
2026-06-04T02:39:10.1323439Z ### REQ-INST-7
2026-06-04T02:39:10.1323691Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T02:39:10.1323898Z - Required stages: impl, unit
2026-06-04T02:39:10.1323913Z 
2026-06-04T02:39:10.1324082Z ### REQ-INST-8
2026-06-04T02:39:10.1324365Z - Title: Remote-control mode distinct from local operation
2026-06-04T02:39:10.1324545Z - Required stages: 
2026-06-04T02:39:10.1324560Z 
2026-06-04T02:39:10.1324715Z ### REQ-INST-9
2026-06-04T02:39:10.1325085Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T02:39:10.1325274Z - Required stages: impl, unit
2026-06-04T02:39:10.1325290Z 
2026-06-04T02:39:10.1325454Z ### REQ-INST-10
2026-06-04T02:39:10.1325863Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T02:39:10.1326053Z - Required stages: impl, unit
2026-06-04T02:39:10.1326070Z 
2026-06-04T02:39:10.1326236Z ### REQ-INST-11
2026-06-04T02:39:10.1326790Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T02:39:10.1326982Z - Required stages: impl, unit
2026-06-04T02:39:10.1326998Z 
2026-06-04T02:39:10.1327163Z ### REQ-INST-12
2026-06-04T02:39:10.1327722Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T02:39:10.1327915Z - Required stages: impl, unit
2026-06-04T02:39:10.1327931Z 
2026-06-04T02:39:10.1328085Z ### REQ-INST-13
2026-06-04T02:39:10.1328436Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T02:39:10.1328641Z - Required stages: impl, unit
2026-06-04T02:39:10.1328658Z 
2026-06-04T02:39:10.1328811Z ### REQ-INST-14
2026-06-04T02:39:10.1329902Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T02:39:10.1330077Z - Required stages: 
2026-06-04T02:39:10.1330092Z 
2026-06-04T02:39:10.1330259Z ### REQ-INST-15
2026-06-04T02:39:10.1331732Z - 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-04T02:39:10.1331910Z - Required stages: 
2026-06-04T02:39:10.1331925Z 
2026-06-04T02:39:10.1332098Z ### REQ-REACH-1
2026-06-04T02:39:10.1332372Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T02:39:10.1332556Z - Required stages: 
2026-06-04T02:39:10.1332571Z 
2026-06-04T02:39:10.1332751Z ### REQ-REACH-2
2026-06-04T02:39:10.1333040Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T02:39:10.1333221Z - Required stages: 
2026-06-04T02:39:10.1333237Z 
2026-06-04T02:39:10.1333392Z ### REQ-MSG-1
2026-06-04T02:39:10.1334291Z - 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-04T02:39:10.1334515Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1334531Z 
2026-06-04T02:39:10.1334688Z ### REQ-MSG-2
2026-06-04T02:39:10.1335216Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T02:39:10.1335407Z - Required stages: impl, unit
2026-06-04T02:39:10.1335423Z 
2026-06-04T02:39:10.1335590Z ### REQ-MSG-3
2026-06-04T02:39:10.1336541Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T02:39:10.1336761Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1336776Z 
2026-06-04T02:39:10.1336962Z ### REQ-NODE-IDENTITY
2026-06-04T02:39:10.1337389Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T02:39:10.1337597Z - Required stages: impl, unit
2026-06-04T02:39:10.1337615Z 
2026-06-04T02:39:10.1337784Z ### REQ-NET-1
2026-06-04T02:39:10.1338152Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T02:39:10.1338357Z - Required stages: impl, unit
2026-06-04T02:39:10.1338373Z 
2026-06-04T02:39:10.1338528Z ### REQ-NET-2
2026-06-04T02:39:10.1338871Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T02:39:10.1339057Z - Required stages: impl
2026-06-04T02:39:10.1339073Z 
2026-06-04T02:39:10.1339411Z ### REQ-NET-3
2026-06-04T02:39:10.1339890Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T02:39:10.1340066Z - Required stages: 
2026-06-04T02:39:10.1340098Z 
2026-06-04T02:39:10.1340278Z ### REQ-PAIR-1
2026-06-04T02:39:10.1340487Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T02:39:10.1340679Z - Required stages: impl, unit
2026-06-04T02:39:10.1340695Z 
2026-06-04T02:39:10.1340865Z ### REQ-PAIR-2
2026-06-04T02:39:10.1341117Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T02:39:10.1341318Z - Required stages: impl, unit
2026-06-04T02:39:10.1341334Z 
2026-06-04T02:39:10.1341662Z ### REQ-PAIR-3
2026-06-04T02:39:10.1341935Z - Title: Fetch current pairing code from any paired node
2026-06-04T02:39:10.1342135Z - Required stages: impl, unit
2026-06-04T02:39:10.1342152Z 
2026-06-04T02:39:10.1342310Z ### REQ-PAIR-4
2026-06-04T02:39:10.1342523Z - Title: Subnet naming on first pairing
2026-06-04T02:39:10.1342712Z - Required stages: impl, unit
2026-06-04T02:39:10.1342741Z 
2026-06-04T02:39:10.1342902Z ### REQ-PAIR-5
2026-06-04T02:39:10.1343570Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T02:39:10.1343780Z - Required stages: impl, unit
2026-06-04T02:39:10.1343796Z 
2026-06-04T02:39:10.1343966Z ### REQ-PAIR-6
2026-06-04T02:39:10.1344472Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T02:39:10.1344671Z - Required stages: impl, unit
2026-06-04T02:39:10.1344687Z 
2026-06-04T02:39:10.1344857Z ### REQ-PAIR-7
2026-06-04T02:39:10.1345175Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T02:39:10.1345358Z - Required stages: 
2026-06-04T02:39:10.1345374Z 
2026-06-04T02:39:10.1345529Z ### REQ-SEC-1
2026-06-04T02:39:10.1346317Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T02:39:10.1346502Z - Required stages: 
2026-06-04T02:39:10.1346518Z 
2026-06-04T02:39:10.1346677Z ### REQ-NOTIF-1
2026-06-04T02:39:10.1347405Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T02:39:10.1347584Z - Required stages: 
2026-06-04T02:39:10.1347598Z 
2026-06-04T02:39:10.1347767Z ### REQ-NOTIF-2
2026-06-04T02:39:10.1348293Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T02:39:10.1348463Z - Required stages: 
2026-06-04T02:39:10.1348479Z 
2026-06-04T02:39:10.1348642Z ### REQ-UPD-1
2026-06-04T02:39:10.1348869Z - Title: Peer-propagated update over P2P
2026-06-04T02:39:10.1349050Z - Required stages: 
2026-06-04T02:39:10.1349064Z 
2026-06-04T02:39:10.1349270Z ### REQ-UPD-2
2026-06-04T02:39:10.1349726Z - Title: All binaries signature-verified before handoff
2026-06-04T02:39:10.1350101Z - Required stages: impl, unit
2026-06-04T02:39:10.1350118Z 
2026-06-04T02:39:10.1350277Z ### REQ-UPD-3
2026-06-04T02:39:10.1350613Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T02:39:10.1350827Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1351006Z 
2026-06-04T02:39:10.1351177Z ### REQ-UPD-4
2026-06-04T02:39:10.1351534Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T02:39:10.1351726Z - Required stages: impl, unit
2026-06-04T02:39:10.1351742Z 
2026-06-04T02:39:10.1351910Z ### REQ-UPD-5
2026-06-04T02:39:10.1352183Z - Title: spt-core ripple-updates registered adapters
2026-06-04T02:39:10.1352371Z - Required stages: impl, unit
2026-06-04T02:39:10.1352402Z 
2026-06-04T02:39:10.1352571Z ### REQ-TERM-1
2026-06-04T02:39:10.1352895Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T02:39:10.1353102Z - Required stages: impl, unit
2026-06-04T02:39:10.1353117Z 
2026-06-04T02:39:10.1353277Z ### REQ-TERM-2
2026-06-04T02:39:10.1353638Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T02:39:10.1353836Z - Required stages: impl, unit
2026-06-04T02:39:10.1353851Z 
2026-06-04T02:39:10.1354006Z ### REQ-TERM-3
2026-06-04T02:39:10.1354287Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T02:39:10.1354603Z - Required stages: impl, unit
2026-06-04T02:39:10.1354620Z 
2026-06-04T02:39:10.1354790Z ### REQ-TERM-4
2026-06-04T02:39:10.1355513Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T02:39:10.1355714Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1355731Z 
2026-06-04T02:39:10.1356055Z ### REQ-FRONT-1
2026-06-04T02:39:10.1356385Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T02:39:10.1356578Z - Required stages: 
2026-06-04T02:39:10.1356594Z 
2026-06-04T02:39:10.1356773Z ### REQ-INSTALL-1
2026-06-04T02:39:10.1357140Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T02:39:10.1357322Z - Required stages: 
2026-06-04T02:39:10.1357337Z 
2026-06-04T02:39:10.1357502Z ### REQ-INSTALL-2
2026-06-04T02:39:10.1357776Z - Title: Marketplace-repackaging-friendly install
2026-06-04T02:39:10.1357974Z - Required stages: 
2026-06-04T02:39:10.1357990Z 
2026-06-04T02:39:10.1358158Z ### REQ-INSTALL-3
2026-06-04T02:39:10.1358432Z - Title: Idempotent + interactive-optional first run
2026-06-04T02:39:10.1358602Z - Required stages: 
2026-06-04T02:39:10.1358618Z 
2026-06-04T02:39:10.1358794Z ### REQ-INSTALL-4
2026-06-04T02:39:10.1360520Z - 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-04T02:39:10.1360722Z - Required stages: 
2026-06-04T02:39:10.1360740Z 
2026-06-04T02:39:10.1360919Z ### REQ-MIGRATE-1
2026-06-04T02:39:10.1361244Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T02:39:10.1361421Z - Required stages: 
2026-06-04T02:39:10.1361435Z 
2026-06-04T02:39:10.1361604Z ### REQ-INFRA-1
2026-06-04T02:39:10.1361944Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T02:39:10.1362138Z - Required stages: 
2026-06-04T02:39:10.1362155Z 
2026-06-04T02:39:10.1362320Z ### REQ-DOCS-1
2026-06-04T02:39:10.1362710Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T02:39:10.1362894Z - Required stages: 
2026-06-04T02:39:10.1362909Z 
2026-06-04T02:39:10.1363066Z ### REQ-DOCS-2
2026-06-04T02:39:10.1363381Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T02:39:10.1363563Z - Required stages: 
2026-06-04T02:39:10.1363580Z 
2026-06-04T02:39:10.1363753Z ### REQ-DOCS-3
2026-06-04T02:39:10.1364351Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T02:39:10.1364537Z - Required stages: 
2026-06-04T02:39:10.1364553Z 
2026-06-04T02:39:10.1364721Z ### REQ-DOCS-4
2026-06-04T02:39:10.1365094Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T02:39:10.1365276Z - Required stages: 
2026-06-04T02:39:10.1365292Z 
2026-06-04T02:39:10.1365452Z ### REQ-DOCS-5
2026-06-04T02:39:10.1366021Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T02:39:10.1366229Z - Required stages: 
2026-06-04T02:39:10.1366248Z 
2026-06-04T02:39:10.1366456Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T02:39:10.1366825Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T02:39:10.1367021Z - Required stages: impl, unit
2026-06-04T02:39:10.1367037Z 
2026-06-04T02:39:10.1367276Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T02:39:10.1367581Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T02:39:10.1367771Z - Required stages: impl, unit
2026-06-04T02:39:10.1367788Z 
2026-06-04T02:39:10.1368001Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T02:39:10.1368253Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T02:39:10.1368445Z - Required stages: 
2026-06-04T02:39:10.1368460Z 
2026-06-04T02:39:10.1368665Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T02:39:10.1369013Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T02:39:10.1369445Z - Required stages: impl, unit
2026-06-04T02:39:10.1369470Z 
2026-06-04T02:39:10.1369693Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T02:39:10.1370245Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T02:39:10.1370454Z - Required stages: impl, unit
2026-06-04T02:39:10.1370472Z 
2026-06-04T02:39:10.1370683Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T02:39:10.1371054Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T02:39:10.1371422Z - Required stages: 
2026-06-04T02:39:10.1371438Z 
2026-06-04T02:39:10.1371644Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T02:39:10.1371900Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T02:39:10.1372085Z - Required stages: 
2026-06-04T02:39:10.1372102Z 
2026-06-04T02:39:10.1372318Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T02:39:10.1372631Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T02:39:10.1372831Z - Required stages: impl, unit
2026-06-04T02:39:10.1372861Z 
2026-06-04T02:39:10.1373054Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T02:39:10.1373345Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T02:39:10.1373545Z - Required stages: impl, int
2026-06-04T02:39:10.1373561Z 
2026-06-04T02:39:10.1373762Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T02:39:10.1374079Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T02:39:10.1374288Z - Required stages: impl, unit
2026-06-04T02:39:10.1374305Z 
2026-06-04T02:39:10.1374534Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T02:39:10.1374858Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T02:39:10.1375057Z - Required stages: impl, unit
2026-06-04T02:39:10.1375075Z 
2026-06-04T02:39:10.1375291Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T02:39:10.1375649Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T02:39:10.1375849Z - Required stages: impl, unit
2026-06-04T02:39:10.1375864Z 
2026-06-04T02:39:10.1376093Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T02:39:10.1376393Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T02:39:10.1376597Z - Required stages: impl, unit
2026-06-04T02:39:10.1376614Z 
2026-06-04T02:39:10.1376822Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T02:39:10.1377164Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T02:39:10.1377368Z - Required stages: impl, unit
2026-06-04T02:39:10.1377402Z 
2026-06-04T02:39:10.1377609Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T02:39:10.1378037Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T02:39:10.1378231Z - Required stages: impl, unit
2026-06-04T02:39:10.1378248Z 
2026-06-04T02:39:10.1378446Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T02:39:10.1378942Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T02:39:10.1379133Z - Required stages: impl, unit
2026-06-04T02:39:10.1379150Z 
2026-06-04T02:39:10.1379756Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T02:39:10.1380295Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T02:39:10.1380502Z - Required stages: impl, unit
2026-06-04T02:39:10.1380519Z 
2026-06-04T02:39:10.1380743Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T02:39:10.1381236Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T02:39:10.1381459Z - Required stages: impl, unit
2026-06-04T02:39:10.1381477Z 
2026-06-04T02:39:10.1381685Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-04T02:39:10.1382476Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-04T02:39:10.1382697Z - Required stages: doc, impl, unit
2026-06-04T02:39:10.1382713Z 
2026-06-04T02:39:10.1382920Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T02:39:10.1383810Z - 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-04T02:39:10.1384008Z - Required stages: impl, unit
2026-06-04T02:39:10.1384025Z 
2026-06-04T02:39:10.1384254Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T02:39:10.1384506Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T02:39:10.1384701Z - Required stages: impl, unit
2026-06-04T02:39:10.1384720Z 
2026-06-04T02:39:10.1384929Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T02:39:10.1385369Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T02:39:10.1385579Z - Required stages: impl, unit
2026-06-04T02:39:10.1385596Z 
2026-06-04T02:39:10.1385821Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T02:39:10.1386122Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T02:39:10.1386326Z - Required stages: impl, unit
2026-06-04T02:39:10.1386341Z 
2026-06-04T02:39:10.1386529Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T02:39:10.1386857Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T02:39:10.1387080Z - Required stages: impl, unit
2026-06-04T02:39:10.1387097Z 
2026-06-04T02:39:10.1387299Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T02:39:10.1387584Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T02:39:10.1387776Z - Required stages: impl, unit
2026-06-04T02:39:10.1387792Z 
2026-06-04T02:39:10.1387997Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T02:39:10.1388303Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T02:39:10.1388510Z - Required stages: impl, unit
2026-06-04T02:39:10.1388527Z 
2026-06-04T02:39:10.1388741Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T02:39:10.1389092Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T02:39:10.1389358Z - Required stages: impl, unit
2026-06-04T02:39:10.1389560Z 
2026-06-04T02:39:10.1390124Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T02:39:10.1390495Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T02:39:10.1390701Z - Required stages: impl, unit
2026-06-04T02:39:10.1390729Z 
2026-06-04T02:39:10.1390946Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T02:39:10.1391281Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T02:39:10.1391483Z - Required stages: impl, unit
2026-06-04T02:39:10.1391498Z 
2026-06-04T02:39:10.1391722Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T02:39:10.1392015Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T02:39:10.1392228Z - Required stages: impl, unit
2026-06-04T02:39:10.1392247Z 
2026-06-04T02:39:10.1392465Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T02:39:10.1392897Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T02:39:10.1393092Z - Required stages: impl, unit
2026-06-04T02:39:10.1393107Z 
2026-06-04T02:39:10.1393304Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T02:39:10.1393733Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T02:39:10.1393928Z - Required stages: impl, unit
2026-06-04T02:39:10.1394134Z 
2026-06-04T02:39:10.1394353Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T02:39:10.1394767Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T02:39:10.1394971Z - Required stages: impl, unit
2026-06-04T02:39:10.1394988Z 
2026-06-04T02:39:10.1395202Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T02:39:10.1395714Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T02:39:10.1395937Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1395953Z 
2026-06-04T02:39:10.1396148Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T02:39:10.1396660Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T02:39:10.1396868Z - Required stages: impl, unit
2026-06-04T02:39:10.1396886Z 
2026-06-04T02:39:10.1397598Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T02:39:10.1398573Z - 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-04T02:39:10.1398871Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1398888Z 
2026-06-04T02:39:10.1399260Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T02:39:10.1401431Z - 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-04T02:39:10.1401964Z - Required stages: 
2026-06-04T02:39:10.1401984Z 
2026-06-04T02:39:10.1402264Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T02:39:10.1403711Z - 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-04T02:39:10.1403975Z - Required stages: 
2026-06-04T02:39:10.1403994Z 
2026-06-04T02:39:10.1404260Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T02:39:10.1405739Z - 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-04T02:39:10.1406047Z - Required stages: impl, unit
2026-06-04T02:39:10.1406063Z 
2026-06-04T02:39:10.1406323Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T02:39:10.1407507Z - 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-04T02:39:10.1407747Z - Required stages: impl, unit
2026-06-04T02:39:10.1407793Z 
2026-06-04T02:39:10.1408092Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T02:39:10.1410350Z - 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-04T02:39:10.1410605Z - Required stages: impl, unit
2026-06-04T02:39:10.1410622Z 
2026-06-04T02:39:10.1410914Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-04T02:39:10.1412582Z - 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-04T02:39:10.1412918Z - Required stages: doc, impl, unit
2026-06-04T02:39:10.1412936Z 
2026-06-04T02:39:10.1413233Z ## How to report back
2026-06-04T02:39:10.1413251Z 
2026-06-04T02:39:10.1413672Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T02:39:10.1413689Z 
2026-06-04T02:39:10.1413882Z     {
2026-06-04T02:39:10.1414143Z       "code": "requirement_quality",
2026-06-04T02:39:10.1422628Z       "requirementId": "REQ-...",
2026-06-04T02:39:10.1423158Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T02:39:10.1423370Z       "message": "<short reason>",
2026-06-04T02:39:10.1423623Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T02:39:10.1423775Z     }
2026-06-04T02:39:10.1423794Z 
2026-06-04T02:39:10.1424179Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T02:39:10.1424492Z deterministic findings above don't need to be repeated.
2026-06-04T02:39:10.1583847Z Post job cleanup.
2026-06-04T02:39:10.3029676Z [command]/usr/bin/git version
2026-06-04T02:39:10.3084828Z git version 2.34.1
2026-06-04T02:39:10.3140672Z Copying '/home/david/.gitconfig' to '/home/david/actions-runner/_work/_temp/7cbdb30c-5a2c-470c-b09b-416f17eaac8c/.gitconfig'
2026-06-04T02:39:10.3156312Z Temporarily overriding HOME='/home/david/actions-runner/_work/_temp/7cbdb30c-5a2c-470c-b09b-416f17eaac8c' before making global git config changes
2026-06-04T02:39:10.3157856Z Adding repository directory to the temporary git global config as a safe directory
2026-06-04T02:39:10.3165976Z [command]/usr/bin/git config --global --add safe.directory /home/david/actions-runner/_work/spt-core/spt-core
2026-06-04T02:39:10.3225973Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-04T02:39:10.3270710Z [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-04T02:39:10.3530479Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-04T02:39:10.3560032Z http.https://github.com/.extraheader
2026-06-04T02:39:10.3577894Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-04T02:39:10.3621508Z [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-04T02:39:10.3860619Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-04T02:39:10.3904765Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-04T02:39:10.4305746Z Cleaning up orphan processes
2026-06-04T02:39:10.4882488Z ##[warning]Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
