﻿2026-06-03T22:00:53.1284882Z Current runner version: '2.334.0'
2026-06-03T22:00:53.1360406Z ##[group]Runner Image Provisioner
2026-06-03T22:00:53.1361929Z Hosted Compute Agent
2026-06-03T22:00:53.1363045Z Version: 20260520.533
2026-06-03T22:00:53.1364312Z Commit: 189110e25284a9812c124fd27b339e2fb4f2f9db
2026-06-03T22:00:53.1365588Z Build Date: 2026-05-20T17:44:04Z
2026-06-03T22:00:53.1366716Z Worker ID: {53787b9b-2693-4fe9-8d7d-b8f00ff5e672}
2026-06-03T22:00:53.1368076Z Azure Region: westus3
2026-06-03T22:00:53.1369053Z ##[endgroup]
2026-06-03T22:00:53.1392044Z ##[group]Operating System
2026-06-03T22:00:53.1393226Z Ubuntu
2026-06-03T22:00:53.1394211Z 24.04.4
2026-06-03T22:00:53.1395243Z LTS
2026-06-03T22:00:53.1396172Z ##[endgroup]
2026-06-03T22:00:53.1397317Z ##[group]Runner Image
2026-06-03T22:00:53.1398511Z Image: ubuntu-24.04
2026-06-03T22:00:53.1400313Z Version: 20260525.161.1
2026-06-03T22:00:53.1402642Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260525.161/images/ubuntu/Ubuntu2404-Readme.md
2026-06-03T22:00:53.1405617Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260525.161
2026-06-03T22:00:53.1407447Z ##[endgroup]
2026-06-03T22:00:53.1433762Z ##[group]GITHUB_TOKEN Permissions
2026-06-03T22:00:53.1436919Z Contents: read
2026-06-03T22:00:53.1437985Z Metadata: read
2026-06-03T22:00:53.1439151Z Packages: read
2026-06-03T22:00:53.1440632Z ##[endgroup]
2026-06-03T22:00:53.1444158Z Secret source: Actions
2026-06-03T22:00:53.1445931Z Prepare workflow directory
2026-06-03T22:00:53.1948442Z Prepare all required actions
2026-06-03T22:00:53.2007784Z Getting action download info
2026-06-03T22:00:53.7658352Z Download action repository 'actions/checkout@v4' (SHA:34e114876b0b11c390a56381ad16ebd13914f8d5)
2026-06-03T22:00:53.9712876Z Complete job name: traceability
2026-06-03T22:00:54.0558386Z ##[group]Run actions/checkout@v4
2026-06-03T22:00:54.0559604Z with:
2026-06-03T22:00:54.0560170Z   repository: SaberMage/spt-core
2026-06-03T22:00:54.0565296Z   token: ***
2026-06-03T22:00:54.0565839Z   ssh-strict: true
2026-06-03T22:00:54.0566367Z   ssh-user: git
2026-06-03T22:00:54.0566898Z   persist-credentials: true
2026-06-03T22:00:54.0567475Z   clean: true
2026-06-03T22:00:54.0568042Z   sparse-checkout-cone-mode: true
2026-06-03T22:00:54.0568663Z   fetch-depth: 1
2026-06-03T22:00:54.0569188Z   fetch-tags: false
2026-06-03T22:00:54.0569891Z   show-progress: true
2026-06-03T22:00:54.0570443Z   lfs: false
2026-06-03T22:00:54.0570945Z   submodules: false
2026-06-03T22:00:54.0571485Z   set-safe-directory: true
2026-06-03T22:00:54.0572354Z ##[endgroup]
2026-06-03T22:00:54.1932946Z Syncing repository: SaberMage/spt-core
2026-06-03T22:00:54.1942600Z ##[group]Getting Git version info
2026-06-03T22:00:54.1944176Z Working directory is '/home/runner/work/spt-core/spt-core'
2026-06-03T22:00:54.1949958Z [command]/usr/bin/git version
2026-06-03T22:00:54.1951805Z git version 2.54.0
2026-06-03T22:00:54.1970436Z ##[endgroup]
2026-06-03T22:00:54.1979751Z Temporarily overriding HOME='/home/runner/work/_temp/4b5d06a0-134a-4737-8ff8-db73ae821c5e' before making global git config changes
2026-06-03T22:00:54.1984819Z Adding repository directory to the temporary git global config as a safe directory
2026-06-03T22:00:54.1986911Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/spt-core/spt-core
2026-06-03T22:00:54.2017235Z Deleting the contents of '/home/runner/work/spt-core/spt-core'
2026-06-03T22:00:54.2022464Z ##[group]Initializing the repository
2026-06-03T22:00:54.2027853Z [command]/usr/bin/git init /home/runner/work/spt-core/spt-core
2026-06-03T22:00:54.2128572Z hint: Using 'master' as the name for the initial branch. This default branch name
2026-06-03T22:00:54.2133318Z hint: will change to "main" in Git 3.0. To configure the initial branch name
2026-06-03T22:00:54.2139787Z hint: to use in all of your new repositories, which will suppress this warning,
2026-06-03T22:00:54.2141563Z hint: call:
2026-06-03T22:00:54.2142494Z hint:
2026-06-03T22:00:54.2143662Z hint: 	git config --global init.defaultBranch <name>
2026-06-03T22:00:54.2145428Z hint:
2026-06-03T22:00:54.2146671Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
2026-06-03T22:00:54.2148615Z hint: 'development'. The just-created branch can be renamed via this command:
2026-06-03T22:00:54.2149983Z hint:
2026-06-03T22:00:54.2150969Z hint: 	git branch -m <name>
2026-06-03T22:00:54.2152098Z hint:
2026-06-03T22:00:54.2153556Z hint: Disable this message with "git config set advice.defaultBranchName false"
2026-06-03T22:00:54.2155750Z Initialized empty Git repository in /home/runner/work/spt-core/spt-core/.git/
2026-06-03T22:00:54.2162751Z [command]/usr/bin/git remote add origin https://github.com/SaberMage/spt-core
2026-06-03T22:00:54.2201694Z ##[endgroup]
2026-06-03T22:00:54.2203744Z ##[group]Disabling automatic garbage collection
2026-06-03T22:00:54.2205715Z [command]/usr/bin/git config --local gc.auto 0
2026-06-03T22:00:54.2238056Z ##[endgroup]
2026-06-03T22:00:54.2240375Z ##[group]Setting up auth
2026-06-03T22:00:54.2246317Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-03T22:00:54.2282864Z [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-03T22:00:54.3481684Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-03T22:00:54.3487826Z [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-03T22:00:54.3494149Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-03T22:00:54.3499146Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-03T22:00:54.3504607Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-03T22:00:54.3523899Z ##[endgroup]
2026-06-03T22:00:54.3526009Z ##[group]Fetching the repository
2026-06-03T22:00:54.3534662Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +f2cb019ef3ef143b3319ce7565ef9eebe349bc46:refs/remotes/origin/dev-freeform
2026-06-03T22:00:55.2766878Z From https://github.com/SaberMage/spt-core
2026-06-03T22:00:55.2769011Z  * [new ref]         f2cb019ef3ef143b3319ce7565ef9eebe349bc46 -> origin/dev-freeform
2026-06-03T22:00:55.2773832Z ##[endgroup]
2026-06-03T22:00:55.2775667Z ##[group]Determining the checkout info
2026-06-03T22:00:55.2777890Z ##[endgroup]
2026-06-03T22:00:55.2779176Z [command]/usr/bin/git sparse-checkout disable
2026-06-03T22:00:55.2816223Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-03T22:00:55.2872007Z ##[group]Checking out the ref
2026-06-03T22:00:55.2874827Z [command]/usr/bin/git checkout --progress --force -B dev-freeform refs/remotes/origin/dev-freeform
2026-06-03T22:00:55.3034928Z Switched to a new branch 'dev-freeform'
2026-06-03T22:00:55.3041552Z branch 'dev-freeform' set up to track 'origin/dev-freeform'.
2026-06-03T22:00:55.3048990Z ##[endgroup]
2026-06-03T22:00:55.3087620Z [command]/usr/bin/git log -1 --format=%H
2026-06-03T22:00:55.3120554Z f2cb019ef3ef143b3319ce7565ef9eebe349bc46
2026-06-03T22:00:55.3368305Z ##[group]Run gh release download --repo BigscreenVR/traceable-reqs \
2026-06-03T22:00:55.3370723Z [36;1mgh release download --repo BigscreenVR/traceable-reqs \[0m
2026-06-03T22:00:55.3372649Z [36;1m  --pattern '*linux-x86_64' --output traceable-reqs[0m
2026-06-03T22:00:55.3374233Z [36;1mchmod +x traceable-reqs[0m
2026-06-03T22:00:55.3406288Z shell: /usr/bin/bash -e {0}
2026-06-03T22:00:55.3407446Z env:
2026-06-03T22:00:55.3409932Z   GH_TOKEN: ***
2026-06-03T22:00:55.3410914Z ##[endgroup]
2026-06-03T22:00:56.6514629Z ##[group]Run ./traceable-reqs check --json
2026-06-03T22:00:56.6515316Z [36;1m./traceable-reqs check --json[0m
2026-06-03T22:00:56.6542030Z shell: /usr/bin/bash -e {0}
2026-06-03T22:00:56.6542342Z ##[endgroup]
2026-06-03T22:00:56.6657064Z {
2026-06-03T22:00:56.6657438Z   "schemaVersion": 1,
2026-06-03T22:00:56.6658350Z   "summary": {
2026-06-03T22:00:56.6658713Z     "requirementCount": 125,
2026-06-03T22:00:56.6658999Z     "completeCount": 125,
2026-06-03T22:00:56.6659264Z     "incompleteCount": 0,
2026-06-03T22:00:56.6660092Z     "findingCount": 0
2026-06-03T22:00:56.6660511Z   },
2026-06-03T22:00:56.6662616Z   "requirements": [
2026-06-03T22:00:56.6663362Z     {
2026-06-03T22:00:56.6663831Z       "id": "REQ-API-1",
2026-06-03T22:00:56.6664483Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-03T22:00:56.6665194Z       "requiredStages": [
2026-06-03T22:00:56.6665608Z         "impl",
2026-06-03T22:00:56.6665958Z         "unit",
2026-06-03T22:00:56.6666350Z         "int"
2026-06-03T22:00:56.6666686Z       ],
2026-06-03T22:00:56.6667011Z       "stages": {
2026-06-03T22:00:56.6667389Z         "doc": {
2026-06-03T22:00:56.6667763Z           "complete": false,
2026-06-03T22:00:56.6668193Z           "evidence": []
2026-06-03T22:00:56.6668575Z         },
2026-06-03T22:00:56.6668923Z         "impl": {
2026-06-03T22:00:56.6669283Z           "complete": true,
2026-06-03T22:00:56.6669982Z           "evidence": [
2026-06-03T22:00:56.6670400Z             {
2026-06-03T22:00:56.6670826Z               "path": "crates/spt/src/api/mod.rs",
2026-06-03T22:00:56.6671342Z               "line": 15
2026-06-03T22:00:56.6671719Z             }
2026-06-03T22:00:56.6672059Z           ]
2026-06-03T22:00:56.6672384Z         },
2026-06-03T22:00:56.6672703Z         "int": {
2026-06-03T22:00:56.6673965Z           "complete": true,
2026-06-03T22:00:56.6674381Z           "evidence": [
2026-06-03T22:00:56.6674753Z             {
2026-06-03T22:00:56.6675173Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-03T22:00:56.6675721Z               "line": 13
2026-06-03T22:00:56.6676110Z             }
2026-06-03T22:00:56.6676439Z           ]
2026-06-03T22:00:56.6676759Z         },
2026-06-03T22:00:56.6677083Z         "unit": {
2026-06-03T22:00:56.6677449Z           "complete": true,
2026-06-03T22:00:56.6677863Z           "evidence": [
2026-06-03T22:00:56.6678239Z             {
2026-06-03T22:00:56.6678631Z               "path": "crates/spt/src/api/mod.rs",
2026-06-03T22:00:56.6679154Z               "line": 329
2026-06-03T22:00:56.6680262Z             },
2026-06-03T22:00:56.6680619Z             {
2026-06-03T22:00:56.6681017Z               "path": "crates/spt/src/api/mod.rs",
2026-06-03T22:00:56.6681528Z               "line": 335
2026-06-03T22:00:56.6681916Z             },
2026-06-03T22:00:56.6682249Z             {
2026-06-03T22:00:56.6682635Z               "path": "crates/spt/src/api/mod.rs",
2026-06-03T22:00:56.6683146Z               "line": 346
2026-06-03T22:00:56.6683538Z             }
2026-06-03T22:00:56.6683864Z           ]
2026-06-03T22:00:56.6684184Z         }
2026-06-03T22:00:56.6684509Z       }
2026-06-03T22:00:56.6684819Z     },
2026-06-03T22:00:56.6685128Z     {
2026-06-03T22:00:56.6685461Z       "id": "REQ-API-2",
2026-06-03T22:00:56.6686182Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-03T22:00:56.6686995Z       "requiredStages": [
2026-06-03T22:00:56.6687411Z         "impl",
2026-06-03T22:00:56.6687761Z         "unit",
2026-06-03T22:00:56.6688101Z         "int"
2026-06-03T22:00:56.6688436Z       ],
2026-06-03T22:00:56.6688770Z       "stages": {
2026-06-03T22:00:56.6689124Z         "doc": {
2026-06-03T22:00:56.6689696Z           "complete": false,
2026-06-03T22:00:56.6690135Z           "evidence": []
2026-06-03T22:00:56.6690536Z         },
2026-06-03T22:00:56.6690865Z         "impl": {
2026-06-03T22:00:56.6691237Z           "complete": true,
2026-06-03T22:00:56.6691656Z           "evidence": [
2026-06-03T22:00:56.6692270Z             {
2026-06-03T22:00:56.6692723Z               "path": "crates/spt-store/src/history.rs",
2026-06-03T22:00:56.6693423Z               "line": 15
2026-06-03T22:00:56.6693807Z             },
2026-06-03T22:00:56.6694144Z             {
2026-06-03T22:00:56.6694551Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-03T22:00:56.6695075Z               "line": 20
2026-06-03T22:00:56.6695449Z             },
2026-06-03T22:00:56.6695780Z             {
2026-06-03T22:00:56.6696191Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-03T22:00:56.6696713Z               "line": 125
2026-06-03T22:00:56.6697096Z             },
2026-06-03T22:00:56.6697426Z             {
2026-06-03T22:00:56.6697834Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.6698368Z               "line": 21
2026-06-03T22:00:56.6698746Z             },
2026-06-03T22:00:56.6699077Z             {
2026-06-03T22:00:56.6704104Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.6704720Z               "line": 36
2026-06-03T22:00:56.6705111Z             },
2026-06-03T22:00:56.6705588Z             {
2026-06-03T22:00:56.6774823Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.6775503Z               "line": 101
2026-06-03T22:00:56.6775976Z             },
2026-06-03T22:00:56.6776407Z             {
2026-06-03T22:00:56.6776916Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.6777442Z               "line": 123
2026-06-03T22:00:56.6777818Z             },
2026-06-03T22:00:56.6778159Z             {
2026-06-03T22:00:56.6778630Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.6779180Z               "line": 147
2026-06-03T22:00:56.6779827Z             },
2026-06-03T22:00:56.6780218Z             {
2026-06-03T22:00:56.6780644Z               "path": "crates/spt/src/api/worker.rs",
2026-06-03T22:00:56.6781175Z               "line": 17
2026-06-03T22:00:56.6781565Z             },
2026-06-03T22:00:56.6781974Z             {
2026-06-03T22:00:56.6782403Z               "path": "crates/spt/src/api/worker.rs",
2026-06-03T22:00:56.6782961Z               "line": 30
2026-06-03T22:00:56.6783353Z             },
2026-06-03T22:00:56.6783692Z             {
2026-06-03T22:00:56.6784105Z               "path": "crates/spt/src/api/worker.rs",
2026-06-03T22:00:56.6784645Z               "line": 63
2026-06-03T22:00:56.6785035Z             },
2026-06-03T22:00:56.6785381Z             {
2026-06-03T22:00:56.6785793Z               "path": "crates/spt/src/api/worker.rs",
2026-06-03T22:00:56.6786334Z               "line": 76
2026-06-03T22:00:56.6786949Z             }
2026-06-03T22:00:56.6787283Z           ]
2026-06-03T22:00:56.6787607Z         },
2026-06-03T22:00:56.6787944Z         "int": {
2026-06-03T22:00:56.6788325Z           "complete": true,
2026-06-03T22:00:56.6788762Z           "evidence": [
2026-06-03T22:00:56.6789159Z             {
2026-06-03T22:00:56.6790313Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-03T22:00:56.6790952Z               "line": 14
2026-06-03T22:00:56.6791385Z             },
2026-06-03T22:00:56.6791769Z             {
2026-06-03T22:00:56.6792236Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-03T22:00:56.6792834Z               "line": 151
2026-06-03T22:00:56.6793303Z             }
2026-06-03T22:00:56.6793675Z           ]
2026-06-03T22:00:56.6794015Z         },
2026-06-03T22:00:56.6794353Z         "unit": {
2026-06-03T22:00:56.6794727Z           "complete": true,
2026-06-03T22:00:56.6795159Z           "evidence": [
2026-06-03T22:00:56.6795541Z             {
2026-06-03T22:00:56.6795982Z               "path": "crates/spt-store/src/history.rs",
2026-06-03T22:00:56.6796527Z               "line": 42
2026-06-03T22:00:56.6796960Z             },
2026-06-03T22:00:56.6797364Z             {
2026-06-03T22:00:56.6797825Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-03T22:00:56.6798333Z               "line": 204
2026-06-03T22:00:56.6798720Z             },
2026-06-03T22:00:56.6799285Z             {
2026-06-03T22:00:56.6799946Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.6800643Z               "line": 220
2026-06-03T22:00:56.6801018Z             },
2026-06-03T22:00:56.6801412Z             {
2026-06-03T22:00:56.6801813Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.6802321Z               "line": 231
2026-06-03T22:00:56.6802689Z             },
2026-06-03T22:00:56.6803014Z             {
2026-06-03T22:00:56.6803407Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.6803910Z               "line": 267
2026-06-03T22:00:56.6804276Z             },
2026-06-03T22:00:56.6804605Z             {
2026-06-03T22:00:56.6805000Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.6805509Z               "line": 279
2026-06-03T22:00:56.6805883Z             },
2026-06-03T22:00:56.6806204Z             {
2026-06-03T22:00:56.6806596Z               "path": "crates/spt/src/api/worker.rs",
2026-06-03T22:00:56.6807103Z               "line": 137
2026-06-03T22:00:56.6807448Z             },
2026-06-03T22:00:56.6807658Z             {
2026-06-03T22:00:56.6807896Z               "path": "crates/spt/src/api/worker.rs",
2026-06-03T22:00:56.6808211Z               "line": 172
2026-06-03T22:00:56.6808439Z             }
2026-06-03T22:00:56.6808639Z           ]
2026-06-03T22:00:56.6808828Z         }
2026-06-03T22:00:56.6809018Z       }
2026-06-03T22:00:56.6809204Z     },
2026-06-03T22:00:56.6809911Z     {
2026-06-03T22:00:56.6810283Z       "id": "REQ-API-3",
2026-06-03T22:00:56.6810735Z       "title": "commune/signoff are file-drops, not commands",
2026-06-03T22:00:56.6811099Z       "requiredStages": [
2026-06-03T22:00:56.6811342Z         "impl",
2026-06-03T22:00:56.6811555Z         "unit",
2026-06-03T22:00:56.6811753Z         "int"
2026-06-03T22:00:56.6811945Z       ],
2026-06-03T22:00:56.6812137Z       "stages": {
2026-06-03T22:00:56.6812340Z         "doc": {
2026-06-03T22:00:56.6812563Z           "complete": false,
2026-06-03T22:00:56.6812819Z           "evidence": []
2026-06-03T22:00:56.6813055Z         },
2026-06-03T22:00:56.6813257Z         "impl": {
2026-06-03T22:00:56.6813477Z           "complete": true,
2026-06-03T22:00:56.6813712Z           "evidence": [
2026-06-03T22:00:56.6813932Z             {
2026-06-03T22:00:56.6814176Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-03T22:00:56.6814485Z               "line": 14
2026-06-03T22:00:56.6814706Z             },
2026-06-03T22:00:56.6814903Z             {
2026-06-03T22:00:56.6815145Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.6815456Z               "line": 157
2026-06-03T22:00:56.6815677Z             }
2026-06-03T22:00:56.6815867Z           ]
2026-06-03T22:00:56.6816055Z         },
2026-06-03T22:00:56.6816249Z         "int": {
2026-06-03T22:00:56.6816462Z           "complete": true,
2026-06-03T22:00:56.6816700Z           "evidence": [
2026-06-03T22:00:56.6816921Z             {
2026-06-03T22:00:56.6817177Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-03T22:00:56.6817504Z               "line": 203
2026-06-03T22:00:56.6817733Z             }
2026-06-03T22:00:56.6817925Z           ]
2026-06-03T22:00:56.6818117Z         },
2026-06-03T22:00:56.6818311Z         "unit": {
2026-06-03T22:00:56.6818528Z           "complete": true,
2026-06-03T22:00:56.6818770Z           "evidence": [
2026-06-03T22:00:56.6819016Z             {
2026-06-03T22:00:56.6819255Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-03T22:00:56.6819832Z               "line": 117
2026-06-03T22:00:56.6820073Z             },
2026-06-03T22:00:56.6820280Z             {
2026-06-03T22:00:56.6820538Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.6820858Z               "line": 288
2026-06-03T22:00:56.6821080Z             }
2026-06-03T22:00:56.6821272Z           ]
2026-06-03T22:00:56.6821464Z         }
2026-06-03T22:00:56.6821659Z       }
2026-06-03T22:00:56.6821842Z     },
2026-06-03T22:00:56.6822025Z     {
2026-06-03T22:00:56.6822385Z       "id": "REQ-ARCH-1",
2026-06-03T22:00:56.6822677Z       "title": "Many small acyclically-layered crates",
2026-06-03T22:00:56.6823133Z       "requiredStages": [
2026-06-03T22:00:56.6823369Z         "impl"
2026-06-03T22:00:56.6823573Z       ],
2026-06-03T22:00:56.6823768Z       "stages": {
2026-06-03T22:00:56.6823985Z         "doc": {
2026-06-03T22:00:56.6824200Z           "complete": false,
2026-06-03T22:00:56.6824448Z           "evidence": []
2026-06-03T22:00:56.6824672Z         },
2026-06-03T22:00:56.6824867Z         "impl": {
2026-06-03T22:00:56.6825087Z           "complete": true,
2026-06-03T22:00:56.6825326Z           "evidence": [
2026-06-03T22:00:56.6825543Z             {
2026-06-03T22:00:56.6825778Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-03T22:00:56.6826080Z               "line": 16
2026-06-03T22:00:56.6826295Z             },
2026-06-03T22:00:56.6826491Z             {
2026-06-03T22:00:56.6826728Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-03T22:00:56.6827031Z               "line": 12
2026-06-03T22:00:56.6827250Z             },
2026-06-03T22:00:56.6827450Z             {
2026-06-03T22:00:56.6827682Z               "path": "crates/spt-store/src/lib.rs",
2026-06-03T22:00:56.6827979Z               "line": 12
2026-06-03T22:00:56.6828196Z             }
2026-06-03T22:00:56.6828389Z           ]
2026-06-03T22:00:56.6828582Z         },
2026-06-03T22:00:56.6828775Z         "int": {
2026-06-03T22:00:56.6828990Z           "complete": false,
2026-06-03T22:00:56.6829236Z           "evidence": []
2026-06-03T22:00:56.6829729Z         },
2026-06-03T22:00:56.6829946Z         "unit": {
2026-06-03T22:00:56.6830168Z           "complete": false,
2026-06-03T22:00:56.6830420Z           "evidence": []
2026-06-03T22:00:56.6830643Z         }
2026-06-03T22:00:56.6830832Z       }
2026-06-03T22:00:56.6831017Z     },
2026-06-03T22:00:56.6831204Z     {
2026-06-03T22:00:56.6831405Z       "id": "REQ-ARCH-2",
2026-06-03T22:00:56.6831756Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-03T22:00:56.6832148Z       "requiredStages": [
2026-06-03T22:00:56.6832385Z         "impl"
2026-06-03T22:00:56.6832579Z       ],
2026-06-03T22:00:56.6832766Z       "stages": {
2026-06-03T22:00:56.6832965Z         "doc": {
2026-06-03T22:00:56.6833170Z           "complete": false,
2026-06-03T22:00:56.6833408Z           "evidence": []
2026-06-03T22:00:56.6833621Z         },
2026-06-03T22:00:56.6833811Z         "impl": {
2026-06-03T22:00:56.6834028Z           "complete": true,
2026-06-03T22:00:56.6834267Z           "evidence": [
2026-06-03T22:00:56.6834482Z             {
2026-06-03T22:00:56.6834718Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-03T22:00:56.6835018Z               "line": 18
2026-06-03T22:00:56.6835231Z             }
2026-06-03T22:00:56.6835422Z           ]
2026-06-03T22:00:56.6835605Z         },
2026-06-03T22:00:56.6835799Z         "int": {
2026-06-03T22:00:56.6836006Z           "complete": false,
2026-06-03T22:00:56.6836250Z           "evidence": []
2026-06-03T22:00:56.6836462Z         },
2026-06-03T22:00:56.6836646Z         "unit": {
2026-06-03T22:00:56.6836856Z           "complete": false,
2026-06-03T22:00:56.6837089Z           "evidence": []
2026-06-03T22:00:56.6837302Z         }
2026-06-03T22:00:56.6837492Z       }
2026-06-03T22:00:56.6837674Z     },
2026-06-03T22:00:56.6837851Z     {
2026-06-03T22:00:56.6838040Z       "id": "REQ-ARCH-3",
2026-06-03T22:00:56.6838414Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-03T22:00:56.6838838Z       "requiredStages": [
2026-06-03T22:00:56.6839063Z         "impl",
2026-06-03T22:00:56.6839264Z         "unit"
2026-06-03T22:00:56.6839845Z       ],
2026-06-03T22:00:56.6840044Z       "stages": {
2026-06-03T22:00:56.6840256Z         "doc": {
2026-06-03T22:00:56.6840471Z           "complete": false,
2026-06-03T22:00:56.6840722Z           "evidence": []
2026-06-03T22:00:56.6840944Z         },
2026-06-03T22:00:56.6841133Z         "impl": {
2026-06-03T22:00:56.6841492Z           "complete": true,
2026-06-03T22:00:56.6841742Z           "evidence": [
2026-06-03T22:00:56.6842063Z             {
2026-06-03T22:00:56.6842315Z               "path": "crates/spt-proto/src/version.rs",
2026-06-03T22:00:56.6842631Z               "line": 34
2026-06-03T22:00:56.6842846Z             },
2026-06-03T22:00:56.6843040Z             {
2026-06-03T22:00:56.6843288Z               "path": "crates/spt-proto/src/version.rs",
2026-06-03T22:00:56.6843602Z               "line": 41
2026-06-03T22:00:56.6843818Z             }
2026-06-03T22:00:56.6844003Z           ]
2026-06-03T22:00:56.6844184Z         },
2026-06-03T22:00:56.6844368Z         "int": {
2026-06-03T22:00:56.6844577Z           "complete": false,
2026-06-03T22:00:56.6844815Z           "evidence": []
2026-06-03T22:00:56.6845028Z         },
2026-06-03T22:00:56.6845214Z         "unit": {
2026-06-03T22:00:56.6845423Z           "complete": true,
2026-06-03T22:00:56.6845653Z           "evidence": [
2026-06-03T22:00:56.6845860Z             {
2026-06-03T22:00:56.6846107Z               "path": "crates/spt-proto/src/version.rs",
2026-06-03T22:00:56.6846412Z               "line": 51
2026-06-03T22:00:56.6846621Z             },
2026-06-03T22:00:56.6846809Z             {
2026-06-03T22:00:56.6847037Z               "path": "crates/spt-proto/src/version.rs",
2026-06-03T22:00:56.6847336Z               "line": 65
2026-06-03T22:00:56.6847553Z             },
2026-06-03T22:00:56.6847745Z             {
2026-06-03T22:00:56.6847981Z               "path": "crates/spt-proto/src/version.rs",
2026-06-03T22:00:56.6848281Z               "line": 74
2026-06-03T22:00:56.6848494Z             }
2026-06-03T22:00:56.6848683Z           ]
2026-06-03T22:00:56.6848868Z         }
2026-06-03T22:00:56.6849055Z       }
2026-06-03T22:00:56.6849237Z     },
2026-06-03T22:00:56.6849801Z     {
2026-06-03T22:00:56.6850039Z       "id": "REQ-ARCH-4",
2026-06-03T22:00:56.6850406Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-03T22:00:56.6850818Z       "requiredStages": [
2026-06-03T22:00:56.6851046Z         "impl",
2026-06-03T22:00:56.6851251Z         "unit"
2026-06-03T22:00:56.6851445Z       ],
2026-06-03T22:00:56.6851631Z       "stages": {
2026-06-03T22:00:56.6851832Z         "doc": {
2026-06-03T22:00:56.6852037Z           "complete": false,
2026-06-03T22:00:56.6852274Z           "evidence": []
2026-06-03T22:00:56.6852494Z         },
2026-06-03T22:00:56.6852680Z         "impl": {
2026-06-03T22:00:56.6852881Z           "complete": true,
2026-06-03T22:00:56.6853114Z           "evidence": [
2026-06-03T22:00:56.6853324Z             {
2026-06-03T22:00:56.6853560Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6853858Z               "line": 32
2026-06-03T22:00:56.6854068Z             },
2026-06-03T22:00:56.6854261Z             {
2026-06-03T22:00:56.6854492Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6854781Z               "line": 46
2026-06-03T22:00:56.6854994Z             },
2026-06-03T22:00:56.6855189Z             {
2026-06-03T22:00:56.6855420Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6855711Z               "line": 66
2026-06-03T22:00:56.6855920Z             },
2026-06-03T22:00:56.6856113Z             {
2026-06-03T22:00:56.6856338Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6856624Z               "line": 81
2026-06-03T22:00:56.6856832Z             },
2026-06-03T22:00:56.6857023Z             {
2026-06-03T22:00:56.6857247Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6857530Z               "line": 131
2026-06-03T22:00:56.6857744Z             }
2026-06-03T22:00:56.6857931Z           ]
2026-06-03T22:00:56.6858111Z         },
2026-06-03T22:00:56.6858296Z         "int": {
2026-06-03T22:00:56.6858506Z           "complete": false,
2026-06-03T22:00:56.6858745Z           "evidence": []
2026-06-03T22:00:56.6858961Z         },
2026-06-03T22:00:56.6859158Z         "unit": {
2026-06-03T22:00:56.6859628Z           "complete": true,
2026-06-03T22:00:56.6859889Z           "evidence": [
2026-06-03T22:00:56.6860103Z             {
2026-06-03T22:00:56.6860442Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6860733Z               "line": 195
2026-06-03T22:00:56.6860946Z             },
2026-06-03T22:00:56.6861134Z             {
2026-06-03T22:00:56.6861360Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6861648Z               "line": 205
2026-06-03T22:00:56.6861863Z             },
2026-06-03T22:00:56.6862053Z             {
2026-06-03T22:00:56.6862284Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6862575Z               "line": 216
2026-06-03T22:00:56.6862791Z             },
2026-06-03T22:00:56.6862981Z             {
2026-06-03T22:00:56.6863208Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6863497Z               "line": 227
2026-06-03T22:00:56.6863714Z             },
2026-06-03T22:00:56.6863904Z             {
2026-06-03T22:00:56.6864136Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6864430Z               "line": 239
2026-06-03T22:00:56.6864653Z             },
2026-06-03T22:00:56.6864844Z             {
2026-06-03T22:00:56.6865070Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6865359Z               "line": 252
2026-06-03T22:00:56.6865574Z             },
2026-06-03T22:00:56.6865764Z             {
2026-06-03T22:00:56.6865992Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6866283Z               "line": 263
2026-06-03T22:00:56.6866492Z             },
2026-06-03T22:00:56.6866676Z             {
2026-06-03T22:00:56.6866897Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6867186Z               "line": 277
2026-06-03T22:00:56.6867400Z             },
2026-06-03T22:00:56.6867586Z             {
2026-06-03T22:00:56.6867808Z               "path": "crates/spt-proto/src/event.rs",
2026-06-03T22:00:56.6868104Z               "line": 286
2026-06-03T22:00:56.6868331Z             }
2026-06-03T22:00:56.6868525Z           ]
2026-06-03T22:00:56.6868719Z         }
2026-06-03T22:00:56.6868912Z       }
2026-06-03T22:00:56.6869101Z     },
2026-06-03T22:00:56.6869288Z     {
2026-06-03T22:00:56.6869618Z       "id": "REQ-DAEMON-1",
2026-06-03T22:00:56.6869961Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-03T22:00:56.6870345Z       "requiredStages": [
2026-06-03T22:00:56.6870572Z         "impl",
2026-06-03T22:00:56.6870772Z         "unit",
2026-06-03T22:00:56.6870964Z         "int"
2026-06-03T22:00:56.6871154Z       ],
2026-06-03T22:00:56.6871341Z       "stages": {
2026-06-03T22:00:56.6871548Z         "doc": {
2026-06-03T22:00:56.6872314Z           "complete": false,
2026-06-03T22:00:56.6872594Z           "evidence": []
2026-06-03T22:00:56.6872830Z         },
2026-06-03T22:00:56.6873027Z         "impl": {
2026-06-03T22:00:56.6873241Z           "complete": true,
2026-06-03T22:00:56.6873476Z           "evidence": [
2026-06-03T22:00:56.6873705Z             {
2026-06-03T22:00:56.6873947Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-03T22:00:56.6874275Z               "line": 12
2026-06-03T22:00:56.6874496Z             },
2026-06-03T22:00:56.6874699Z             {
2026-06-03T22:00:56.6874941Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.6875259Z               "line": 16
2026-06-03T22:00:56.6875491Z             },
2026-06-03T22:00:56.6875690Z             {
2026-06-03T22:00:56.6875932Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-03T22:00:56.6876232Z               "line": 15
2026-06-03T22:00:56.6876450Z             },
2026-06-03T22:00:56.6876648Z             {
2026-06-03T22:00:56.6876886Z               "path": "crates/spt/src/api/live.rs",
2026-06-03T22:00:56.6877185Z               "line": 13
2026-06-03T22:00:56.6877404Z             }
2026-06-03T22:00:56.6877597Z           ]
2026-06-03T22:00:56.6877786Z         },
2026-06-03T22:00:56.6877975Z         "int": {
2026-06-03T22:00:56.6878332Z           "complete": true,
2026-06-03T22:00:56.6878581Z           "evidence": [
2026-06-03T22:00:56.6878909Z             {
2026-06-03T22:00:56.6879166Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-03T22:00:56.6879640Z               "line": 32
2026-06-03T22:00:56.6879863Z             }
2026-06-03T22:00:56.6880061Z           ]
2026-06-03T22:00:56.6880252Z         },
2026-06-03T22:00:56.6880441Z         "unit": {
2026-06-03T22:00:56.6880655Z           "complete": true,
2026-06-03T22:00:56.6880889Z           "evidence": [
2026-06-03T22:00:56.6881112Z             {
2026-06-03T22:00:56.6881350Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-03T22:00:56.6881651Z               "line": 139
2026-06-03T22:00:56.6881873Z             },
2026-06-03T22:00:56.6882064Z             {
2026-06-03T22:00:56.6882296Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-03T22:00:56.6882597Z               "line": 147
2026-06-03T22:00:56.6882824Z             },
2026-06-03T22:00:56.6883024Z             {
2026-06-03T22:00:56.6883258Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-03T22:00:56.6883559Z               "line": 160
2026-06-03T22:00:56.6883780Z             },
2026-06-03T22:00:56.6883970Z             {
2026-06-03T22:00:56.6884206Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-03T22:00:56.6884504Z               "line": 168
2026-06-03T22:00:56.6884724Z             },
2026-06-03T22:00:56.6884929Z             {
2026-06-03T22:00:56.6885173Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.6885489Z               "line": 451
2026-06-03T22:00:56.6885710Z             },
2026-06-03T22:00:56.6885904Z             {
2026-06-03T22:00:56.6886145Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.6886452Z               "line": 510
2026-06-03T22:00:56.6886670Z             },
2026-06-03T22:00:56.6886862Z             {
2026-06-03T22:00:56.6887104Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-03T22:00:56.6887400Z               "line": 100
2026-06-03T22:00:56.6887626Z             },
2026-06-03T22:00:56.6887820Z             {
2026-06-03T22:00:56.6888050Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-03T22:00:56.6888348Z               "line": 125
2026-06-03T22:00:56.6888569Z             }
2026-06-03T22:00:56.6888762Z           ]
2026-06-03T22:00:56.6888960Z         }
2026-06-03T22:00:56.6889149Z       }
2026-06-03T22:00:56.6889563Z     },
2026-06-03T22:00:56.6889885Z     {
2026-06-03T22:00:56.6890094Z       "id": "REQ-DAEMON-2",
2026-06-03T22:00:56.6890410Z       "title": "Broker/brain split for seamless self-update",
2026-06-03T22:00:56.6890755Z       "requiredStages": [
2026-06-03T22:00:56.6890988Z         "impl",
2026-06-03T22:00:56.6891187Z         "unit",
2026-06-03T22:00:56.6891391Z         "int"
2026-06-03T22:00:56.6891582Z       ],
2026-06-03T22:00:56.6891774Z       "stages": {
2026-06-03T22:00:56.6891979Z         "doc": {
2026-06-03T22:00:56.6892199Z           "complete": false,
2026-06-03T22:00:56.6892445Z           "evidence": []
2026-06-03T22:00:56.6892674Z         },
2026-06-03T22:00:56.6892863Z         "impl": {
2026-06-03T22:00:56.6893076Z           "complete": true,
2026-06-03T22:00:56.6893315Z           "evidence": [
2026-06-03T22:00:56.6893534Z             {
2026-06-03T22:00:56.6893772Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-03T22:00:56.6894066Z               "line": 23
2026-06-03T22:00:56.6894283Z             },
2026-06-03T22:00:56.6894479Z             {
2026-06-03T22:00:56.6894712Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-03T22:00:56.6895012Z               "line": 32
2026-06-03T22:00:56.6895233Z             },
2026-06-03T22:00:56.6895428Z             {
2026-06-03T22:00:56.6895658Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-03T22:00:56.6895947Z               "line": 11
2026-06-03T22:00:56.6896164Z             },
2026-06-03T22:00:56.6896358Z             {
2026-06-03T22:00:56.6896733Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-03T22:00:56.6897131Z               "line": 13
2026-06-03T22:00:56.6897356Z             },
2026-06-03T22:00:56.6897550Z             {
2026-06-03T22:00:56.6897793Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-03T22:00:56.6898104Z               "line": 10
2026-06-03T22:00:56.6898321Z             }
2026-06-03T22:00:56.6898512Z           ]
2026-06-03T22:00:56.6898701Z         },
2026-06-03T22:00:56.6898888Z         "int": {
2026-06-03T22:00:56.6899102Z           "complete": true,
2026-06-03T22:00:56.6899481Z           "evidence": [
2026-06-03T22:00:56.6899706Z             {
2026-06-03T22:00:56.6899953Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-03T22:00:56.6900259Z               "line": 17
2026-06-03T22:00:56.6900481Z             },
2026-06-03T22:00:56.6900707Z             {
2026-06-03T22:00:56.6900957Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-03T22:00:56.6901281Z               "line": 33
2026-06-03T22:00:56.6901502Z             },
2026-06-03T22:00:56.6901696Z             {
2026-06-03T22:00:56.6901933Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-03T22:00:56.6902242Z               "line": 19
2026-06-03T22:00:56.6902458Z             }
2026-06-03T22:00:56.6902647Z           ]
2026-06-03T22:00:56.6902832Z         },
2026-06-03T22:00:56.6903020Z         "unit": {
2026-06-03T22:00:56.6903227Z           "complete": true,
2026-06-03T22:00:56.6903464Z           "evidence": [
2026-06-03T22:00:56.6903678Z             {
2026-06-03T22:00:56.6903911Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-03T22:00:56.6904209Z               "line": 62
2026-06-03T22:00:56.6904424Z             },
2026-06-03T22:00:56.6904616Z             {
2026-06-03T22:00:56.6904848Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-03T22:00:56.6905139Z               "line": 76
2026-06-03T22:00:56.6905358Z             },
2026-06-03T22:00:56.6905558Z             {
2026-06-03T22:00:56.6905788Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-03T22:00:56.6906088Z               "line": 88
2026-06-03T22:00:56.6906304Z             },
2026-06-03T22:00:56.6906499Z             {
2026-06-03T22:00:56.6906731Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-03T22:00:56.6907029Z               "line": 254
2026-06-03T22:00:56.6907254Z             },
2026-06-03T22:00:56.6907452Z             {
2026-06-03T22:00:56.6907679Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-03T22:00:56.6907978Z               "line": 196
2026-06-03T22:00:56.6908198Z             },
2026-06-03T22:00:56.6908392Z             {
2026-06-03T22:00:56.6908623Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-03T22:00:56.6908916Z               "line": 204
2026-06-03T22:00:56.6909138Z             },
2026-06-03T22:00:56.6909457Z             {
2026-06-03T22:00:56.6909692Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-03T22:00:56.6909994Z               "line": 221
2026-06-03T22:00:56.6910216Z             },
2026-06-03T22:00:56.6910414Z             {
2026-06-03T22:00:56.6910670Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-03T22:00:56.6910999Z               "line": 112
2026-06-03T22:00:56.6911218Z             }
2026-06-03T22:00:56.6911414Z           ]
2026-06-03T22:00:56.6911603Z         }
2026-06-03T22:00:56.6911791Z       }
2026-06-03T22:00:56.6911976Z     },
2026-06-03T22:00:56.6912160Z     {
2026-06-03T22:00:56.6912355Z       "id": "REQ-DAEMON-3",
2026-06-03T22:00:56.6912680Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-03T22:00:56.6913039Z       "requiredStages": [
2026-06-03T22:00:56.6913266Z         "impl",
2026-06-03T22:00:56.6913475Z         "unit",
2026-06-03T22:00:56.6913673Z         "int"
2026-06-03T22:00:56.6913864Z       ],
2026-06-03T22:00:56.6914054Z       "stages": {
2026-06-03T22:00:56.6914260Z         "doc": {
2026-06-03T22:00:56.6914595Z           "complete": false,
2026-06-03T22:00:56.6914847Z           "evidence": []
2026-06-03T22:00:56.6915070Z         },
2026-06-03T22:00:56.6915367Z         "impl": {
2026-06-03T22:00:56.6915588Z           "complete": true,
2026-06-03T22:00:56.6915820Z           "evidence": [
2026-06-03T22:00:56.6916038Z             {
2026-06-03T22:00:56.6916280Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-03T22:00:56.6916583Z               "line": 14
2026-06-03T22:00:56.6916801Z             },
2026-06-03T22:00:56.6916999Z             {
2026-06-03T22:00:56.6917241Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-03T22:00:56.6917560Z               "line": 11
2026-06-03T22:00:56.6917780Z             },
2026-06-03T22:00:56.6917974Z             {
2026-06-03T22:00:56.6918208Z               "path": "crates/spt/src/api/mod.rs",
2026-06-03T22:00:56.6918500Z               "line": 203
2026-06-03T22:00:56.6918723Z             },
2026-06-03T22:00:56.6918918Z             {
2026-06-03T22:00:56.6919148Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.6919561Z               "line": 221
2026-06-03T22:00:56.6919796Z             }
2026-06-03T22:00:56.6919989Z           ]
2026-06-03T22:00:56.6920175Z         },
2026-06-03T22:00:56.6920361Z         "int": {
2026-06-03T22:00:56.6920571Z           "complete": true,
2026-06-03T22:00:56.6920804Z           "evidence": [
2026-06-03T22:00:56.6921020Z             {
2026-06-03T22:00:56.6921253Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-03T22:00:56.6921559Z               "line": 43
2026-06-03T22:00:56.6921776Z             },
2026-06-03T22:00:56.6921967Z             {
2026-06-03T22:00:56.6922197Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-03T22:00:56.6922501Z               "line": 315
2026-06-03T22:00:56.6922717Z             }
2026-06-03T22:00:56.6922909Z           ]
2026-06-03T22:00:56.6923096Z         },
2026-06-03T22:00:56.6923285Z         "unit": {
2026-06-03T22:00:56.6923500Z           "complete": true,
2026-06-03T22:00:56.6923744Z           "evidence": [
2026-06-03T22:00:56.6923958Z             {
2026-06-03T22:00:56.6924197Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-03T22:00:56.6924500Z               "line": 176
2026-06-03T22:00:56.6924717Z             }
2026-06-03T22:00:56.6924910Z           ]
2026-06-03T22:00:56.6925098Z         }
2026-06-03T22:00:56.6925293Z       }
2026-06-03T22:00:56.6925474Z     },
2026-06-03T22:00:56.6925656Z     {
2026-06-03T22:00:56.6925854Z       "id": "REQ-DAEMON-4",
2026-06-03T22:00:56.6926131Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-03T22:00:56.6926435Z       "requiredStages": [
2026-06-03T22:00:56.6926656Z         "impl",
2026-06-03T22:00:56.6926845Z         "unit",
2026-06-03T22:00:56.6927039Z         "int"
2026-06-03T22:00:56.6927226Z       ],
2026-06-03T22:00:56.6927420Z       "stages": {
2026-06-03T22:00:56.6927621Z         "doc": {
2026-06-03T22:00:56.6927827Z           "complete": false,
2026-06-03T22:00:56.6928064Z           "evidence": []
2026-06-03T22:00:56.6928285Z         },
2026-06-03T22:00:56.6928468Z         "impl": {
2026-06-03T22:00:56.6928684Z           "complete": true,
2026-06-03T22:00:56.6928920Z           "evidence": [
2026-06-03T22:00:56.6929143Z             {
2026-06-03T22:00:56.6929643Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.6930072Z               "line": 262
2026-06-03T22:00:56.6930297Z             },
2026-06-03T22:00:56.6930492Z             {
2026-06-03T22:00:56.6930735Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.6931048Z               "line": 324
2026-06-03T22:00:56.6931268Z             },
2026-06-03T22:00:56.6931469Z             {
2026-06-03T22:00:56.6931713Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.6932017Z               "line": 346
2026-06-03T22:00:56.6932236Z             }
2026-06-03T22:00:56.6932429Z           ]
2026-06-03T22:00:56.6932618Z         },
2026-06-03T22:00:56.6932806Z         "int": {
2026-06-03T22:00:56.6933212Z           "complete": true,
2026-06-03T22:00:56.6933452Z           "evidence": [
2026-06-03T22:00:56.6933778Z             {
2026-06-03T22:00:56.6934028Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-03T22:00:56.6934345Z               "line": 34
2026-06-03T22:00:56.6934565Z             }
2026-06-03T22:00:56.6934756Z           ]
2026-06-03T22:00:56.6934945Z         },
2026-06-03T22:00:56.6935139Z         "unit": {
2026-06-03T22:00:56.6935361Z           "complete": true,
2026-06-03T22:00:56.6935609Z           "evidence": [
2026-06-03T22:00:56.6935827Z             {
2026-06-03T22:00:56.6936066Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-03T22:00:56.6936374Z               "line": 194
2026-06-03T22:00:56.6936599Z             },
2026-06-03T22:00:56.6936794Z             {
2026-06-03T22:00:56.6937038Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.6937345Z               "line": 533
2026-06-03T22:00:56.6937574Z             },
2026-06-03T22:00:56.6937780Z             {
2026-06-03T22:00:56.6938025Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.6938337Z               "line": 584
2026-06-03T22:00:56.6938560Z             },
2026-06-03T22:00:56.6938751Z             {
2026-06-03T22:00:56.6938986Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.6939292Z               "line": 608
2026-06-03T22:00:56.6939707Z             },
2026-06-03T22:00:56.6939908Z             {
2026-06-03T22:00:56.6940144Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.6940447Z               "line": 638
2026-06-03T22:00:56.6940666Z             }
2026-06-03T22:00:56.6940856Z           ]
2026-06-03T22:00:56.6941040Z         }
2026-06-03T22:00:56.6941228Z       }
2026-06-03T22:00:56.6941414Z     },
2026-06-03T22:00:56.6941595Z     {
2026-06-03T22:00:56.6941803Z       "id": "REQ-DOCS-1",
2026-06-03T22:00:56.6942184Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-03T22:00:56.6942614Z       "requiredStages": [],
2026-06-03T22:00:56.6942857Z       "stages": {
2026-06-03T22:00:56.6943066Z         "doc": {
2026-06-03T22:00:56.6943279Z           "complete": false,
2026-06-03T22:00:56.6943519Z           "evidence": []
2026-06-03T22:00:56.6943741Z         },
2026-06-03T22:00:56.6943939Z         "impl": {
2026-06-03T22:00:56.6944151Z           "complete": false,
2026-06-03T22:00:56.6944393Z           "evidence": []
2026-06-03T22:00:56.6944615Z         },
2026-06-03T22:00:56.6944810Z         "int": {
2026-06-03T22:00:56.6945023Z           "complete": false,
2026-06-03T22:00:56.6945262Z           "evidence": []
2026-06-03T22:00:56.6945478Z         },
2026-06-03T22:00:56.6945667Z         "unit": {
2026-06-03T22:00:56.6945885Z           "complete": false,
2026-06-03T22:00:56.6946122Z           "evidence": []
2026-06-03T22:00:56.6946338Z         }
2026-06-03T22:00:56.6946525Z       }
2026-06-03T22:00:56.6960193Z     },
2026-06-03T22:00:56.6960430Z     {
2026-06-03T22:00:56.6960645Z       "id": "REQ-DOCS-2",
2026-06-03T22:00:56.6961021Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-03T22:00:56.6961414Z       "requiredStages": [],
2026-06-03T22:00:56.6961666Z       "stages": {
2026-06-03T22:00:56.6961875Z         "doc": {
2026-06-03T22:00:56.6962090Z           "complete": false,
2026-06-03T22:00:56.6962344Z           "evidence": []
2026-06-03T22:00:56.6962569Z         },
2026-06-03T22:00:56.6962763Z         "impl": {
2026-06-03T22:00:56.6962980Z           "complete": false,
2026-06-03T22:00:56.6963219Z           "evidence": []
2026-06-03T22:00:56.6963446Z         },
2026-06-03T22:00:56.6963637Z         "int": {
2026-06-03T22:00:56.6963846Z           "complete": false,
2026-06-03T22:00:56.6964081Z           "evidence": []
2026-06-03T22:00:56.6964300Z         },
2026-06-03T22:00:56.6964492Z         "unit": {
2026-06-03T22:00:56.6964701Z           "complete": false,
2026-06-03T22:00:56.6965118Z           "evidence": []
2026-06-03T22:00:56.6965350Z         }
2026-06-03T22:00:56.6965549Z       }
2026-06-03T22:00:56.6965844Z     },
2026-06-03T22:00:56.6966027Z     {
2026-06-03T22:00:56.6966225Z       "id": "REQ-DOCS-3",
2026-06-03T22:00:56.6966920Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-03T22:00:56.6967299Z       "requiredStages": [],
2026-06-03T22:00:56.6967547Z       "stages": {
2026-06-03T22:00:56.6967754Z         "doc": {
2026-06-03T22:00:56.6967969Z           "complete": false,
2026-06-03T22:00:56.6968214Z           "evidence": []
2026-06-03T22:00:56.6968432Z         },
2026-06-03T22:00:56.6968622Z         "impl": {
2026-06-03T22:00:56.6968834Z           "complete": false,
2026-06-03T22:00:56.6969071Z           "evidence": []
2026-06-03T22:00:56.6969288Z         },
2026-06-03T22:00:56.6969688Z         "int": {
2026-06-03T22:00:56.6969903Z           "complete": false,
2026-06-03T22:00:56.6970141Z           "evidence": []
2026-06-03T22:00:56.6970360Z         },
2026-06-03T22:00:56.6970562Z         "unit": {
2026-06-03T22:00:56.6970772Z           "complete": false,
2026-06-03T22:00:56.6971015Z           "evidence": []
2026-06-03T22:00:56.6971231Z         }
2026-06-03T22:00:56.6971412Z       }
2026-06-03T22:00:56.6971592Z     },
2026-06-03T22:00:56.6971774Z     {
2026-06-03T22:00:56.6971977Z       "id": "REQ-DOCS-4",
2026-06-03T22:00:56.6972365Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-03T22:00:56.6972786Z       "requiredStages": [],
2026-06-03T22:00:56.6973022Z       "stages": {
2026-06-03T22:00:56.6973222Z         "doc": {
2026-06-03T22:00:56.6973435Z           "complete": false,
2026-06-03T22:00:56.6973674Z           "evidence": []
2026-06-03T22:00:56.6973896Z         },
2026-06-03T22:00:56.6974087Z         "impl": {
2026-06-03T22:00:56.6974310Z           "complete": false,
2026-06-03T22:00:56.6974551Z           "evidence": []
2026-06-03T22:00:56.6974768Z         },
2026-06-03T22:00:56.6974957Z         "int": {
2026-06-03T22:00:56.6975178Z           "complete": false,
2026-06-03T22:00:56.6975422Z           "evidence": []
2026-06-03T22:00:56.6975647Z         },
2026-06-03T22:00:56.6975832Z         "unit": {
2026-06-03T22:00:56.6976040Z           "complete": false,
2026-06-03T22:00:56.6976282Z           "evidence": []
2026-06-03T22:00:56.6976500Z         }
2026-06-03T22:00:56.6976684Z       }
2026-06-03T22:00:56.6976869Z     },
2026-06-03T22:00:56.6977053Z     {
2026-06-03T22:00:56.6977248Z       "id": "REQ-DOCS-5",
2026-06-03T22:00:56.6977627Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-03T22:00:56.6978050Z       "requiredStages": [],
2026-06-03T22:00:56.6978292Z       "stages": {
2026-06-03T22:00:56.6978493Z         "doc": {
2026-06-03T22:00:56.6978700Z           "complete": false,
2026-06-03T22:00:56.6978935Z           "evidence": []
2026-06-03T22:00:56.6979151Z         },
2026-06-03T22:00:56.6979460Z         "impl": {
2026-06-03T22:00:56.6979675Z           "complete": false,
2026-06-03T22:00:56.6979921Z           "evidence": []
2026-06-03T22:00:56.6980140Z         },
2026-06-03T22:00:56.6980337Z         "int": {
2026-06-03T22:00:56.6980547Z           "complete": false,
2026-06-03T22:00:56.6980784Z           "evidence": []
2026-06-03T22:00:56.6981001Z         },
2026-06-03T22:00:56.6981189Z         "unit": {
2026-06-03T22:00:56.6981396Z           "complete": false,
2026-06-03T22:00:56.6981632Z           "evidence": []
2026-06-03T22:00:56.6981850Z         }
2026-06-03T22:00:56.6982037Z       }
2026-06-03T22:00:56.6982224Z     },
2026-06-03T22:00:56.6982404Z     {
2026-06-03T22:00:56.6982599Z       "id": "REQ-EP-1",
2026-06-03T22:00:56.6982882Z       "title": "Day-one endpoint types; open type system",
2026-06-03T22:00:56.6983208Z       "requiredStages": [
2026-06-03T22:00:56.6983438Z         "impl",
2026-06-03T22:00:56.6983641Z         "unit"
2026-06-03T22:00:56.6983845Z       ],
2026-06-03T22:00:56.6984044Z       "stages": {
2026-06-03T22:00:56.6984251Z         "doc": {
2026-06-03T22:00:56.6984599Z           "complete": false,
2026-06-03T22:00:56.6984847Z           "evidence": []
2026-06-03T22:00:56.6985172Z         },
2026-06-03T22:00:56.6985360Z         "impl": {
2026-06-03T22:00:56.6985571Z           "complete": true,
2026-06-03T22:00:56.6985805Z           "evidence": [
2026-06-03T22:00:56.6986021Z             {
2026-06-03T22:00:56.6987206Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-03T22:00:56.6987589Z               "line": 77
2026-06-03T22:00:56.6987816Z             },
2026-06-03T22:00:56.6988018Z             {
2026-06-03T22:00:56.6988272Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-03T22:00:56.6988605Z               "line": 94
2026-06-03T22:00:56.6988825Z             }
2026-06-03T22:00:56.6989020Z           ]
2026-06-03T22:00:56.6989205Z         },
2026-06-03T22:00:56.6989707Z         "int": {
2026-06-03T22:00:56.6990043Z           "complete": false,
2026-06-03T22:00:56.6990292Z           "evidence": []
2026-06-03T22:00:56.6990517Z         },
2026-06-03T22:00:56.6990714Z         "unit": {
2026-06-03T22:00:56.6990925Z           "complete": true,
2026-06-03T22:00:56.6991172Z           "evidence": [
2026-06-03T22:00:56.6991385Z             {
2026-06-03T22:00:56.6991636Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-03T22:00:56.6991948Z               "line": 161
2026-06-03T22:00:56.6992166Z             },
2026-06-03T22:00:56.6992362Z             {
2026-06-03T22:00:56.6992598Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-03T22:00:56.6992917Z               "line": 178
2026-06-03T22:00:56.6993132Z             }
2026-06-03T22:00:56.6993324Z           ]
2026-06-03T22:00:56.6993513Z         }
2026-06-03T22:00:56.6993742Z       }
2026-06-03T22:00:56.6993928Z     },
2026-06-03T22:00:56.6994109Z     {
2026-06-03T22:00:56.6994305Z       "id": "REQ-EP-2",
2026-06-03T22:00:56.6994635Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-03T22:00:56.6995011Z       "requiredStages": [
2026-06-03T22:00:56.6995243Z         "impl",
2026-06-03T22:00:56.6995448Z         "unit"
2026-06-03T22:00:56.6995656Z       ],
2026-06-03T22:00:56.6995845Z       "stages": {
2026-06-03T22:00:56.6996049Z         "doc": {
2026-06-03T22:00:56.6996265Z           "complete": false,
2026-06-03T22:00:56.6996503Z           "evidence": []
2026-06-03T22:00:56.6996721Z         },
2026-06-03T22:00:56.6996913Z         "impl": {
2026-06-03T22:00:56.6997124Z           "complete": true,
2026-06-03T22:00:56.6997358Z           "evidence": [
2026-06-03T22:00:56.6997573Z             {
2026-06-03T22:00:56.6997809Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-03T22:00:56.6998110Z               "line": 114
2026-06-03T22:00:56.6998324Z             },
2026-06-03T22:00:56.6998518Z             {
2026-06-03T22:00:56.6998753Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-03T22:00:56.6999050Z               "line": 131
2026-06-03T22:00:56.6999264Z             },
2026-06-03T22:00:56.6999615Z             {
2026-06-03T22:00:56.6999871Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-03T22:00:56.7000178Z               "line": 138
2026-06-03T22:00:56.7000392Z             }
2026-06-03T22:00:56.7000579Z           ]
2026-06-03T22:00:56.7000764Z         },
2026-06-03T22:00:56.7000949Z         "int": {
2026-06-03T22:00:56.7001158Z           "complete": false,
2026-06-03T22:00:56.7001397Z           "evidence": []
2026-06-03T22:00:56.7001611Z         },
2026-06-03T22:00:56.7001793Z         "unit": {
2026-06-03T22:00:56.7001998Z           "complete": true,
2026-06-03T22:00:56.7002231Z           "evidence": [
2026-06-03T22:00:56.7002442Z             {
2026-06-03T22:00:56.7002673Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-03T22:00:56.7002974Z               "line": 193
2026-06-03T22:00:56.7003191Z             },
2026-06-03T22:00:56.7003381Z             {
2026-06-03T22:00:56.7003615Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-03T22:00:56.7003909Z               "line": 211
2026-06-03T22:00:56.7004275Z             },
2026-06-03T22:00:56.7004473Z             {
2026-06-03T22:00:56.7004807Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-03T22:00:56.7005102Z               "line": 224
2026-06-03T22:00:56.7005320Z             }
2026-06-03T22:00:56.7005508Z           ]
2026-06-03T22:00:56.7005691Z         }
2026-06-03T22:00:56.7005869Z       }
2026-06-03T22:00:56.7006049Z     },
2026-06-03T22:00:56.7006227Z     {
2026-06-03T22:00:56.7006415Z       "id": "REQ-EP-3",
2026-06-03T22:00:56.7006761Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-03T22:00:56.7007164Z       "requiredStages": [
2026-06-03T22:00:56.7007392Z         "impl",
2026-06-03T22:00:56.7007589Z         "unit"
2026-06-03T22:00:56.7007780Z       ],
2026-06-03T22:00:56.7007964Z       "stages": {
2026-06-03T22:00:56.7008161Z         "doc": {
2026-06-03T22:00:56.7008364Z           "complete": false,
2026-06-03T22:00:56.7008602Z           "evidence": []
2026-06-03T22:00:56.7008819Z         },
2026-06-03T22:00:56.7009014Z         "impl": {
2026-06-03T22:00:56.7009227Z           "complete": true,
2026-06-03T22:00:56.7009588Z           "evidence": [
2026-06-03T22:00:56.7009802Z             {
2026-06-03T22:00:56.7010039Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-03T22:00:56.7010340Z               "line": 31
2026-06-03T22:00:56.7010550Z             },
2026-06-03T22:00:56.7010770Z             {
2026-06-03T22:00:56.7011006Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-03T22:00:56.7011300Z               "line": 49
2026-06-03T22:00:56.7011513Z             }
2026-06-03T22:00:56.7011700Z           ]
2026-06-03T22:00:56.7011881Z         },
2026-06-03T22:00:56.7012063Z         "int": {
2026-06-03T22:00:56.7012269Z           "complete": false,
2026-06-03T22:00:56.7012502Z           "evidence": []
2026-06-03T22:00:56.7012718Z         },
2026-06-03T22:00:56.7012907Z         "unit": {
2026-06-03T22:00:56.7013116Z           "complete": true,
2026-06-03T22:00:56.7013347Z           "evidence": [
2026-06-03T22:00:56.7013557Z             {
2026-06-03T22:00:56.7013802Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-03T22:00:56.7014099Z               "line": 156
2026-06-03T22:00:56.7014314Z             },
2026-06-03T22:00:56.7014502Z             {
2026-06-03T22:00:56.7014728Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-03T22:00:56.7015020Z               "line": 164
2026-06-03T22:00:56.7015230Z             },
2026-06-03T22:00:56.7015416Z             {
2026-06-03T22:00:56.7015653Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-03T22:00:56.7015948Z               "line": 177
2026-06-03T22:00:56.7016162Z             },
2026-06-03T22:00:56.7016350Z             {
2026-06-03T22:00:56.7016580Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-03T22:00:56.7016881Z               "line": 197
2026-06-03T22:00:56.7017093Z             },
2026-06-03T22:00:56.7017279Z             {
2026-06-03T22:00:56.7017512Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-03T22:00:56.7017805Z               "line": 213
2026-06-03T22:00:56.7018019Z             },
2026-06-03T22:00:56.7018203Z             {
2026-06-03T22:00:56.7018431Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-03T22:00:56.7018725Z               "line": 227
2026-06-03T22:00:56.7018937Z             }
2026-06-03T22:00:56.7019123Z           ]
2026-06-03T22:00:56.7019303Z         }
2026-06-03T22:00:56.7019604Z       }
2026-06-03T22:00:56.7019779Z     },
2026-06-03T22:00:56.7019955Z     {
2026-06-03T22:00:56.7020144Z       "id": "REQ-EP-4",
2026-06-03T22:00:56.7020438Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-03T22:00:56.7020788Z       "requiredStages": [],
2026-06-03T22:00:56.7021015Z       "stages": {
2026-06-03T22:00:56.7021211Z         "doc": {
2026-06-03T22:00:56.7021419Z           "complete": false,
2026-06-03T22:00:56.7021653Z           "evidence": []
2026-06-03T22:00:56.7021995Z         },
2026-06-03T22:00:56.7022184Z         "impl": {
2026-06-03T22:00:56.7022392Z           "complete": false,
2026-06-03T22:00:56.7022755Z           "evidence": []
2026-06-03T22:00:56.7022966Z         },
2026-06-03T22:00:56.7023156Z         "int": {
2026-06-03T22:00:56.7023357Z           "complete": false,
2026-06-03T22:00:56.7023582Z           "evidence": []
2026-06-03T22:00:56.7023793Z         },
2026-06-03T22:00:56.7023971Z         "unit": {
2026-06-03T22:00:56.7024179Z           "complete": false,
2026-06-03T22:00:56.7024410Z           "evidence": []
2026-06-03T22:00:56.7024627Z         }
2026-06-03T22:00:56.7024811Z       }
2026-06-03T22:00:56.7024987Z     },
2026-06-03T22:00:56.7025065Z     {
2026-06-03T22:00:56.7025155Z       "id": "REQ-EP-5",
2026-06-03T22:00:56.7026006Z       "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-03T22:00:56.7026101Z       "requiredStages": [],
2026-06-03T22:00:56.7026192Z       "stages": {
2026-06-03T22:00:56.7026274Z         "doc": {
2026-06-03T22:00:56.7026369Z           "complete": false,
2026-06-03T22:00:56.7026456Z           "evidence": []
2026-06-03T22:00:56.7026538Z         },
2026-06-03T22:00:56.7026624Z         "impl": {
2026-06-03T22:00:56.7026713Z           "complete": false,
2026-06-03T22:00:56.7026802Z           "evidence": []
2026-06-03T22:00:56.7026880Z         },
2026-06-03T22:00:56.7026964Z         "int": {
2026-06-03T22:00:56.7027053Z           "complete": false,
2026-06-03T22:00:56.7027142Z           "evidence": []
2026-06-03T22:00:56.7027225Z         },
2026-06-03T22:00:56.7027306Z         "unit": {
2026-06-03T22:00:56.7027396Z           "complete": false,
2026-06-03T22:00:56.7027483Z           "evidence": []
2026-06-03T22:00:56.7027566Z         }
2026-06-03T22:00:56.7027645Z       }
2026-06-03T22:00:56.7027728Z     },
2026-06-03T22:00:56.7027811Z     {
2026-06-03T22:00:56.7027910Z       "id": "REQ-FRONT-1",
2026-06-03T22:00:56.7028118Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-03T22:00:56.7028217Z       "requiredStages": [],
2026-06-03T22:00:56.7028303Z       "stages": {
2026-06-03T22:00:56.7028385Z         "doc": {
2026-06-03T22:00:56.7028479Z           "complete": false,
2026-06-03T22:00:56.7028569Z           "evidence": []
2026-06-03T22:00:56.7028648Z         },
2026-06-03T22:00:56.7028731Z         "impl": {
2026-06-03T22:00:56.7028821Z           "complete": false,
2026-06-03T22:00:56.7028912Z           "evidence": []
2026-06-03T22:00:56.7028990Z         },
2026-06-03T22:00:56.7029074Z         "int": {
2026-06-03T22:00:56.7029165Z           "complete": false,
2026-06-03T22:00:56.7029251Z           "evidence": []
2026-06-03T22:00:56.7029453Z         },
2026-06-03T22:00:56.7029537Z         "unit": {
2026-06-03T22:00:56.7029630Z           "complete": false,
2026-06-03T22:00:56.7029717Z           "evidence": []
2026-06-03T22:00:56.7029805Z         }
2026-06-03T22:00:56.7029887Z       }
2026-06-03T22:00:56.7029972Z     },
2026-06-03T22:00:56.7030055Z     {
2026-06-03T22:00:56.7030180Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-03T22:00:56.7030382Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-03T22:00:56.7030473Z       "requiredStages": [
2026-06-03T22:00:56.7030561Z         "impl",
2026-06-03T22:00:56.7030645Z         "unit"
2026-06-03T22:00:56.7030723Z       ],
2026-06-03T22:00:56.7030808Z       "stages": {
2026-06-03T22:00:56.7030890Z         "doc": {
2026-06-03T22:00:56.7030980Z           "complete": false,
2026-06-03T22:00:56.7031066Z           "evidence": []
2026-06-03T22:00:56.7031147Z         },
2026-06-03T22:00:56.7031232Z         "impl": {
2026-06-03T22:00:56.7031318Z           "complete": true,
2026-06-03T22:00:56.7031405Z           "evidence": [
2026-06-03T22:00:56.7031485Z             {
2026-06-03T22:00:56.7031737Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.7031828Z               "line": 60
2026-06-03T22:00:56.7031913Z             },
2026-06-03T22:00:56.7032098Z             {
2026-06-03T22:00:56.7032219Z               "path": "crates/spt/src/api/worker.rs",
2026-06-03T22:00:56.7032305Z               "line": 18
2026-06-03T22:00:56.7032384Z             },
2026-06-03T22:00:56.7032464Z             {
2026-06-03T22:00:56.7032579Z               "path": "crates/spt/src/api/worker.rs",
2026-06-03T22:00:56.7032666Z               "line": 94
2026-06-03T22:00:56.7032747Z             }
2026-06-03T22:00:56.7032825Z           ]
2026-06-03T22:00:56.7032906Z         },
2026-06-03T22:00:56.7032987Z         "int": {
2026-06-03T22:00:56.7033084Z           "complete": false,
2026-06-03T22:00:56.7033171Z           "evidence": []
2026-06-03T22:00:56.7033256Z         },
2026-06-03T22:00:56.7033341Z         "unit": {
2026-06-03T22:00:56.7033432Z           "complete": true,
2026-06-03T22:00:56.7033525Z           "evidence": [
2026-06-03T22:00:56.7033608Z             {
2026-06-03T22:00:56.7033741Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.7033834Z               "line": 255
2026-06-03T22:00:56.7033916Z             },
2026-06-03T22:00:56.7033998Z             {
2026-06-03T22:00:56.7034110Z               "path": "crates/spt/src/api/worker.rs",
2026-06-03T22:00:56.7034198Z               "line": 152
2026-06-03T22:00:56.7034276Z             },
2026-06-03T22:00:56.7034355Z             {
2026-06-03T22:00:56.7034468Z               "path": "crates/spt/src/api/worker.rs",
2026-06-03T22:00:56.7034558Z               "line": 188
2026-06-03T22:00:56.7034640Z             }
2026-06-03T22:00:56.7034718Z           ]
2026-06-03T22:00:56.7034802Z         }
2026-06-03T22:00:56.7034880Z       }
2026-06-03T22:00:56.7034961Z     },
2026-06-03T22:00:56.7035038Z     {
2026-06-03T22:00:56.7035153Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-03T22:00:56.7035410Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-03T22:00:56.7035506Z       "requiredStages": [
2026-06-03T22:00:56.7035592Z         "impl",
2026-06-03T22:00:56.7035678Z         "unit"
2026-06-03T22:00:56.7035766Z       ],
2026-06-03T22:00:56.7035851Z       "stages": {
2026-06-03T22:00:56.7035937Z         "doc": {
2026-06-03T22:00:56.7036034Z           "complete": false,
2026-06-03T22:00:56.7036123Z           "evidence": []
2026-06-03T22:00:56.7036206Z         },
2026-06-03T22:00:56.7036289Z         "impl": {
2026-06-03T22:00:56.7036387Z           "complete": true,
2026-06-03T22:00:56.7036475Z           "evidence": [
2026-06-03T22:00:56.7036559Z             {
2026-06-03T22:00:56.7036689Z               "path": "crates/spt-term/src/reader.rs",
2026-06-03T22:00:56.7036777Z               "line": 164
2026-06-03T22:00:56.7036862Z             }
2026-06-03T22:00:56.7036941Z           ]
2026-06-03T22:00:56.7037023Z         },
2026-06-03T22:00:56.7037105Z         "int": {
2026-06-03T22:00:56.7037200Z           "complete": true,
2026-06-03T22:00:56.7037294Z           "evidence": [
2026-06-03T22:00:56.7037374Z             {
2026-06-03T22:00:56.7037502Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-03T22:00:56.7037594Z               "line": 44
2026-06-03T22:00:56.7037676Z             },
2026-06-03T22:00:56.7037755Z             {
2026-06-03T22:00:56.7037875Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-03T22:00:56.7037964Z               "line": 66
2026-06-03T22:00:56.7038043Z             }
2026-06-03T22:00:56.7038126Z           ]
2026-06-03T22:00:56.7038206Z         },
2026-06-03T22:00:56.7038292Z         "unit": {
2026-06-03T22:00:56.7038381Z           "complete": true,
2026-06-03T22:00:56.7038471Z           "evidence": [
2026-06-03T22:00:56.7038556Z             {
2026-06-03T22:00:56.7038677Z               "path": "crates/spt-term/src/reader.rs",
2026-06-03T22:00:56.7038768Z               "line": 181
2026-06-03T22:00:56.7038848Z             },
2026-06-03T22:00:56.7038932Z             {
2026-06-03T22:00:56.7039138Z               "path": "crates/spt-term/src/reader.rs",
2026-06-03T22:00:56.7039233Z               "line": 233
2026-06-03T22:00:56.7039516Z             },
2026-06-03T22:00:56.7039600Z             {
2026-06-03T22:00:56.7039726Z               "path": "crates/spt-term/src/reader.rs",
2026-06-03T22:00:56.7039813Z               "line": 261
2026-06-03T22:00:56.7039896Z             }
2026-06-03T22:00:56.7039979Z           ]
2026-06-03T22:00:56.7040063Z         }
2026-06-03T22:00:56.7040146Z       }
2026-06-03T22:00:56.7040223Z     },
2026-06-03T22:00:56.7040306Z     {
2026-06-03T22:00:56.7040440Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-03T22:00:56.7040987Z       "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-03T22:00:56.7041082Z       "requiredStages": [
2026-06-03T22:00:56.7041173Z         "impl",
2026-06-03T22:00:56.7041261Z         "unit",
2026-06-03T22:00:56.7041342Z         "int"
2026-06-03T22:00:56.7041432Z       ],
2026-06-03T22:00:56.7041516Z       "stages": {
2026-06-03T22:00:56.7041608Z         "doc": {
2026-06-03T22:00:56.7041703Z           "complete": false,
2026-06-03T22:00:56.7041797Z           "evidence": []
2026-06-03T22:00:56.7041881Z         },
2026-06-03T22:00:56.7041963Z         "impl": {
2026-06-03T22:00:56.7042059Z           "complete": true,
2026-06-03T22:00:56.7042146Z           "evidence": [
2026-06-03T22:00:56.7042231Z             {
2026-06-03T22:00:56.7042376Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.7042469Z               "line": 133
2026-06-03T22:00:56.7042555Z             },
2026-06-03T22:00:56.7042635Z             {
2026-06-03T22:00:56.7042774Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.7042861Z               "line": 152
2026-06-03T22:00:56.7042947Z             },
2026-06-03T22:00:56.7043027Z             {
2026-06-03T22:00:56.7043155Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7043253Z               "line": 79
2026-06-03T22:00:56.7043334Z             },
2026-06-03T22:00:56.7043424Z             {
2026-06-03T22:00:56.7043541Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-03T22:00:56.7043633Z               "line": 51
2026-06-03T22:00:56.7043722Z             },
2026-06-03T22:00:56.7043802Z             {
2026-06-03T22:00:56.7043925Z               "path": "crates/spt-store/src/info.rs",
2026-06-03T22:00:56.7044009Z               "line": 93
2026-06-03T22:00:56.7044094Z             },
2026-06-03T22:00:56.7044177Z             {
2026-06-03T22:00:56.7044311Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-03T22:00:56.7044402Z               "line": 27
2026-06-03T22:00:56.7044482Z             },
2026-06-03T22:00:56.7044565Z             {
2026-06-03T22:00:56.7044691Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-03T22:00:56.7044786Z               "line": 79
2026-06-03T22:00:56.7044877Z             },
2026-06-03T22:00:56.7044966Z             {
2026-06-03T22:00:56.7045095Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-03T22:00:56.7045185Z               "line": 102
2026-06-03T22:00:56.7045268Z             },
2026-06-03T22:00:56.7045346Z             {
2026-06-03T22:00:56.7045470Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7045556Z               "line": 102
2026-06-03T22:00:56.7045638Z             }
2026-06-03T22:00:56.7045723Z           ]
2026-06-03T22:00:56.7045802Z         },
2026-06-03T22:00:56.7045887Z         "int": {
2026-06-03T22:00:56.7045980Z           "complete": true,
2026-06-03T22:00:56.7046071Z           "evidence": [
2026-06-03T22:00:56.7046149Z             {
2026-06-03T22:00:56.7046293Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-03T22:00:56.7046383Z               "line": 35
2026-06-03T22:00:56.7046461Z             }
2026-06-03T22:00:56.7046544Z           ]
2026-06-03T22:00:56.7046622Z         },
2026-06-03T22:00:56.7046828Z         "unit": {
2026-06-03T22:00:56.7046924Z           "complete": true,
2026-06-03T22:00:56.7047015Z           "evidence": [
2026-06-03T22:00:56.7047239Z             {
2026-06-03T22:00:56.7047370Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.7047459Z               "line": 467
2026-06-03T22:00:56.7047540Z             },
2026-06-03T22:00:56.7047623Z             {
2026-06-03T22:00:56.7047745Z               "path": "crates/spt-store/src/info.rs",
2026-06-03T22:00:56.7047836Z               "line": 212
2026-06-03T22:00:56.7047922Z             },
2026-06-03T22:00:56.7048002Z             {
2026-06-03T22:00:56.7048135Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-03T22:00:56.7048221Z               "line": 124
2026-06-03T22:00:56.7048305Z             },
2026-06-03T22:00:56.7048385Z             {
2026-06-03T22:00:56.7048514Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-03T22:00:56.7048608Z               "line": 136
2026-06-03T22:00:56.7048695Z             },
2026-06-03T22:00:56.7048783Z             {
2026-06-03T22:00:56.7048904Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-03T22:00:56.7049001Z               "line": 146
2026-06-03T22:00:56.7049081Z             },
2026-06-03T22:00:56.7049163Z             {
2026-06-03T22:00:56.7049286Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-03T22:00:56.7049491Z               "line": 159
2026-06-03T22:00:56.7049579Z             },
2026-06-03T22:00:56.7049659Z             {
2026-06-03T22:00:56.7049788Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-03T22:00:56.7049881Z               "line": 171
2026-06-03T22:00:56.7049961Z             },
2026-06-03T22:00:56.7050046Z             {
2026-06-03T22:00:56.7050169Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7050260Z               "line": 201
2026-06-03T22:00:56.7050340Z             }
2026-06-03T22:00:56.7050423Z           ]
2026-06-03T22:00:56.7050508Z         }
2026-06-03T22:00:56.7050594Z       }
2026-06-03T22:00:56.7050679Z     },
2026-06-03T22:00:56.7050759Z     {
2026-06-03T22:00:56.7050902Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-03T22:00:56.7051736Z       "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-03T22:00:56.7051836Z       "requiredStages": [],
2026-06-03T22:00:56.7051927Z       "stages": {
2026-06-03T22:00:56.7052008Z         "doc": {
2026-06-03T22:00:56.7052107Z           "complete": false,
2026-06-03T22:00:56.7052195Z           "evidence": []
2026-06-03T22:00:56.7052281Z         },
2026-06-03T22:00:56.7052365Z         "impl": {
2026-06-03T22:00:56.7052460Z           "complete": false,
2026-06-03T22:00:56.7052553Z           "evidence": []
2026-06-03T22:00:56.7052633Z         },
2026-06-03T22:00:56.7052720Z         "int": {
2026-06-03T22:00:56.7052816Z           "complete": false,
2026-06-03T22:00:56.7052912Z           "evidence": []
2026-06-03T22:00:56.7052997Z         },
2026-06-03T22:00:56.7053083Z         "unit": {
2026-06-03T22:00:56.7053177Z           "complete": false,
2026-06-03T22:00:56.7053266Z           "evidence": []
2026-06-03T22:00:56.7053349Z         }
2026-06-03T22:00:56.7053427Z       }
2026-06-03T22:00:56.7053512Z     },
2026-06-03T22:00:56.7053593Z     {
2026-06-03T22:00:56.7053709Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-03T22:00:56.7053932Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-03T22:00:56.7054027Z       "requiredStages": [
2026-06-03T22:00:56.7054116Z         "impl",
2026-06-03T22:00:56.7054197Z         "unit"
2026-06-03T22:00:56.7054280Z       ],
2026-06-03T22:00:56.7054364Z       "stages": {
2026-06-03T22:00:56.7054450Z         "doc": {
2026-06-03T22:00:56.7054544Z           "complete": false,
2026-06-03T22:00:56.7054632Z           "evidence": []
2026-06-03T22:00:56.7054831Z         },
2026-06-03T22:00:56.7054917Z         "impl": {
2026-06-03T22:00:56.7055009Z           "complete": true,
2026-06-03T22:00:56.7055201Z           "evidence": [
2026-06-03T22:00:56.7055285Z             {
2026-06-03T22:00:56.7055419Z               "path": "crates/spt-store/src/spool.rs",
2026-06-03T22:00:56.7055505Z               "line": 40
2026-06-03T22:00:56.7055589Z             },
2026-06-03T22:00:56.7055668Z             {
2026-06-03T22:00:56.7055797Z               "path": "crates/spt-store/src/spool.rs",
2026-06-03T22:00:56.7055881Z               "line": 88
2026-06-03T22:00:56.7055968Z             },
2026-06-03T22:00:56.7056052Z             {
2026-06-03T22:00:56.7056171Z               "path": "crates/spt-store/src/spool.rs",
2026-06-03T22:00:56.7056263Z               "line": 133
2026-06-03T22:00:56.7056344Z             },
2026-06-03T22:00:56.7056429Z             {
2026-06-03T22:00:56.7056550Z               "path": "crates/spt-store/src/spool.rs",
2026-06-03T22:00:56.7056645Z               "line": 215
2026-06-03T22:00:56.7056728Z             }
2026-06-03T22:00:56.7056807Z           ]
2026-06-03T22:00:56.7056897Z         },
2026-06-03T22:00:56.7056978Z         "int": {
2026-06-03T22:00:56.7057072Z           "complete": false,
2026-06-03T22:00:56.7057157Z           "evidence": []
2026-06-03T22:00:56.7057241Z         },
2026-06-03T22:00:56.7057326Z         "unit": {
2026-06-03T22:00:56.7057415Z           "complete": true,
2026-06-03T22:00:56.7057505Z           "evidence": [
2026-06-03T22:00:56.7057584Z             {
2026-06-03T22:00:56.7057708Z               "path": "crates/spt-store/src/spool.rs",
2026-06-03T22:00:56.7057797Z               "line": 250
2026-06-03T22:00:56.7057882Z             },
2026-06-03T22:00:56.7057965Z             {
2026-06-03T22:00:56.7058081Z               "path": "crates/spt-store/src/spool.rs",
2026-06-03T22:00:56.7058173Z               "line": 296
2026-06-03T22:00:56.7058255Z             },
2026-06-03T22:00:56.7058339Z             {
2026-06-03T22:00:56.7058457Z               "path": "crates/spt-store/src/spool.rs",
2026-06-03T22:00:56.7058548Z               "line": 337
2026-06-03T22:00:56.7058637Z             },
2026-06-03T22:00:56.7058715Z             {
2026-06-03T22:00:56.7058833Z               "path": "crates/spt-store/src/spool.rs",
2026-06-03T22:00:56.7058919Z               "line": 356
2026-06-03T22:00:56.7059004Z             }
2026-06-03T22:00:56.7059088Z           ]
2026-06-03T22:00:56.7059168Z         }
2026-06-03T22:00:56.7059253Z       }
2026-06-03T22:00:56.7059450Z     },
2026-06-03T22:00:56.7059536Z     {
2026-06-03T22:00:56.7059669Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-03T22:00:56.7059812Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-03T22:00:56.7059913Z       "requiredStages": [
2026-06-03T22:00:56.7059996Z         "impl",
2026-06-03T22:00:56.7060082Z         "unit"
2026-06-03T22:00:56.7060162Z       ],
2026-06-03T22:00:56.7060251Z       "stages": {
2026-06-03T22:00:56.7060333Z         "doc": {
2026-06-03T22:00:56.7060433Z           "complete": false,
2026-06-03T22:00:56.7060520Z           "evidence": []
2026-06-03T22:00:56.7060609Z         },
2026-06-03T22:00:56.7060697Z         "impl": {
2026-06-03T22:00:56.7060787Z           "complete": true,
2026-06-03T22:00:56.7060878Z           "evidence": [
2026-06-03T22:00:56.7060958Z             {
2026-06-03T22:00:56.7061081Z               "path": "crates/spt-store/src/spool.rs",
2026-06-03T22:00:56.7061169Z               "line": 101
2026-06-03T22:00:56.7061257Z             },
2026-06-03T22:00:56.7061345Z             {
2026-06-03T22:00:56.7061463Z               "path": "crates/spt-store/src/spool.rs",
2026-06-03T22:00:56.7061554Z               "line": 126
2026-06-03T22:00:56.7061635Z             }
2026-06-03T22:00:56.7061722Z           ]
2026-06-03T22:00:56.7061800Z         },
2026-06-03T22:00:56.7061887Z         "int": {
2026-06-03T22:00:56.7061982Z           "complete": false,
2026-06-03T22:00:56.7062070Z           "evidence": []
2026-06-03T22:00:56.7062152Z         },
2026-06-03T22:00:56.7062352Z         "unit": {
2026-06-03T22:00:56.7062448Z           "complete": true,
2026-06-03T22:00:56.7062634Z           "evidence": [
2026-06-03T22:00:56.7062718Z             {
2026-06-03T22:00:56.7062839Z               "path": "crates/spt-store/src/spool.rs",
2026-06-03T22:00:56.7062925Z               "line": 271
2026-06-03T22:00:56.7063008Z             },
2026-06-03T22:00:56.7063088Z             {
2026-06-03T22:00:56.7063209Z               "path": "crates/spt-store/src/spool.rs",
2026-06-03T22:00:56.7063301Z               "line": 315
2026-06-03T22:00:56.7063380Z             }
2026-06-03T22:00:56.7063463Z           ]
2026-06-03T22:00:56.7063542Z         }
2026-06-03T22:00:56.7063625Z       }
2026-06-03T22:00:56.7063707Z     },
2026-06-03T22:00:56.7063790Z     {
2026-06-03T22:00:56.7063919Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-03T22:00:56.7064178Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-03T22:00:56.7064281Z       "requiredStages": [
2026-06-03T22:00:56.7064363Z         "impl",
2026-06-03T22:00:56.7064449Z         "unit"
2026-06-03T22:00:56.7064533Z       ],
2026-06-03T22:00:56.7064617Z       "stages": {
2026-06-03T22:00:56.7064697Z         "doc": {
2026-06-03T22:00:56.7064789Z           "complete": false,
2026-06-03T22:00:56.7064883Z           "evidence": []
2026-06-03T22:00:56.7064963Z         },
2026-06-03T22:00:56.7065051Z         "impl": {
2026-06-03T22:00:56.7065141Z           "complete": true,
2026-06-03T22:00:56.7065233Z           "evidence": [
2026-06-03T22:00:56.7065318Z             {
2026-06-03T22:00:56.7065449Z               "path": "crates/spt-live/src/context.rs",
2026-06-03T22:00:56.7065539Z               "line": 21
2026-06-03T22:00:56.7065621Z             },
2026-06-03T22:00:56.7065704Z             {
2026-06-03T22:00:56.7065827Z               "path": "crates/spt-live/src/context.rs",
2026-06-03T22:00:56.7065916Z               "line": 152
2026-06-03T22:00:56.7065997Z             }
2026-06-03T22:00:56.7066080Z           ]
2026-06-03T22:00:56.7066160Z         },
2026-06-03T22:00:56.7066239Z         "int": {
2026-06-03T22:00:56.7066337Z           "complete": false,
2026-06-03T22:00:56.7066425Z           "evidence": []
2026-06-03T22:00:56.7066508Z         },
2026-06-03T22:00:56.7066595Z         "unit": {
2026-06-03T22:00:56.7066685Z           "complete": true,
2026-06-03T22:00:56.7066775Z           "evidence": [
2026-06-03T22:00:56.7066855Z             {
2026-06-03T22:00:56.7066979Z               "path": "crates/spt-live/src/context.rs",
2026-06-03T22:00:56.7067065Z               "line": 169
2026-06-03T22:00:56.7067151Z             },
2026-06-03T22:00:56.7067235Z             {
2026-06-03T22:00:56.7067353Z               "path": "crates/spt-live/src/context.rs",
2026-06-03T22:00:56.7067445Z               "line": 176
2026-06-03T22:00:56.7067525Z             },
2026-06-03T22:00:56.7067605Z             {
2026-06-03T22:00:56.7067724Z               "path": "crates/spt-live/src/context.rs",
2026-06-03T22:00:56.7067819Z               "line": 185
2026-06-03T22:00:56.7067904Z             },
2026-06-03T22:00:56.7067982Z             {
2026-06-03T22:00:56.7068112Z               "path": "crates/spt-live/src/context.rs",
2026-06-03T22:00:56.7068199Z               "line": 194
2026-06-03T22:00:56.7068284Z             },
2026-06-03T22:00:56.7068363Z             {
2026-06-03T22:00:56.7068489Z               "path": "crates/spt-live/src/context.rs",
2026-06-03T22:00:56.7068585Z               "line": 203
2026-06-03T22:00:56.7068666Z             },
2026-06-03T22:00:56.7068751Z             {
2026-06-03T22:00:56.7068869Z               "path": "crates/spt-live/src/context.rs",
2026-06-03T22:00:56.7068960Z               "line": 212
2026-06-03T22:00:56.7069043Z             },
2026-06-03T22:00:56.7069129Z             {
2026-06-03T22:00:56.7069254Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-03T22:00:56.7069459Z               "line": 132
2026-06-03T22:00:56.7069550Z             },
2026-06-03T22:00:56.7069632Z             {
2026-06-03T22:00:56.7069873Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-03T22:00:56.7070065Z               "line": 211
2026-06-03T22:00:56.7070150Z             }
2026-06-03T22:00:56.7070235Z           ]
2026-06-03T22:00:56.7070316Z         }
2026-06-03T22:00:56.7070402Z       }
2026-06-03T22:00:56.7070482Z     },
2026-06-03T22:00:56.7070566Z     {
2026-06-03T22:00:56.7070696Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-03T22:00:56.7070871Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-03T22:00:56.7070970Z       "requiredStages": [
2026-06-03T22:00:56.7071052Z         "impl",
2026-06-03T22:00:56.7071136Z         "unit"
2026-06-03T22:00:56.7071214Z       ],
2026-06-03T22:00:56.7071300Z       "stages": {
2026-06-03T22:00:56.7071381Z         "doc": {
2026-06-03T22:00:56.7071476Z           "complete": false,
2026-06-03T22:00:56.7071566Z           "evidence": []
2026-06-03T22:00:56.7071646Z         },
2026-06-03T22:00:56.7071732Z         "impl": {
2026-06-03T22:00:56.7071827Z           "complete": true,
2026-06-03T22:00:56.7071918Z           "evidence": [
2026-06-03T22:00:56.7072003Z             {
2026-06-03T22:00:56.7072131Z               "path": "crates/spt-live/src/echo.rs",
2026-06-03T22:00:56.7072222Z               "line": 25
2026-06-03T22:00:56.7072301Z             },
2026-06-03T22:00:56.7072385Z             {
2026-06-03T22:00:56.7072504Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-03T22:00:56.7072599Z               "line": 13
2026-06-03T22:00:56.7072680Z             },
2026-06-03T22:00:56.7072765Z             {
2026-06-03T22:00:56.7072887Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-03T22:00:56.7072973Z               "line": 78
2026-06-03T22:00:56.7073059Z             }
2026-06-03T22:00:56.7073139Z           ]
2026-06-03T22:00:56.7073224Z         },
2026-06-03T22:00:56.7073305Z         "int": {
2026-06-03T22:00:56.7073401Z           "complete": false,
2026-06-03T22:00:56.7073494Z           "evidence": []
2026-06-03T22:00:56.7073577Z         },
2026-06-03T22:00:56.7073662Z         "unit": {
2026-06-03T22:00:56.7073753Z           "complete": true,
2026-06-03T22:00:56.7073850Z           "evidence": [
2026-06-03T22:00:56.7073930Z             {
2026-06-03T22:00:56.7074051Z               "path": "crates/spt-live/src/echo.rs",
2026-06-03T22:00:56.7074141Z               "line": 180
2026-06-03T22:00:56.7074219Z             },
2026-06-03T22:00:56.7074301Z             {
2026-06-03T22:00:56.7074415Z               "path": "crates/spt-live/src/echo.rs",
2026-06-03T22:00:56.7074504Z               "line": 205
2026-06-03T22:00:56.7074584Z             },
2026-06-03T22:00:56.7074669Z             {
2026-06-03T22:00:56.7074791Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-03T22:00:56.7074879Z               "line": 96
2026-06-03T22:00:56.7074963Z             }
2026-06-03T22:00:56.7075043Z           ]
2026-06-03T22:00:56.7075128Z         }
2026-06-03T22:00:56.7075208Z       }
2026-06-03T22:00:56.7075290Z     },
2026-06-03T22:00:56.7075378Z     {
2026-06-03T22:00:56.7075489Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-03T22:00:56.7075686Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-03T22:00:56.7075781Z       "requiredStages": [
2026-06-03T22:00:56.7075868Z         "impl",
2026-06-03T22:00:56.7075949Z         "unit"
2026-06-03T22:00:56.7076033Z       ],
2026-06-03T22:00:56.7076124Z       "stages": {
2026-06-03T22:00:56.7076204Z         "doc": {
2026-06-03T22:00:56.7076300Z           "complete": false,
2026-06-03T22:00:56.7076385Z           "evidence": []
2026-06-03T22:00:56.7076471Z         },
2026-06-03T22:00:56.7076553Z         "impl": {
2026-06-03T22:00:56.7076647Z           "complete": true,
2026-06-03T22:00:56.7076737Z           "evidence": [
2026-06-03T22:00:56.7076816Z             {
2026-06-03T22:00:56.7076937Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-03T22:00:56.7077023Z               "line": 48
2026-06-03T22:00:56.7077106Z             },
2026-06-03T22:00:56.7077269Z             {
2026-06-03T22:00:56.7077394Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-03T22:00:56.7077555Z               "line": 55
2026-06-03T22:00:56.7077634Z             },
2026-06-03T22:00:56.7077716Z             {
2026-06-03T22:00:56.7077834Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-03T22:00:56.7077924Z               "line": 74
2026-06-03T22:00:56.7078003Z             },
2026-06-03T22:00:56.7078085Z             {
2026-06-03T22:00:56.7078205Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-03T22:00:56.7078290Z               "line": 91
2026-06-03T22:00:56.7078371Z             }
2026-06-03T22:00:56.7078450Z           ]
2026-06-03T22:00:56.7078532Z         },
2026-06-03T22:00:56.7078612Z         "int": {
2026-06-03T22:00:56.7078706Z           "complete": false,
2026-06-03T22:00:56.7078796Z           "evidence": []
2026-06-03T22:00:56.7078874Z         },
2026-06-03T22:00:56.7078963Z         "unit": {
2026-06-03T22:00:56.7079058Z           "complete": true,
2026-06-03T22:00:56.7079148Z           "evidence": [
2026-06-03T22:00:56.7079227Z             {
2026-06-03T22:00:56.7079477Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-03T22:00:56.7079570Z               "line": 149
2026-06-03T22:00:56.7079651Z             },
2026-06-03T22:00:56.7079736Z             {
2026-06-03T22:00:56.7079857Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-03T22:00:56.7079948Z               "line": 163
2026-06-03T22:00:56.7080027Z             },
2026-06-03T22:00:56.7080108Z             {
2026-06-03T22:00:56.7080228Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-03T22:00:56.7080314Z               "line": 173
2026-06-03T22:00:56.7080398Z             },
2026-06-03T22:00:56.7080476Z             {
2026-06-03T22:00:56.7080597Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-03T22:00:56.7080687Z               "line": 191
2026-06-03T22:00:56.7080768Z             },
2026-06-03T22:00:56.7080851Z             {
2026-06-03T22:00:56.7080979Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-03T22:00:56.7081078Z               "line": 204
2026-06-03T22:00:56.7081157Z             }
2026-06-03T22:00:56.7081242Z           ]
2026-06-03T22:00:56.7081324Z         }
2026-06-03T22:00:56.7081404Z       }
2026-06-03T22:00:56.7081486Z     },
2026-06-03T22:00:56.7081564Z     {
2026-06-03T22:00:56.7081696Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-03T22:00:56.7081925Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-03T22:00:56.7082024Z       "requiredStages": [
2026-06-03T22:00:56.7082109Z         "impl",
2026-06-03T22:00:56.7082188Z         "unit"
2026-06-03T22:00:56.7082271Z       ],
2026-06-03T22:00:56.7082352Z       "stages": {
2026-06-03T22:00:56.7082435Z         "doc": {
2026-06-03T22:00:56.7082526Z           "complete": false,
2026-06-03T22:00:56.7082619Z           "evidence": []
2026-06-03T22:00:56.7082707Z         },
2026-06-03T22:00:56.7082789Z         "impl": {
2026-06-03T22:00:56.7082890Z           "complete": true,
2026-06-03T22:00:56.7082977Z           "evidence": [
2026-06-03T22:00:56.7083067Z             {
2026-06-03T22:00:56.7083210Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.7083306Z               "line": 264
2026-06-03T22:00:56.7083395Z             },
2026-06-03T22:00:56.7083475Z             {
2026-06-03T22:00:56.7083602Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-03T22:00:56.7083688Z               "line": 26
2026-06-03T22:00:56.7083772Z             }
2026-06-03T22:00:56.7083853Z           ]
2026-06-03T22:00:56.7083938Z         },
2026-06-03T22:00:56.7084022Z         "int": {
2026-06-03T22:00:56.7084114Z           "complete": false,
2026-06-03T22:00:56.7084207Z           "evidence": []
2026-06-03T22:00:56.7084287Z         },
2026-06-03T22:00:56.7084376Z         "unit": {
2026-06-03T22:00:56.7084466Z           "complete": true,
2026-06-03T22:00:56.7084559Z           "evidence": [
2026-06-03T22:00:56.7084762Z             {
2026-06-03T22:00:56.7084888Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-03T22:00:56.7085079Z               "line": 138
2026-06-03T22:00:56.7085160Z             },
2026-06-03T22:00:56.7085245Z             {
2026-06-03T22:00:56.7085364Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-03T22:00:56.7085454Z               "line": 181
2026-06-03T22:00:56.7085537Z             }
2026-06-03T22:00:56.7085616Z           ]
2026-06-03T22:00:56.7085699Z         }
2026-06-03T22:00:56.7085778Z       }
2026-06-03T22:00:56.7085859Z     },
2026-06-03T22:00:56.7085934Z     {
2026-06-03T22:00:56.7086066Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-03T22:00:56.7086248Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-03T22:00:56.7086339Z       "requiredStages": [
2026-06-03T22:00:56.7086427Z         "impl",
2026-06-03T22:00:56.7086508Z         "unit"
2026-06-03T22:00:56.7086588Z       ],
2026-06-03T22:00:56.7086669Z       "stages": {
2026-06-03T22:00:56.7086792Z         "doc": {
2026-06-03T22:00:56.7086888Z           "complete": false,
2026-06-03T22:00:56.7086979Z           "evidence": []
2026-06-03T22:00:56.7087065Z         },
2026-06-03T22:00:56.7087147Z         "impl": {
2026-06-03T22:00:56.7087241Z           "complete": true,
2026-06-03T22:00:56.7087327Z           "evidence": [
2026-06-03T22:00:56.7087409Z             {
2026-06-03T22:00:56.7087548Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-03T22:00:56.7087633Z               "line": 36
2026-06-03T22:00:56.7087717Z             },
2026-06-03T22:00:56.7087795Z             {
2026-06-03T22:00:56.7087923Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-03T22:00:56.7088006Z               "line": 68
2026-06-03T22:00:56.7088088Z             }
2026-06-03T22:00:56.7088169Z           ]
2026-06-03T22:00:56.7088247Z         },
2026-06-03T22:00:56.7088329Z         "int": {
2026-06-03T22:00:56.7088419Z           "complete": false,
2026-06-03T22:00:56.7088512Z           "evidence": []
2026-06-03T22:00:56.7088590Z         },
2026-06-03T22:00:56.7088675Z         "unit": {
2026-06-03T22:00:56.7088777Z           "complete": true,
2026-06-03T22:00:56.7088862Z           "evidence": [
2026-06-03T22:00:56.7088947Z             {
2026-06-03T22:00:56.7089069Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-03T22:00:56.7089159Z               "line": 143
2026-06-03T22:00:56.7089239Z             },
2026-06-03T22:00:56.7089323Z             {
2026-06-03T22:00:56.7089571Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-03T22:00:56.7089657Z               "line": 160
2026-06-03T22:00:56.7089740Z             },
2026-06-03T22:00:56.7089822Z             {
2026-06-03T22:00:56.7089951Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-03T22:00:56.7090036Z               "line": 168
2026-06-03T22:00:56.7090120Z             }
2026-06-03T22:00:56.7090202Z           ]
2026-06-03T22:00:56.7090281Z         }
2026-06-03T22:00:56.7090364Z       }
2026-06-03T22:00:56.7090451Z     },
2026-06-03T22:00:56.7090535Z     {
2026-06-03T22:00:56.7090667Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-03T22:00:56.7090884Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-03T22:00:56.7090984Z       "requiredStages": [
2026-06-03T22:00:56.7091065Z         "impl",
2026-06-03T22:00:56.7091149Z         "unit"
2026-06-03T22:00:56.7091228Z       ],
2026-06-03T22:00:56.7091315Z       "stages": {
2026-06-03T22:00:56.7091396Z         "doc": {
2026-06-03T22:00:56.7091488Z           "complete": false,
2026-06-03T22:00:56.7091578Z           "evidence": []
2026-06-03T22:00:56.7091658Z         },
2026-06-03T22:00:56.7091746Z         "impl": {
2026-06-03T22:00:56.7091834Z           "complete": true,
2026-06-03T22:00:56.7091923Z           "evidence": [
2026-06-03T22:00:56.7092002Z             {
2026-06-03T22:00:56.7092133Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-03T22:00:56.7092227Z               "line": 107
2026-06-03T22:00:56.7092422Z             }
2026-06-03T22:00:56.7092510Z           ]
2026-06-03T22:00:56.7092688Z         },
2026-06-03T22:00:56.7092777Z         "int": {
2026-06-03T22:00:56.7092870Z           "complete": false,
2026-06-03T22:00:56.7092963Z           "evidence": []
2026-06-03T22:00:56.7093045Z         },
2026-06-03T22:00:56.7093127Z         "unit": {
2026-06-03T22:00:56.7093219Z           "complete": true,
2026-06-03T22:00:56.7093306Z           "evidence": [
2026-06-03T22:00:56.7093389Z             {
2026-06-03T22:00:56.7093515Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-03T22:00:56.7093603Z               "line": 184
2026-06-03T22:00:56.7093686Z             },
2026-06-03T22:00:56.7093765Z             {
2026-06-03T22:00:56.7093892Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-03T22:00:56.7093978Z               "line": 193
2026-06-03T22:00:56.7094062Z             },
2026-06-03T22:00:56.7094141Z             {
2026-06-03T22:00:56.7094273Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-03T22:00:56.7094364Z               "line": 201
2026-06-03T22:00:56.7094449Z             },
2026-06-03T22:00:56.7094531Z             {
2026-06-03T22:00:56.7094655Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-03T22:00:56.7094744Z               "line": 210
2026-06-03T22:00:56.7094823Z             },
2026-06-03T22:00:56.7094907Z             {
2026-06-03T22:00:56.7095036Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-03T22:00:56.7095122Z               "line": 219
2026-06-03T22:00:56.7095207Z             }
2026-06-03T22:00:56.7095285Z           ]
2026-06-03T22:00:56.7095370Z         }
2026-06-03T22:00:56.7095449Z       }
2026-06-03T22:00:56.7095533Z     },
2026-06-03T22:00:56.7095615Z     {
2026-06-03T22:00:56.7095734Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-03T22:00:56.7095924Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-03T22:00:56.7096018Z       "requiredStages": [
2026-06-03T22:00:56.7096111Z         "impl",
2026-06-03T22:00:56.7096193Z         "unit"
2026-06-03T22:00:56.7096281Z       ],
2026-06-03T22:00:56.7096369Z       "stages": {
2026-06-03T22:00:56.7096449Z         "doc": {
2026-06-03T22:00:56.7096547Z           "complete": false,
2026-06-03T22:00:56.7096635Z           "evidence": []
2026-06-03T22:00:56.7096720Z         },
2026-06-03T22:00:56.7096803Z         "impl": {
2026-06-03T22:00:56.7096899Z           "complete": true,
2026-06-03T22:00:56.7096990Z           "evidence": [
2026-06-03T22:00:56.7097069Z             {
2026-06-03T22:00:56.7097192Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-03T22:00:56.7097278Z               "line": 14
2026-06-03T22:00:56.7097367Z             },
2026-06-03T22:00:56.7097446Z             {
2026-06-03T22:00:56.7097567Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-03T22:00:56.7097659Z               "line": 62
2026-06-03T22:00:56.7097738Z             }
2026-06-03T22:00:56.7097822Z           ]
2026-06-03T22:00:56.7097906Z         },
2026-06-03T22:00:56.7097992Z         "int": {
2026-06-03T22:00:56.7098082Z           "complete": false,
2026-06-03T22:00:56.7098178Z           "evidence": []
2026-06-03T22:00:56.7098260Z         },
2026-06-03T22:00:56.7098341Z         "unit": {
2026-06-03T22:00:56.7098433Z           "complete": true,
2026-06-03T22:00:56.7098518Z           "evidence": [
2026-06-03T22:00:56.7098599Z             {
2026-06-03T22:00:56.7098711Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-03T22:00:56.7098802Z               "line": 160
2026-06-03T22:00:56.7098888Z             },
2026-06-03T22:00:56.7098969Z             {
2026-06-03T22:00:56.7099082Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-03T22:00:56.7099166Z               "line": 197
2026-06-03T22:00:56.7099247Z             },
2026-06-03T22:00:56.7099444Z             {
2026-06-03T22:00:56.7099563Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-03T22:00:56.7099652Z               "line": 213
2026-06-03T22:00:56.7099868Z             }
2026-06-03T22:00:56.7099955Z           ]
2026-06-03T22:00:56.7100214Z         }
2026-06-03T22:00:56.7100498Z       }
2026-06-03T22:00:56.7100650Z     },
2026-06-03T22:00:56.7100783Z     {
2026-06-03T22:00:56.7147717Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-03T22:00:56.7148217Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-03T22:00:56.7148392Z       "requiredStages": [
2026-06-03T22:00:56.7148486Z         "impl",
2026-06-03T22:00:56.7148574Z         "unit"
2026-06-03T22:00:56.7148659Z       ],
2026-06-03T22:00:56.7148752Z       "stages": {
2026-06-03T22:00:56.7148834Z         "doc": {
2026-06-03T22:00:56.7148938Z           "complete": false,
2026-06-03T22:00:56.7149033Z           "evidence": []
2026-06-03T22:00:56.7149117Z         },
2026-06-03T22:00:56.7149206Z         "impl": {
2026-06-03T22:00:56.7149298Z           "complete": true,
2026-06-03T22:00:56.7149658Z           "evidence": [
2026-06-03T22:00:56.7149804Z             {
2026-06-03T22:00:56.7150003Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-03T22:00:56.7150133Z               "line": 76
2026-06-03T22:00:56.7150219Z             },
2026-06-03T22:00:56.7150303Z             {
2026-06-03T22:00:56.7150438Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-03T22:00:56.7150537Z               "line": 163
2026-06-03T22:00:56.7150618Z             },
2026-06-03T22:00:56.7150702Z             {
2026-06-03T22:00:56.7150835Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-03T22:00:56.7150925Z               "line": 229
2026-06-03T22:00:56.7151007Z             },
2026-06-03T22:00:56.7151086Z             {
2026-06-03T22:00:56.7151211Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-03T22:00:56.7151296Z               "line": 265
2026-06-03T22:00:56.7151380Z             }
2026-06-03T22:00:56.7151460Z           ]
2026-06-03T22:00:56.7151542Z         },
2026-06-03T22:00:56.7151626Z         "int": {
2026-06-03T22:00:56.7151725Z           "complete": false,
2026-06-03T22:00:56.7151815Z           "evidence": []
2026-06-03T22:00:56.7151899Z         },
2026-06-03T22:00:56.7151985Z         "unit": {
2026-06-03T22:00:56.7152077Z           "complete": true,
2026-06-03T22:00:56.7152169Z           "evidence": [
2026-06-03T22:00:56.7152254Z             {
2026-06-03T22:00:56.7152376Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-03T22:00:56.7152467Z               "line": 310
2026-06-03T22:00:56.7152546Z             },
2026-06-03T22:00:56.7152629Z             {
2026-06-03T22:00:56.7152751Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-03T22:00:56.7152840Z               "line": 318
2026-06-03T22:00:56.7152923Z             },
2026-06-03T22:00:56.7153004Z             {
2026-06-03T22:00:56.7153126Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-03T22:00:56.7153210Z               "line": 341
2026-06-03T22:00:56.7153293Z             },
2026-06-03T22:00:56.7153372Z             {
2026-06-03T22:00:56.7153501Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-03T22:00:56.7153591Z               "line": 378
2026-06-03T22:00:56.7153675Z             },
2026-06-03T22:00:56.7153757Z             {
2026-06-03T22:00:56.7153884Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-03T22:00:56.7153972Z               "line": 389
2026-06-03T22:00:56.7154056Z             },
2026-06-03T22:00:56.7154134Z             {
2026-06-03T22:00:56.7154258Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-03T22:00:56.7154342Z               "line": 401
2026-06-03T22:00:56.7154426Z             },
2026-06-03T22:00:56.7154507Z             {
2026-06-03T22:00:56.7154636Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-03T22:00:56.7154727Z               "line": 413
2026-06-03T22:00:56.7154805Z             }
2026-06-03T22:00:56.7154885Z           ]
2026-06-03T22:00:56.7154965Z         }
2026-06-03T22:00:56.7155049Z       }
2026-06-03T22:00:56.7155129Z     },
2026-06-03T22:00:56.7155210Z     {
2026-06-03T22:00:56.7155502Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-03T22:00:56.7155688Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-03T22:00:56.7155890Z       "requiredStages": [
2026-06-03T22:00:56.7155974Z         "impl",
2026-06-03T22:00:56.7156059Z         "int"
2026-06-03T22:00:56.7156138Z       ],
2026-06-03T22:00:56.7156226Z       "stages": {
2026-06-03T22:00:56.7156311Z         "doc": {
2026-06-03T22:00:56.7156405Z           "complete": false,
2026-06-03T22:00:56.7156499Z           "evidence": []
2026-06-03T22:00:56.7156579Z         },
2026-06-03T22:00:56.7156669Z         "impl": {
2026-06-03T22:00:56.7156761Z           "complete": true,
2026-06-03T22:00:56.7156852Z           "evidence": [
2026-06-03T22:00:56.7156930Z             {
2026-06-03T22:00:56.7157071Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-03T22:00:56.7157159Z               "line": 22
2026-06-03T22:00:56.7157236Z             }
2026-06-03T22:00:56.7157317Z           ]
2026-06-03T22:00:56.7157400Z         },
2026-06-03T22:00:56.7157485Z         "int": {
2026-06-03T22:00:56.7157573Z           "complete": true,
2026-06-03T22:00:56.7157666Z           "evidence": [
2026-06-03T22:00:56.7157747Z             {
2026-06-03T22:00:56.7157883Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-03T22:00:56.7157971Z               "line": 18
2026-06-03T22:00:56.7158053Z             }
2026-06-03T22:00:56.7158135Z           ]
2026-06-03T22:00:56.7158216Z         },
2026-06-03T22:00:56.7158303Z         "unit": {
2026-06-03T22:00:56.7158396Z           "complete": false,
2026-06-03T22:00:56.7158480Z           "evidence": []
2026-06-03T22:00:56.7158563Z         }
2026-06-03T22:00:56.7158642Z       }
2026-06-03T22:00:56.7158721Z     },
2026-06-03T22:00:56.7158797Z     {
2026-06-03T22:00:56.7158930Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-03T22:00:56.7159170Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-03T22:00:56.7159268Z       "requiredStages": [
2026-06-03T22:00:56.7159515Z         "impl",
2026-06-03T22:00:56.7159600Z         "unit"
2026-06-03T22:00:56.7159689Z       ],
2026-06-03T22:00:56.7159773Z       "stages": {
2026-06-03T22:00:56.7159858Z         "doc": {
2026-06-03T22:00:56.7159953Z           "complete": false,
2026-06-03T22:00:56.7160041Z           "evidence": []
2026-06-03T22:00:56.7160123Z         },
2026-06-03T22:00:56.7160204Z         "impl": {
2026-06-03T22:00:56.7160297Z           "complete": true,
2026-06-03T22:00:56.7160384Z           "evidence": [
2026-06-03T22:00:56.7160466Z             {
2026-06-03T22:00:56.7160611Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.7160699Z               "line": 263
2026-06-03T22:00:56.7160785Z             },
2026-06-03T22:00:56.7160866Z             {
2026-06-03T22:00:56.7160996Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-03T22:00:56.7161087Z               "line": 27
2026-06-03T22:00:56.7161170Z             }
2026-06-03T22:00:56.7161264Z           ]
2026-06-03T22:00:56.7161343Z         },
2026-06-03T22:00:56.7161429Z         "int": {
2026-06-03T22:00:56.7161524Z           "complete": false,
2026-06-03T22:00:56.7161612Z           "evidence": []
2026-06-03T22:00:56.7161691Z         },
2026-06-03T22:00:56.7161775Z         "unit": {
2026-06-03T22:00:56.7161866Z           "complete": true,
2026-06-03T22:00:56.7161949Z           "evidence": [
2026-06-03T22:00:56.7162029Z             {
2026-06-03T22:00:56.7162170Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.7162267Z               "line": 561
2026-06-03T22:00:56.7162352Z             },
2026-06-03T22:00:56.7162430Z             {
2026-06-03T22:00:56.7162561Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-03T22:00:56.7162648Z               "line": 163
2026-06-03T22:00:56.7162733Z             }
2026-06-03T22:00:56.7162812Z           ]
2026-06-03T22:00:56.7162898Z         }
2026-06-03T22:00:56.7162982Z       }
2026-06-03T22:00:56.7163059Z     },
2026-06-03T22:00:56.7163262Z     {
2026-06-03T22:00:56.7163399Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-03T22:00:56.7163693Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-03T22:00:56.7163787Z       "requiredStages": [
2026-06-03T22:00:56.7163874Z         "impl",
2026-06-03T22:00:56.7163958Z         "unit"
2026-06-03T22:00:56.7164037Z       ],
2026-06-03T22:00:56.7164124Z       "stages": {
2026-06-03T22:00:56.7164201Z         "doc": {
2026-06-03T22:00:56.7164297Z           "complete": false,
2026-06-03T22:00:56.7164384Z           "evidence": []
2026-06-03T22:00:56.7164468Z         },
2026-06-03T22:00:56.7164550Z         "impl": {
2026-06-03T22:00:56.7164644Z           "complete": true,
2026-06-03T22:00:56.7164736Z           "evidence": [
2026-06-03T22:00:56.7164816Z             {
2026-06-03T22:00:56.7164949Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-03T22:00:56.7165034Z               "line": 20
2026-06-03T22:00:56.7165116Z             },
2026-06-03T22:00:56.7165204Z             {
2026-06-03T22:00:56.7165327Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-03T22:00:56.7165422Z               "line": 94
2026-06-03T22:00:56.7165502Z             },
2026-06-03T22:00:56.7165586Z             {
2026-06-03T22:00:56.7165719Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-03T22:00:56.7165808Z               "line": 70
2026-06-03T22:00:56.7165890Z             },
2026-06-03T22:00:56.7165968Z             {
2026-06-03T22:00:56.7166102Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-03T22:00:56.7166186Z               "line": 82
2026-06-03T22:00:56.7166270Z             }
2026-06-03T22:00:56.7166349Z           ]
2026-06-03T22:00:56.7166430Z         },
2026-06-03T22:00:56.7166515Z         "int": {
2026-06-03T22:00:56.7166609Z           "complete": false,
2026-06-03T22:00:56.7166702Z           "evidence": []
2026-06-03T22:00:56.7166779Z         },
2026-06-03T22:00:56.7166864Z         "unit": {
2026-06-03T22:00:56.7166958Z           "complete": true,
2026-06-03T22:00:56.7167048Z           "evidence": [
2026-06-03T22:00:56.7167133Z             {
2026-06-03T22:00:56.7167253Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-03T22:00:56.7167343Z               "line": 139
2026-06-03T22:00:56.7167421Z             },
2026-06-03T22:00:56.7167502Z             {
2026-06-03T22:00:56.7167620Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-03T22:00:56.7167709Z               "line": 162
2026-06-03T22:00:56.7167791Z             },
2026-06-03T22:00:56.7167870Z             {
2026-06-03T22:00:56.7167993Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-03T22:00:56.7168080Z               "line": 173
2026-06-03T22:00:56.7168164Z             },
2026-06-03T22:00:56.7168244Z             {
2026-06-03T22:00:56.7168367Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-03T22:00:56.7168457Z               "line": 189
2026-06-03T22:00:56.7168535Z             },
2026-06-03T22:00:56.7168625Z             {
2026-06-03T22:00:56.7168741Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-03T22:00:56.7168834Z               "line": 200
2026-06-03T22:00:56.7168913Z             },
2026-06-03T22:00:56.7168993Z             {
2026-06-03T22:00:56.7169124Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-03T22:00:56.7169209Z               "line": 139
2026-06-03T22:00:56.7169291Z             }
2026-06-03T22:00:56.7169501Z           ]
2026-06-03T22:00:56.7169586Z         }
2026-06-03T22:00:56.7169663Z       }
2026-06-03T22:00:56.7169746Z     },
2026-06-03T22:00:56.7169826Z     {
2026-06-03T22:00:56.7169929Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-03T22:00:56.7170242Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-03T22:00:56.7170335Z       "requiredStages": [
2026-06-03T22:00:56.7170421Z         "impl",
2026-06-03T22:00:56.7170502Z         "unit"
2026-06-03T22:00:56.7170583Z       ],
2026-06-03T22:00:56.7170794Z       "stages": {
2026-06-03T22:00:56.7170877Z         "doc": {
2026-06-03T22:00:56.7171069Z           "complete": true,
2026-06-03T22:00:56.7171156Z           "evidence": [
2026-06-03T22:00:56.7171242Z             {
2026-06-03T22:00:56.7171360Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-03T22:00:56.7171451Z               "line": 131
2026-06-03T22:00:56.7171536Z             }
2026-06-03T22:00:56.7171615Z           ]
2026-06-03T22:00:56.7171699Z         },
2026-06-03T22:00:56.7171784Z         "impl": {
2026-06-03T22:00:56.7171877Z           "complete": true,
2026-06-03T22:00:56.7171965Z           "evidence": [
2026-06-03T22:00:56.7172049Z             {
2026-06-03T22:00:56.7172173Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-03T22:00:56.7172258Z               "line": 50
2026-06-03T22:00:56.7172342Z             },
2026-06-03T22:00:56.7172420Z             {
2026-06-03T22:00:56.7172545Z               "path": "crates/spt-proto/src/id.rs",
2026-06-03T22:00:56.7172635Z               "line": 17
2026-06-03T22:00:56.7172719Z             },
2026-06-03T22:00:56.7172804Z             {
2026-06-03T22:00:56.7172933Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7173023Z               "line": 171
2026-06-03T22:00:56.7173103Z             },
2026-06-03T22:00:56.7173185Z             {
2026-06-03T22:00:56.7173303Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7173393Z               "line": 259
2026-06-03T22:00:56.7173476Z             },
2026-06-03T22:00:56.7173555Z             {
2026-06-03T22:00:56.7173678Z               "path": "crates/spt/src/api/worker.rs",
2026-06-03T22:00:56.7173762Z               "line": 32
2026-06-03T22:00:56.7173843Z             }
2026-06-03T22:00:56.7173919Z           ]
2026-06-03T22:00:56.7173999Z         },
2026-06-03T22:00:56.7174082Z         "int": {
2026-06-03T22:00:56.7174172Z           "complete": false,
2026-06-03T22:00:56.7174260Z           "evidence": []
2026-06-03T22:00:56.7174338Z         },
2026-06-03T22:00:56.7174427Z         "unit": {
2026-06-03T22:00:56.7174515Z           "complete": true,
2026-06-03T22:00:56.7174610Z           "evidence": [
2026-06-03T22:00:56.7174694Z             {
2026-06-03T22:00:56.7174811Z               "path": "crates/spt-proto/src/id.rs",
2026-06-03T22:00:56.7174899Z               "line": 94
2026-06-03T22:00:56.7174979Z             },
2026-06-03T22:00:56.7175063Z             {
2026-06-03T22:00:56.7175174Z               "path": "crates/spt-proto/src/id.rs",
2026-06-03T22:00:56.7175260Z               "line": 111
2026-06-03T22:00:56.7175343Z             },
2026-06-03T22:00:56.7175419Z             {
2026-06-03T22:00:56.7175533Z               "path": "crates/spt-proto/src/id.rs",
2026-06-03T22:00:56.7175617Z               "line": 124
2026-06-03T22:00:56.7175699Z             },
2026-06-03T22:00:56.7175778Z             {
2026-06-03T22:00:56.7175895Z               "path": "crates/spt-proto/src/id.rs",
2026-06-03T22:00:56.7175986Z               "line": 134
2026-06-03T22:00:56.7176070Z             },
2026-06-03T22:00:56.7176153Z             {
2026-06-03T22:00:56.7176263Z               "path": "crates/spt-proto/src/id.rs",
2026-06-03T22:00:56.7176357Z               "line": 142
2026-06-03T22:00:56.7176441Z             },
2026-06-03T22:00:56.7176520Z             {
2026-06-03T22:00:56.7176636Z               "path": "crates/spt-proto/src/id.rs",
2026-06-03T22:00:56.7176723Z               "line": 154
2026-06-03T22:00:56.7176805Z             }
2026-06-03T22:00:56.7176886Z           ]
2026-06-03T22:00:56.7176968Z         }
2026-06-03T22:00:56.7177051Z       }
2026-06-03T22:00:56.7177128Z     },
2026-06-03T22:00:56.7177212Z     {
2026-06-03T22:00:56.7177326Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-03T22:00:56.7177476Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-03T22:00:56.7177568Z       "requiredStages": [
2026-06-03T22:00:56.7177654Z         "impl",
2026-06-03T22:00:56.7177739Z         "unit"
2026-06-03T22:00:56.7177817Z       ],
2026-06-03T22:00:56.7178020Z       "stages": {
2026-06-03T22:00:56.7178101Z         "doc": {
2026-06-03T22:00:56.7178196Z           "complete": false,
2026-06-03T22:00:56.7178357Z           "evidence": []
2026-06-03T22:00:56.7178437Z         },
2026-06-03T22:00:56.7178518Z         "impl": {
2026-06-03T22:00:56.7178610Z           "complete": true,
2026-06-03T22:00:56.7178696Z           "evidence": [
2026-06-03T22:00:56.7178773Z             {
2026-06-03T22:00:56.7178899Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7178984Z               "line": 93
2026-06-03T22:00:56.7179066Z             }
2026-06-03T22:00:56.7179143Z           ]
2026-06-03T22:00:56.7179224Z         },
2026-06-03T22:00:56.7179305Z         "int": {
2026-06-03T22:00:56.7179516Z           "complete": false,
2026-06-03T22:00:56.7179609Z           "evidence": []
2026-06-03T22:00:56.7179685Z         },
2026-06-03T22:00:56.7179801Z         "unit": {
2026-06-03T22:00:56.7179891Z           "complete": true,
2026-06-03T22:00:56.7179980Z           "evidence": [
2026-06-03T22:00:56.7180071Z             {
2026-06-03T22:00:56.7180193Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7180286Z               "line": 190
2026-06-03T22:00:56.7180363Z             }
2026-06-03T22:00:56.7180443Z           ]
2026-06-03T22:00:56.7180522Z         }
2026-06-03T22:00:56.7180600Z       }
2026-06-03T22:00:56.7180679Z     },
2026-06-03T22:00:56.7180755Z     {
2026-06-03T22:00:56.7180881Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-03T22:00:56.7181057Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-03T22:00:56.7181153Z       "requiredStages": [
2026-06-03T22:00:56.7181237Z         "impl",
2026-06-03T22:00:56.7181315Z         "unit"
2026-06-03T22:00:56.7181395Z       ],
2026-06-03T22:00:56.7181477Z       "stages": {
2026-06-03T22:00:56.7181558Z         "doc": {
2026-06-03T22:00:56.7181647Z           "complete": false,
2026-06-03T22:00:56.7181737Z           "evidence": []
2026-06-03T22:00:56.7181817Z         },
2026-06-03T22:00:56.7181903Z         "impl": {
2026-06-03T22:00:56.7181994Z           "complete": true,
2026-06-03T22:00:56.7182083Z           "evidence": [
2026-06-03T22:00:56.7182161Z             {
2026-06-03T22:00:56.7182279Z               "path": "crates/spt-store/src/info.rs",
2026-06-03T22:00:56.7182365Z               "line": 120
2026-06-03T22:00:56.7182446Z             },
2026-06-03T22:00:56.7182522Z             {
2026-06-03T22:00:56.7182639Z               "path": "crates/spt-store/src/info.rs",
2026-06-03T22:00:56.7182724Z               "line": 131
2026-06-03T22:00:56.7182803Z             },
2026-06-03T22:00:56.7182881Z             {
2026-06-03T22:00:56.7182998Z               "path": "crates/spt-store/src/info.rs",
2026-06-03T22:00:56.7183084Z               "line": 149
2026-06-03T22:00:56.7183163Z             }
2026-06-03T22:00:56.7183243Z           ]
2026-06-03T22:00:56.7183320Z         },
2026-06-03T22:00:56.7183400Z         "int": {
2026-06-03T22:00:56.7183489Z           "complete": false,
2026-06-03T22:00:56.7183581Z           "evidence": []
2026-06-03T22:00:56.7183660Z         },
2026-06-03T22:00:56.7183744Z         "unit": {
2026-06-03T22:00:56.7183837Z           "complete": true,
2026-06-03T22:00:56.7183921Z           "evidence": [
2026-06-03T22:00:56.7184002Z             {
2026-06-03T22:00:56.7184117Z               "path": "crates/spt-store/src/info.rs",
2026-06-03T22:00:56.7184206Z               "line": 173
2026-06-03T22:00:56.7184287Z             },
2026-06-03T22:00:56.7184364Z             {
2026-06-03T22:00:56.7184480Z               "path": "crates/spt-store/src/info.rs",
2026-06-03T22:00:56.7184566Z               "line": 191
2026-06-03T22:00:56.7184645Z             },
2026-06-03T22:00:56.7184721Z             {
2026-06-03T22:00:56.7184838Z               "path": "crates/spt-store/src/info.rs",
2026-06-03T22:00:56.7184927Z               "line": 253
2026-06-03T22:00:56.7185005Z             },
2026-06-03T22:00:56.7185085Z             {
2026-06-03T22:00:56.7185314Z               "path": "crates/spt-store/src/info.rs",
2026-06-03T22:00:56.7185406Z               "line": 264
2026-06-03T22:00:56.7185484Z             },
2026-06-03T22:00:56.7185662Z             {
2026-06-03T22:00:56.7185781Z               "path": "crates/spt-store/src/info.rs",
2026-06-03T22:00:56.7185865Z               "line": 277
2026-06-03T22:00:56.7185946Z             }
2026-06-03T22:00:56.7186023Z           ]
2026-06-03T22:00:56.7186105Z         }
2026-06-03T22:00:56.7186183Z       }
2026-06-03T22:00:56.7186263Z     },
2026-06-03T22:00:56.7186343Z     {
2026-06-03T22:00:56.7186457Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-03T22:00:56.7186717Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-03T22:00:56.7186809Z       "requiredStages": [
2026-06-03T22:00:56.7186892Z         "impl",
2026-06-03T22:00:56.7186970Z         "unit"
2026-06-03T22:00:56.7187050Z       ],
2026-06-03T22:00:56.7187134Z       "stages": {
2026-06-03T22:00:56.7187212Z         "doc": {
2026-06-03T22:00:56.7187307Z           "complete": false,
2026-06-03T22:00:56.7187394Z           "evidence": []
2026-06-03T22:00:56.7187479Z         },
2026-06-03T22:00:56.7187558Z         "impl": {
2026-06-03T22:00:56.7187650Z           "complete": true,
2026-06-03T22:00:56.7187736Z           "evidence": [
2026-06-03T22:00:56.7187814Z             {
2026-06-03T22:00:56.7187930Z               "path": "crates/spt/src/api/auth.rs",
2026-06-03T22:00:56.7188015Z               "line": 14
2026-06-03T22:00:56.7188096Z             },
2026-06-03T22:00:56.7188172Z             {
2026-06-03T22:00:56.7188287Z               "path": "crates/spt/src/api/mod.rs",
2026-06-03T22:00:56.7188373Z               "line": 298
2026-06-03T22:00:56.7188451Z             }
2026-06-03T22:00:56.7188530Z           ]
2026-06-03T22:00:56.7188606Z         },
2026-06-03T22:00:56.7188687Z         "int": {
2026-06-03T22:00:56.7188776Z           "complete": false,
2026-06-03T22:00:56.7188864Z           "evidence": []
2026-06-03T22:00:56.7188944Z         },
2026-06-03T22:00:56.7189029Z         "unit": {
2026-06-03T22:00:56.7189118Z           "complete": true,
2026-06-03T22:00:56.7189207Z           "evidence": [
2026-06-03T22:00:56.7189286Z             {
2026-06-03T22:00:56.7189664Z               "path": "crates/spt/src/api/auth.rs",
2026-06-03T22:00:56.7189826Z               "line": 130
2026-06-03T22:00:56.7189911Z             },
2026-06-03T22:00:56.7189990Z             {
2026-06-03T22:00:56.7190114Z               "path": "crates/spt/src/api/auth.rs",
2026-06-03T22:00:56.7190198Z               "line": 138
2026-06-03T22:00:56.7190281Z             },
2026-06-03T22:00:56.7190358Z             {
2026-06-03T22:00:56.7190472Z               "path": "crates/spt/src/api/auth.rs",
2026-06-03T22:00:56.7190558Z               "line": 146
2026-06-03T22:00:56.7190637Z             },
2026-06-03T22:00:56.7190719Z             {
2026-06-03T22:00:56.7190842Z               "path": "crates/spt/src/api/auth.rs",
2026-06-03T22:00:56.7190930Z               "line": 154
2026-06-03T22:00:56.7191011Z             },
2026-06-03T22:00:56.7191095Z             {
2026-06-03T22:00:56.7191207Z               "path": "crates/spt/src/api/auth.rs",
2026-06-03T22:00:56.7191296Z               "line": 162
2026-06-03T22:00:56.7191376Z             },
2026-06-03T22:00:56.7191455Z             {
2026-06-03T22:00:56.7191570Z               "path": "crates/spt/src/api/auth.rs",
2026-06-03T22:00:56.7191656Z               "line": 170
2026-06-03T22:00:56.7191732Z             }
2026-06-03T22:00:56.7191812Z           ]
2026-06-03T22:00:56.7191889Z         }
2026-06-03T22:00:56.7191970Z       }
2026-06-03T22:00:56.7192046Z     },
2026-06-03T22:00:56.7192125Z     {
2026-06-03T22:00:56.7192240Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-03T22:00:56.7193737Z       "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-03T22:00:56.7193984Z       "requiredStages": [
2026-06-03T22:00:56.7194071Z         "impl",
2026-06-03T22:00:56.7194257Z         "unit"
2026-06-03T22:00:56.7194335Z       ],
2026-06-03T22:00:56.7194423Z       "stages": {
2026-06-03T22:00:56.7194507Z         "doc": {
2026-06-03T22:00:56.7194599Z           "complete": false,
2026-06-03T22:00:56.7194686Z           "evidence": []
2026-06-03T22:00:56.7194765Z         },
2026-06-03T22:00:56.7194849Z         "impl": {
2026-06-03T22:00:56.7194939Z           "complete": true,
2026-06-03T22:00:56.7195027Z           "evidence": [
2026-06-03T22:00:56.7195107Z             {
2026-06-03T22:00:56.7195280Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-03T22:00:56.7195368Z               "line": 34
2026-06-03T22:00:56.7195446Z             }
2026-06-03T22:00:56.7195527Z           ]
2026-06-03T22:00:56.7195608Z         },
2026-06-03T22:00:56.7195693Z         "int": {
2026-06-03T22:00:56.7195790Z           "complete": false,
2026-06-03T22:00:56.7195883Z           "evidence": []
2026-06-03T22:00:56.7195967Z         },
2026-06-03T22:00:56.7196054Z         "unit": {
2026-06-03T22:00:56.7196147Z           "complete": true,
2026-06-03T22:00:56.7196232Z           "evidence": [
2026-06-03T22:00:56.7196313Z             {
2026-06-03T22:00:56.7196470Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-03T22:00:56.7196556Z               "line": 188
2026-06-03T22:00:56.7196636Z             },
2026-06-03T22:00:56.7196714Z             {
2026-06-03T22:00:56.7196864Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-03T22:00:56.7196952Z               "line": 200
2026-06-03T22:00:56.7197032Z             },
2026-06-03T22:00:56.7197114Z             {
2026-06-03T22:00:56.7197259Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-03T22:00:56.7197348Z               "line": 211
2026-06-03T22:00:56.7197427Z             },
2026-06-03T22:00:56.7197511Z             {
2026-06-03T22:00:56.7197664Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-03T22:00:56.7197749Z               "line": 245
2026-06-03T22:00:56.7197837Z             },
2026-06-03T22:00:56.7197915Z             {
2026-06-03T22:00:56.7198067Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-03T22:00:56.7198151Z               "line": 267
2026-06-03T22:00:56.7198231Z             },
2026-06-03T22:00:56.7198311Z             {
2026-06-03T22:00:56.7198459Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-03T22:00:56.7198546Z               "line": 288
2026-06-03T22:00:56.7198625Z             },
2026-06-03T22:00:56.7198704Z             {
2026-06-03T22:00:56.7198849Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-03T22:00:56.7198939Z               "line": 304
2026-06-03T22:00:56.7199020Z             }
2026-06-03T22:00:56.7199099Z           ]
2026-06-03T22:00:56.7199178Z         }
2026-06-03T22:00:56.7199255Z       }
2026-06-03T22:00:56.7199495Z     },
2026-06-03T22:00:56.7199578Z     {
2026-06-03T22:00:56.7199709Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-03T22:00:56.7200403Z       "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-03T22:00:56.7200496Z       "requiredStages": [
2026-06-03T22:00:56.7200582Z         "impl",
2026-06-03T22:00:56.7200661Z         "unit"
2026-06-03T22:00:56.7200741Z       ],
2026-06-03T22:00:56.7200823Z       "stages": {
2026-06-03T22:00:56.7200905Z         "doc": {
2026-06-03T22:00:56.7200999Z           "complete": false,
2026-06-03T22:00:56.7201084Z           "evidence": []
2026-06-03T22:00:56.7201165Z         },
2026-06-03T22:00:56.7201247Z         "impl": {
2026-06-03T22:00:56.7201338Z           "complete": true,
2026-06-03T22:00:56.7201422Z           "evidence": [
2026-06-03T22:00:56.7201503Z             {
2026-06-03T22:00:56.7201754Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-03T22:00:56.7201846Z               "line": 29
2026-06-03T22:00:56.7202023Z             },
2026-06-03T22:00:56.7202101Z             {
2026-06-03T22:00:56.7202226Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-03T22:00:56.7202313Z               "line": 145
2026-06-03T22:00:56.7202389Z             },
2026-06-03T22:00:56.7202469Z             {
2026-06-03T22:00:56.7202584Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-03T22:00:56.7202670Z               "line": 163
2026-06-03T22:00:56.7202748Z             },
2026-06-03T22:00:56.7202832Z             {
2026-06-03T22:00:56.7202952Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-03T22:00:56.7203036Z               "line": 189
2026-06-03T22:00:56.7203117Z             }
2026-06-03T22:00:56.7203195Z           ]
2026-06-03T22:00:56.7203275Z         },
2026-06-03T22:00:56.7203352Z         "int": {
2026-06-03T22:00:56.7203444Z           "complete": false,
2026-06-03T22:00:56.7203537Z           "evidence": []
2026-06-03T22:00:56.7203613Z         },
2026-06-03T22:00:56.7203702Z         "unit": {
2026-06-03T22:00:56.7203791Z           "complete": true,
2026-06-03T22:00:56.7203877Z           "evidence": [
2026-06-03T22:00:56.7203953Z             {
2026-06-03T22:00:56.7204073Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-03T22:00:56.7204161Z               "line": 250
2026-06-03T22:00:56.7204238Z             },
2026-06-03T22:00:56.7204318Z             {
2026-06-03T22:00:56.7204436Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-03T22:00:56.7204524Z               "line": 265
2026-06-03T22:00:56.7204602Z             },
2026-06-03T22:00:56.7204682Z             {
2026-06-03T22:00:56.7204801Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-03T22:00:56.7204885Z               "line": 284
2026-06-03T22:00:56.7204965Z             },
2026-06-03T22:00:56.7205043Z             {
2026-06-03T22:00:56.7205165Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-03T22:00:56.7205249Z               "line": 300
2026-06-03T22:00:56.7205336Z             },
2026-06-03T22:00:56.7205415Z             {
2026-06-03T22:00:56.7205534Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-03T22:00:56.7205622Z               "line": 324
2026-06-03T22:00:56.7205700Z             },
2026-06-03T22:00:56.7205780Z             {
2026-06-03T22:00:56.7205897Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-03T22:00:56.7205987Z               "line": 338
2026-06-03T22:00:56.7206068Z             },
2026-06-03T22:00:56.7206144Z             {
2026-06-03T22:00:56.7206263Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-03T22:00:56.7206346Z               "line": 349
2026-06-03T22:00:56.7206425Z             },
2026-06-03T22:00:56.7206502Z             {
2026-06-03T22:00:56.7206620Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-03T22:00:56.7206707Z               "line": 360
2026-06-03T22:00:56.7206787Z             }
2026-06-03T22:00:56.7206867Z           ]
2026-06-03T22:00:56.7206944Z         }
2026-06-03T22:00:56.7207028Z       }
2026-06-03T22:00:56.7207104Z     },
2026-06-03T22:00:56.7207185Z     {
2026-06-03T22:00:56.7207316Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-03T22:00:56.7208177Z       "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-03T22:00:56.7208271Z       "requiredStages": [
2026-06-03T22:00:56.7208351Z         "impl",
2026-06-03T22:00:56.7208432Z         "unit"
2026-06-03T22:00:56.7208511Z       ],
2026-06-03T22:00:56.7208592Z       "stages": {
2026-06-03T22:00:56.7208672Z         "doc": {
2026-06-03T22:00:56.7208761Z           "complete": false,
2026-06-03T22:00:56.7208849Z           "evidence": []
2026-06-03T22:00:56.7208926Z         },
2026-06-03T22:00:56.7209011Z         "impl": {
2026-06-03T22:00:56.7209185Z           "complete": true,
2026-06-03T22:00:56.7209273Z           "evidence": [
2026-06-03T22:00:56.7209567Z             {
2026-06-03T22:00:56.7209730Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7209817Z               "line": 27
2026-06-03T22:00:56.7209896Z             },
2026-06-03T22:00:56.7209979Z             {
2026-06-03T22:00:56.7210131Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7210217Z               "line": 110
2026-06-03T22:00:56.7210302Z             },
2026-06-03T22:00:56.7210381Z             {
2026-06-03T22:00:56.7210525Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7210610Z               "line": 153
2026-06-03T22:00:56.7210689Z             },
2026-06-03T22:00:56.7210768Z             {
2026-06-03T22:00:56.7210906Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7210994Z               "line": 182
2026-06-03T22:00:56.7211079Z             },
2026-06-03T22:00:56.7211163Z             {
2026-06-03T22:00:56.7211324Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-03T22:00:56.7211421Z               "line": 31
2026-06-03T22:00:56.7211505Z             },
2026-06-03T22:00:56.7211583Z             {
2026-06-03T22:00:56.7211743Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-03T22:00:56.7211829Z               "line": 113
2026-06-03T22:00:56.7211910Z             },
2026-06-03T22:00:56.7211987Z             {
2026-06-03T22:00:56.7212141Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-03T22:00:56.7212228Z               "line": 138
2026-06-03T22:00:56.7212307Z             }
2026-06-03T22:00:56.7212388Z           ]
2026-06-03T22:00:56.7212465Z         },
2026-06-03T22:00:56.7212547Z         "int": {
2026-06-03T22:00:56.7212638Z           "complete": false,
2026-06-03T22:00:56.7212726Z           "evidence": []
2026-06-03T22:00:56.7212807Z         },
2026-06-03T22:00:56.7212892Z         "unit": {
2026-06-03T22:00:56.7212986Z           "complete": true,
2026-06-03T22:00:56.7213076Z           "evidence": [
2026-06-03T22:00:56.7213157Z             {
2026-06-03T22:00:56.7213295Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7213381Z               "line": 261
2026-06-03T22:00:56.7213462Z             },
2026-06-03T22:00:56.7213538Z             {
2026-06-03T22:00:56.7213703Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7213788Z               "line": 276
2026-06-03T22:00:56.7213868Z             },
2026-06-03T22:00:56.7213951Z             {
2026-06-03T22:00:56.7214090Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7214177Z               "line": 293
2026-06-03T22:00:56.7214255Z             },
2026-06-03T22:00:56.7214334Z             {
2026-06-03T22:00:56.7214469Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7214560Z               "line": 310
2026-06-03T22:00:56.7214643Z             },
2026-06-03T22:00:56.7214721Z             {
2026-06-03T22:00:56.7214870Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7214956Z               "line": 327
2026-06-03T22:00:56.7215037Z             },
2026-06-03T22:00:56.7215115Z             {
2026-06-03T22:00:56.7215253Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7215338Z               "line": 366
2026-06-03T22:00:56.7215415Z             },
2026-06-03T22:00:56.7215495Z             {
2026-06-03T22:00:56.7215644Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-03T22:00:56.7215734Z               "line": 179
2026-06-03T22:00:56.7215813Z             },
2026-06-03T22:00:56.7215892Z             {
2026-06-03T22:00:56.7216046Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-03T22:00:56.7216129Z               "line": 194
2026-06-03T22:00:56.7216209Z             },
2026-06-03T22:00:56.7216404Z             {
2026-06-03T22:00:56.7216563Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-03T22:00:56.7216749Z               "line": 204
2026-06-03T22:00:56.7216832Z             },
2026-06-03T22:00:56.7216913Z             {
2026-06-03T22:00:56.7217061Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-03T22:00:56.7217150Z               "line": 259
2026-06-03T22:00:56.7217227Z             },
2026-06-03T22:00:56.7217307Z             {
2026-06-03T22:00:56.7217457Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-03T22:00:56.7217543Z               "line": 269
2026-06-03T22:00:56.7217626Z             },
2026-06-03T22:00:56.7217703Z             {
2026-06-03T22:00:56.7217855Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-03T22:00:56.7217941Z               "line": 283
2026-06-03T22:00:56.7218027Z             }
2026-06-03T22:00:56.7218110Z           ]
2026-06-03T22:00:56.7218196Z         }
2026-06-03T22:00:56.7218276Z       }
2026-06-03T22:00:56.7218353Z     },
2026-06-03T22:00:56.7218438Z     {
2026-06-03T22:00:56.7218558Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-03T22:00:56.7218785Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-03T22:00:56.7218884Z       "requiredStages": [],
2026-06-03T22:00:56.7218966Z       "stages": {
2026-06-03T22:00:56.7219048Z         "doc": {
2026-06-03T22:00:56.7219139Z           "complete": false,
2026-06-03T22:00:56.7219228Z           "evidence": []
2026-06-03T22:00:56.7219305Z         },
2026-06-03T22:00:56.7219511Z         "impl": {
2026-06-03T22:00:56.7219605Z           "complete": false,
2026-06-03T22:00:56.7219693Z           "evidence": []
2026-06-03T22:00:56.7219776Z         },
2026-06-03T22:00:56.7219856Z         "int": {
2026-06-03T22:00:56.7219950Z           "complete": false,
2026-06-03T22:00:56.7220035Z           "evidence": []
2026-06-03T22:00:56.7220116Z         },
2026-06-03T22:00:56.7220203Z         "unit": {
2026-06-03T22:00:56.7220292Z           "complete": false,
2026-06-03T22:00:56.7220388Z           "evidence": []
2026-06-03T22:00:56.7220466Z         }
2026-06-03T22:00:56.7220548Z       }
2026-06-03T22:00:56.7220627Z     },
2026-06-03T22:00:56.7220710Z     {
2026-06-03T22:00:56.7220847Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-03T22:00:56.7226002Z       "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-03T22:00:56.7226131Z       "requiredStages": [],
2026-06-03T22:00:56.7226218Z       "stages": {
2026-06-03T22:00:56.7226307Z         "doc": {
2026-06-03T22:00:56.7226407Z           "complete": false,
2026-06-03T22:00:56.7226497Z           "evidence": []
2026-06-03T22:00:56.7226581Z         },
2026-06-03T22:00:56.7226666Z         "impl": {
2026-06-03T22:00:56.7226781Z           "complete": false,
2026-06-03T22:00:56.7226872Z           "evidence": []
2026-06-03T22:00:56.7226966Z         },
2026-06-03T22:00:56.7227054Z         "int": {
2026-06-03T22:00:56.7227144Z           "complete": false,
2026-06-03T22:00:56.7227234Z           "evidence": []
2026-06-03T22:00:56.7227313Z         },
2026-06-03T22:00:56.7227397Z         "unit": {
2026-06-03T22:00:56.7227486Z           "complete": false,
2026-06-03T22:00:56.7227575Z           "evidence": []
2026-06-03T22:00:56.7227657Z         }
2026-06-03T22:00:56.7227736Z       }
2026-06-03T22:00:56.7227817Z     },
2026-06-03T22:00:56.7227893Z     {
2026-06-03T22:00:56.7228027Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-03T22:00:56.7228343Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-03T22:00:56.7228443Z       "requiredStages": [
2026-06-03T22:00:56.7228527Z         "impl",
2026-06-03T22:00:56.7228607Z         "unit"
2026-06-03T22:00:56.7228869Z       ],
2026-06-03T22:00:56.7228959Z       "stages": {
2026-06-03T22:00:56.7229041Z         "doc": {
2026-06-03T22:00:56.7229236Z           "complete": true,
2026-06-03T22:00:56.7229629Z           "evidence": [
2026-06-03T22:00:56.7229811Z             {
2026-06-03T22:00:56.7230003Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-03T22:00:56.7230098Z               "line": 137
2026-06-03T22:00:56.7230176Z             }
2026-06-03T22:00:56.7230257Z           ]
2026-06-03T22:00:56.7230334Z         },
2026-06-03T22:00:56.7230419Z         "impl": {
2026-06-03T22:00:56.7230515Z           "complete": true,
2026-06-03T22:00:56.7230600Z           "evidence": [
2026-06-03T22:00:56.7230680Z             {
2026-06-03T22:00:56.7230803Z               "path": "crates/spt-store/src/db.rs",
2026-06-03T22:00:56.7230890Z               "line": 29
2026-06-03T22:00:56.7230970Z             },
2026-06-03T22:00:56.7231050Z             {
2026-06-03T22:00:56.7231189Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7231283Z               "line": 24
2026-06-03T22:00:56.7231365Z             },
2026-06-03T22:00:56.7231445Z             {
2026-06-03T22:00:56.7231570Z               "path": "crates/spt-store/src/spool.rs",
2026-06-03T22:00:56.7231653Z               "line": 48
2026-06-03T22:00:56.7231735Z             }
2026-06-03T22:00:56.7231817Z           ]
2026-06-03T22:00:56.7231894Z         },
2026-06-03T22:00:56.7231975Z         "int": {
2026-06-03T22:00:56.7232068Z           "complete": false,
2026-06-03T22:00:56.7232163Z           "evidence": []
2026-06-03T22:00:56.7232241Z         },
2026-06-03T22:00:56.7232326Z         "unit": {
2026-06-03T22:00:56.7232418Z           "complete": true,
2026-06-03T22:00:56.7232502Z           "evidence": [
2026-06-03T22:00:56.7232581Z             {
2026-06-03T22:00:56.7232720Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7232809Z               "line": 146
2026-06-03T22:00:56.7232887Z             }
2026-06-03T22:00:56.7232965Z           ]
2026-06-03T22:00:56.7233049Z         }
2026-06-03T22:00:56.7233126Z       }
2026-06-03T22:00:56.7233210Z     },
2026-06-03T22:00:56.7233286Z     {
2026-06-03T22:00:56.7233418Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-03T22:00:56.7233644Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-03T22:00:56.7233742Z       "requiredStages": [
2026-06-03T22:00:56.7233827Z         "impl",
2026-06-03T22:00:56.7233907Z         "unit"
2026-06-03T22:00:56.7233986Z       ],
2026-06-03T22:00:56.7234067Z       "stages": {
2026-06-03T22:00:56.7234149Z         "doc": {
2026-06-03T22:00:56.7234241Z           "complete": false,
2026-06-03T22:00:56.7234333Z           "evidence": []
2026-06-03T22:00:56.7234415Z         },
2026-06-03T22:00:56.7234495Z         "impl": {
2026-06-03T22:00:56.7234588Z           "complete": true,
2026-06-03T22:00:56.7234672Z           "evidence": [
2026-06-03T22:00:56.7234754Z             {
2026-06-03T22:00:56.7234888Z               "path": "crates/spt-store/src/proc.rs",
2026-06-03T22:00:56.7234977Z               "line": 8
2026-06-03T22:00:56.7235067Z             },
2026-06-03T22:00:56.7235144Z             {
2026-06-03T22:00:56.7235281Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7235365Z               "line": 49
2026-06-03T22:00:56.7235446Z             },
2026-06-03T22:00:56.7235525Z             {
2026-06-03T22:00:56.7235654Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7235743Z               "line": 56
2026-06-03T22:00:56.7235823Z             },
2026-06-03T22:00:56.7235905Z             {
2026-06-03T22:00:56.7236027Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7236115Z               "line": 101
2026-06-03T22:00:56.7236192Z             },
2026-06-03T22:00:56.7236275Z             {
2026-06-03T22:00:56.7236401Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7236486Z               "line": 122
2026-06-03T22:00:56.7236743Z             }
2026-06-03T22:00:56.7236826Z           ]
2026-06-03T22:00:56.7236907Z         },
2026-06-03T22:00:56.7237084Z         "int": {
2026-06-03T22:00:56.7237176Z           "complete": false,
2026-06-03T22:00:56.7237264Z           "evidence": []
2026-06-03T22:00:56.7237341Z         },
2026-06-03T22:00:56.7237421Z         "unit": {
2026-06-03T22:00:56.7237509Z           "complete": true,
2026-06-03T22:00:56.7237597Z           "evidence": [
2026-06-03T22:00:56.7237673Z             {
2026-06-03T22:00:56.7237791Z               "path": "crates/spt-store/src/proc.rs",
2026-06-03T22:00:56.7237877Z               "line": 103
2026-06-03T22:00:56.7237955Z             },
2026-06-03T22:00:56.7238036Z             {
2026-06-03T22:00:56.7238149Z               "path": "crates/spt-store/src/proc.rs",
2026-06-03T22:00:56.7238237Z               "line": 109
2026-06-03T22:00:56.7238314Z             },
2026-06-03T22:00:56.7238393Z             {
2026-06-03T22:00:56.7238516Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7238606Z               "line": 177
2026-06-03T22:00:56.7238688Z             },
2026-06-03T22:00:56.7238770Z             {
2026-06-03T22:00:56.7238894Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7238978Z               "line": 187
2026-06-03T22:00:56.7239061Z             },
2026-06-03T22:00:56.7239141Z             {
2026-06-03T22:00:56.7239259Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7239346Z               "line": 231
2026-06-03T22:00:56.7239640Z             },
2026-06-03T22:00:56.7239721Z             {
2026-06-03T22:00:56.7239847Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7239929Z               "line": 243
2026-06-03T22:00:56.7240016Z             },
2026-06-03T22:00:56.7240091Z             {
2026-06-03T22:00:56.7240213Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7240296Z               "line": 251
2026-06-03T22:00:56.7240376Z             }
2026-06-03T22:00:56.7240462Z           ]
2026-06-03T22:00:56.7240539Z         }
2026-06-03T22:00:56.7240625Z       }
2026-06-03T22:00:56.7240701Z     },
2026-06-03T22:00:56.7240780Z     {
2026-06-03T22:00:56.7240898Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-03T22:00:56.7241220Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-03T22:00:56.7241316Z       "requiredStages": [
2026-06-03T22:00:56.7241397Z         "impl",
2026-06-03T22:00:56.7241477Z         "unit",
2026-06-03T22:00:56.7241553Z         "int"
2026-06-03T22:00:56.7241632Z       ],
2026-06-03T22:00:56.7241711Z       "stages": {
2026-06-03T22:00:56.7241790Z         "doc": {
2026-06-03T22:00:56.7241881Z           "complete": false,
2026-06-03T22:00:56.7241967Z           "evidence": []
2026-06-03T22:00:56.7242046Z         },
2026-06-03T22:00:56.7242125Z         "impl": {
2026-06-03T22:00:56.7242215Z           "complete": true,
2026-06-03T22:00:56.7242300Z           "evidence": [
2026-06-03T22:00:56.7242383Z             {
2026-06-03T22:00:56.7242512Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-03T22:00:56.7242602Z               "line": 191
2026-06-03T22:00:56.7242683Z             },
2026-06-03T22:00:56.7242760Z             {
2026-06-03T22:00:56.7242889Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-03T22:00:56.7242971Z               "line": 360
2026-06-03T22:00:56.7243052Z             },
2026-06-03T22:00:56.7243134Z             {
2026-06-03T22:00:56.7243255Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-03T22:00:56.7243341Z               "line": 46
2026-06-03T22:00:56.7243420Z             },
2026-06-03T22:00:56.7243501Z             {
2026-06-03T22:00:56.7243620Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-03T22:00:56.7243708Z               "line": 150
2026-06-03T22:00:56.7243790Z             }
2026-06-03T22:00:56.7243868Z           ]
2026-06-03T22:00:56.7243951Z         },
2026-06-03T22:00:56.7244148Z         "int": {
2026-06-03T22:00:56.7244249Z           "complete": true,
2026-06-03T22:00:56.7244336Z           "evidence": [
2026-06-03T22:00:56.7244520Z             {
2026-06-03T22:00:56.7244667Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-03T22:00:56.7244751Z               "line": 27
2026-06-03T22:00:56.7244836Z             }
2026-06-03T22:00:56.7244913Z           ]
2026-06-03T22:00:56.7244998Z         },
2026-06-03T22:00:56.7245077Z         "unit": {
2026-06-03T22:00:56.7245169Z           "complete": true,
2026-06-03T22:00:56.7245258Z           "evidence": [
2026-06-03T22:00:56.7245335Z             {
2026-06-03T22:00:56.7245458Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-03T22:00:56.7245541Z               "line": 272
2026-06-03T22:00:56.7245622Z             },
2026-06-03T22:00:56.7245699Z             {
2026-06-03T22:00:56.7245819Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-03T22:00:56.7245907Z               "line": 290
2026-06-03T22:00:56.7245989Z             },
2026-06-03T22:00:56.7246070Z             {
2026-06-03T22:00:56.7246189Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-03T22:00:56.7246281Z               "line": 308
2026-06-03T22:00:56.7246360Z             }
2026-06-03T22:00:56.7246441Z           ]
2026-06-03T22:00:56.7246522Z         }
2026-06-03T22:00:56.7246598Z       }
2026-06-03T22:00:56.7246676Z     },
2026-06-03T22:00:56.7246751Z     {
2026-06-03T22:00:56.7246877Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-03T22:00:56.7247104Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-03T22:00:56.7247200Z       "requiredStages": [
2026-06-03T22:00:56.7247283Z         "impl",
2026-06-03T22:00:56.7247360Z         "unit"
2026-06-03T22:00:56.7247437Z       ],
2026-06-03T22:00:56.7247517Z       "stages": {
2026-06-03T22:00:56.7247599Z         "doc": {
2026-06-03T22:00:56.7247691Z           "complete": false,
2026-06-03T22:00:56.7247782Z           "evidence": []
2026-06-03T22:00:56.7247868Z         },
2026-06-03T22:00:56.7247950Z         "impl": {
2026-06-03T22:00:56.7248043Z           "complete": true,
2026-06-03T22:00:56.7248132Z           "evidence": [
2026-06-03T22:00:56.7248213Z             {
2026-06-03T22:00:56.7248342Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7248429Z               "line": 33
2026-06-03T22:00:56.7248510Z             },
2026-06-03T22:00:56.7248587Z             {
2026-06-03T22:00:56.7248708Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7248790Z               "line": 61
2026-06-03T22:00:56.7248869Z             },
2026-06-03T22:00:56.7248945Z             {
2026-06-03T22:00:56.7249064Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7249150Z               "line": 70
2026-06-03T22:00:56.7249226Z             },
2026-06-03T22:00:56.7249306Z             {
2026-06-03T22:00:56.7249559Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7249655Z               "line": 79
2026-06-03T22:00:56.7249733Z             },
2026-06-03T22:00:56.7249814Z             {
2026-06-03T22:00:56.7249948Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7250032Z               "line": 86
2026-06-03T22:00:56.7250110Z             },
2026-06-03T22:00:56.7250195Z             {
2026-06-03T22:00:56.7250320Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7250403Z               "line": 93
2026-06-03T22:00:56.7250484Z             },
2026-06-03T22:00:56.7250563Z             {
2026-06-03T22:00:56.7250683Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7250770Z               "line": 160
2026-06-03T22:00:56.7250848Z             },
2026-06-03T22:00:56.7250927Z             {
2026-06-03T22:00:56.7251041Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7251127Z               "line": 172
2026-06-03T22:00:56.7251208Z             },
2026-06-03T22:00:56.7251291Z             {
2026-06-03T22:00:56.7251532Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7251622Z               "line": 259
2026-06-03T22:00:56.7251805Z             }
2026-06-03T22:00:56.7251891Z           ]
2026-06-03T22:00:56.7251968Z         },
2026-06-03T22:00:56.7252053Z         "int": {
2026-06-03T22:00:56.7252144Z           "complete": false,
2026-06-03T22:00:56.7252233Z           "evidence": []
2026-06-03T22:00:56.7252309Z         },
2026-06-03T22:00:56.7252395Z         "unit": {
2026-06-03T22:00:56.7252483Z           "complete": true,
2026-06-03T22:00:56.7252570Z           "evidence": [
2026-06-03T22:00:56.7252650Z             {
2026-06-03T22:00:56.7252770Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7252857Z               "line": 329
2026-06-03T22:00:56.7252934Z             },
2026-06-03T22:00:56.7253014Z             {
2026-06-03T22:00:56.7253134Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7253219Z               "line": 355
2026-06-03T22:00:56.7253305Z             },
2026-06-03T22:00:56.7253381Z             {
2026-06-03T22:00:56.7253498Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7253587Z               "line": 368
2026-06-03T22:00:56.7253669Z             },
2026-06-03T22:00:56.7253748Z             {
2026-06-03T22:00:56.7253862Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7253949Z               "line": 410
2026-06-03T22:00:56.7254025Z             }
2026-06-03T22:00:56.7254107Z           ]
2026-06-03T22:00:56.7254184Z         }
2026-06-03T22:00:56.7254264Z       }
2026-06-03T22:00:56.7254345Z     },
2026-06-03T22:00:56.7254421Z     {
2026-06-03T22:00:56.7254532Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-03T22:00:56.7254763Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-03T22:00:56.7254861Z       "requiredStages": [
2026-06-03T22:00:56.7254942Z         "impl",
2026-06-03T22:00:56.7255021Z         "unit"
2026-06-03T22:00:56.7255099Z       ],
2026-06-03T22:00:56.7255183Z       "stages": {
2026-06-03T22:00:56.7255263Z         "doc": {
2026-06-03T22:00:56.7255358Z           "complete": false,
2026-06-03T22:00:56.7255445Z           "evidence": []
2026-06-03T22:00:56.7255522Z         },
2026-06-03T22:00:56.7255605Z         "impl": {
2026-06-03T22:00:56.7255697Z           "complete": true,
2026-06-03T22:00:56.7255781Z           "evidence": [
2026-06-03T22:00:56.7255859Z             {
2026-06-03T22:00:56.7255980Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-03T22:00:56.7256065Z               "line": 107
2026-06-03T22:00:56.7256143Z             },
2026-06-03T22:00:56.7256224Z             {
2026-06-03T22:00:56.7256354Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.7256437Z               "line": 59
2026-06-03T22:00:56.7256519Z             }
2026-06-03T22:00:56.7256597Z           ]
2026-06-03T22:00:56.7256678Z         },
2026-06-03T22:00:56.7256757Z         "int": {
2026-06-03T22:00:56.7256854Z           "complete": false,
2026-06-03T22:00:56.7256945Z           "evidence": []
2026-06-03T22:00:56.7257022Z         },
2026-06-03T22:00:56.7257111Z         "unit": {
2026-06-03T22:00:56.7257200Z           "complete": true,
2026-06-03T22:00:56.7257289Z           "evidence": [
2026-06-03T22:00:56.7257366Z             {
2026-06-03T22:00:56.7257485Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-03T22:00:56.7257572Z               "line": 225
2026-06-03T22:00:56.7257651Z             },
2026-06-03T22:00:56.7257731Z             {
2026-06-03T22:00:56.7257855Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.7257946Z               "line": 237
2026-06-03T22:00:56.7258023Z             },
2026-06-03T22:00:56.7258106Z             {
2026-06-03T22:00:56.7258229Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.7258313Z               "line": 247
2026-06-03T22:00:56.7258393Z             }
2026-06-03T22:00:56.7258469Z           ]
2026-06-03T22:00:56.7258548Z         }
2026-06-03T22:00:56.7258708Z       }
2026-06-03T22:00:56.7258793Z     },
2026-06-03T22:00:56.7258945Z     {
2026-06-03T22:00:56.7259058Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-03T22:00:56.7259213Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-03T22:00:56.7259307Z       "requiredStages": [],
2026-06-03T22:00:56.7259517Z       "stages": {
2026-06-03T22:00:56.7259600Z         "doc": {
2026-06-03T22:00:56.7259695Z           "complete": false,
2026-06-03T22:00:56.7259785Z           "evidence": []
2026-06-03T22:00:56.7259864Z         },
2026-06-03T22:00:56.7259947Z         "impl": {
2026-06-03T22:00:56.7260034Z           "complete": false,
2026-06-03T22:00:56.7260121Z           "evidence": []
2026-06-03T22:00:56.7260198Z         },
2026-06-03T22:00:56.7260283Z         "int": {
2026-06-03T22:00:56.7260986Z           "complete": false,
2026-06-03T22:00:56.7261072Z           "evidence": []
2026-06-03T22:00:56.7261153Z         },
2026-06-03T22:00:56.7261232Z         "unit": {
2026-06-03T22:00:56.7261329Z           "complete": false,
2026-06-03T22:00:56.7261414Z           "evidence": []
2026-06-03T22:00:56.7261499Z         }
2026-06-03T22:00:56.7261582Z       }
2026-06-03T22:00:56.7261657Z     },
2026-06-03T22:00:56.7261737Z     {
2026-06-03T22:00:56.7261867Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-03T22:00:56.7262060Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-03T22:00:56.7262152Z       "requiredStages": [
2026-06-03T22:00:56.7262236Z         "impl",
2026-06-03T22:00:56.7262318Z         "unit"
2026-06-03T22:00:56.7262394Z       ],
2026-06-03T22:00:56.7262477Z       "stages": {
2026-06-03T22:00:56.7262556Z         "doc": {
2026-06-03T22:00:56.7262649Z           "complete": false,
2026-06-03T22:00:56.7262735Z           "evidence": []
2026-06-03T22:00:56.7262813Z         },
2026-06-03T22:00:56.7262899Z         "impl": {
2026-06-03T22:00:56.7262988Z           "complete": true,
2026-06-03T22:00:56.7263076Z           "evidence": [
2026-06-03T22:00:56.7263159Z             {
2026-06-03T22:00:56.7263298Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.7263387Z               "line": 347
2026-06-03T22:00:56.7263470Z             },
2026-06-03T22:00:56.7263549Z             {
2026-06-03T22:00:56.7263673Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-03T22:00:56.7263759Z               "line": 28
2026-06-03T22:00:56.7263836Z             }
2026-06-03T22:00:56.7263917Z           ]
2026-06-03T22:00:56.7263993Z         },
2026-06-03T22:00:56.7264074Z         "int": {
2026-06-03T22:00:56.7264165Z           "complete": false,
2026-06-03T22:00:56.7264249Z           "evidence": []
2026-06-03T22:00:56.7264330Z         },
2026-06-03T22:00:56.7264410Z         "unit": {
2026-06-03T22:00:56.7264502Z           "complete": true,
2026-06-03T22:00:56.7264586Z           "evidence": [
2026-06-03T22:00:56.7264666Z             {
2026-06-03T22:00:56.7264789Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-03T22:00:56.7264877Z               "line": 199
2026-06-03T22:00:56.7264958Z             }
2026-06-03T22:00:56.7265040Z           ]
2026-06-03T22:00:56.7265120Z         }
2026-06-03T22:00:56.7265196Z       }
2026-06-03T22:00:56.7265274Z     },
2026-06-03T22:00:56.7265351Z     {
2026-06-03T22:00:56.7265462Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-03T22:00:56.7265607Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-03T22:00:56.7265699Z       "requiredStages": [],
2026-06-03T22:00:56.7265783Z       "stages": {
2026-06-03T22:00:56.7265861Z         "doc": {
2026-06-03T22:00:56.7265952Z           "complete": false,
2026-06-03T22:00:56.7266042Z           "evidence": []
2026-06-03T22:00:56.7266118Z         },
2026-06-03T22:00:56.7266200Z         "impl": {
2026-06-03T22:00:56.7266287Z           "complete": false,
2026-06-03T22:00:56.7266374Z           "evidence": []
2026-06-03T22:00:56.7266449Z         },
2026-06-03T22:00:56.7266533Z         "int": {
2026-06-03T22:00:56.7266743Z           "complete": false,
2026-06-03T22:00:56.7266832Z           "evidence": []
2026-06-03T22:00:56.7267010Z         },
2026-06-03T22:00:56.7267090Z         "unit": {
2026-06-03T22:00:56.7267185Z           "complete": false,
2026-06-03T22:00:56.7267270Z           "evidence": []
2026-06-03T22:00:56.7267355Z         }
2026-06-03T22:00:56.7267435Z       }
2026-06-03T22:00:56.7267510Z     },
2026-06-03T22:00:56.7267589Z     {
2026-06-03T22:00:56.7267704Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-03T22:00:56.7267870Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-03T22:00:56.7267962Z       "requiredStages": [
2026-06-03T22:00:56.7268046Z         "impl",
2026-06-03T22:00:56.7268130Z         "unit"
2026-06-03T22:00:56.7268210Z       ],
2026-06-03T22:00:56.7268294Z       "stages": {
2026-06-03T22:00:56.7268374Z         "doc": {
2026-06-03T22:00:56.7268470Z           "complete": false,
2026-06-03T22:00:56.7268555Z           "evidence": []
2026-06-03T22:00:56.7268634Z         },
2026-06-03T22:00:56.7268719Z         "impl": {
2026-06-03T22:00:56.7268808Z           "complete": true,
2026-06-03T22:00:56.7268901Z           "evidence": [
2026-06-03T22:00:56.7268977Z             {
2026-06-03T22:00:56.7269111Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-03T22:00:56.7269194Z               "line": 325
2026-06-03T22:00:56.7269274Z             },
2026-06-03T22:00:56.7269590Z             {
2026-06-03T22:00:56.7269833Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-03T22:00:56.7269925Z               "line": 361
2026-06-03T22:00:56.7270005Z             }
2026-06-03T22:00:56.7270087Z           ]
2026-06-03T22:00:56.7270163Z         },
2026-06-03T22:00:56.7270243Z         "int": {
2026-06-03T22:00:56.7270348Z           "complete": false,
2026-06-03T22:00:56.7270434Z           "evidence": []
2026-06-03T22:00:56.7270515Z         },
2026-06-03T22:00:56.7270595Z         "unit": {
2026-06-03T22:00:56.7270686Z           "complete": true,
2026-06-03T22:00:56.7270782Z           "evidence": [
2026-06-03T22:00:56.7270864Z             {
2026-06-03T22:00:56.7271006Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-03T22:00:56.7271099Z               "line": 453
2026-06-03T22:00:56.7271179Z             }
2026-06-03T22:00:56.7271257Z           ]
2026-06-03T22:00:56.7271335Z         }
2026-06-03T22:00:56.7271413Z       }
2026-06-03T22:00:56.7271493Z     },
2026-06-03T22:00:56.7271572Z     {
2026-06-03T22:00:56.7271688Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-03T22:00:56.7271868Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-03T22:00:56.7271961Z       "requiredStages": [
2026-06-03T22:00:56.7272046Z         "impl",
2026-06-03T22:00:56.7272125Z         "unit"
2026-06-03T22:00:56.7272207Z       ],
2026-06-03T22:00:56.7272290Z       "stages": {
2026-06-03T22:00:56.7272368Z         "doc": {
2026-06-03T22:00:56.7272461Z           "complete": false,
2026-06-03T22:00:56.7272548Z           "evidence": []
2026-06-03T22:00:56.7272634Z         },
2026-06-03T22:00:56.7272716Z         "impl": {
2026-06-03T22:00:56.7272845Z           "complete": true,
2026-06-03T22:00:56.7272942Z           "evidence": [
2026-06-03T22:00:56.7273020Z             {
2026-06-03T22:00:56.7273149Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-03T22:00:56.7273233Z               "line": 35
2026-06-03T22:00:56.7273315Z             }
2026-06-03T22:00:56.7273392Z           ]
2026-06-03T22:00:56.7273471Z         },
2026-06-03T22:00:56.7273552Z         "int": {
2026-06-03T22:00:56.7273640Z           "complete": false,
2026-06-03T22:00:56.7273727Z           "evidence": []
2026-06-03T22:00:56.7273803Z         },
2026-06-03T22:00:56.7273884Z         "unit": {
2026-06-03T22:00:56.7273970Z           "complete": true,
2026-06-03T22:00:56.7274057Z           "evidence": [
2026-06-03T22:00:56.7274137Z             {
2026-06-03T22:00:56.7274258Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-03T22:00:56.7274348Z               "line": 217
2026-06-03T22:00:56.7274595Z             }
2026-06-03T22:00:56.7274737Z           ]
2026-06-03T22:00:56.7274814Z         }
2026-06-03T22:00:56.7274998Z       }
2026-06-03T22:00:56.7275078Z     },
2026-06-03T22:00:56.7275154Z     {
2026-06-03T22:00:56.7275267Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-03T22:00:56.7275581Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-03T22:00:56.7275677Z       "requiredStages": [
2026-06-03T22:00:56.7275754Z         "impl",
2026-06-03T22:00:56.7275837Z         "unit"
2026-06-03T22:00:56.7275919Z       ],
2026-06-03T22:00:56.7275999Z       "stages": {
2026-06-03T22:00:56.7276081Z         "doc": {
2026-06-03T22:00:56.7276170Z           "complete": false,
2026-06-03T22:00:56.7276259Z           "evidence": []
2026-06-03T22:00:56.7276337Z         },
2026-06-03T22:00:56.7276420Z         "impl": {
2026-06-03T22:00:56.7276514Z           "complete": true,
2026-06-03T22:00:56.7276599Z           "evidence": [
2026-06-03T22:00:56.7276686Z             {
2026-06-03T22:00:56.7276818Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7276914Z               "line": 159
2026-06-03T22:00:56.7276993Z             },
2026-06-03T22:00:56.7277076Z             {
2026-06-03T22:00:56.7277206Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-03T22:00:56.7277290Z               "line": 150
2026-06-03T22:00:56.7277372Z             }
2026-06-03T22:00:56.7277450Z           ]
2026-06-03T22:00:56.7277530Z         },
2026-06-03T22:00:56.7277608Z         "int": {
2026-06-03T22:00:56.7277701Z           "complete": false,
2026-06-03T22:00:56.7277788Z           "evidence": []
2026-06-03T22:00:56.7277866Z         },
2026-06-03T22:00:56.7277948Z         "unit": {
2026-06-03T22:00:56.7278036Z           "complete": true,
2026-06-03T22:00:56.7278126Z           "evidence": [
2026-06-03T22:00:56.7278204Z             {
2026-06-03T22:00:56.7278330Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7278424Z               "line": 382
2026-06-03T22:00:56.7278501Z             },
2026-06-03T22:00:56.7278590Z             {
2026-06-03T22:00:56.7278712Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7278802Z               "line": 393
2026-06-03T22:00:56.7278879Z             },
2026-06-03T22:00:56.7278959Z             {
2026-06-03T22:00:56.7279084Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7279168Z               "line": 409
2026-06-03T22:00:56.7279246Z             },
2026-06-03T22:00:56.7279321Z             {
2026-06-03T22:00:56.7279583Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7279670Z               "line": 423
2026-06-03T22:00:56.7279754Z             }
2026-06-03T22:00:56.7279836Z           ]
2026-06-03T22:00:56.7279913Z         }
2026-06-03T22:00:56.7279997Z       }
2026-06-03T22:00:56.7280080Z     },
2026-06-03T22:00:56.7280162Z     {
2026-06-03T22:00:56.7280291Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-03T22:00:56.7280474Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-03T22:00:56.7280578Z       "requiredStages": [
2026-06-03T22:00:56.7280659Z         "impl",
2026-06-03T22:00:56.7280739Z         "unit"
2026-06-03T22:00:56.7280815Z       ],
2026-06-03T22:00:56.7280897Z       "stages": {
2026-06-03T22:00:56.7280973Z         "doc": {
2026-06-03T22:00:56.7281066Z           "complete": false,
2026-06-03T22:00:56.7281153Z           "evidence": []
2026-06-03T22:00:56.7281228Z         },
2026-06-03T22:00:56.7281310Z         "impl": {
2026-06-03T22:00:56.7281397Z           "complete": true,
2026-06-03T22:00:56.7281484Z           "evidence": [
2026-06-03T22:00:56.7281562Z             {
2026-06-03T22:00:56.7281688Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7281774Z               "line": 92
2026-06-03T22:00:56.7281851Z             },
2026-06-03T22:00:56.7281930Z             {
2026-06-03T22:00:56.7282170Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7282265Z               "line": 96
2026-06-03T22:00:56.7282341Z             }
2026-06-03T22:00:56.7282524Z           ]
2026-06-03T22:00:56.7288728Z         },
2026-06-03T22:00:56.7288858Z         "int": {
2026-06-03T22:00:56.7288965Z           "complete": false,
2026-06-03T22:00:56.7289055Z           "evidence": []
2026-06-03T22:00:56.7289137Z         },
2026-06-03T22:00:56.7289219Z         "unit": {
2026-06-03T22:00:56.7289317Z           "complete": true,
2026-06-03T22:00:56.7289766Z           "evidence": [
2026-06-03T22:00:56.7289864Z             {
2026-06-03T22:00:56.7290010Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7290099Z               "line": 235
2026-06-03T22:00:56.7290182Z             },
2026-06-03T22:00:56.7290259Z             {
2026-06-03T22:00:56.7290396Z               "path": "crates/spt-store/src/proc.rs",
2026-06-03T22:00:56.7290487Z               "line": 120
2026-06-03T22:00:56.7290566Z             },
2026-06-03T22:00:56.7290660Z             {
2026-06-03T22:00:56.7290788Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7290882Z               "line": 375
2026-06-03T22:00:56.7290960Z             },
2026-06-03T22:00:56.7291040Z             {
2026-06-03T22:00:56.7291159Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7291242Z               "line": 405
2026-06-03T22:00:56.7291324Z             }
2026-06-03T22:00:56.7291399Z           ]
2026-06-03T22:00:56.7291477Z         }
2026-06-03T22:00:56.7291554Z       }
2026-06-03T22:00:56.7291633Z     },
2026-06-03T22:00:56.7291710Z     {
2026-06-03T22:00:56.7291824Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-03T22:00:56.7292049Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-03T22:00:56.7292143Z       "requiredStages": [
2026-06-03T22:00:56.7292228Z         "impl",
2026-06-03T22:00:56.7292308Z         "unit"
2026-06-03T22:00:56.7292392Z       ],
2026-06-03T22:00:56.7292477Z       "stages": {
2026-06-03T22:00:56.7292561Z         "doc": {
2026-06-03T22:00:56.7292658Z           "complete": false,
2026-06-03T22:00:56.7292751Z           "evidence": []
2026-06-03T22:00:56.7292832Z         },
2026-06-03T22:00:56.7292913Z         "impl": {
2026-06-03T22:00:56.7293009Z           "complete": true,
2026-06-03T22:00:56.7293099Z           "evidence": [
2026-06-03T22:00:56.7293178Z             {
2026-06-03T22:00:56.7293307Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7293392Z               "line": 116
2026-06-03T22:00:56.7293476Z             },
2026-06-03T22:00:56.7293554Z             {
2026-06-03T22:00:56.7293678Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7293767Z               "line": 161
2026-06-03T22:00:56.7293843Z             },
2026-06-03T22:00:56.7293924Z             {
2026-06-03T22:00:56.7294041Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7294127Z               "line": 173
2026-06-03T22:00:56.7294204Z             }
2026-06-03T22:00:56.7294289Z           ]
2026-06-03T22:00:56.7294369Z         },
2026-06-03T22:00:56.7294453Z         "int": {
2026-06-03T22:00:56.7294547Z           "complete": false,
2026-06-03T22:00:56.7294633Z           "evidence": []
2026-06-03T22:00:56.7294713Z         },
2026-06-03T22:00:56.7294794Z         "unit": {
2026-06-03T22:00:56.7294888Z           "complete": true,
2026-06-03T22:00:56.7294978Z           "evidence": [
2026-06-03T22:00:56.7295058Z             {
2026-06-03T22:00:56.7295179Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7295262Z               "line": 309
2026-06-03T22:00:56.7295344Z             },
2026-06-03T22:00:56.7295420Z             {
2026-06-03T22:00:56.7295539Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7295627Z               "line": 338
2026-06-03T22:00:56.7295705Z             }
2026-06-03T22:00:56.7295787Z           ]
2026-06-03T22:00:56.7295865Z         }
2026-06-03T22:00:56.7295946Z       }
2026-06-03T22:00:56.7296186Z     },
2026-06-03T22:00:56.7296273Z     {
2026-06-03T22:00:56.7296371Z       "id": "REQ-INFRA-1",
2026-06-03T22:00:56.7296716Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-03T22:00:56.7296817Z       "requiredStages": [],
2026-06-03T22:00:56.7296899Z       "stages": {
2026-06-03T22:00:56.7296984Z         "doc": {
2026-06-03T22:00:56.7297073Z           "complete": false,
2026-06-03T22:00:56.7297163Z           "evidence": []
2026-06-03T22:00:56.7297244Z         },
2026-06-03T22:00:56.7297323Z         "impl": {
2026-06-03T22:00:56.7297417Z           "complete": false,
2026-06-03T22:00:56.7297502Z           "evidence": []
2026-06-03T22:00:56.7297582Z         },
2026-06-03T22:00:56.7297661Z         "int": {
2026-06-03T22:00:56.7297752Z           "complete": false,
2026-06-03T22:00:56.7297842Z           "evidence": []
2026-06-03T22:00:56.7297920Z         },
2026-06-03T22:00:56.7298003Z         "unit": {
2026-06-03T22:00:56.7298091Z           "complete": false,
2026-06-03T22:00:56.7298183Z           "evidence": []
2026-06-03T22:00:56.7298262Z         }
2026-06-03T22:00:56.7298346Z       }
2026-06-03T22:00:56.7298426Z     },
2026-06-03T22:00:56.7298504Z     {
2026-06-03T22:00:56.7298598Z       "id": "REQ-INST-1",
2026-06-03T22:00:56.7298779Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-03T22:00:56.7298878Z       "requiredStages": [],
2026-06-03T22:00:56.7298958Z       "stages": {
2026-06-03T22:00:56.7299039Z         "doc": {
2026-06-03T22:00:56.7299129Z           "complete": false,
2026-06-03T22:00:56.7299215Z           "evidence": []
2026-06-03T22:00:56.7299294Z         },
2026-06-03T22:00:56.7299513Z         "impl": {
2026-06-03T22:00:56.7299610Z           "complete": false,
2026-06-03T22:00:56.7299696Z           "evidence": []
2026-06-03T22:00:56.7299779Z         },
2026-06-03T22:00:56.7299860Z         "int": {
2026-06-03T22:00:56.7299948Z           "complete": false,
2026-06-03T22:00:56.7300036Z           "evidence": []
2026-06-03T22:00:56.7300118Z         },
2026-06-03T22:00:56.7300201Z         "unit": {
2026-06-03T22:00:56.7300294Z           "complete": false,
2026-06-03T22:00:56.7300395Z           "evidence": []
2026-06-03T22:00:56.7300477Z         }
2026-06-03T22:00:56.7300555Z       }
2026-06-03T22:00:56.7300636Z     },
2026-06-03T22:00:56.7300713Z     {
2026-06-03T22:00:56.7300806Z       "id": "REQ-INST-10",
2026-06-03T22:00:56.7301057Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-03T22:00:56.7301155Z       "requiredStages": [],
2026-06-03T22:00:56.7301241Z       "stages": {
2026-06-03T22:00:56.7301319Z         "doc": {
2026-06-03T22:00:56.7301412Z           "complete": false,
2026-06-03T22:00:56.7301501Z           "evidence": []
2026-06-03T22:00:56.7301583Z         },
2026-06-03T22:00:56.7301664Z         "impl": {
2026-06-03T22:00:56.7301756Z           "complete": false,
2026-06-03T22:00:56.7301847Z           "evidence": []
2026-06-03T22:00:56.7301922Z         },
2026-06-03T22:00:56.7302007Z         "int": {
2026-06-03T22:00:56.7302094Z           "complete": false,
2026-06-03T22:00:56.7302185Z           "evidence": []
2026-06-03T22:00:56.7302263Z         },
2026-06-03T22:00:56.7302345Z         "unit": {
2026-06-03T22:00:56.7302433Z           "complete": false,
2026-06-03T22:00:56.7302520Z           "evidence": []
2026-06-03T22:00:56.7302600Z         }
2026-06-03T22:00:56.7302678Z       }
2026-06-03T22:00:56.7302757Z     },
2026-06-03T22:00:56.7302832Z     {
2026-06-03T22:00:56.7302928Z       "id": "REQ-INST-11",
2026-06-03T22:00:56.7303206Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-03T22:00:56.7303305Z       "requiredStages": [],
2026-06-03T22:00:56.7303392Z       "stages": {
2026-06-03T22:00:56.7303473Z         "doc": {
2026-06-03T22:00:56.7303567Z           "complete": false,
2026-06-03T22:00:56.7303652Z           "evidence": []
2026-06-03T22:00:56.7303731Z         },
2026-06-03T22:00:56.7303816Z         "impl": {
2026-06-03T22:00:56.7304028Z           "complete": false,
2026-06-03T22:00:56.7304124Z           "evidence": []
2026-06-03T22:00:56.7304319Z         },
2026-06-03T22:00:56.7304404Z         "int": {
2026-06-03T22:00:56.7304495Z           "complete": false,
2026-06-03T22:00:56.7304585Z           "evidence": []
2026-06-03T22:00:56.7304665Z         },
2026-06-03T22:00:56.7304752Z         "unit": {
2026-06-03T22:00:56.7304844Z           "complete": false,
2026-06-03T22:00:56.7304930Z           "evidence": []
2026-06-03T22:00:56.7305012Z         }
2026-06-03T22:00:56.7305090Z       }
2026-06-03T22:00:56.7305172Z     },
2026-06-03T22:00:56.7305250Z     {
2026-06-03T22:00:56.7305348Z       "id": "REQ-INST-12",
2026-06-03T22:00:56.7305717Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-03T22:00:56.7305812Z       "requiredStages": [],
2026-06-03T22:00:56.7305902Z       "stages": {
2026-06-03T22:00:56.7305983Z         "doc": {
2026-06-03T22:00:56.7306085Z           "complete": false,
2026-06-03T22:00:56.7306176Z           "evidence": []
2026-06-03T22:00:56.7306261Z         },
2026-06-03T22:00:56.7306345Z         "impl": {
2026-06-03T22:00:56.7306433Z           "complete": false,
2026-06-03T22:00:56.7306524Z           "evidence": []
2026-06-03T22:00:56.7306602Z         },
2026-06-03T22:00:56.7306690Z         "int": {
2026-06-03T22:00:56.7306779Z           "complete": false,
2026-06-03T22:00:56.7306870Z           "evidence": []
2026-06-03T22:00:56.7306951Z         },
2026-06-03T22:00:56.7307031Z         "unit": {
2026-06-03T22:00:56.7307124Z           "complete": false,
2026-06-03T22:00:56.7307209Z           "evidence": []
2026-06-03T22:00:56.7307292Z         }
2026-06-03T22:00:56.7307370Z       }
2026-06-03T22:00:56.7307450Z     },
2026-06-03T22:00:56.7307532Z     {
2026-06-03T22:00:56.7307622Z       "id": "REQ-INST-13",
2026-06-03T22:00:56.7307844Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-03T22:00:56.7307941Z       "requiredStages": [],
2026-06-03T22:00:56.7308026Z       "stages": {
2026-06-03T22:00:56.7308110Z         "doc": {
2026-06-03T22:00:56.7308203Z           "complete": false,
2026-06-03T22:00:56.7308293Z           "evidence": []
2026-06-03T22:00:56.7308371Z         },
2026-06-03T22:00:56.7308456Z         "impl": {
2026-06-03T22:00:56.7308545Z           "complete": false,
2026-06-03T22:00:56.7308638Z           "evidence": []
2026-06-03T22:00:56.7308716Z         },
2026-06-03T22:00:56.7308800Z         "int": {
2026-06-03T22:00:56.7308891Z           "complete": false,
2026-06-03T22:00:56.7308977Z           "evidence": []
2026-06-03T22:00:56.7309064Z         },
2026-06-03T22:00:56.7309144Z         "unit": {
2026-06-03T22:00:56.7309236Z           "complete": false,
2026-06-03T22:00:56.7309322Z           "evidence": []
2026-06-03T22:00:56.7309707Z         }
2026-06-03T22:00:56.7309870Z       }
2026-06-03T22:00:56.7309970Z     },
2026-06-03T22:00:56.7310053Z     {
2026-06-03T22:00:56.7310166Z       "id": "REQ-INST-14",
2026-06-03T22:00:56.7310682Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-03T22:00:56.7310787Z       "requiredStages": [],
2026-06-03T22:00:56.7310872Z       "stages": {
2026-06-03T22:00:56.7310954Z         "doc": {
2026-06-03T22:00:56.7311045Z           "complete": false,
2026-06-03T22:00:56.7311134Z           "evidence": []
2026-06-03T22:00:56.7311211Z         },
2026-06-03T22:00:56.7311294Z         "impl": {
2026-06-03T22:00:56.7311388Z           "complete": false,
2026-06-03T22:00:56.7311474Z           "evidence": []
2026-06-03T22:00:56.7311555Z         },
2026-06-03T22:00:56.7311634Z         "int": {
2026-06-03T22:00:56.7311728Z           "complete": false,
2026-06-03T22:00:56.7311811Z           "evidence": []
2026-06-03T22:00:56.7311892Z         },
2026-06-03T22:00:56.7311974Z         "unit": {
2026-06-03T22:00:56.7312069Z           "complete": false,
2026-06-03T22:00:56.7312299Z           "evidence": []
2026-06-03T22:00:56.7312383Z         }
2026-06-03T22:00:56.7312466Z       }
2026-06-03T22:00:56.7312645Z     },
2026-06-03T22:00:56.7312728Z     {
2026-06-03T22:00:56.7312819Z       "id": "REQ-INST-15",
2026-06-03T22:00:56.7313760Z       "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-03T22:00:56.7313861Z       "requiredStages": [],
2026-06-03T22:00:56.7313944Z       "stages": {
2026-06-03T22:00:56.7314030Z         "doc": {
2026-06-03T22:00:56.7314121Z           "complete": false,
2026-06-03T22:00:56.7314213Z           "evidence": []
2026-06-03T22:00:56.7314296Z         },
2026-06-03T22:00:56.7314378Z         "impl": {
2026-06-03T22:00:56.7314471Z           "complete": false,
2026-06-03T22:00:56.7314557Z           "evidence": []
2026-06-03T22:00:56.7314645Z         },
2026-06-03T22:00:56.7314725Z         "int": {
2026-06-03T22:00:56.7314820Z           "complete": false,
2026-06-03T22:00:56.7314915Z           "evidence": []
2026-06-03T22:00:56.7314994Z         },
2026-06-03T22:00:56.7315077Z         "unit": {
2026-06-03T22:00:56.7315165Z           "complete": false,
2026-06-03T22:00:56.7315256Z           "evidence": []
2026-06-03T22:00:56.7315337Z         }
2026-06-03T22:00:56.7315420Z       }
2026-06-03T22:00:56.7315500Z     },
2026-06-03T22:00:56.7315575Z     {
2026-06-03T22:00:56.7315668Z       "id": "REQ-INST-2",
2026-06-03T22:00:56.7315804Z       "title": "Per-node files, synced Psyche mind",
2026-06-03T22:00:56.7315902Z       "requiredStages": [],
2026-06-03T22:00:56.7315984Z       "stages": {
2026-06-03T22:00:56.7316066Z         "doc": {
2026-06-03T22:00:56.7316159Z           "complete": false,
2026-06-03T22:00:56.7316245Z           "evidence": []
2026-06-03T22:00:56.7316328Z         },
2026-06-03T22:00:56.7316409Z         "impl": {
2026-06-03T22:00:56.7316506Z           "complete": false,
2026-06-03T22:00:56.7316591Z           "evidence": []
2026-06-03T22:00:56.7316679Z         },
2026-06-03T22:00:56.7316762Z         "int": {
2026-06-03T22:00:56.7316851Z           "complete": false,
2026-06-03T22:00:56.7316940Z           "evidence": []
2026-06-03T22:00:56.7317019Z         },
2026-06-03T22:00:56.7317103Z         "unit": {
2026-06-03T22:00:56.7317190Z           "complete": false,
2026-06-03T22:00:56.7317281Z           "evidence": []
2026-06-03T22:00:56.7317364Z         }
2026-06-03T22:00:56.7317442Z       }
2026-06-03T22:00:56.7317524Z     },
2026-06-03T22:00:56.7317601Z     {
2026-06-03T22:00:56.7317696Z       "id": "REQ-INST-3",
2026-06-03T22:00:56.7317869Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-03T22:00:56.7317969Z       "requiredStages": [],
2026-06-03T22:00:56.7318056Z       "stages": {
2026-06-03T22:00:56.7318141Z         "doc": {
2026-06-03T22:00:56.7318235Z           "complete": false,
2026-06-03T22:00:56.7318327Z           "evidence": []
2026-06-03T22:00:56.7318408Z         },
2026-06-03T22:00:56.7318493Z         "impl": {
2026-06-03T22:00:56.7318587Z           "complete": false,
2026-06-03T22:00:56.7318680Z           "evidence": []
2026-06-03T22:00:56.7318762Z         },
2026-06-03T22:00:56.7318846Z         "int": {
2026-06-03T22:00:56.7318935Z           "complete": false,
2026-06-03T22:00:56.7319027Z           "evidence": []
2026-06-03T22:00:56.7319105Z         },
2026-06-03T22:00:56.7319193Z         "unit": {
2026-06-03T22:00:56.7319289Z           "complete": false,
2026-06-03T22:00:56.7319535Z           "evidence": []
2026-06-03T22:00:56.7319624Z         }
2026-06-03T22:00:56.7319705Z       }
2026-06-03T22:00:56.7319785Z     },
2026-06-03T22:00:56.7319861Z     {
2026-06-03T22:00:56.7319956Z       "id": "REQ-INST-4",
2026-06-03T22:00:56.7320162Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-03T22:00:56.7320255Z       "requiredStages": [],
2026-06-03T22:00:56.7320459Z       "stages": {
2026-06-03T22:00:56.7320540Z         "doc": {
2026-06-03T22:00:56.7320631Z           "complete": false,
2026-06-03T22:00:56.7320819Z           "evidence": []
2026-06-03T22:00:56.7320901Z         },
2026-06-03T22:00:56.7320990Z         "impl": {
2026-06-03T22:00:56.7321080Z           "complete": false,
2026-06-03T22:00:56.7321170Z           "evidence": []
2026-06-03T22:00:56.7321248Z         },
2026-06-03T22:00:56.7321329Z         "int": {
2026-06-03T22:00:56.7321418Z           "complete": false,
2026-06-03T22:00:56.7321507Z           "evidence": []
2026-06-03T22:00:56.7321589Z         },
2026-06-03T22:00:56.7321670Z         "unit": {
2026-06-03T22:00:56.7321764Z           "complete": false,
2026-06-03T22:00:56.7321854Z           "evidence": []
2026-06-03T22:00:56.7321937Z         }
2026-06-03T22:00:56.7322015Z       }
2026-06-03T22:00:56.7322099Z     },
2026-06-03T22:00:56.7322181Z     {
2026-06-03T22:00:56.7322269Z       "id": "REQ-INST-5",
2026-06-03T22:00:56.7322490Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-03T22:00:56.7322586Z       "requiredStages": [],
2026-06-03T22:00:56.7322677Z       "stages": {
2026-06-03T22:00:56.7322755Z         "doc": {
2026-06-03T22:00:56.7322851Z           "complete": false,
2026-06-03T22:00:56.7322938Z           "evidence": []
2026-06-03T22:00:56.7323015Z         },
2026-06-03T22:00:56.7323098Z         "impl": {
2026-06-03T22:00:56.7323186Z           "complete": false,
2026-06-03T22:00:56.7323273Z           "evidence": []
2026-06-03T22:00:56.7323351Z         },
2026-06-03T22:00:56.7323432Z         "int": {
2026-06-03T22:00:56.7323522Z           "complete": false,
2026-06-03T22:00:56.7323606Z           "evidence": []
2026-06-03T22:00:56.7323685Z         },
2026-06-03T22:00:56.7323764Z         "unit": {
2026-06-03T22:00:56.7323855Z           "complete": false,
2026-06-03T22:00:56.7323939Z           "evidence": []
2026-06-03T22:00:56.7324020Z         }
2026-06-03T22:00:56.7324099Z       }
2026-06-03T22:00:56.7324177Z     },
2026-06-03T22:00:56.7324262Z     {
2026-06-03T22:00:56.7324351Z       "id": "REQ-INST-6",
2026-06-03T22:00:56.7324577Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-03T22:00:56.7324670Z       "requiredStages": [],
2026-06-03T22:00:56.7324756Z       "stages": {
2026-06-03T22:00:56.7324837Z         "doc": {
2026-06-03T22:00:56.7324925Z           "complete": false,
2026-06-03T22:00:56.7325012Z           "evidence": []
2026-06-03T22:00:56.7325088Z         },
2026-06-03T22:00:56.7325170Z         "impl": {
2026-06-03T22:00:56.7325258Z           "complete": false,
2026-06-03T22:00:56.7325344Z           "evidence": []
2026-06-03T22:00:56.7325425Z         },
2026-06-03T22:00:56.7325504Z         "int": {
2026-06-03T22:00:56.7325594Z           "complete": false,
2026-06-03T22:00:56.7325676Z           "evidence": []
2026-06-03T22:00:56.7325753Z         },
2026-06-03T22:00:56.7325833Z         "unit": {
2026-06-03T22:00:56.7325923Z           "complete": false,
2026-06-03T22:00:56.7326016Z           "evidence": []
2026-06-03T22:00:56.7326092Z         }
2026-06-03T22:00:56.7326175Z       }
2026-06-03T22:00:56.7326250Z     },
2026-06-03T22:00:56.7326328Z     {
2026-06-03T22:00:56.7326416Z       "id": "REQ-INST-7",
2026-06-03T22:00:56.7326575Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-03T22:00:56.7326672Z       "requiredStages": [],
2026-06-03T22:00:56.7326752Z       "stages": {
2026-06-03T22:00:56.7326838Z         "doc": {
2026-06-03T22:00:56.7326926Z           "complete": false,
2026-06-03T22:00:56.7327017Z           "evidence": []
2026-06-03T22:00:56.7327094Z         },
2026-06-03T22:00:56.7327179Z         "impl": {
2026-06-03T22:00:56.7327273Z           "complete": true,
2026-06-03T22:00:56.7327359Z           "evidence": [
2026-06-03T22:00:56.7327442Z             {
2026-06-03T22:00:56.7327576Z               "path": "crates/spt-store/src/registry.rs",
2026-06-03T22:00:56.7327666Z               "line": 123
2026-06-03T22:00:56.7327745Z             }
2026-06-03T22:00:56.7327913Z           ]
2026-06-03T22:00:56.7327995Z         },
2026-06-03T22:00:56.7328148Z         "int": {
2026-06-03T22:00:56.7328239Z           "complete": false,
2026-06-03T22:00:56.7328325Z           "evidence": []
2026-06-03T22:00:56.7328404Z         },
2026-06-03T22:00:56.7328483Z         "unit": {
2026-06-03T22:00:56.7328573Z           "complete": false,
2026-06-03T22:00:56.7328663Z           "evidence": []
2026-06-03T22:00:56.7328743Z         }
2026-06-03T22:00:56.7328823Z       }
2026-06-03T22:00:56.7328898Z     },
2026-06-03T22:00:56.7328976Z     {
2026-06-03T22:00:56.7329067Z       "id": "REQ-INST-8",
2026-06-03T22:00:56.7329245Z       "title": "Remote-control mode distinct from local operation",
2026-06-03T22:00:56.7329471Z       "requiredStages": [],
2026-06-03T22:00:56.7329557Z       "stages": {
2026-06-03T22:00:56.7329641Z         "doc": {
2026-06-03T22:00:56.7329730Z           "complete": false,
2026-06-03T22:00:56.7329818Z           "evidence": []
2026-06-03T22:00:56.7329900Z         },
2026-06-03T22:00:56.7329986Z         "impl": {
2026-06-03T22:00:56.7330077Z           "complete": false,
2026-06-03T22:00:56.7330168Z           "evidence": []
2026-06-03T22:00:56.7330246Z         },
2026-06-03T22:00:56.7330323Z         "int": {
2026-06-03T22:00:56.7330412Z           "complete": false,
2026-06-03T22:00:56.7330497Z           "evidence": []
2026-06-03T22:00:56.7330582Z         },
2026-06-03T22:00:56.7330662Z         "unit": {
2026-06-03T22:00:56.7330748Z           "complete": false,
2026-06-03T22:00:56.7330836Z           "evidence": []
2026-06-03T22:00:56.7330912Z         }
2026-06-03T22:00:56.7330991Z       }
2026-06-03T22:00:56.7331068Z     },
2026-06-03T22:00:56.7331148Z     {
2026-06-03T22:00:56.7331234Z       "id": "REQ-INST-9",
2026-06-03T22:00:56.7331449Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-03T22:00:56.7331544Z       "requiredStages": [],
2026-06-03T22:00:56.7331626Z       "stages": {
2026-06-03T22:00:56.7331708Z         "doc": {
2026-06-03T22:00:56.7331803Z           "complete": false,
2026-06-03T22:00:56.7331890Z           "evidence": []
2026-06-03T22:00:56.7331975Z         },
2026-06-03T22:00:56.7332055Z         "impl": {
2026-06-03T22:00:56.7332149Z           "complete": false,
2026-06-03T22:00:56.7332235Z           "evidence": []
2026-06-03T22:00:56.7332314Z         },
2026-06-03T22:00:56.7332392Z         "int": {
2026-06-03T22:00:56.7332481Z           "complete": false,
2026-06-03T22:00:56.7332571Z           "evidence": []
2026-06-03T22:00:56.7332649Z         },
2026-06-03T22:00:56.7332733Z         "unit": {
2026-06-03T22:00:56.7332821Z           "complete": false,
2026-06-03T22:00:56.7332909Z           "evidence": []
2026-06-03T22:00:56.7332985Z         }
2026-06-03T22:00:56.7333067Z       }
2026-06-03T22:00:56.7333143Z     },
2026-06-03T22:00:56.7333223Z     {
2026-06-03T22:00:56.7333317Z       "id": "REQ-INSTALL-1",
2026-06-03T22:00:56.7333545Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-03T22:00:56.7333641Z       "requiredStages": [],
2026-06-03T22:00:56.7333722Z       "stages": {
2026-06-03T22:00:56.7333808Z         "doc": {
2026-06-03T22:00:56.7333899Z           "complete": false,
2026-06-03T22:00:56.7333984Z           "evidence": []
2026-06-03T22:00:56.7334064Z         },
2026-06-03T22:00:56.7334143Z         "impl": {
2026-06-03T22:00:56.7334232Z           "complete": false,
2026-06-03T22:00:56.7334317Z           "evidence": []
2026-06-03T22:00:56.7334396Z         },
2026-06-03T22:00:56.7334478Z         "int": {
2026-06-03T22:00:56.7334566Z           "complete": false,
2026-06-03T22:00:56.7334656Z           "evidence": []
2026-06-03T22:00:56.7334734Z         },
2026-06-03T22:00:56.7334815Z         "unit": {
2026-06-03T22:00:56.7334903Z           "complete": false,
2026-06-03T22:00:56.7334992Z           "evidence": []
2026-06-03T22:00:56.7335070Z         }
2026-06-03T22:00:56.7335150Z       }
2026-06-03T22:00:56.7335229Z     },
2026-06-03T22:00:56.7335310Z     {
2026-06-03T22:00:56.7335519Z       "id": "REQ-INSTALL-2",
2026-06-03T22:00:56.7335676Z       "title": "Marketplace-repackaging-friendly install",
2026-06-03T22:00:56.7335871Z       "requiredStages": [],
2026-06-03T22:00:56.7335952Z       "stages": {
2026-06-03T22:00:56.7336033Z         "doc": {
2026-06-03T22:00:56.7336124Z           "complete": false,
2026-06-03T22:00:56.7336209Z           "evidence": []
2026-06-03T22:00:56.7336290Z         },
2026-06-03T22:00:56.7336371Z         "impl": {
2026-06-03T22:00:56.7336462Z           "complete": false,
2026-06-03T22:00:56.7336546Z           "evidence": []
2026-06-03T22:00:56.7336625Z         },
2026-06-03T22:00:56.7336706Z         "int": {
2026-06-03T22:00:56.7336792Z           "complete": false,
2026-06-03T22:00:56.7336881Z           "evidence": []
2026-06-03T22:00:56.7336959Z         },
2026-06-03T22:00:56.7337044Z         "unit": {
2026-06-03T22:00:56.7337133Z           "complete": false,
2026-06-03T22:00:56.7337222Z           "evidence": []
2026-06-03T22:00:56.7337309Z         }
2026-06-03T22:00:56.7337386Z       }
2026-06-03T22:00:56.7337467Z     },
2026-06-03T22:00:56.7337547Z     {
2026-06-03T22:00:56.7337640Z       "id": "REQ-INSTALL-3",
2026-06-03T22:00:56.7337794Z       "title": "Idempotent + interactive-optional first run",
2026-06-03T22:00:56.7337889Z       "requiredStages": [],
2026-06-03T22:00:56.7337972Z       "stages": {
2026-06-03T22:00:56.7338051Z         "doc": {
2026-06-03T22:00:56.7338143Z           "complete": false,
2026-06-03T22:00:56.7338229Z           "evidence": []
2026-06-03T22:00:56.7338313Z         },
2026-06-03T22:00:56.7338393Z         "impl": {
2026-06-03T22:00:56.7338488Z           "complete": false,
2026-06-03T22:00:56.7338578Z           "evidence": []
2026-06-03T22:00:56.7338655Z         },
2026-06-03T22:00:56.7338736Z         "int": {
2026-06-03T22:00:56.7338823Z           "complete": false,
2026-06-03T22:00:56.7338910Z           "evidence": []
2026-06-03T22:00:56.7338987Z         },
2026-06-03T22:00:56.7339070Z         "unit": {
2026-06-03T22:00:56.7339164Z           "complete": false,
2026-06-03T22:00:56.7339248Z           "evidence": []
2026-06-03T22:00:56.7339457Z         }
2026-06-03T22:00:56.7339539Z       }
2026-06-03T22:00:56.7339617Z     },
2026-06-03T22:00:56.7339692Z     {
2026-06-03T22:00:56.7339784Z       "id": "REQ-INSTALL-4",
2026-06-03T22:00:56.7340611Z       "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-03T22:00:56.7340705Z       "requiredStages": [],
2026-06-03T22:00:56.7340788Z       "stages": {
2026-06-03T22:00:56.7340866Z         "doc": {
2026-06-03T22:00:56.7340954Z           "complete": false,
2026-06-03T22:00:56.7341042Z           "evidence": []
2026-06-03T22:00:56.7341119Z         },
2026-06-03T22:00:56.7341201Z         "impl": {
2026-06-03T22:00:56.7341289Z           "complete": false,
2026-06-03T22:00:56.7341382Z           "evidence": []
2026-06-03T22:00:56.7341458Z         },
2026-06-03T22:00:56.7341540Z         "int": {
2026-06-03T22:00:56.7341635Z           "complete": false,
2026-06-03T22:00:56.7341731Z           "evidence": []
2026-06-03T22:00:56.7341810Z         },
2026-06-03T22:00:56.7341889Z         "unit": {
2026-06-03T22:00:56.7341981Z           "complete": false,
2026-06-03T22:00:56.7342067Z           "evidence": []
2026-06-03T22:00:56.7342147Z         }
2026-06-03T22:00:56.7342226Z       }
2026-06-03T22:00:56.7342304Z     },
2026-06-03T22:00:56.7342384Z     {
2026-06-03T22:00:56.7342480Z       "id": "REQ-MANIFEST-1",
2026-06-03T22:00:56.7342702Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-03T22:00:56.7342793Z       "requiredStages": [
2026-06-03T22:00:56.7342874Z         "doc",
2026-06-03T22:00:56.7342957Z         "impl",
2026-06-03T22:00:56.7343036Z         "unit"
2026-06-03T22:00:56.7343115Z       ],
2026-06-03T22:00:56.7343196Z       "stages": {
2026-06-03T22:00:56.7343395Z         "doc": {
2026-06-03T22:00:56.7343490Z           "complete": true,
2026-06-03T22:00:56.7343678Z           "evidence": [
2026-06-03T22:00:56.7343760Z             {
2026-06-03T22:00:56.7343868Z               "path": "docs/MANIFEST.md",
2026-06-03T22:00:56.7343957Z               "line": 19
2026-06-03T22:00:56.7344034Z             }
2026-06-03T22:00:56.7344114Z           ]
2026-06-03T22:00:56.7344189Z         },
2026-06-03T22:00:56.7344272Z         "impl": {
2026-06-03T22:00:56.7344360Z           "complete": true,
2026-06-03T22:00:56.7344446Z           "evidence": [
2026-06-03T22:00:56.7344525Z             {
2026-06-03T22:00:56.7344662Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7344750Z               "line": 18
2026-06-03T22:00:56.7344827Z             }
2026-06-03T22:00:56.7344911Z           ]
2026-06-03T22:00:56.7344986Z         },
2026-06-03T22:00:56.7345067Z         "int": {
2026-06-03T22:00:56.7345160Z           "complete": false,
2026-06-03T22:00:56.7345251Z           "evidence": []
2026-06-03T22:00:56.7345336Z         },
2026-06-03T22:00:56.7345416Z         "unit": {
2026-06-03T22:00:56.7345513Z           "complete": true,
2026-06-03T22:00:56.7345598Z           "evidence": [
2026-06-03T22:00:56.7345678Z             {
2026-06-03T22:00:56.7345809Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7345893Z               "line": 695
2026-06-03T22:00:56.7345974Z             },
2026-06-03T22:00:56.7346051Z             {
2026-06-03T22:00:56.7346183Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7346272Z               "line": 791
2026-06-03T22:00:56.7346351Z             },
2026-06-03T22:00:56.7346432Z             {
2026-06-03T22:00:56.7346556Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7346647Z               "line": 803
2026-06-03T22:00:56.7346726Z             },
2026-06-03T22:00:56.7346812Z             {
2026-06-03T22:00:56.7346945Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7347029Z               "line": 811
2026-06-03T22:00:56.7347116Z             },
2026-06-03T22:00:56.7347194Z             {
2026-06-03T22:00:56.7347321Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7347409Z               "line": 828
2026-06-03T22:00:56.7347492Z             },
2026-06-03T22:00:56.7347576Z             {
2026-06-03T22:00:56.7347699Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7347788Z               "line": 842
2026-06-03T22:00:56.7347866Z             },
2026-06-03T22:00:56.7347945Z             {
2026-06-03T22:00:56.7348069Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7348156Z               "line": 857
2026-06-03T22:00:56.7348237Z             },
2026-06-03T22:00:56.7348315Z             {
2026-06-03T22:00:56.7348445Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7348528Z               "line": 872
2026-06-03T22:00:56.7348613Z             },
2026-06-03T22:00:56.7348692Z             {
2026-06-03T22:00:56.7348822Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7348915Z               "line": 887
2026-06-03T22:00:56.7348993Z             },
2026-06-03T22:00:56.7349074Z             {
2026-06-03T22:00:56.7349200Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7349287Z               "line": 898
2026-06-03T22:00:56.7349607Z             }
2026-06-03T22:00:56.7349772Z           ]
2026-06-03T22:00:56.7349864Z         }
2026-06-03T22:00:56.7349942Z       }
2026-06-03T22:00:56.7350020Z     },
2026-06-03T22:00:56.7350098Z     {
2026-06-03T22:00:56.7350204Z       "id": "REQ-MIGRATE-1",
2026-06-03T22:00:56.7350421Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-03T22:00:56.7350522Z       "requiredStages": [],
2026-06-03T22:00:56.7350610Z       "stages": {
2026-06-03T22:00:56.7350691Z         "doc": {
2026-06-03T22:00:56.7350924Z           "complete": false,
2026-06-03T22:00:56.7351017Z           "evidence": []
2026-06-03T22:00:56.7351100Z         },
2026-06-03T22:00:56.7351284Z         "impl": {
2026-06-03T22:00:56.7351381Z           "complete": false,
2026-06-03T22:00:56.7351469Z           "evidence": []
2026-06-03T22:00:56.7351545Z         },
2026-06-03T22:00:56.7351626Z         "int": {
2026-06-03T22:00:56.7351718Z           "complete": false,
2026-06-03T22:00:56.7351807Z           "evidence": []
2026-06-03T22:00:56.7351883Z         },
2026-06-03T22:00:56.7351966Z         "unit": {
2026-06-03T22:00:56.7352056Z           "complete": false,
2026-06-03T22:00:56.7352142Z           "evidence": []
2026-06-03T22:00:56.7352220Z         }
2026-06-03T22:00:56.7352298Z       }
2026-06-03T22:00:56.7352377Z     },
2026-06-03T22:00:56.7352453Z     {
2026-06-03T22:00:56.7352544Z       "id": "REQ-MSG-1",
2026-06-03T22:00:56.7353119Z       "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-03T22:00:56.7353214Z       "requiredStages": [
2026-06-03T22:00:56.7353304Z         "impl",
2026-06-03T22:00:56.7353383Z         "unit",
2026-06-03T22:00:56.7353463Z         "int"
2026-06-03T22:00:56.7353539Z       ],
2026-06-03T22:00:56.7353629Z       "stages": {
2026-06-03T22:00:56.7353710Z         "doc": {
2026-06-03T22:00:56.7353800Z           "complete": false,
2026-06-03T22:00:56.7353889Z           "evidence": []
2026-06-03T22:00:56.7353968Z         },
2026-06-03T22:00:56.7354051Z         "impl": {
2026-06-03T22:00:56.7354141Z           "complete": true,
2026-06-03T22:00:56.7354231Z           "evidence": [
2026-06-03T22:00:56.7354313Z             {
2026-06-03T22:00:56.7354443Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7354531Z               "line": 28
2026-06-03T22:00:56.7354610Z             },
2026-06-03T22:00:56.7354691Z             {
2026-06-03T22:00:56.7354815Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7354902Z               "line": 91
2026-06-03T22:00:56.7354980Z             },
2026-06-03T22:00:56.7355061Z             {
2026-06-03T22:00:56.7355178Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7355266Z               "line": 134
2026-06-03T22:00:56.7355349Z             },
2026-06-03T22:00:56.7355431Z             {
2026-06-03T22:00:56.7355550Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7355637Z               "line": 159
2026-06-03T22:00:56.7355714Z             },
2026-06-03T22:00:56.7355794Z             {
2026-06-03T22:00:56.7355914Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-03T22:00:56.7356007Z               "line": 18
2026-06-03T22:00:56.7356089Z             },
2026-06-03T22:00:56.7356168Z             {
2026-06-03T22:00:56.7356286Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-03T22:00:56.7356369Z               "line": 13
2026-06-03T22:00:56.7356450Z             },
2026-06-03T22:00:56.7356532Z             {
2026-06-03T22:00:56.7356648Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-03T22:00:56.7356740Z               "line": 61
2026-06-03T22:00:56.7356818Z             },
2026-06-03T22:00:56.7356898Z             {
2026-06-03T22:00:56.7357008Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-03T22:00:56.7357097Z               "line": 10
2026-06-03T22:00:56.7357175Z             }
2026-06-03T22:00:56.7357258Z           ]
2026-06-03T22:00:56.7357338Z         },
2026-06-03T22:00:56.7357417Z         "int": {
2026-06-03T22:00:56.7357509Z           "complete": true,
2026-06-03T22:00:56.7357591Z           "evidence": [
2026-06-03T22:00:56.7357671Z             {
2026-06-03T22:00:56.7357823Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-03T22:00:56.7357908Z               "line": 9
2026-06-03T22:00:56.7357989Z             },
2026-06-03T22:00:56.7358067Z             {
2026-06-03T22:00:56.7358333Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-03T22:00:56.7358422Z               "line": 66
2026-06-03T22:00:56.7358502Z             },
2026-06-03T22:00:56.7358657Z             {
2026-06-03T22:00:56.7358800Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-03T22:00:56.7358889Z               "line": 116
2026-06-03T22:00:56.7358968Z             }
2026-06-03T22:00:56.7359049Z           ]
2026-06-03T22:00:56.7359126Z         },
2026-06-03T22:00:56.7359209Z         "unit": {
2026-06-03T22:00:56.7359298Z           "complete": true,
2026-06-03T22:00:56.7359521Z           "evidence": [
2026-06-03T22:00:56.7359608Z             {
2026-06-03T22:00:56.7359731Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7359819Z               "line": 188
2026-06-03T22:00:56.7359897Z             },
2026-06-03T22:00:56.7359980Z             {
2026-06-03T22:00:56.7360098Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7360185Z               "line": 217
2026-06-03T22:00:56.7360278Z             },
2026-06-03T22:00:56.7360357Z             {
2026-06-03T22:00:56.7360481Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7360571Z               "line": 262
2026-06-03T22:00:56.7360654Z             },
2026-06-03T22:00:56.7360731Z             {
2026-06-03T22:00:56.7360853Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7360942Z               "line": 285
2026-06-03T22:00:56.7361022Z             },
2026-06-03T22:00:56.7361105Z             {
2026-06-03T22:00:56.7361221Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-03T22:00:56.7361312Z               "line": 307
2026-06-03T22:00:56.7361389Z             },
2026-06-03T22:00:56.7361471Z             {
2026-06-03T22:00:56.7361601Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-03T22:00:56.7361684Z               "line": 203
2026-06-03T22:00:56.7361765Z             },
2026-06-03T22:00:56.7361843Z             {
2026-06-03T22:00:56.7361970Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-03T22:00:56.7362063Z               "line": 233
2026-06-03T22:00:56.7362146Z             },
2026-06-03T22:00:56.7362227Z             {
2026-06-03T22:00:56.7362344Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-03T22:00:56.7362433Z               "line": 247
2026-06-03T22:00:56.7362511Z             },
2026-06-03T22:00:56.7362589Z             {
2026-06-03T22:00:56.7362706Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-03T22:00:56.7362790Z               "line": 259
2026-06-03T22:00:56.7362869Z             },
2026-06-03T22:00:56.7362950Z             {
2026-06-03T22:00:56.7363064Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-03T22:00:56.7363147Z               "line": 158
2026-06-03T22:00:56.7363229Z             },
2026-06-03T22:00:56.7363308Z             {
2026-06-03T22:00:56.7363421Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-03T22:00:56.7363506Z               "line": 235
2026-06-03T22:00:56.7363585Z             },
2026-06-03T22:00:56.7363668Z             {
2026-06-03T22:00:56.7363777Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-03T22:00:56.7363868Z               "line": 68
2026-06-03T22:00:56.7363951Z             },
2026-06-03T22:00:56.7364028Z             {
2026-06-03T22:00:56.7364139Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-03T22:00:56.7364223Z               "line": 74
2026-06-03T22:00:56.7364305Z             },
2026-06-03T22:00:56.7364380Z             {
2026-06-03T22:00:56.7364492Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-03T22:00:56.7364576Z               "line": 80
2026-06-03T22:00:56.7364654Z             },
2026-06-03T22:00:56.7364735Z             {
2026-06-03T22:00:56.7364848Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-03T22:00:56.7364933Z               "line": 99
2026-06-03T22:00:56.7365010Z             }
2026-06-03T22:00:56.7365090Z           ]
2026-06-03T22:00:56.7365167Z         }
2026-06-03T22:00:56.7365244Z       }
2026-06-03T22:00:56.7365443Z     },
2026-06-03T22:00:56.7365524Z     {
2026-06-03T22:00:56.7365618Z       "id": "REQ-MSG-2",
2026-06-03T22:00:56.7366081Z       "title": "spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes",
2026-06-03T22:00:56.7366179Z       "requiredStages": [
2026-06-03T22:00:56.7366263Z         "impl",
2026-06-03T22:00:56.7366341Z         "unit"
2026-06-03T22:00:56.7366419Z       ],
2026-06-03T22:00:56.7366500Z       "stages": {
2026-06-03T22:00:56.7366582Z         "doc": {
2026-06-03T22:00:56.7366672Z           "complete": false,
2026-06-03T22:00:56.7366762Z           "evidence": []
2026-06-03T22:00:56.7366842Z         },
2026-06-03T22:00:56.7366922Z         "impl": {
2026-06-03T22:00:56.7367015Z           "complete": true,
2026-06-03T22:00:56.7367099Z           "evidence": [
2026-06-03T22:00:56.7367180Z             {
2026-06-03T22:00:56.7367291Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7367376Z               "line": 11
2026-06-03T22:00:56.7367463Z             },
2026-06-03T22:00:56.7367539Z             {
2026-06-03T22:00:56.7367652Z               "path": "crates/spt/src/main.rs",
2026-06-03T22:00:56.7367739Z               "line": 8
2026-06-03T22:00:56.7367824Z             }
2026-06-03T22:00:56.7367901Z           ]
2026-06-03T22:00:56.7367983Z         },
2026-06-03T22:00:56.7368066Z         "int": {
2026-06-03T22:00:56.7368155Z           "complete": false,
2026-06-03T22:00:56.7368248Z           "evidence": []
2026-06-03T22:00:56.7368325Z         },
2026-06-03T22:00:56.7368410Z         "unit": {
2026-06-03T22:00:56.7368499Z           "complete": true,
2026-06-03T22:00:56.7368589Z           "evidence": [
2026-06-03T22:00:56.7368671Z             {
2026-06-03T22:00:56.7368778Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7368869Z               "line": 585
2026-06-03T22:00:56.7368948Z             },
2026-06-03T22:00:56.7369031Z             {
2026-06-03T22:00:56.7369132Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7369226Z               "line": 619
2026-06-03T22:00:56.7369309Z             },
2026-06-03T22:00:56.7369522Z             {
2026-06-03T22:00:56.7369645Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7369730Z               "line": 628
2026-06-03T22:00:56.7369811Z             },
2026-06-03T22:00:56.7369889Z             {
2026-06-03T22:00:56.7369999Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7370089Z               "line": 640
2026-06-03T22:00:56.7370167Z             }
2026-06-03T22:00:56.7370250Z           ]
2026-06-03T22:00:56.7370326Z         }
2026-06-03T22:00:56.7370406Z       }
2026-06-03T22:00:56.7370482Z     },
2026-06-03T22:00:56.7370560Z     {
2026-06-03T22:00:56.7370650Z       "id": "REQ-MSG-3",
2026-06-03T22:00:56.7371154Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-03T22:00:56.7371252Z       "requiredStages": [
2026-06-03T22:00:56.7371340Z         "impl",
2026-06-03T22:00:56.7371423Z         "unit",
2026-06-03T22:00:56.7371500Z         "int"
2026-06-03T22:00:56.7371584Z       ],
2026-06-03T22:00:56.7371669Z       "stages": {
2026-06-03T22:00:56.7371748Z         "doc": {
2026-06-03T22:00:56.7371841Z           "complete": false,
2026-06-03T22:00:56.7371926Z           "evidence": []
2026-06-03T22:00:56.7372005Z         },
2026-06-03T22:00:56.7372085Z         "impl": {
2026-06-03T22:00:56.7372176Z           "complete": true,
2026-06-03T22:00:56.7372263Z           "evidence": [
2026-06-03T22:00:56.7372339Z             {
2026-06-03T22:00:56.7372472Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-03T22:00:56.7372555Z               "line": 19
2026-06-03T22:00:56.7372637Z             },
2026-06-03T22:00:56.7372712Z             {
2026-06-03T22:00:56.7372837Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-03T22:00:56.7372922Z               "line": 21
2026-06-03T22:00:56.7373000Z             },
2026-06-03T22:00:56.7373200Z             {
2026-06-03T22:00:56.7373319Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-03T22:00:56.7373509Z               "line": 48
2026-06-03T22:00:56.7373587Z             },
2026-06-03T22:00:56.7373666Z             {
2026-06-03T22:00:56.7373782Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-03T22:00:56.7373865Z               "line": 106
2026-06-03T22:00:56.7373944Z             }
2026-06-03T22:00:56.7374021Z           ]
2026-06-03T22:00:56.7374100Z         },
2026-06-03T22:00:56.7374178Z         "int": {
2026-06-03T22:00:56.7374273Z           "complete": true,
2026-06-03T22:00:56.7374362Z           "evidence": [
2026-06-03T22:00:56.7374440Z             {
2026-06-03T22:00:56.7374598Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-03T22:00:56.7374683Z               "line": 10
2026-06-03T22:00:56.7374765Z             },
2026-06-03T22:00:56.7374842Z             {
2026-06-03T22:00:56.7374996Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-03T22:00:56.7375083Z               "line": 66
2026-06-03T22:00:56.7375160Z             }
2026-06-03T22:00:56.7375244Z           ]
2026-06-03T22:00:56.7375321Z         },
2026-06-03T22:00:56.7375404Z         "unit": {
2026-06-03T22:00:56.7375492Z           "complete": true,
2026-06-03T22:00:56.7375579Z           "evidence": [
2026-06-03T22:00:56.7375660Z             {
2026-06-03T22:00:56.7375773Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-03T22:00:56.7375860Z               "line": 160
2026-06-03T22:00:56.7375937Z             },
2026-06-03T22:00:56.7376015Z             {
2026-06-03T22:00:56.7376125Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-03T22:00:56.7376215Z               "line": 179
2026-06-03T22:00:56.7376297Z             },
2026-06-03T22:00:56.7376374Z             {
2026-06-03T22:00:56.7376486Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-03T22:00:56.7376571Z               "line": 198
2026-06-03T22:00:56.7376652Z             }
2026-06-03T22:00:56.7376740Z           ]
2026-06-03T22:00:56.7376816Z         }
2026-06-03T22:00:56.7376903Z       }
2026-06-03T22:00:56.7376982Z     },
2026-06-03T22:00:56.7377063Z     {
2026-06-03T22:00:56.7377150Z       "id": "REQ-NET-1",
2026-06-03T22:00:56.7377365Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-03T22:00:56.7377461Z       "requiredStages": [
2026-06-03T22:00:56.7377544Z         "impl",
2026-06-03T22:00:56.7377629Z         "unit"
2026-06-03T22:00:56.7377706Z       ],
2026-06-03T22:00:56.7377794Z       "stages": {
2026-06-03T22:00:56.7377878Z         "doc": {
2026-06-03T22:00:56.7377975Z           "complete": false,
2026-06-03T22:00:56.7378061Z           "evidence": []
2026-06-03T22:00:56.7378145Z         },
2026-06-03T22:00:56.7378231Z         "impl": {
2026-06-03T22:00:56.7378319Z           "complete": true,
2026-06-03T22:00:56.7378406Z           "evidence": [
2026-06-03T22:00:56.7378483Z             {
2026-06-03T22:00:56.7378628Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7378714Z               "line": 58
2026-06-03T22:00:56.7378801Z             },
2026-06-03T22:00:56.7378880Z             {
2026-06-03T22:00:56.7379009Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7379097Z               "line": 100
2026-06-03T22:00:56.7379176Z             },
2026-06-03T22:00:56.7379258Z             {
2026-06-03T22:00:56.7379515Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7379606Z               "line": 116
2026-06-03T22:00:56.7379691Z             },
2026-06-03T22:00:56.7379769Z             {
2026-06-03T22:00:56.7379911Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7379996Z               "line": 153
2026-06-03T22:00:56.7380081Z             },
2026-06-03T22:00:56.7380160Z             {
2026-06-03T22:00:56.7380292Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7380379Z               "line": 184
2026-06-03T22:00:56.7380572Z             },
2026-06-03T22:00:56.7380655Z             {
2026-06-03T22:00:56.7380907Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7380994Z               "line": 190
2026-06-03T22:00:56.7381074Z             },
2026-06-03T22:00:56.7381150Z             {
2026-06-03T22:00:56.7381280Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7381365Z               "line": 206
2026-06-03T22:00:56.7381447Z             }
2026-06-03T22:00:56.7381525Z           ]
2026-06-03T22:00:56.7381606Z         },
2026-06-03T22:00:56.7381690Z         "int": {
2026-06-03T22:00:56.7381781Z           "complete": false,
2026-06-03T22:00:56.7381871Z           "evidence": []
2026-06-03T22:00:56.7381948Z         },
2026-06-03T22:00:56.7382033Z         "unit": {
2026-06-03T22:00:56.7382124Z           "complete": true,
2026-06-03T22:00:56.7382216Z           "evidence": [
2026-06-03T22:00:56.7382296Z             {
2026-06-03T22:00:56.7382428Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7382513Z               "line": 253
2026-06-03T22:00:56.7382595Z             },
2026-06-03T22:00:56.7382674Z             {
2026-06-03T22:00:56.7382800Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7382885Z               "line": 269
2026-06-03T22:00:56.7382965Z             },
2026-06-03T22:00:56.7383043Z             {
2026-06-03T22:00:56.7383173Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7383259Z               "line": 299
2026-06-03T22:00:56.7383339Z             }
2026-06-03T22:00:56.7383416Z           ]
2026-06-03T22:00:56.7383494Z         }
2026-06-03T22:00:56.7383575Z       }
2026-06-03T22:00:56.7383652Z     },
2026-06-03T22:00:56.7383735Z     {
2026-06-03T22:00:56.7383824Z       "id": "REQ-NET-2",
2026-06-03T22:00:56.7384035Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-03T22:00:56.7384125Z       "requiredStages": [
2026-06-03T22:00:56.7384215Z         "impl"
2026-06-03T22:00:56.7384294Z       ],
2026-06-03T22:00:56.7384375Z       "stages": {
2026-06-03T22:00:56.7384462Z         "doc": {
2026-06-03T22:00:56.7384551Z           "complete": false,
2026-06-03T22:00:56.7384641Z           "evidence": []
2026-06-03T22:00:56.7384717Z         },
2026-06-03T22:00:56.7384802Z         "impl": {
2026-06-03T22:00:56.7384901Z           "complete": true,
2026-06-03T22:00:56.7384985Z           "evidence": [
2026-06-03T22:00:56.7385066Z             {
2026-06-03T22:00:56.7385194Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7385281Z               "line": 32
2026-06-03T22:00:56.7385359Z             },
2026-06-03T22:00:56.7385442Z             {
2026-06-03T22:00:56.7385574Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7385658Z               "line": 42
2026-06-03T22:00:56.7385741Z             },
2026-06-03T22:00:56.7385820Z             {
2026-06-03T22:00:56.7385954Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7386039Z               "line": 100
2026-06-03T22:00:56.7386126Z             },
2026-06-03T22:00:56.7386209Z             {
2026-06-03T22:00:56.7386336Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-03T22:00:56.7386425Z               "line": 116
2026-06-03T22:00:56.7386503Z             }
2026-06-03T22:00:56.7386586Z           ]
2026-06-03T22:00:56.7386663Z         },
2026-06-03T22:00:56.7386744Z         "int": {
2026-06-03T22:00:56.7386835Z           "complete": false,
2026-06-03T22:00:56.7386920Z           "evidence": []
2026-06-03T22:00:56.7386999Z         },
2026-06-03T22:00:56.7387078Z         "unit": {
2026-06-03T22:00:56.7387167Z           "complete": false,
2026-06-03T22:00:56.7387251Z           "evidence": []
2026-06-03T22:00:56.7387332Z         }
2026-06-03T22:00:56.7387413Z       }
2026-06-03T22:00:56.7387491Z     },
2026-06-03T22:00:56.7387572Z     {
2026-06-03T22:00:56.7387664Z       "id": "REQ-NET-3",
2026-06-03T22:00:56.7387948Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-03T22:00:56.7388115Z       "requiredStages": [],
2026-06-03T22:00:56.7388202Z       "stages": {
2026-06-03T22:00:56.7388287Z         "doc": {
2026-06-03T22:00:56.7388379Z           "complete": false,
2026-06-03T22:00:56.7388469Z           "evidence": []
2026-06-03T22:00:56.7388545Z         },
2026-06-03T22:00:56.7388629Z         "impl": {
2026-06-03T22:00:56.7388718Z           "complete": false,
2026-06-03T22:00:56.7388807Z           "evidence": []
2026-06-03T22:00:56.7388891Z         },
2026-06-03T22:00:56.7388970Z         "int": {
2026-06-03T22:00:56.7389063Z           "complete": false,
2026-06-03T22:00:56.7389150Z           "evidence": []
2026-06-03T22:00:56.7389233Z         },
2026-06-03T22:00:56.7389314Z         "unit": {
2026-06-03T22:00:56.7389694Z           "complete": false,
2026-06-03T22:00:56.7389843Z           "evidence": []
2026-06-03T22:00:56.7389927Z         }
2026-06-03T22:00:56.7390011Z       }
2026-06-03T22:00:56.7390096Z     },
2026-06-03T22:00:56.7390178Z     {
2026-06-03T22:00:56.7390279Z       "id": "REQ-NODE-IDENTITY",
2026-06-03T22:00:56.7390586Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-03T22:00:56.7390688Z       "requiredStages": [
2026-06-03T22:00:56.7390773Z         "impl",
2026-06-03T22:00:56.7390856Z         "unit"
2026-06-03T22:00:56.7390934Z       ],
2026-06-03T22:00:56.7391019Z       "stages": {
2026-06-03T22:00:56.7391098Z         "doc": {
2026-06-03T22:00:56.7391196Z           "complete": false,
2026-06-03T22:00:56.7391286Z           "evidence": []
2026-06-03T22:00:56.7391365Z         },
2026-06-03T22:00:56.7391452Z         "impl": {
2026-06-03T22:00:56.7391544Z           "complete": true,
2026-06-03T22:00:56.7391635Z           "evidence": [
2026-06-03T22:00:56.7391715Z             {
2026-06-03T22:00:56.7391866Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-03T22:00:56.7391955Z               "line": 60
2026-06-03T22:00:56.7392041Z             },
2026-06-03T22:00:56.7392121Z             {
2026-06-03T22:00:56.7392259Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-03T22:00:56.7392344Z               "line": 68
2026-06-03T22:00:56.7392423Z             },
2026-06-03T22:00:56.7392504Z             {
2026-06-03T22:00:56.7392631Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-03T22:00:56.7392715Z               "line": 86
2026-06-03T22:00:56.7392801Z             },
2026-06-03T22:00:56.7392878Z             {
2026-06-03T22:00:56.7393011Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-03T22:00:56.7393097Z               "line": 120
2026-06-03T22:00:56.7393182Z             },
2026-06-03T22:00:56.7393265Z             {
2026-06-03T22:00:56.7393387Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-03T22:00:56.7393476Z               "line": 127
2026-06-03T22:00:56.7393553Z             },
2026-06-03T22:00:56.7393635Z             {
2026-06-03T22:00:56.7393764Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-03T22:00:56.7393850Z               "line": 143
2026-06-03T22:00:56.7393937Z             }
2026-06-03T22:00:56.7394015Z           ]
2026-06-03T22:00:56.7394095Z         },
2026-06-03T22:00:56.7394175Z         "int": {
2026-06-03T22:00:56.7394270Z           "complete": false,
2026-06-03T22:00:56.7394357Z           "evidence": []
2026-06-03T22:00:56.7394439Z         },
2026-06-03T22:00:56.7394525Z         "unit": {
2026-06-03T22:00:56.7394615Z           "complete": true,
2026-06-03T22:00:56.7394706Z           "evidence": [
2026-06-03T22:00:56.7394786Z             {
2026-06-03T22:00:56.7394917Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-03T22:00:56.7395003Z               "line": 199
2026-06-03T22:00:56.7395082Z             },
2026-06-03T22:00:56.7395165Z             {
2026-06-03T22:00:56.7395287Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-03T22:00:56.7395377Z               "line": 218
2026-06-03T22:00:56.7395595Z             },
2026-06-03T22:00:56.7395682Z             {
2026-06-03T22:00:56.7395818Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-03T22:00:56.7396005Z               "line": 232
2026-06-03T22:00:56.7396089Z             },
2026-06-03T22:00:56.7396168Z             {
2026-06-03T22:00:56.7396300Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-03T22:00:56.7396384Z               "line": 248
2026-06-03T22:00:56.7396466Z             }
2026-06-03T22:00:56.7396550Z           ]
2026-06-03T22:00:56.7396629Z         }
2026-06-03T22:00:56.7396710Z       }
2026-06-03T22:00:56.7396788Z     },
2026-06-03T22:00:56.7396871Z     {
2026-06-03T22:00:56.7396962Z       "id": "REQ-NOTIF-1",
2026-06-03T22:00:56.7397429Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-03T22:00:56.7397529Z       "requiredStages": [],
2026-06-03T22:00:56.7397611Z       "stages": {
2026-06-03T22:00:56.7397701Z         "doc": {
2026-06-03T22:00:56.7397791Z           "complete": false,
2026-06-03T22:00:56.7397888Z           "evidence": []
2026-06-03T22:00:56.7397969Z         },
2026-06-03T22:00:56.7398055Z         "impl": {
2026-06-03T22:00:56.7398149Z           "complete": false,
2026-06-03T22:00:56.7398237Z           "evidence": []
2026-06-03T22:00:56.7398320Z         },
2026-06-03T22:00:56.7398399Z         "int": {
2026-06-03T22:00:56.7398491Z           "complete": false,
2026-06-03T22:00:56.7398578Z           "evidence": []
2026-06-03T22:00:56.7398659Z         },
2026-06-03T22:00:56.7398741Z         "unit": {
2026-06-03T22:00:56.7398830Z           "complete": false,
2026-06-03T22:00:56.7398919Z           "evidence": []
2026-06-03T22:00:56.7398996Z         }
2026-06-03T22:00:56.7399076Z       }
2026-06-03T22:00:56.7399153Z     },
2026-06-03T22:00:56.7399234Z     {
2026-06-03T22:00:56.7399478Z       "id": "REQ-NOTIF-2",
2026-06-03T22:00:56.7399819Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-03T22:00:56.7399918Z       "requiredStages": [],
2026-06-03T22:00:56.7400008Z       "stages": {
2026-06-03T22:00:56.7400096Z         "doc": {
2026-06-03T22:00:56.7400186Z           "complete": false,
2026-06-03T22:00:56.7400281Z           "evidence": []
2026-06-03T22:00:56.7400366Z         },
2026-06-03T22:00:56.7400452Z         "impl": {
2026-06-03T22:00:56.7400545Z           "complete": false,
2026-06-03T22:00:56.7400634Z           "evidence": []
2026-06-03T22:00:56.7400717Z         },
2026-06-03T22:00:56.7400797Z         "int": {
2026-06-03T22:00:56.7400892Z           "complete": false,
2026-06-03T22:00:56.7400981Z           "evidence": []
2026-06-03T22:00:56.7401060Z         },
2026-06-03T22:00:56.7401146Z         "unit": {
2026-06-03T22:00:56.7401238Z           "complete": false,
2026-06-03T22:00:56.7401332Z           "evidence": []
2026-06-03T22:00:56.7401412Z         }
2026-06-03T22:00:56.7401495Z       }
2026-06-03T22:00:56.7401577Z     },
2026-06-03T22:00:56.7401661Z     {
2026-06-03T22:00:56.7401758Z       "id": "REQ-PAIR-1",
2026-06-03T22:00:56.7401881Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-03T22:00:56.7401977Z       "requiredStages": [
2026-06-03T22:00:56.7402060Z         "impl",
2026-06-03T22:00:56.7402147Z         "unit"
2026-06-03T22:00:56.7402229Z       ],
2026-06-03T22:00:56.7402312Z       "stages": {
2026-06-03T22:00:56.7402395Z         "doc": {
2026-06-03T22:00:56.7402483Z           "complete": false,
2026-06-03T22:00:56.7402572Z           "evidence": []
2026-06-03T22:00:56.7402649Z         },
2026-06-03T22:00:56.7402733Z         "impl": {
2026-06-03T22:00:56.7402825Z           "complete": true,
2026-06-03T22:00:56.7402910Z           "evidence": [
2026-06-03T22:00:56.7402993Z             {
2026-06-03T22:00:56.7403144Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7403231Z               "line": 27
2026-06-03T22:00:56.7403311Z             },
2026-06-03T22:00:56.7403391Z             {
2026-06-03T22:00:56.7403659Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7403843Z               "line": 88
2026-06-03T22:00:56.7403926Z             },
2026-06-03T22:00:56.7404006Z             {
2026-06-03T22:00:56.7404158Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7404246Z               "line": 110
2026-06-03T22:00:56.7404327Z             },
2026-06-03T22:00:56.7404409Z             {
2026-06-03T22:00:56.7404551Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7404639Z               "line": 153
2026-06-03T22:00:56.7404719Z             },
2026-06-03T22:00:56.7404800Z             {
2026-06-03T22:00:56.7404935Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7405023Z               "line": 182
2026-06-03T22:00:56.7405104Z             },
2026-06-03T22:00:56.7405181Z             {
2026-06-03T22:00:56.7405329Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-03T22:00:56.7405413Z               "line": 29
2026-06-03T22:00:56.7405495Z             },
2026-06-03T22:00:56.7405577Z             {
2026-06-03T22:00:56.7405741Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-03T22:00:56.7405832Z               "line": 31
2026-06-03T22:00:56.7405912Z             },
2026-06-03T22:00:56.7405994Z             {
2026-06-03T22:00:56.7406135Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7406222Z               "line": 40
2026-06-03T22:00:56.7406302Z             },
2026-06-03T22:00:56.7406385Z             {
2026-06-03T22:00:56.7406525Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7406611Z               "line": 131
2026-06-03T22:00:56.7406692Z             },
2026-06-03T22:00:56.7406770Z             {
2026-06-03T22:00:56.7406908Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7406997Z               "line": 306
2026-06-03T22:00:56.7407079Z             }
2026-06-03T22:00:56.7407162Z           ]
2026-06-03T22:00:56.7407241Z         },
2026-06-03T22:00:56.7407333Z         "int": {
2026-06-03T22:00:56.7407426Z           "complete": false,
2026-06-03T22:00:56.7407517Z           "evidence": []
2026-06-03T22:00:56.7407599Z         },
2026-06-03T22:00:56.7407680Z         "unit": {
2026-06-03T22:00:56.7407775Z           "complete": true,
2026-06-03T22:00:56.7407860Z           "evidence": [
2026-06-03T22:00:56.7407942Z             {
2026-06-03T22:00:56.7408081Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7408172Z               "line": 236
2026-06-03T22:00:56.7408261Z             },
2026-06-03T22:00:56.7408342Z             {
2026-06-03T22:00:56.7408484Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-03T22:00:56.7408569Z               "line": 349
2026-06-03T22:00:56.7408654Z             },
2026-06-03T22:00:56.7408736Z             {
2026-06-03T22:00:56.7408882Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-03T22:00:56.7408971Z               "line": 194
2026-06-03T22:00:56.7409054Z             },
2026-06-03T22:00:56.7409138Z             {
2026-06-03T22:00:56.7409274Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-03T22:00:56.7409491Z               "line": 216
2026-06-03T22:00:56.7409578Z             },
2026-06-03T22:00:56.7409661Z             {
2026-06-03T22:00:56.7409805Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-03T22:00:56.7409891Z               "line": 230
2026-06-03T22:00:56.7409976Z             },
2026-06-03T22:00:56.7410055Z             {
2026-06-03T22:00:56.7410191Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-03T22:00:56.7410276Z               "line": 242
2026-06-03T22:00:56.7410358Z             },
2026-06-03T22:00:56.7410441Z             {
2026-06-03T22:00:56.7410573Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-03T22:00:56.7410782Z               "line": 256
2026-06-03T22:00:56.7410871Z             },
2026-06-03T22:00:56.7410955Z             {
2026-06-03T22:00:56.7411192Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-03T22:00:56.7411282Z               "line": 270
2026-06-03T22:00:56.7411364Z             },
2026-06-03T22:00:56.7411442Z             {
2026-06-03T22:00:56.7411579Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-03T22:00:56.7411663Z               "line": 277
2026-06-03T22:00:56.7411745Z             },
2026-06-03T22:00:56.7411824Z             {
2026-06-03T22:00:56.7411961Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-03T22:00:56.7412048Z               "line": 295
2026-06-03T22:00:56.7412127Z             },
2026-06-03T22:00:56.7412210Z             {
2026-06-03T22:00:56.7412342Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7412432Z               "line": 691
2026-06-03T22:00:56.7412518Z             },
2026-06-03T22:00:56.7412601Z             {
2026-06-03T22:00:56.7412738Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7412829Z               "line": 752
2026-06-03T22:00:56.7412913Z             },
2026-06-03T22:00:56.7412993Z             {
2026-06-03T22:00:56.7413130Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7413219Z               "line": 809
2026-06-03T22:00:56.7413300Z             },
2026-06-03T22:00:56.7413383Z             {
2026-06-03T22:00:56.7413516Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7413611Z               "line": 863
2026-06-03T22:00:56.7413691Z             },
2026-06-03T22:00:56.7413777Z             {
2026-06-03T22:00:56.7413916Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7414002Z               "line": 915
2026-06-03T22:00:56.7414087Z             },
2026-06-03T22:00:56.7414165Z             {
2026-06-03T22:00:56.7414308Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7414396Z               "line": 1079
2026-06-03T22:00:56.7414486Z             }
2026-06-03T22:00:56.7414569Z           ]
2026-06-03T22:00:56.7414649Z         }
2026-06-03T22:00:56.7414735Z       }
2026-06-03T22:00:56.7414814Z     },
2026-06-03T22:00:56.7414896Z     {
2026-06-03T22:00:56.7414990Z       "id": "REQ-PAIR-2",
2026-06-03T22:00:56.7415150Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-03T22:00:56.7415247Z       "requiredStages": [
2026-06-03T22:00:56.7415332Z         "impl",
2026-06-03T22:00:56.7415415Z         "unit"
2026-06-03T22:00:56.7415494Z       ],
2026-06-03T22:00:56.7415578Z       "stages": {
2026-06-03T22:00:56.7415658Z         "doc": {
2026-06-03T22:00:56.7415751Z           "complete": false,
2026-06-03T22:00:56.7415842Z           "evidence": []
2026-06-03T22:00:56.7415921Z         },
2026-06-03T22:00:56.7416004Z         "impl": {
2026-06-03T22:00:56.7416093Z           "complete": true,
2026-06-03T22:00:56.7416188Z           "evidence": [
2026-06-03T22:00:56.7416268Z             {
2026-06-03T22:00:56.7416399Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7416494Z               "line": 42
2026-06-03T22:00:56.7416571Z             },
2026-06-03T22:00:56.7416651Z             {
2026-06-03T22:00:56.7416770Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7416857Z               "line": 151
2026-06-03T22:00:56.7416937Z             },
2026-06-03T22:00:56.7417021Z             {
2026-06-03T22:00:56.7417139Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7419664Z               "line": 171
2026-06-03T22:00:56.7419786Z             },
2026-06-03T22:00:56.7419868Z             {
2026-06-03T22:00:56.7420023Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7420116Z               "line": 209
2026-06-03T22:00:56.7420201Z             },
2026-06-03T22:00:56.7420288Z             {
2026-06-03T22:00:56.7420618Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7420720Z               "line": 232
2026-06-03T22:00:56.7420902Z             }
2026-06-03T22:00:56.7420988Z           ]
2026-06-03T22:00:56.7421067Z         },
2026-06-03T22:00:56.7421152Z         "int": {
2026-06-03T22:00:56.7421254Z           "complete": false,
2026-06-03T22:00:56.7421342Z           "evidence": []
2026-06-03T22:00:56.7421427Z         },
2026-06-03T22:00:56.7421510Z         "unit": {
2026-06-03T22:00:56.7421606Z           "complete": true,
2026-06-03T22:00:56.7421692Z           "evidence": [
2026-06-03T22:00:56.7421777Z             {
2026-06-03T22:00:56.7421908Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7421995Z               "line": 253
2026-06-03T22:00:56.7422078Z             },
2026-06-03T22:00:56.7422157Z             {
2026-06-03T22:00:56.7422282Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7422367Z               "line": 272
2026-06-03T22:00:56.7422449Z             },
2026-06-03T22:00:56.7422539Z             {
2026-06-03T22:00:56.7422657Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7422752Z               "line": 284
2026-06-03T22:00:56.7422833Z             },
2026-06-03T22:00:56.7422916Z             {
2026-06-03T22:00:56.7423033Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7423123Z               "line": 303
2026-06-03T22:00:56.7423207Z             },
2026-06-03T22:00:56.7423285Z             {
2026-06-03T22:00:56.7423403Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7423489Z               "line": 319
2026-06-03T22:00:56.7423571Z             },
2026-06-03T22:00:56.7423650Z             {
2026-06-03T22:00:56.7423772Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7423862Z               "line": 331
2026-06-03T22:00:56.7423941Z             },
2026-06-03T22:00:56.7424024Z             {
2026-06-03T22:00:56.7424140Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7424238Z               "line": 343
2026-06-03T22:00:56.7424317Z             },
2026-06-03T22:00:56.7424405Z             {
2026-06-03T22:00:56.7424536Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7424623Z               "line": 356
2026-06-03T22:00:56.7424705Z             },
2026-06-03T22:00:56.7424784Z             {
2026-06-03T22:00:56.7424908Z               "path": "crates/spt-store/src/trust.rs",
2026-06-03T22:00:56.7424992Z               "line": 370
2026-06-03T22:00:56.7425073Z             }
2026-06-03T22:00:56.7425157Z           ]
2026-06-03T22:00:56.7425234Z         }
2026-06-03T22:00:56.7425317Z       }
2026-06-03T22:00:56.7425394Z     },
2026-06-03T22:00:56.7425477Z     {
2026-06-03T22:00:56.7425573Z       "id": "REQ-PAIR-3",
2026-06-03T22:00:56.7425755Z       "title": "Fetch current pairing code from any paired node",
2026-06-03T22:00:56.7425854Z       "requiredStages": [
2026-06-03T22:00:56.7425939Z         "impl",
2026-06-03T22:00:56.7426032Z         "unit"
2026-06-03T22:00:56.7426113Z       ],
2026-06-03T22:00:56.7426201Z       "stages": {
2026-06-03T22:00:56.7426286Z         "doc": {
2026-06-03T22:00:56.7426382Z           "complete": false,
2026-06-03T22:00:56.7426476Z           "evidence": []
2026-06-03T22:00:56.7426557Z         },
2026-06-03T22:00:56.7426646Z         "impl": {
2026-06-03T22:00:56.7426736Z           "complete": true,
2026-06-03T22:00:56.7426827Z           "evidence": [
2026-06-03T22:00:56.7426906Z             {
2026-06-03T22:00:56.7427026Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7427115Z               "line": 452
2026-06-03T22:00:56.7427196Z             },
2026-06-03T22:00:56.7427278Z             {
2026-06-03T22:00:56.7427384Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7427473Z               "line": 488
2026-06-03T22:00:56.7427554Z             },
2026-06-03T22:00:56.7427638Z             {
2026-06-03T22:00:56.7427748Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7427916Z               "line": 548
2026-06-03T22:00:56.7428002Z             }
2026-06-03T22:00:56.7428154Z           ]
2026-06-03T22:00:56.7428236Z         },
2026-06-03T22:00:56.7428316Z         "int": {
2026-06-03T22:00:56.7428411Z           "complete": false,
2026-06-03T22:00:56.7428504Z           "evidence": []
2026-06-03T22:00:56.7428582Z         },
2026-06-03T22:00:56.7428666Z         "unit": {
2026-06-03T22:00:56.7428756Z           "complete": true,
2026-06-03T22:00:56.7428845Z           "evidence": [
2026-06-03T22:00:56.7428923Z             {
2026-06-03T22:00:56.7429032Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7429121Z               "line": 656
2026-06-03T22:00:56.7429200Z             },
2026-06-03T22:00:56.7429284Z             {
2026-06-03T22:00:56.7429668Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7429851Z               "line": 673
2026-06-03T22:00:56.7429940Z             },
2026-06-03T22:00:56.7430023Z             {
2026-06-03T22:00:56.7430146Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7430234Z               "line": 687
2026-06-03T22:00:56.7430323Z             },
2026-06-03T22:00:56.7430402Z             {
2026-06-03T22:00:56.7430511Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7430596Z               "line": 703
2026-06-03T22:00:56.7430680Z             },
2026-06-03T22:00:56.7430762Z             {
2026-06-03T22:00:56.7430870Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7430958Z               "line": 724
2026-06-03T22:00:56.7431037Z             },
2026-06-03T22:00:56.7431119Z             {
2026-06-03T22:00:56.7431225Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7431317Z               "line": 740
2026-06-03T22:00:56.7431400Z             },
2026-06-03T22:00:56.7431480Z             {
2026-06-03T22:00:56.7431589Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7431675Z               "line": 753
2026-06-03T22:00:56.7431757Z             },
2026-06-03T22:00:56.7431839Z             {
2026-06-03T22:00:56.7431951Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7432044Z               "line": 762
2026-06-03T22:00:56.7432124Z             }
2026-06-03T22:00:56.7432207Z           ]
2026-06-03T22:00:56.7432285Z         }
2026-06-03T22:00:56.7432369Z       }
2026-06-03T22:00:56.7432448Z     },
2026-06-03T22:00:56.7432532Z     {
2026-06-03T22:00:56.7432631Z       "id": "REQ-PAIR-4",
2026-06-03T22:00:56.7432753Z       "title": "Subnet naming on first pairing",
2026-06-03T22:00:56.7432850Z       "requiredStages": [
2026-06-03T22:00:56.7432930Z         "impl",
2026-06-03T22:00:56.7433013Z         "unit"
2026-06-03T22:00:56.7433090Z       ],
2026-06-03T22:00:56.7433174Z       "stages": {
2026-06-03T22:00:56.7433258Z         "doc": {
2026-06-03T22:00:56.7433349Z           "complete": false,
2026-06-03T22:00:56.7433438Z           "evidence": []
2026-06-03T22:00:56.7433516Z         },
2026-06-03T22:00:56.7433602Z         "impl": {
2026-06-03T22:00:56.7433696Z           "complete": true,
2026-06-03T22:00:56.7433787Z           "evidence": [
2026-06-03T22:00:56.7433877Z             {
2026-06-03T22:00:56.7434011Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-03T22:00:56.7434102Z               "line": 145
2026-06-03T22:00:56.7434180Z             }
2026-06-03T22:00:56.7434262Z           ]
2026-06-03T22:00:56.7434340Z         },
2026-06-03T22:00:56.7434422Z         "int": {
2026-06-03T22:00:56.7434514Z           "complete": false,
2026-06-03T22:00:56.7434601Z           "evidence": []
2026-06-03T22:00:56.7434680Z         },
2026-06-03T22:00:56.7434761Z         "unit": {
2026-06-03T22:00:56.7434852Z           "complete": true,
2026-06-03T22:00:56.7434937Z           "evidence": [
2026-06-03T22:00:56.7435021Z             {
2026-06-03T22:00:56.7435170Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7435255Z               "line": 967
2026-06-03T22:00:56.7435338Z             }
2026-06-03T22:00:56.7435420Z           ]
2026-06-03T22:00:56.7435637Z         }
2026-06-03T22:00:56.7435721Z       }
2026-06-03T22:00:56.7435904Z     },
2026-06-03T22:00:56.7435987Z     {
2026-06-03T22:00:56.7436081Z       "id": "REQ-PAIR-5",
2026-06-03T22:00:56.7436485Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-03T22:00:56.7436578Z       "requiredStages": [
2026-06-03T22:00:56.7436665Z         "impl",
2026-06-03T22:00:56.7436746Z         "unit"
2026-06-03T22:00:56.7436831Z       ],
2026-06-03T22:00:56.7436921Z       "stages": {
2026-06-03T22:00:56.7437002Z         "doc": {
2026-06-03T22:00:56.7437099Z           "complete": false,
2026-06-03T22:00:56.7437186Z           "evidence": []
2026-06-03T22:00:56.7437269Z         },
2026-06-03T22:00:56.7437351Z         "impl": {
2026-06-03T22:00:56.7437447Z           "complete": true,
2026-06-03T22:00:56.7437536Z           "evidence": [
2026-06-03T22:00:56.7437615Z             {
2026-06-03T22:00:56.7437795Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-03T22:00:56.7437883Z               "line": 33
2026-06-03T22:00:56.7437972Z             },
2026-06-03T22:00:56.7438052Z             {
2026-06-03T22:00:56.7438214Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-03T22:00:56.7438304Z               "line": 45
2026-06-03T22:00:56.7438385Z             },
2026-06-03T22:00:56.7438466Z             {
2026-06-03T22:00:56.7438617Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-03T22:00:56.7438704Z               "line": 59
2026-06-03T22:00:56.7438785Z             },
2026-06-03T22:00:56.7438863Z             {
2026-06-03T22:00:56.7439008Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7439094Z               "line": 306
2026-06-03T22:00:56.7439175Z             }
2026-06-03T22:00:56.7439254Z           ]
2026-06-03T22:00:56.7439472Z         },
2026-06-03T22:00:56.7439563Z         "int": {
2026-06-03T22:00:56.7439662Z           "complete": false,
2026-06-03T22:00:56.7439754Z           "evidence": []
2026-06-03T22:00:56.7439838Z         },
2026-06-03T22:00:56.7439924Z         "unit": {
2026-06-03T22:00:56.7440015Z           "complete": true,
2026-06-03T22:00:56.7440106Z           "evidence": [
2026-06-03T22:00:56.7440185Z             {
2026-06-03T22:00:56.7440355Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-03T22:00:56.7440445Z               "line": 72
2026-06-03T22:00:56.7440524Z             },
2026-06-03T22:00:56.7440607Z             {
2026-06-03T22:00:56.7440759Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-03T22:00:56.7440849Z               "line": 82
2026-06-03T22:00:56.7440933Z             },
2026-06-03T22:00:56.7441012Z             {
2026-06-03T22:00:56.7441168Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-03T22:00:56.7441251Z               "line": 92
2026-06-03T22:00:56.7441334Z             },
2026-06-03T22:00:56.7441418Z             {
2026-06-03T22:00:56.7441571Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-03T22:00:56.7441665Z               "line": 102
2026-06-03T22:00:56.7441742Z             },
2026-06-03T22:00:56.7441822Z             {
2026-06-03T22:00:56.7441975Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-03T22:00:56.7442064Z               "line": 117
2026-06-03T22:00:56.7442141Z             },
2026-06-03T22:00:56.7442224Z             {
2026-06-03T22:00:56.7442365Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7442452Z               "line": 745
2026-06-03T22:00:56.7442534Z             },
2026-06-03T22:00:56.7442616Z             {
2026-06-03T22:00:56.7442758Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7442844Z               "line": 801
2026-06-03T22:00:56.7442929Z             },
2026-06-03T22:00:56.7443024Z             {
2026-06-03T22:00:56.7443280Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-03T22:00:56.7443377Z               "line": 1021
2026-06-03T22:00:56.7443557Z             }
2026-06-03T22:00:56.7443641Z           ]
2026-06-03T22:00:56.7443719Z         }
2026-06-03T22:00:56.7443805Z       }
2026-06-03T22:00:56.7443888Z     },
2026-06-03T22:00:56.7443965Z     {
2026-06-03T22:00:56.7444062Z       "id": "REQ-PAIR-6",
2026-06-03T22:00:56.7444387Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-03T22:00:56.7444485Z       "requiredStages": [
2026-06-03T22:00:56.7444571Z         "impl",
2026-06-03T22:00:56.7444655Z         "unit"
2026-06-03T22:00:56.7444738Z       ],
2026-06-03T22:00:56.7444822Z       "stages": {
2026-06-03T22:00:56.7444907Z         "doc": {
2026-06-03T22:00:56.7445001Z           "complete": false,
2026-06-03T22:00:56.7445096Z           "evidence": []
2026-06-03T22:00:56.7445174Z         },
2026-06-03T22:00:56.7445261Z         "impl": {
2026-06-03T22:00:56.7445361Z           "complete": true,
2026-06-03T22:00:56.7445449Z           "evidence": [
2026-06-03T22:00:56.7445536Z             {
2026-06-03T22:00:56.7445648Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7445736Z               "line": 488
2026-06-03T22:00:56.7445813Z             },
2026-06-03T22:00:56.7445895Z             {
2026-06-03T22:00:56.7446008Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7446093Z               "line": 548
2026-06-03T22:00:56.7446176Z             },
2026-06-03T22:00:56.7446254Z             {
2026-06-03T22:00:56.7446381Z               "path": "crates/spt/src/elevation.rs",
2026-06-03T22:00:56.7446471Z               "line": 18
2026-06-03T22:00:56.7446550Z             },
2026-06-03T22:00:56.7446632Z             {
2026-06-03T22:00:56.7446748Z               "path": "crates/spt/src/elevation.rs",
2026-06-03T22:00:56.7446837Z               "line": 43
2026-06-03T22:00:56.7446916Z             },
2026-06-03T22:00:56.7446999Z             {
2026-06-03T22:00:56.7447122Z               "path": "crates/spt/src/elevation.rs",
2026-06-03T22:00:56.7447206Z               "line": 64
2026-06-03T22:00:56.7447291Z             }
2026-06-03T22:00:56.7447370Z           ]
2026-06-03T22:00:56.7447452Z         },
2026-06-03T22:00:56.7447533Z         "int": {
2026-06-03T22:00:56.7447627Z           "complete": false,
2026-06-03T22:00:56.7447718Z           "evidence": []
2026-06-03T22:00:56.7447797Z         },
2026-06-03T22:00:56.7447883Z         "unit": {
2026-06-03T22:00:56.7447973Z           "complete": true,
2026-06-03T22:00:56.7448062Z           "evidence": [
2026-06-03T22:00:56.7448142Z             {
2026-06-03T22:00:56.7448251Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7448340Z               "line": 775
2026-06-03T22:00:56.7448419Z             },
2026-06-03T22:00:56.7448499Z             {
2026-06-03T22:00:56.7448603Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7448690Z               "line": 792
2026-06-03T22:00:56.7448775Z             },
2026-06-03T22:00:56.7448859Z             {
2026-06-03T22:00:56.7448977Z               "path": "crates/spt/src/elevation.rs",
2026-06-03T22:00:56.7449068Z               "line": 126
2026-06-03T22:00:56.7449151Z             },
2026-06-03T22:00:56.7449230Z             {
2026-06-03T22:00:56.7449465Z               "path": "crates/spt/src/elevation.rs",
2026-06-03T22:00:56.7449554Z               "line": 135
2026-06-03T22:00:56.7449637Z             }
2026-06-03T22:00:56.7449720Z           ]
2026-06-03T22:00:56.7449797Z         }
2026-06-03T22:00:56.7449878Z       }
2026-06-03T22:00:56.7449955Z     },
2026-06-03T22:00:56.7450034Z     {
2026-06-03T22:00:56.7450124Z       "id": "REQ-PAIR-7",
2026-06-03T22:00:56.7450313Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-03T22:00:56.7450409Z       "requiredStages": [],
2026-06-03T22:00:56.7450491Z       "stages": {
2026-06-03T22:00:56.7450573Z         "doc": {
2026-06-03T22:00:56.7450664Z           "complete": false,
2026-06-03T22:00:56.7450873Z           "evidence": []
2026-06-03T22:00:56.7450959Z         },
2026-06-03T22:00:56.7451147Z         "impl": {
2026-06-03T22:00:56.7451241Z           "complete": false,
2026-06-03T22:00:56.7451326Z           "evidence": []
2026-06-03T22:00:56.7451407Z         },
2026-06-03T22:00:56.7451487Z         "int": {
2026-06-03T22:00:56.7451578Z           "complete": false,
2026-06-03T22:00:56.7451664Z           "evidence": []
2026-06-03T22:00:56.7451745Z         },
2026-06-03T22:00:56.7451833Z         "unit": {
2026-06-03T22:00:56.7451921Z           "complete": false,
2026-06-03T22:00:56.7452008Z           "evidence": []
2026-06-03T22:00:56.7452084Z         }
2026-06-03T22:00:56.7452165Z       }
2026-06-03T22:00:56.7452241Z     },
2026-06-03T22:00:56.7452320Z     {
2026-06-03T22:00:56.7452413Z       "id": "REQ-REACH-1",
2026-06-03T22:00:56.7452580Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-03T22:00:56.7452679Z       "requiredStages": [],
2026-06-03T22:00:56.7452767Z       "stages": {
2026-06-03T22:00:56.7452852Z         "doc": {
2026-06-03T22:00:56.7452942Z           "complete": false,
2026-06-03T22:00:56.7453038Z           "evidence": []
2026-06-03T22:00:56.7453118Z         },
2026-06-03T22:00:56.7453200Z         "impl": {
2026-06-03T22:00:56.7453294Z           "complete": false,
2026-06-03T22:00:56.7453380Z           "evidence": []
2026-06-03T22:00:56.7453461Z         },
2026-06-03T22:00:56.7453542Z         "int": {
2026-06-03T22:00:56.7453634Z           "complete": false,
2026-06-03T22:00:56.7453721Z           "evidence": []
2026-06-03T22:00:56.7453798Z         },
2026-06-03T22:00:56.7453880Z         "unit": {
2026-06-03T22:00:56.7453968Z           "complete": false,
2026-06-03T22:00:56.7454055Z           "evidence": []
2026-06-03T22:00:56.7454131Z         }
2026-06-03T22:00:56.7454211Z       }
2026-06-03T22:00:56.7454291Z     },
2026-06-03T22:00:56.7454367Z     {
2026-06-03T22:00:56.7454459Z       "id": "REQ-REACH-2",
2026-06-03T22:00:56.7454636Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-03T22:00:56.7454735Z       "requiredStages": [],
2026-06-03T22:00:56.7454822Z       "stages": {
2026-06-03T22:00:56.7454904Z         "doc": {
2026-06-03T22:00:56.7454996Z           "complete": false,
2026-06-03T22:00:56.7455083Z           "evidence": []
2026-06-03T22:00:56.7455164Z         },
2026-06-03T22:00:56.7455245Z         "impl": {
2026-06-03T22:00:56.7455334Z           "complete": false,
2026-06-03T22:00:56.7455420Z           "evidence": []
2026-06-03T22:00:56.7455500Z         },
2026-06-03T22:00:56.7455582Z         "int": {
2026-06-03T22:00:56.7455671Z           "complete": false,
2026-06-03T22:00:56.7455758Z           "evidence": []
2026-06-03T22:00:56.7455837Z         },
2026-06-03T22:00:56.7455921Z         "unit": {
2026-06-03T22:00:56.7456013Z           "complete": false,
2026-06-03T22:00:56.7456101Z           "evidence": []
2026-06-03T22:00:56.7456181Z         }
2026-06-03T22:00:56.7456260Z       }
2026-06-03T22:00:56.7456341Z     },
2026-06-03T22:00:56.7456422Z     {
2026-06-03T22:00:56.7456529Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-03T22:00:56.7456780Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-03T22:00:56.7456878Z       "requiredStages": [
2026-06-03T22:00:56.7456963Z         "impl",
2026-06-03T22:00:56.7457042Z         "unit"
2026-06-03T22:00:56.7457124Z       ],
2026-06-03T22:00:56.7457206Z       "stages": {
2026-06-03T22:00:56.7457289Z         "doc": {
2026-06-03T22:00:56.7457378Z           "complete": false,
2026-06-03T22:00:56.7457467Z           "evidence": []
2026-06-03T22:00:56.7457549Z         },
2026-06-03T22:00:56.7457629Z         "impl": {
2026-06-03T22:00:56.7457725Z           "complete": true,
2026-06-03T22:00:56.7457810Z           "evidence": [
2026-06-03T22:00:56.7457891Z             {
2026-06-03T22:00:56.7458021Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-03T22:00:56.7458110Z               "line": 18
2026-06-03T22:00:56.7458193Z             },
2026-06-03T22:00:56.7458375Z             {
2026-06-03T22:00:56.7458505Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-03T22:00:56.7458660Z               "line": 35
2026-06-03T22:00:56.7458740Z             },
2026-06-03T22:00:56.7458854Z             {
2026-06-03T22:00:56.7458975Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-03T22:00:56.7459062Z               "line": 65
2026-06-03T22:00:56.7459138Z             }
2026-06-03T22:00:56.7459220Z           ]
2026-06-03T22:00:56.7459297Z         },
2026-06-03T22:00:56.7459497Z         "int": {
2026-06-03T22:00:56.7459590Z           "complete": false,
2026-06-03T22:00:56.7459680Z           "evidence": []
2026-06-03T22:00:56.7459762Z         },
2026-06-03T22:00:56.7459843Z         "unit": {
2026-06-03T22:00:56.7459936Z           "complete": true,
2026-06-03T22:00:56.7460022Z           "evidence": [
2026-06-03T22:00:56.7460103Z             {
2026-06-03T22:00:56.7460222Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-03T22:00:56.7460314Z               "line": 170
2026-06-03T22:00:56.7460397Z             },
2026-06-03T22:00:56.7460474Z             {
2026-06-03T22:00:56.7460599Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-03T22:00:56.7460684Z               "line": 184
2026-06-03T22:00:56.7460766Z             },
2026-06-03T22:00:56.7460844Z             {
2026-06-03T22:00:56.7460964Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-03T22:00:56.7461053Z               "line": 193
2026-06-03T22:00:56.7461132Z             }
2026-06-03T22:00:56.7461212Z           ]
2026-06-03T22:00:56.7461289Z         }
2026-06-03T22:00:56.7461368Z       }
2026-06-03T22:00:56.7461445Z     },
2026-06-03T22:00:56.7461524Z     {
2026-06-03T22:00:56.7461633Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-03T22:00:56.7461801Z       "title": "Hostable endpoint-types capability declaration",
2026-06-03T22:00:56.7461896Z       "requiredStages": [
2026-06-03T22:00:56.7461977Z         "impl",
2026-06-03T22:00:56.7462062Z         "unit"
2026-06-03T22:00:56.7462145Z       ],
2026-06-03T22:00:56.7462231Z       "stages": {
2026-06-03T22:00:56.7462320Z         "doc": {
2026-06-03T22:00:56.7462412Z           "complete": false,
2026-06-03T22:00:56.7462503Z           "evidence": []
2026-06-03T22:00:56.7462580Z         },
2026-06-03T22:00:56.7462666Z         "impl": {
2026-06-03T22:00:56.7462757Z           "complete": true,
2026-06-03T22:00:56.7462846Z           "evidence": [
2026-06-03T22:00:56.7462926Z             {
2026-06-03T22:00:56.7463056Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.7463143Z               "line": 186
2026-06-03T22:00:56.7463222Z             }
2026-06-03T22:00:56.7463304Z           ]
2026-06-03T22:00:56.7463383Z         },
2026-06-03T22:00:56.7463464Z         "int": {
2026-06-03T22:00:56.7463560Z           "complete": false,
2026-06-03T22:00:56.7463647Z           "evidence": []
2026-06-03T22:00:56.7463727Z         },
2026-06-03T22:00:56.7463808Z         "unit": {
2026-06-03T22:00:56.7463904Z           "complete": true,
2026-06-03T22:00:56.7463990Z           "evidence": [
2026-06-03T22:00:56.7464071Z             {
2026-06-03T22:00:56.7464200Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.7464284Z               "line": 301
2026-06-03T22:00:56.7464366Z             }
2026-06-03T22:00:56.7464446Z           ]
2026-06-03T22:00:56.7464528Z         }
2026-06-03T22:00:56.7464605Z       }
2026-06-03T22:00:56.7464685Z     },
2026-06-03T22:00:56.7464764Z     {
2026-06-03T22:00:56.7464861Z       "id": "REQ-SEAM-HISTORY",
2026-06-03T22:00:56.7465074Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-03T22:00:56.7465165Z       "requiredStages": [
2026-06-03T22:00:56.7465247Z         "impl",
2026-06-03T22:00:56.7465326Z         "unit",
2026-06-03T22:00:56.7465409Z         "int"
2026-06-03T22:00:56.7465491Z       ],
2026-06-03T22:00:56.7465573Z       "stages": {
2026-06-03T22:00:56.7465658Z         "doc": {
2026-06-03T22:00:56.7465868Z           "complete": false,
2026-06-03T22:00:56.7465962Z           "evidence": []
2026-06-03T22:00:56.7466041Z         },
2026-06-03T22:00:56.7466276Z         "impl": {
2026-06-03T22:00:56.7466368Z           "complete": true,
2026-06-03T22:00:56.7466454Z           "evidence": [
2026-06-03T22:00:56.7466535Z             {
2026-06-03T22:00:56.7466655Z               "path": "crates/spt-live/src/echo.rs",
2026-06-03T22:00:56.7466742Z               "line": 24
2026-06-03T22:00:56.7466821Z             },
2026-06-03T22:00:56.7466901Z             {
2026-06-03T22:00:56.7467024Z               "path": "crates/spt-live/src/history.rs",
2026-06-03T22:00:56.7467108Z               "line": 22
2026-06-03T22:00:56.7467188Z             }
2026-06-03T22:00:56.7467268Z           ]
2026-06-03T22:00:56.7467351Z         },
2026-06-03T22:00:56.7467430Z         "int": {
2026-06-03T22:00:56.7467526Z           "complete": true,
2026-06-03T22:00:56.7467615Z           "evidence": [
2026-06-03T22:00:56.7467695Z             {
2026-06-03T22:00:56.7467833Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-03T22:00:56.7467918Z               "line": 202
2026-06-03T22:00:56.7468005Z             }
2026-06-03T22:00:56.7468083Z           ]
2026-06-03T22:00:56.7468163Z         },
2026-06-03T22:00:56.7468246Z         "unit": {
2026-06-03T22:00:56.7468335Z           "complete": true,
2026-06-03T22:00:56.7468423Z           "evidence": [
2026-06-03T22:00:56.7468504Z             {
2026-06-03T22:00:56.7468621Z               "path": "crates/spt-live/src/echo.rs",
2026-06-03T22:00:56.7468706Z               "line": 163
2026-06-03T22:00:56.7468787Z             },
2026-06-03T22:00:56.7468868Z             {
2026-06-03T22:00:56.7468981Z               "path": "crates/spt-live/src/echo.rs",
2026-06-03T22:00:56.7469067Z               "line": 186
2026-06-03T22:00:56.7469145Z             },
2026-06-03T22:00:56.7469227Z             {
2026-06-03T22:00:56.7469550Z               "path": "crates/spt-live/src/echo.rs",
2026-06-03T22:00:56.7469733Z               "line": 195
2026-06-03T22:00:56.7469853Z             },
2026-06-03T22:00:56.7469935Z             {
2026-06-03T22:00:56.7470079Z               "path": "crates/spt-live/src/history.rs",
2026-06-03T22:00:56.7470163Z               "line": 195
2026-06-03T22:00:56.7470245Z             },
2026-06-03T22:00:56.7470324Z             {
2026-06-03T22:00:56.7470447Z               "path": "crates/spt-live/src/history.rs",
2026-06-03T22:00:56.7470536Z               "line": 209
2026-06-03T22:00:56.7470615Z             },
2026-06-03T22:00:56.7470695Z             {
2026-06-03T22:00:56.7470814Z               "path": "crates/spt-live/src/history.rs",
2026-06-03T22:00:56.7470901Z               "line": 228
2026-06-03T22:00:56.7470979Z             },
2026-06-03T22:00:56.7471059Z             {
2026-06-03T22:00:56.7471180Z               "path": "crates/spt-live/src/history.rs",
2026-06-03T22:00:56.7471264Z               "line": 248
2026-06-03T22:00:56.7471346Z             },
2026-06-03T22:00:56.7471423Z             {
2026-06-03T22:00:56.7471547Z               "path": "crates/spt-live/src/history.rs",
2026-06-03T22:00:56.7471631Z               "line": 264
2026-06-03T22:00:56.7471718Z             },
2026-06-03T22:00:56.7471799Z             {
2026-06-03T22:00:56.7471916Z               "path": "crates/spt-live/src/history.rs",
2026-06-03T22:00:56.7472004Z               "line": 279
2026-06-03T22:00:56.7472082Z             }
2026-06-03T22:00:56.7472162Z           ]
2026-06-03T22:00:56.7472239Z         }
2026-06-03T22:00:56.7472320Z       }
2026-06-03T22:00:56.7472399Z     },
2026-06-03T22:00:56.7472477Z     {
2026-06-03T22:00:56.7472577Z       "id": "REQ-SEAM-INJECT",
2026-06-03T22:00:56.7472762Z       "title": "inject-input methods configurable per activity-state",
2026-06-03T22:00:56.7472858Z       "requiredStages": [
2026-06-03T22:00:56.7472939Z         "impl",
2026-06-03T22:00:56.7473020Z         "unit"
2026-06-03T22:00:56.7473100Z       ],
2026-06-03T22:00:56.7473181Z       "stages": {
2026-06-03T22:00:56.7473264Z         "doc": {
2026-06-03T22:00:56.7473491Z           "complete": false,
2026-06-03T22:00:56.7473587Z           "evidence": []
2026-06-03T22:00:56.7473804Z         },
2026-06-03T22:00:56.7473890Z         "impl": {
2026-06-03T22:00:56.7473985Z           "complete": true,
2026-06-03T22:00:56.7474072Z           "evidence": [
2026-06-03T22:00:56.7474155Z             {
2026-06-03T22:00:56.7474276Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-03T22:00:56.7474365Z               "line": 19
2026-06-03T22:00:56.7474445Z             },
2026-06-03T22:00:56.7474526Z             {
2026-06-03T22:00:56.7474650Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-03T22:00:56.7474736Z               "line": 104
2026-06-03T22:00:56.7474819Z             }
2026-06-03T22:00:56.7474896Z           ]
2026-06-03T22:00:56.7474975Z         },
2026-06-03T22:00:56.7475054Z         "int": {
2026-06-03T22:00:56.7475148Z           "complete": false,
2026-06-03T22:00:56.7475236Z           "evidence": []
2026-06-03T22:00:56.7475312Z         },
2026-06-03T22:00:56.7475402Z         "unit": {
2026-06-03T22:00:56.7475492Z           "complete": true,
2026-06-03T22:00:56.7475590Z           "evidence": [
2026-06-03T22:00:56.7475667Z             {
2026-06-03T22:00:56.7475790Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-03T22:00:56.7475877Z               "line": 222
2026-06-03T22:00:56.7475956Z             },
2026-06-03T22:00:56.7476037Z             {
2026-06-03T22:00:56.7476154Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-03T22:00:56.7476243Z               "line": 236
2026-06-03T22:00:56.7476320Z             }
2026-06-03T22:00:56.7476401Z           ]
2026-06-03T22:00:56.7476483Z         }
2026-06-03T22:00:56.7476560Z       }
2026-06-03T22:00:56.7476639Z     },
2026-06-03T22:00:56.7476716Z     {
2026-06-03T22:00:56.7476822Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-03T22:00:56.7476970Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-03T22:00:56.7477064Z       "requiredStages": [
2026-06-03T22:00:56.7477152Z         "impl",
2026-06-03T22:00:56.7477233Z         "unit"
2026-06-03T22:00:56.7477312Z       ],
2026-06-03T22:00:56.7477399Z       "stages": {
2026-06-03T22:00:56.7477482Z         "doc": {
2026-06-03T22:00:56.7477571Z           "complete": false,
2026-06-03T22:00:56.7477660Z           "evidence": []
2026-06-03T22:00:56.7477741Z         },
2026-06-03T22:00:56.7477822Z         "impl": {
2026-06-03T22:00:56.7477912Z           "complete": true,
2026-06-03T22:00:56.7477998Z           "evidence": [
2026-06-03T22:00:56.7478079Z             {
2026-06-03T22:00:56.7478201Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7478287Z               "line": 18
2026-06-03T22:00:56.7478367Z             },
2026-06-03T22:00:56.7478445Z             {
2026-06-03T22:00:56.7478565Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7478650Z               "line": 257
2026-06-03T22:00:56.7478732Z             }
2026-06-03T22:00:56.7478810Z           ]
2026-06-03T22:00:56.7478891Z         },
2026-06-03T22:00:56.7478980Z         "int": {
2026-06-03T22:00:56.7479070Z           "complete": false,
2026-06-03T22:00:56.7479164Z           "evidence": []
2026-06-03T22:00:56.7479241Z         },
2026-06-03T22:00:56.7479323Z         "unit": {
2026-06-03T22:00:56.7479565Z           "complete": true,
2026-06-03T22:00:56.7479656Z           "evidence": [
2026-06-03T22:00:56.7479738Z             {
2026-06-03T22:00:56.7479854Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7479943Z               "line": 420
2026-06-03T22:00:56.7480022Z             },
2026-06-03T22:00:56.7480103Z             {
2026-06-03T22:00:56.7480222Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7480311Z               "line": 430
2026-06-03T22:00:56.7480393Z             }
2026-06-03T22:00:56.7480470Z           ]
2026-06-03T22:00:56.7480550Z         }
2026-06-03T22:00:56.7480628Z       }
2026-06-03T22:00:56.7480707Z     },
2026-06-03T22:00:56.7480791Z     {
2026-06-03T22:00:56.7481025Z       "id": "REQ-SEAM-PSYCHE",
2026-06-03T22:00:56.7481191Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-03T22:00:56.7481384Z       "requiredStages": [
2026-06-03T22:00:56.7481467Z         "impl",
2026-06-03T22:00:56.7481546Z         "unit",
2026-06-03T22:00:56.7481627Z         "int"
2026-06-03T22:00:56.7481706Z       ],
2026-06-03T22:00:56.7481792Z       "stages": {
2026-06-03T22:00:56.7481874Z         "doc": {
2026-06-03T22:00:56.7481963Z           "complete": false,
2026-06-03T22:00:56.7482051Z           "evidence": []
2026-06-03T22:00:56.7482129Z         },
2026-06-03T22:00:56.7482212Z         "impl": {
2026-06-03T22:00:56.7482302Z           "complete": true,
2026-06-03T22:00:56.7482387Z           "evidence": [
2026-06-03T22:00:56.7482467Z             {
2026-06-03T22:00:56.7482586Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-03T22:00:56.7482672Z               "line": 19
2026-06-03T22:00:56.7482755Z             },
2026-06-03T22:00:56.7482835Z             {
2026-06-03T22:00:56.7482957Z               "path": "crates/spt/src/api/live.rs",
2026-06-03T22:00:56.7483048Z               "line": 12
2026-06-03T22:00:56.7483130Z             },
2026-06-03T22:00:56.7483207Z             {
2026-06-03T22:00:56.7483324Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7483406Z               "line": 164
2026-06-03T22:00:56.7483488Z             }
2026-06-03T22:00:56.7483565Z           ]
2026-06-03T22:00:56.7483646Z         },
2026-06-03T22:00:56.7483728Z         "int": {
2026-06-03T22:00:56.7483818Z           "complete": true,
2026-06-03T22:00:56.7483906Z           "evidence": [
2026-06-03T22:00:56.7483983Z             {
2026-06-03T22:00:56.7484114Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-03T22:00:56.7484198Z               "line": 201
2026-06-03T22:00:56.7484278Z             }
2026-06-03T22:00:56.7484359Z           ]
2026-06-03T22:00:56.7484437Z         },
2026-06-03T22:00:56.7484520Z         "unit": {
2026-06-03T22:00:56.7484613Z           "complete": true,
2026-06-03T22:00:56.7484703Z           "evidence": [
2026-06-03T22:00:56.7484786Z             {
2026-06-03T22:00:56.7484907Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-03T22:00:56.7484994Z               "line": 161
2026-06-03T22:00:56.7485072Z             },
2026-06-03T22:00:56.7485152Z             {
2026-06-03T22:00:56.7485268Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-03T22:00:56.7485356Z               "line": 168
2026-06-03T22:00:56.7485434Z             },
2026-06-03T22:00:56.7485513Z             {
2026-06-03T22:00:56.7485631Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-03T22:00:56.7485715Z               "line": 191
2026-06-03T22:00:56.7485795Z             },
2026-06-03T22:00:56.7485875Z             {
2026-06-03T22:00:56.7485995Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-03T22:00:56.7486081Z               "line": 105
2026-06-03T22:00:56.7486163Z             },
2026-06-03T22:00:56.7486245Z             {
2026-06-03T22:00:56.7486367Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-03T22:00:56.7486462Z               "line": 122
2026-06-03T22:00:56.7486541Z             },
2026-06-03T22:00:56.7486788Z             {
2026-06-03T22:00:56.7487019Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-03T22:00:56.7487162Z               "line": 136
2026-06-03T22:00:56.7487246Z             }
2026-06-03T22:00:56.7487325Z           ]
2026-06-03T22:00:56.7487405Z         }
2026-06-03T22:00:56.7487484Z       }
2026-06-03T22:00:56.7487563Z     },
2026-06-03T22:00:56.7487641Z     {
2026-06-03T22:00:56.7487743Z       "id": "REQ-SEAM-RESUME",
2026-06-03T22:00:56.7487969Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-03T22:00:56.7488060Z       "requiredStages": [
2026-06-03T22:00:56.7488144Z         "impl",
2026-06-03T22:00:56.7488224Z         "unit"
2026-06-03T22:00:56.7488305Z       ],
2026-06-03T22:00:56.7488391Z       "stages": {
2026-06-03T22:00:56.7488576Z         "doc": {
2026-06-03T22:00:56.7488674Z           "complete": false,
2026-06-03T22:00:56.7488835Z           "evidence": []
2026-06-03T22:00:56.7488917Z         },
2026-06-03T22:00:56.7488998Z         "impl": {
2026-06-03T22:00:56.7489092Z           "complete": true,
2026-06-03T22:00:56.7489177Z           "evidence": [
2026-06-03T22:00:56.7489261Z             {
2026-06-03T22:00:56.7489526Z               "path": "crates/spt-live/src/resume.rs",
2026-06-03T22:00:56.7489616Z               "line": 19
2026-06-03T22:00:56.7489700Z             }
2026-06-03T22:00:56.7489777Z           ]
2026-06-03T22:00:56.7489860Z         },
2026-06-03T22:00:56.7489940Z         "int": {
2026-06-03T22:00:56.7490035Z           "complete": false,
2026-06-03T22:00:56.7490134Z           "evidence": []
2026-06-03T22:00:56.7490216Z         },
2026-06-03T22:00:56.7490301Z         "unit": {
2026-06-03T22:00:56.7490390Z           "complete": true,
2026-06-03T22:00:56.7490481Z           "evidence": [
2026-06-03T22:00:56.7490559Z             {
2026-06-03T22:00:56.7490689Z               "path": "crates/spt-live/src/resume.rs",
2026-06-03T22:00:56.7490783Z               "line": 145
2026-06-03T22:00:56.7490861Z             },
2026-06-03T22:00:56.7490943Z             {
2026-06-03T22:00:56.7491059Z               "path": "crates/spt-live/src/resume.rs",
2026-06-03T22:00:56.7491148Z               "line": 164
2026-06-03T22:00:56.7491231Z             },
2026-06-03T22:00:56.7491309Z             {
2026-06-03T22:00:56.7491432Z               "path": "crates/spt-live/src/resume.rs",
2026-06-03T22:00:56.7491518Z               "line": 182
2026-06-03T22:00:56.7491601Z             },
2026-06-03T22:00:56.7491679Z             {
2026-06-03T22:00:56.7491798Z               "path": "crates/spt-live/src/resume.rs",
2026-06-03T22:00:56.7491888Z               "line": 206
2026-06-03T22:00:56.7491967Z             }
2026-06-03T22:00:56.7492047Z           ]
2026-06-03T22:00:56.7492125Z         }
2026-06-03T22:00:56.7492205Z       }
2026-06-03T22:00:56.7492281Z     },
2026-06-03T22:00:56.7492366Z     {
2026-06-03T22:00:56.7492464Z       "id": "REQ-SEAM-SPAWN",
2026-06-03T22:00:56.7492576Z       "title": "spawn-session seam",
2026-06-03T22:00:56.7492671Z       "requiredStages": [
2026-06-03T22:00:56.7492751Z         "impl",
2026-06-03T22:00:56.7492832Z         "unit"
2026-06-03T22:00:56.7492909Z       ],
2026-06-03T22:00:56.7492996Z       "stages": {
2026-06-03T22:00:56.7493073Z         "doc": {
2026-06-03T22:00:56.7493167Z           "complete": false,
2026-06-03T22:00:56.7493256Z           "evidence": []
2026-06-03T22:00:56.7493335Z         },
2026-06-03T22:00:56.7493419Z         "impl": {
2026-06-03T22:00:56.7493507Z           "complete": true,
2026-06-03T22:00:56.7493597Z           "evidence": [
2026-06-03T22:00:56.7493676Z             {
2026-06-03T22:00:56.7493808Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-03T22:00:56.7493898Z               "line": 20
2026-06-03T22:00:56.7493974Z             }
2026-06-03T22:00:56.7494053Z           ]
2026-06-03T22:00:56.7494134Z         },
2026-06-03T22:00:56.7494217Z         "int": {
2026-06-03T22:00:56.7494307Z           "complete": false,
2026-06-03T22:00:56.7494402Z           "evidence": []
2026-06-03T22:00:56.7494481Z         },
2026-06-03T22:00:56.7494559Z         "unit": {
2026-06-03T22:00:56.7494652Z           "complete": true,
2026-06-03T22:00:56.7494738Z           "evidence": [
2026-06-03T22:00:56.7494821Z             {
2026-06-03T22:00:56.7494951Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-03T22:00:56.7495041Z               "line": 397
2026-06-03T22:00:56.7495122Z             },
2026-06-03T22:00:56.7495199Z             {
2026-06-03T22:00:56.7495326Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-03T22:00:56.7495410Z               "line": 404
2026-06-03T22:00:56.7495491Z             },
2026-06-03T22:00:56.7495571Z             {
2026-06-03T22:00:56.7495696Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-03T22:00:56.7495783Z               "line": 414
2026-06-03T22:00:56.7495986Z             },
2026-06-03T22:00:56.7496071Z             {
2026-06-03T22:00:56.7496297Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-03T22:00:56.7496388Z               "line": 420
2026-06-03T22:00:56.7496469Z             },
2026-06-03T22:00:56.7496546Z             {
2026-06-03T22:00:56.7496689Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-03T22:00:56.7496775Z               "line": 440
2026-06-03T22:00:56.7496856Z             },
2026-06-03T22:00:56.7496933Z             {
2026-06-03T22:00:56.7497065Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-03T22:00:56.7497153Z               "line": 473
2026-06-03T22:00:56.7497230Z             }
2026-06-03T22:00:56.7497312Z           ]
2026-06-03T22:00:56.7497392Z         }
2026-06-03T22:00:56.7497473Z       }
2026-06-03T22:00:56.7497551Z     },
2026-06-03T22:00:56.7497634Z     {
2026-06-03T22:00:56.7497739Z       "id": "REQ-SEAM-UPDATE",
2026-06-03T22:00:56.7497942Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-03T22:00:56.7498041Z       "requiredStages": [
2026-06-03T22:00:56.7498130Z         "impl",
2026-06-03T22:00:56.7498214Z         "unit"
2026-06-03T22:00:56.7498290Z       ],
2026-06-03T22:00:56.7498377Z       "stages": {
2026-06-03T22:00:56.7498461Z         "doc": {
2026-06-03T22:00:56.7498553Z           "complete": false,
2026-06-03T22:00:56.7498647Z           "evidence": []
2026-06-03T22:00:56.7498725Z         },
2026-06-03T22:00:56.7498811Z         "impl": {
2026-06-03T22:00:56.7498901Z           "complete": true,
2026-06-03T22:00:56.7498989Z           "evidence": [
2026-06-03T22:00:56.7499070Z             {
2026-06-03T22:00:56.7499221Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-03T22:00:56.7499310Z               "line": 28
2026-06-03T22:00:56.7499506Z             },
2026-06-03T22:00:56.7499590Z             {
2026-06-03T22:00:56.7499731Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-03T22:00:56.7499823Z               "line": 83
2026-06-03T22:00:56.7499903Z             }
2026-06-03T22:00:56.7499985Z           ]
2026-06-03T22:00:56.7500064Z         },
2026-06-03T22:00:56.7500142Z         "int": {
2026-06-03T22:00:56.7500233Z           "complete": false,
2026-06-03T22:00:56.7500318Z           "evidence": []
2026-06-03T22:00:56.7500397Z         },
2026-06-03T22:00:56.7500479Z         "unit": {
2026-06-03T22:00:56.7500569Z           "complete": true,
2026-06-03T22:00:56.7500659Z           "evidence": [
2026-06-03T22:00:56.7500738Z             {
2026-06-03T22:00:56.7500883Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-03T22:00:56.7500968Z               "line": 248
2026-06-03T22:00:56.7501048Z             },
2026-06-03T22:00:56.7501128Z             {
2026-06-03T22:00:56.7501265Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-03T22:00:56.7501352Z               "line": 259
2026-06-03T22:00:56.7501430Z             }
2026-06-03T22:00:56.7501515Z           ]
2026-06-03T22:00:56.7501593Z         }
2026-06-03T22:00:56.7501675Z       }
2026-06-03T22:00:56.7501761Z     },
2026-06-03T22:00:56.7501837Z     {
2026-06-03T22:00:56.7501930Z       "id": "REQ-SEC-1",
2026-06-03T22:00:56.7502430Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-03T22:00:56.7502527Z       "requiredStages": [],
2026-06-03T22:00:56.7502609Z       "stages": {
2026-06-03T22:00:56.7502691Z         "doc": {
2026-06-03T22:00:56.7502782Z           "complete": false,
2026-06-03T22:00:56.7502867Z           "evidence": []
2026-06-03T22:00:56.7502947Z         },
2026-06-03T22:00:56.7503029Z         "impl": {
2026-06-03T22:00:56.7503119Z           "complete": false,
2026-06-03T22:00:56.7503204Z           "evidence": []
2026-06-03T22:00:56.7503285Z         },
2026-06-03T22:00:56.7503367Z         "int": {
2026-06-03T22:00:56.7503455Z           "complete": false,
2026-06-03T22:00:56.7503663Z           "evidence": []
2026-06-03T22:00:56.7503745Z         },
2026-06-03T22:00:56.7503831Z         "unit": {
2026-06-03T22:00:56.7504023Z           "complete": false,
2026-06-03T22:00:56.7504111Z           "evidence": []
2026-06-03T22:00:56.7504192Z         }
2026-06-03T22:00:56.7504269Z       }
2026-06-03T22:00:56.7504347Z     },
2026-06-03T22:00:56.7504424Z     {
2026-06-03T22:00:56.7504519Z       "id": "REQ-START-1",
2026-06-03T22:00:56.7504744Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-03T22:00:56.7504841Z       "requiredStages": [
2026-06-03T22:00:56.7504924Z         "impl",
2026-06-03T22:00:56.7505002Z         "unit"
2026-06-03T22:00:56.7505082Z       ],
2026-06-03T22:00:56.7505164Z       "stages": {
2026-06-03T22:00:56.7505246Z         "doc": {
2026-06-03T22:00:56.7505335Z           "complete": false,
2026-06-03T22:00:56.7505424Z           "evidence": []
2026-06-03T22:00:56.7505503Z         },
2026-06-03T22:00:56.7505584Z         "impl": {
2026-06-03T22:00:56.7505683Z           "complete": true,
2026-06-03T22:00:56.7505767Z           "evidence": [
2026-06-03T22:00:56.7505855Z             {
2026-06-03T22:00:56.7505977Z               "path": "crates/spt-store/src/seed.rs",
2026-06-03T22:00:56.7506064Z               "line": 16
2026-06-03T22:00:56.7506148Z             }
2026-06-03T22:00:56.7506226Z           ]
2026-06-03T22:00:56.7506306Z         },
2026-06-03T22:00:56.7506385Z         "int": {
2026-06-03T22:00:56.7506478Z           "complete": false,
2026-06-03T22:00:56.7506566Z           "evidence": []
2026-06-03T22:00:56.7506648Z         },
2026-06-03T22:00:56.7506730Z         "unit": {
2026-06-03T22:00:56.7506820Z           "complete": true,
2026-06-03T22:00:56.7506909Z           "evidence": [
2026-06-03T22:00:56.7506988Z             {
2026-06-03T22:00:56.7507113Z               "path": "crates/spt-store/src/seed.rs",
2026-06-03T22:00:56.7507198Z               "line": 43
2026-06-03T22:00:56.7507281Z             },
2026-06-03T22:00:56.7507369Z             {
2026-06-03T22:00:56.7507484Z               "path": "crates/spt-store/src/seed.rs",
2026-06-03T22:00:56.7507576Z               "line": 59
2026-06-03T22:00:56.7507655Z             }
2026-06-03T22:00:56.7507738Z           ]
2026-06-03T22:00:56.7507815Z         }
2026-06-03T22:00:56.7507895Z       }
2026-06-03T22:00:56.7507975Z     },
2026-06-03T22:00:56.7508052Z     {
2026-06-03T22:00:56.7508147Z       "id": "REQ-START-2",
2026-06-03T22:00:56.7508305Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-03T22:00:56.7508400Z       "requiredStages": [
2026-06-03T22:00:56.7508480Z         "impl",
2026-06-03T22:00:56.7508563Z         "unit",
2026-06-03T22:00:56.7508646Z         "int"
2026-06-03T22:00:56.7508726Z       ],
2026-06-03T22:00:56.7508814Z       "stages": {
2026-06-03T22:00:56.7508894Z         "doc": {
2026-06-03T22:00:56.7508985Z           "complete": false,
2026-06-03T22:00:56.7509073Z           "evidence": []
2026-06-03T22:00:56.7509154Z         },
2026-06-03T22:00:56.7509243Z         "impl": {
2026-06-03T22:00:56.7509450Z           "complete": true,
2026-06-03T22:00:56.7509549Z           "evidence": [
2026-06-03T22:00:56.7509626Z             {
2026-06-03T22:00:56.7509759Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7509843Z               "line": 16
2026-06-03T22:00:56.7509925Z             },
2026-06-03T22:00:56.7510004Z             {
2026-06-03T22:00:56.7510124Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7510210Z               "line": 94
2026-06-03T22:00:56.7510288Z             },
2026-06-03T22:00:56.7510372Z             {
2026-06-03T22:00:56.7510491Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7510580Z               "line": 163
2026-06-03T22:00:56.7510663Z             }
2026-06-03T22:00:56.7510741Z           ]
2026-06-03T22:00:56.7510821Z         },
2026-06-03T22:00:56.7510900Z         "int": {
2026-06-03T22:00:56.7510997Z           "complete": true,
2026-06-03T22:00:56.7511199Z           "evidence": [
2026-06-03T22:00:56.7511286Z             {
2026-06-03T22:00:56.7511422Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-03T22:00:56.7511611Z               "line": 150
2026-06-03T22:00:56.7511692Z             }
2026-06-03T22:00:56.7511768Z           ]
2026-06-03T22:00:56.7511848Z         },
2026-06-03T22:00:56.7511929Z         "unit": {
2026-06-03T22:00:56.7512021Z           "complete": true,
2026-06-03T22:00:56.7512109Z           "evidence": [
2026-06-03T22:00:56.7512188Z             {
2026-06-03T22:00:56.7512311Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7512396Z               "line": 354
2026-06-03T22:00:56.7512477Z             },
2026-06-03T22:00:56.7512554Z             {
2026-06-03T22:00:56.7512677Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7512767Z               "line": 387
2026-06-03T22:00:56.7512844Z             }
2026-06-03T22:00:56.7512925Z           ]
2026-06-03T22:00:56.7513003Z         }
2026-06-03T22:00:56.7513094Z       }
2026-06-03T22:00:56.7513172Z     },
2026-06-03T22:00:56.7513253Z     {
2026-06-03T22:00:56.7513353Z       "id": "REQ-START-3",
2026-06-03T22:00:56.7513558Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-03T22:00:56.7513655Z       "requiredStages": [
2026-06-03T22:00:56.7513736Z         "impl",
2026-06-03T22:00:56.7513819Z         "unit",
2026-06-03T22:00:56.7513898Z         "int"
2026-06-03T22:00:56.7513978Z       ],
2026-06-03T22:00:56.7514067Z       "stages": {
2026-06-03T22:00:56.7514148Z         "doc": {
2026-06-03T22:00:56.7514243Z           "complete": false,
2026-06-03T22:00:56.7514330Z           "evidence": []
2026-06-03T22:00:56.7514417Z         },
2026-06-03T22:00:56.7514500Z         "impl": {
2026-06-03T22:00:56.7514594Z           "complete": true,
2026-06-03T22:00:56.7514683Z           "evidence": [
2026-06-03T22:00:56.7514763Z             {
2026-06-03T22:00:56.7514899Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-03T22:00:56.7514987Z               "line": 23
2026-06-03T22:00:56.7515072Z             },
2026-06-03T22:00:56.7515155Z             {
2026-06-03T22:00:56.7515284Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-03T22:00:56.7515372Z               "line": 167
2026-06-03T22:00:56.7515450Z             },
2026-06-03T22:00:56.7515531Z             {
2026-06-03T22:00:56.7515654Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-03T22:00:56.7515741Z               "line": 180
2026-06-03T22:00:56.7515820Z             },
2026-06-03T22:00:56.7515900Z             {
2026-06-03T22:00:56.7516022Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7516106Z               "line": 17
2026-06-03T22:00:56.7516187Z             },
2026-06-03T22:00:56.7516270Z             {
2026-06-03T22:00:56.7516390Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7516474Z               "line": 43
2026-06-03T22:00:56.7516557Z             },
2026-06-03T22:00:56.7516645Z             {
2026-06-03T22:00:56.7516763Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7516855Z               "line": 95
2026-06-03T22:00:56.7516932Z             }
2026-06-03T22:00:56.7517015Z           ]
2026-06-03T22:00:56.7517090Z         },
2026-06-03T22:00:56.7517172Z         "int": {
2026-06-03T22:00:56.7517264Z           "complete": true,
2026-06-03T22:00:56.7517349Z           "evidence": [
2026-06-03T22:00:56.7517430Z             {
2026-06-03T22:00:56.7517551Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-03T22:00:56.7517638Z               "line": 316
2026-06-03T22:00:56.7517716Z             }
2026-06-03T22:00:56.7517796Z           ]
2026-06-03T22:00:56.7517875Z         },
2026-06-03T22:00:56.7517954Z         "unit": {
2026-06-03T22:00:56.7518046Z           "complete": true,
2026-06-03T22:00:56.7518132Z           "evidence": [
2026-06-03T22:00:56.7518213Z             {
2026-06-03T22:00:56.7518424Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-03T22:00:56.7518517Z               "line": 245
2026-06-03T22:00:56.7518599Z             },
2026-06-03T22:00:56.7518749Z             {
2026-06-03T22:00:56.7518877Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-03T22:00:56.7518963Z               "line": 263
2026-06-03T22:00:56.7519048Z             },
2026-06-03T22:00:56.7519126Z             {
2026-06-03T22:00:56.7519252Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-03T22:00:56.7519456Z               "line": 273
2026-06-03T22:00:56.7519539Z             },
2026-06-03T22:00:56.7519621Z             {
2026-06-03T22:00:56.7519739Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7519831Z               "line": 355
2026-06-03T22:00:56.7519914Z             },
2026-06-03T22:00:56.7519994Z             {
2026-06-03T22:00:56.7520117Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7520202Z               "line": 388
2026-06-03T22:00:56.7520284Z             },
2026-06-03T22:00:56.7520369Z             {
2026-06-03T22:00:56.7520486Z               "path": "crates/spt/src/api/startup.rs",
2026-06-03T22:00:56.7520580Z               "line": 396
2026-06-03T22:00:56.7520658Z             }
2026-06-03T22:00:56.7520739Z           ]
2026-06-03T22:00:56.7520820Z         }
2026-06-03T22:00:56.7520900Z       }
2026-06-03T22:00:56.7520976Z     },
2026-06-03T22:00:56.7521056Z     {
2026-06-03T22:00:56.7521149Z       "id": "REQ-START-4",
2026-06-03T22:00:56.7521303Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-03T22:00:56.7521396Z       "requiredStages": [
2026-06-03T22:00:56.7521480Z         "impl",
2026-06-03T22:00:56.7521564Z         "unit"
2026-06-03T22:00:56.7521644Z       ],
2026-06-03T22:00:56.7521730Z       "stages": {
2026-06-03T22:00:56.7521814Z         "doc": {
2026-06-03T22:00:56.7521905Z           "complete": false,
2026-06-03T22:00:56.7521997Z           "evidence": []
2026-06-03T22:00:56.7522074Z         },
2026-06-03T22:00:56.7522159Z         "impl": {
2026-06-03T22:00:56.7522254Z           "complete": true,
2026-06-03T22:00:56.7522344Z           "evidence": [
2026-06-03T22:00:56.7522435Z             {
2026-06-03T22:00:56.7522562Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.7522647Z               "line": 173
2026-06-03T22:00:56.7522726Z             }
2026-06-03T22:00:56.7522807Z           ]
2026-06-03T22:00:56.7522886Z         },
2026-06-03T22:00:56.7522968Z         "int": {
2026-06-03T22:00:56.7523060Z           "complete": false,
2026-06-03T22:00:56.7523148Z           "evidence": []
2026-06-03T22:00:56.7523226Z         },
2026-06-03T22:00:56.7523307Z         "unit": {
2026-06-03T22:00:56.7523399Z           "complete": true,
2026-06-03T22:00:56.7523484Z           "evidence": [
2026-06-03T22:00:56.7523564Z             {
2026-06-03T22:00:56.7523692Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-03T22:00:56.7523777Z               "line": 314
2026-06-03T22:00:56.7523856Z             }
2026-06-03T22:00:56.7523939Z           ]
2026-06-03T22:00:56.7524023Z         }
2026-06-03T22:00:56.7524100Z       }
2026-06-03T22:00:56.7524187Z     },
2026-06-03T22:00:56.7524265Z     {
2026-06-03T22:00:56.7524360Z       "id": "REQ-STORE-1",
2026-06-03T22:00:56.7525515Z       "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-03T22:00:56.7525610Z       "requiredStages": [],
2026-06-03T22:00:56.7525694Z       "stages": {
2026-06-03T22:00:56.7525775Z         "doc": {
2026-06-03T22:00:56.7525864Z           "complete": false,
2026-06-03T22:00:56.7525957Z           "evidence": []
2026-06-03T22:00:56.7526037Z         },
2026-06-03T22:00:56.7526122Z         "impl": {
2026-06-03T22:00:56.7526213Z           "complete": false,
2026-06-03T22:00:56.7526418Z           "evidence": []
2026-06-03T22:00:56.7526505Z         },
2026-06-03T22:00:56.7526584Z         "int": {
2026-06-03T22:00:56.7526778Z           "complete": false,
2026-06-03T22:00:56.7526864Z           "evidence": []
2026-06-03T22:00:56.7526946Z         },
2026-06-03T22:00:56.7527025Z         "unit": {
2026-06-03T22:00:56.7527117Z           "complete": false,
2026-06-03T22:00:56.7527206Z           "evidence": []
2026-06-03T22:00:56.7527283Z         }
2026-06-03T22:00:56.7527362Z       }
2026-06-03T22:00:56.7527438Z     },
2026-06-03T22:00:56.7527517Z     {
2026-06-03T22:00:56.7527606Z       "id": "REQ-TERM-1",
2026-06-03T22:00:56.7527808Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-03T22:00:56.7527902Z       "requiredStages": [
2026-06-03T22:00:56.7527984Z         "impl",
2026-06-03T22:00:56.7528067Z         "unit"
2026-06-03T22:00:56.7528146Z       ],
2026-06-03T22:00:56.7528233Z       "stages": {
2026-06-03T22:00:56.7528313Z         "doc": {
2026-06-03T22:00:56.7528409Z           "complete": false,
2026-06-03T22:00:56.7528500Z           "evidence": []
2026-06-03T22:00:56.7528582Z         },
2026-06-03T22:00:56.7528669Z         "impl": {
2026-06-03T22:00:56.7528759Z           "complete": true,
2026-06-03T22:00:56.7528848Z           "evidence": [
2026-06-03T22:00:56.7528927Z             {
2026-06-03T22:00:56.7529052Z               "path": "crates/spt-term/src/pty.rs",
2026-06-03T22:00:56.7529138Z               "line": 61
2026-06-03T22:00:56.7529217Z             },
2026-06-03T22:00:56.7529298Z             {
2026-06-03T22:00:56.7529733Z               "path": "crates/spt-term/src/pty.rs",
2026-06-03T22:00:56.7529886Z               "line": 169
2026-06-03T22:00:56.7530009Z             },
2026-06-03T22:00:56.7530136Z             {
2026-06-03T22:00:56.7530353Z               "path": "crates/spt-term/src/surface.rs",
2026-06-03T22:00:56.7530498Z               "line": 95
2026-06-03T22:00:56.7530581Z             }
2026-06-03T22:00:56.7530661Z           ]
2026-06-03T22:00:56.7530752Z         },
2026-06-03T22:00:56.7530833Z         "int": {
2026-06-03T22:00:56.7530929Z           "complete": false,
2026-06-03T22:00:56.7531024Z           "evidence": []
2026-06-03T22:00:56.7531102Z         },
2026-06-03T22:00:56.7531185Z         "unit": {
2026-06-03T22:00:56.7531274Z           "complete": true,
2026-06-03T22:00:56.7531363Z           "evidence": [
2026-06-03T22:00:56.7531442Z             {
2026-06-03T22:00:56.7531580Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-03T22:00:56.7531667Z               "line": 28
2026-06-03T22:00:56.7531746Z             },
2026-06-03T22:00:56.7531827Z             {
2026-06-03T22:00:56.7531956Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-03T22:00:56.7532045Z               "line": 60
2026-06-03T22:00:56.7532123Z             }
2026-06-03T22:00:56.7532204Z           ]
2026-06-03T22:00:56.7532288Z         }
2026-06-03T22:00:56.7532367Z       }
2026-06-03T22:00:56.7532448Z     },
2026-06-03T22:00:56.7532526Z     {
2026-06-03T22:00:56.7532624Z       "id": "REQ-TERM-2",
2026-06-03T22:00:56.7532845Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-03T22:00:56.7532944Z       "requiredStages": [
2026-06-03T22:00:56.7533030Z         "impl",
2026-06-03T22:00:56.7533110Z         "unit"
2026-06-03T22:00:56.7533191Z       ],
2026-06-03T22:00:56.7533271Z       "stages": {
2026-06-03T22:00:56.7533354Z         "doc": {
2026-06-03T22:00:56.7533443Z           "complete": false,
2026-06-03T22:00:56.7533534Z           "evidence": []
2026-06-03T22:00:56.7533612Z         },
2026-06-03T22:00:56.7533694Z         "impl": {
2026-06-03T22:00:56.7533785Z           "complete": true,
2026-06-03T22:00:56.7533871Z           "evidence": [
2026-06-03T22:00:56.7533952Z             {
2026-06-03T22:00:56.7534077Z               "path": "crates/spt-term/src/surface.rs",
2026-06-03T22:00:56.7534165Z               "line": 112
2026-06-03T22:00:56.7534250Z             },
2026-06-03T22:00:56.7534329Z             {
2026-06-03T22:00:56.7534618Z               "path": "crates/spt-term/src/surface.rs",
2026-06-03T22:00:56.7534710Z               "line": 122
2026-06-03T22:00:56.7534928Z             }
2026-06-03T22:00:56.7535007Z           ]
2026-06-03T22:00:56.7535086Z         },
2026-06-03T22:00:56.7535170Z         "int": {
2026-06-03T22:00:56.7535259Z           "complete": false,
2026-06-03T22:00:56.7535349Z           "evidence": []
2026-06-03T22:00:56.7535426Z         },
2026-06-03T22:00:56.7535508Z         "unit": {
2026-06-03T22:00:56.7535597Z           "complete": true,
2026-06-03T22:00:56.7535685Z           "evidence": [
2026-06-03T22:00:56.7535766Z             {
2026-06-03T22:00:56.7535893Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-03T22:00:56.7535982Z               "line": 46
2026-06-03T22:00:56.7536060Z             },
2026-06-03T22:00:56.7536143Z             {
2026-06-03T22:00:56.7536269Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-03T22:00:56.7536357Z               "line": 71
2026-06-03T22:00:56.7536442Z             }
2026-06-03T22:00:56.7536519Z           ]
2026-06-03T22:00:56.7536599Z         }
2026-06-03T22:00:56.7536683Z       }
2026-06-03T22:00:56.7536764Z     },
2026-06-03T22:00:56.7536842Z     {
2026-06-03T22:00:56.7536934Z       "id": "REQ-TERM-3",
2026-06-03T22:00:56.7537102Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-03T22:00:56.7537194Z       "requiredStages": [
2026-06-03T22:00:56.7537277Z         "impl",
2026-06-03T22:00:56.7537355Z         "unit"
2026-06-03T22:00:56.7537435Z       ],
2026-06-03T22:00:56.7537516Z       "stages": {
2026-06-03T22:00:56.7537599Z         "doc": {
2026-06-03T22:00:56.7537691Z           "complete": false,
2026-06-03T22:00:56.7537777Z           "evidence": []
2026-06-03T22:00:56.7537858Z         },
2026-06-03T22:00:56.7537939Z         "impl": {
2026-06-03T22:00:56.7538030Z           "complete": true,
2026-06-03T22:00:56.7538115Z           "evidence": [
2026-06-03T22:00:56.7538195Z             {
2026-06-03T22:00:56.7538328Z               "path": "crates/spt-term/src/stream.rs",
2026-06-03T22:00:56.7538412Z               "line": 71
2026-06-03T22:00:56.7538497Z             }
2026-06-03T22:00:56.7538575Z           ]
2026-06-03T22:00:56.7538654Z         },
2026-06-03T22:00:56.7538734Z         "int": {
2026-06-03T22:00:56.7538826Z           "complete": false,
2026-06-03T22:00:56.7538915Z           "evidence": []
2026-06-03T22:00:56.7538993Z         },
2026-06-03T22:00:56.7539075Z         "unit": {
2026-06-03T22:00:56.7539163Z           "complete": true,
2026-06-03T22:00:56.7539251Z           "evidence": [
2026-06-03T22:00:56.7539472Z             {
2026-06-03T22:00:56.7539607Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-03T22:00:56.7539699Z               "line": 37
2026-06-03T22:00:56.7539778Z             },
2026-06-03T22:00:56.7539860Z             {
2026-06-03T22:00:56.7539985Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-03T22:00:56.7540075Z               "line": 67
2026-06-03T22:00:56.7540159Z             }
2026-06-03T22:00:56.7540240Z           ]
2026-06-03T22:00:56.7540335Z         }
2026-06-03T22:00:56.7540418Z       }
2026-06-03T22:00:56.7540499Z     },
2026-06-03T22:00:56.7540575Z     {
2026-06-03T22:00:56.7540669Z       "id": "REQ-TERM-4",
2026-06-03T22:00:56.7541128Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-03T22:00:56.7541227Z       "requiredStages": [
2026-06-03T22:00:56.7541312Z         "impl",
2026-06-03T22:00:56.7541393Z         "unit",
2026-06-03T22:00:56.7541476Z         "int"
2026-06-03T22:00:56.7541554Z       ],
2026-06-03T22:00:56.7541638Z       "stages": {
2026-06-03T22:00:56.7541716Z         "doc": {
2026-06-03T22:00:56.7541809Z           "complete": true,
2026-06-03T22:00:56.7541896Z           "evidence": [
2026-06-03T22:00:56.7541975Z             {
2026-06-03T22:00:56.7542084Z               "path": "docs/MANIFEST.md",
2026-06-03T22:00:56.7542169Z               "line": 106
2026-06-03T22:00:56.7542379Z             }
2026-06-03T22:00:56.7542461Z           ]
2026-06-03T22:00:56.7542646Z         },
2026-06-03T22:00:56.7542734Z         "impl": {
2026-06-03T22:00:56.7542824Z           "complete": true,
2026-06-03T22:00:56.7542914Z           "evidence": [
2026-06-03T22:00:56.7542991Z             {
2026-06-03T22:00:56.7543119Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-03T22:00:56.7543204Z               "line": 321
2026-06-03T22:00:56.7543286Z             },
2026-06-03T22:00:56.7543366Z             {
2026-06-03T22:00:56.7543491Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-03T22:00:56.7543578Z               "line": 41
2026-06-03T22:00:56.7543657Z             },
2026-06-03T22:00:56.7543738Z             {
2026-06-03T22:00:56.7543862Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-03T22:00:56.7543951Z               "line": 91
2026-06-03T22:00:56.7544038Z             },
2026-06-03T22:00:56.7544116Z             {
2026-06-03T22:00:56.7544247Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-03T22:00:56.7544332Z               "line": 152
2026-06-03T22:00:56.7544420Z             },
2026-06-03T22:00:56.7544499Z             {
2026-06-03T22:00:56.7544626Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-03T22:00:56.7544714Z               "line": 212
2026-06-03T22:00:56.7544793Z             },
2026-06-03T22:00:56.7544872Z             {
2026-06-03T22:00:56.7545007Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-03T22:00:56.7545093Z               "line": 20
2026-06-03T22:00:56.7545171Z             },
2026-06-03T22:00:56.7545250Z             {
2026-06-03T22:00:56.7545382Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-03T22:00:56.7545467Z               "line": 212
2026-06-03T22:00:56.7545547Z             },
2026-06-03T22:00:56.7545624Z             {
2026-06-03T22:00:56.7545756Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-03T22:00:56.7545845Z               "line": 226
2026-06-03T22:00:56.7545929Z             },
2026-06-03T22:00:56.7546008Z             {
2026-06-03T22:00:56.7546140Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7546228Z               "line": 574
2026-06-03T22:00:56.7546307Z             },
2026-06-03T22:00:56.7546387Z             {
2026-06-03T22:00:56.7546513Z               "path": "crates/spt-term/src/digest.rs",
2026-06-03T22:00:56.7546598Z               "line": 157
2026-06-03T22:00:56.7548775Z             },
2026-06-03T22:00:56.7548883Z             {
2026-06-03T22:00:56.7549029Z               "path": "crates/spt-term/src/digest.rs",
2026-06-03T22:00:56.7549120Z               "line": 199
2026-06-03T22:00:56.7549205Z             },
2026-06-03T22:00:56.7549286Z             {
2026-06-03T22:00:56.7549607Z               "path": "crates/spt-term/src/digest.rs",
2026-06-03T22:00:56.7549705Z               "line": 226
2026-06-03T22:00:56.7549784Z             },
2026-06-03T22:00:56.7549867Z             {
2026-06-03T22:00:56.7549988Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7550076Z               "line": 164
2026-06-03T22:00:56.7550163Z             }
2026-06-03T22:00:56.7550245Z           ]
2026-06-03T22:00:56.7550326Z         },
2026-06-03T22:00:56.7550408Z         "int": {
2026-06-03T22:00:56.7550504Z           "complete": true,
2026-06-03T22:00:56.7550590Z           "evidence": [
2026-06-03T22:00:56.7550673Z             {
2026-06-03T22:00:56.7550808Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-03T22:00:56.7550899Z               "line": 18
2026-06-03T22:00:56.7550979Z             }
2026-06-03T22:00:56.7551058Z           ]
2026-06-03T22:00:56.7551138Z         },
2026-06-03T22:00:56.7551218Z         "unit": {
2026-06-03T22:00:56.7551310Z           "complete": true,
2026-06-03T22:00:56.7551396Z           "evidence": [
2026-06-03T22:00:56.7551477Z             {
2026-06-03T22:00:56.7551610Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-03T22:00:56.7551889Z               "line": 250
2026-06-03T22:00:56.7551984Z             },
2026-06-03T22:00:56.7552062Z             {
2026-06-03T22:00:56.7552298Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-03T22:00:56.7552382Z               "line": 263
2026-06-03T22:00:56.7552463Z             },
2026-06-03T22:00:56.7552544Z             {
2026-06-03T22:00:56.7552665Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-03T22:00:56.7552755Z               "line": 275
2026-06-03T22:00:56.7552833Z             },
2026-06-03T22:00:56.7552917Z             {
2026-06-03T22:00:56.7553037Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-03T22:00:56.7553128Z               "line": 290
2026-06-03T22:00:56.7553211Z             },
2026-06-03T22:00:56.7553290Z             {
2026-06-03T22:00:56.7553415Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-03T22:00:56.7553497Z               "line": 305
2026-06-03T22:00:56.7553580Z             },
2026-06-03T22:00:56.7553657Z             {
2026-06-03T22:00:56.7553791Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-03T22:00:56.7553884Z               "line": 327
2026-06-03T22:00:56.7553964Z             },
2026-06-03T22:00:56.7554045Z             {
2026-06-03T22:00:56.7554166Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-03T22:00:56.7554253Z               "line": 337
2026-06-03T22:00:56.7554334Z             },
2026-06-03T22:00:56.7554412Z             {
2026-06-03T22:00:56.7554539Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-03T22:00:56.7554624Z               "line": 364
2026-06-03T22:00:56.7554705Z             },
2026-06-03T22:00:56.7554783Z             {
2026-06-03T22:00:56.7554923Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-03T22:00:56.7555015Z               "line": 338
2026-06-03T22:00:56.7555095Z             },
2026-06-03T22:00:56.7555179Z             {
2026-06-03T22:00:56.7555309Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-03T22:00:56.7555402Z               "line": 350
2026-06-03T22:00:56.7555481Z             },
2026-06-03T22:00:56.7555566Z             {
2026-06-03T22:00:56.7555698Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-03T22:00:56.7555782Z               "line": 367
2026-06-03T22:00:56.7555867Z             },
2026-06-03T22:00:56.7555947Z             {
2026-06-03T22:00:56.7556073Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-03T22:00:56.7556157Z               "line": 378
2026-06-03T22:00:56.7556240Z             },
2026-06-03T22:00:56.7556320Z             {
2026-06-03T22:00:56.7556445Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7556532Z               "line": 759
2026-06-03T22:00:56.7556612Z             },
2026-06-03T22:00:56.7556695Z             {
2026-06-03T22:00:56.7556818Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7556908Z               "line": 766
2026-06-03T22:00:56.7556991Z             },
2026-06-03T22:00:56.7557073Z             {
2026-06-03T22:00:56.7557201Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7557290Z               "line": 781
2026-06-03T22:00:56.7557372Z             },
2026-06-03T22:00:56.7557449Z             {
2026-06-03T22:00:56.7557576Z               "path": "crates/spt-term/src/digest.rs",
2026-06-03T22:00:56.7557664Z               "line": 381
2026-06-03T22:00:56.7557744Z             },
2026-06-03T22:00:56.7557825Z             {
2026-06-03T22:00:56.7557946Z               "path": "crates/spt-term/src/digest.rs",
2026-06-03T22:00:56.7558041Z               "line": 402
2026-06-03T22:00:56.7558120Z             },
2026-06-03T22:00:56.7558202Z             {
2026-06-03T22:00:56.7558322Z               "path": "crates/spt-term/src/digest.rs",
2026-06-03T22:00:56.7558408Z               "line": 415
2026-06-03T22:00:56.7558492Z             },
2026-06-03T22:00:56.7558571Z             {
2026-06-03T22:00:56.7558690Z               "path": "crates/spt-term/src/digest.rs",
2026-06-03T22:00:56.7558861Z               "line": 434
2026-06-03T22:00:56.7558943Z             },
2026-06-03T22:00:56.7559097Z             {
2026-06-03T22:00:56.7559222Z               "path": "crates/spt-term/src/digest.rs",
2026-06-03T22:00:56.7559311Z               "line": 461
2026-06-03T22:00:56.7559518Z             },
2026-06-03T22:00:56.7559604Z             {
2026-06-03T22:00:56.7559735Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-03T22:00:56.7559824Z               "line": 32
2026-06-03T22:00:56.7559906Z             },
2026-06-03T22:00:56.7559984Z             {
2026-06-03T22:00:56.7560098Z               "path": "crates/spt/src/cli.rs",
2026-06-03T22:00:56.7560184Z               "line": 606
2026-06-03T22:00:56.7560265Z             }
2026-06-03T22:00:56.7560347Z           ]
2026-06-03T22:00:56.7560426Z         }
2026-06-03T22:00:56.7560509Z       }
2026-06-03T22:00:56.7560588Z     },
2026-06-03T22:00:56.7560670Z     {
2026-06-03T22:00:56.7560762Z       "id": "REQ-UPD-1",
2026-06-03T22:00:56.7560905Z       "title": "Peer-propagated update over P2P",
2026-06-03T22:00:56.7561014Z       "requiredStages": [],
2026-06-03T22:00:56.7561103Z       "stages": {
2026-06-03T22:00:56.7561191Z         "doc": {
2026-06-03T22:00:56.7561286Z           "complete": false,
2026-06-03T22:00:56.7561377Z           "evidence": []
2026-06-03T22:00:56.7561456Z         },
2026-06-03T22:00:56.7561542Z         "impl": {
2026-06-03T22:00:56.7561638Z           "complete": false,
2026-06-03T22:00:56.7561727Z           "evidence": []
2026-06-03T22:00:56.7561810Z         },
2026-06-03T22:00:56.7561891Z         "int": {
2026-06-03T22:00:56.7561983Z           "complete": false,
2026-06-03T22:00:56.7562067Z           "evidence": []
2026-06-03T22:00:56.7562147Z         },
2026-06-03T22:00:56.7562226Z         "unit": {
2026-06-03T22:00:56.7562317Z           "complete": false,
2026-06-03T22:00:56.7562405Z           "evidence": []
2026-06-03T22:00:56.7562483Z         }
2026-06-03T22:00:56.7562563Z       }
2026-06-03T22:00:56.7562639Z     },
2026-06-03T22:00:56.7562725Z     {
2026-06-03T22:00:56.7562814Z       "id": "REQ-UPD-2",
2026-06-03T22:00:56.7562993Z       "title": "All binaries signature-verified before handoff",
2026-06-03T22:00:56.7563092Z       "requiredStages": [
2026-06-03T22:00:56.7563175Z         "impl",
2026-06-03T22:00:56.7563261Z         "unit"
2026-06-03T22:00:56.7563342Z       ],
2026-06-03T22:00:56.7563427Z       "stages": {
2026-06-03T22:00:56.7563506Z         "doc": {
2026-06-03T22:00:56.7563598Z           "complete": false,
2026-06-03T22:00:56.7563685Z           "evidence": []
2026-06-03T22:00:56.7563764Z         },
2026-06-03T22:00:56.7563847Z         "impl": {
2026-06-03T22:00:56.7563936Z           "complete": true,
2026-06-03T22:00:56.7564024Z           "evidence": [
2026-06-03T22:00:56.7564102Z             {
2026-06-03T22:00:56.7564239Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7564324Z               "line": 29
2026-06-03T22:00:56.7564404Z             },
2026-06-03T22:00:56.7564489Z             {
2026-06-03T22:00:56.7564615Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7564711Z               "line": 158
2026-06-03T22:00:56.7564790Z             },
2026-06-03T22:00:56.7564873Z             {
2026-06-03T22:00:56.7565002Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7565088Z               "line": 239
2026-06-03T22:00:56.7565171Z             },
2026-06-03T22:00:56.7565249Z             {
2026-06-03T22:00:56.7565378Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-03T22:00:56.7565467Z               "line": 149
2026-06-03T22:00:56.7565546Z             }
2026-06-03T22:00:56.7565629Z           ]
2026-06-03T22:00:56.7565709Z         },
2026-06-03T22:00:56.7565792Z         "int": {
2026-06-03T22:00:56.7565881Z           "complete": false,
2026-06-03T22:00:56.7565971Z           "evidence": []
2026-06-03T22:00:56.7566051Z         },
2026-06-03T22:00:56.7566132Z         "unit": {
2026-06-03T22:00:56.7566344Z           "complete": true,
2026-06-03T22:00:56.7566434Z           "evidence": [
2026-06-03T22:00:56.7566615Z             {
2026-06-03T22:00:56.7566742Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7566833Z               "line": 336
2026-06-03T22:00:56.7566916Z             },
2026-06-03T22:00:56.7566995Z             {
2026-06-03T22:00:56.7567120Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7567205Z               "line": 350
2026-06-03T22:00:56.7567291Z             },
2026-06-03T22:00:56.7567369Z             {
2026-06-03T22:00:56.7567494Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7567580Z               "line": 361
2026-06-03T22:00:56.7567659Z             },
2026-06-03T22:00:56.7567743Z             {
2026-06-03T22:00:56.7567875Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7567967Z               "line": 437
2026-06-03T22:00:56.7568047Z             },
2026-06-03T22:00:56.7568135Z             {
2026-06-03T22:00:56.7568267Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-03T22:00:56.7568358Z               "line": 326
2026-06-03T22:00:56.7568441Z             },
2026-06-03T22:00:56.7568522Z             {
2026-06-03T22:00:56.7568649Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-03T22:00:56.7568735Z               "line": 339
2026-06-03T22:00:56.7568821Z             }
2026-06-03T22:00:56.7568905Z           ]
2026-06-03T22:00:56.7568985Z         }
2026-06-03T22:00:56.7569068Z       }
2026-06-03T22:00:56.7569147Z     },
2026-06-03T22:00:56.7569227Z     {
2026-06-03T22:00:56.7569317Z       "id": "REQ-UPD-3",
2026-06-03T22:00:56.7569648Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-03T22:00:56.7569748Z       "requiredStages": [
2026-06-03T22:00:56.7569831Z         "impl",
2026-06-03T22:00:56.7569915Z         "unit",
2026-06-03T22:00:56.7569994Z         "int"
2026-06-03T22:00:56.7570076Z       ],
2026-06-03T22:00:56.7570163Z       "stages": {
2026-06-03T22:00:56.7570247Z         "doc": {
2026-06-03T22:00:56.7570342Z           "complete": false,
2026-06-03T22:00:56.7570434Z           "evidence": []
2026-06-03T22:00:56.7570514Z         },
2026-06-03T22:00:56.7570597Z         "impl": {
2026-06-03T22:00:56.7570693Z           "complete": true,
2026-06-03T22:00:56.7570779Z           "evidence": [
2026-06-03T22:00:56.7570861Z             {
2026-06-03T22:00:56.7570990Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-03T22:00:56.7571073Z               "line": 26
2026-06-03T22:00:56.7571156Z             },
2026-06-03T22:00:56.7571237Z             {
2026-06-03T22:00:56.7571364Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-03T22:00:56.7571450Z               "line": 111
2026-06-03T22:00:56.7571533Z             },
2026-06-03T22:00:56.7571621Z             {
2026-06-03T22:00:56.7571744Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-03T22:00:56.7571833Z               "line": 213
2026-06-03T22:00:56.7571918Z             }
2026-06-03T22:00:56.7572000Z           ]
2026-06-03T22:00:56.7572082Z         },
2026-06-03T22:00:56.7572172Z         "int": {
2026-06-03T22:00:56.7572265Z           "complete": true,
2026-06-03T22:00:56.7572351Z           "evidence": [
2026-06-03T22:00:56.7572435Z             {
2026-06-03T22:00:56.7572579Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-03T22:00:56.7572667Z               "line": 23
2026-06-03T22:00:56.7572745Z             }
2026-06-03T22:00:56.7572827Z           ]
2026-06-03T22:00:56.7572908Z         },
2026-06-03T22:00:56.7572989Z         "unit": {
2026-06-03T22:00:56.7573083Z           "complete": true,
2026-06-03T22:00:56.7573169Z           "evidence": [
2026-06-03T22:00:56.7573252Z             {
2026-06-03T22:00:56.7573378Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-03T22:00:56.7573467Z               "line": 238
2026-06-03T22:00:56.7573550Z             },
2026-06-03T22:00:56.7573632Z             {
2026-06-03T22:00:56.7573875Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-03T22:00:56.7573967Z               "line": 262
2026-06-03T22:00:56.7574151Z             },
2026-06-03T22:00:56.7574231Z             {
2026-06-03T22:00:56.7574356Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-03T22:00:56.7574446Z               "line": 273
2026-06-03T22:00:56.7574524Z             },
2026-06-03T22:00:56.7574607Z             {
2026-06-03T22:00:56.7574729Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-03T22:00:56.7574816Z               "line": 286
2026-06-03T22:00:56.7574895Z             }
2026-06-03T22:00:56.7574976Z           ]
2026-06-03T22:00:56.7575058Z         }
2026-06-03T22:00:56.7575136Z       }
2026-06-03T22:00:56.7575219Z     },
2026-06-03T22:00:56.7575297Z     {
2026-06-03T22:00:56.7575390Z       "id": "REQ-UPD-4",
2026-06-03T22:00:56.7575606Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-03T22:00:56.7575708Z       "requiredStages": [
2026-06-03T22:00:56.7575794Z         "impl",
2026-06-03T22:00:56.7575872Z         "unit"
2026-06-03T22:00:56.7575963Z       ],
2026-06-03T22:00:56.7576046Z       "stages": {
2026-06-03T22:00:56.7576130Z         "doc": {
2026-06-03T22:00:56.7576222Z           "complete": false,
2026-06-03T22:00:56.7576311Z           "evidence": []
2026-06-03T22:00:56.7576393Z         },
2026-06-03T22:00:56.7576476Z         "impl": {
2026-06-03T22:00:56.7576571Z           "complete": true,
2026-06-03T22:00:56.7576658Z           "evidence": [
2026-06-03T22:00:56.7576741Z             {
2026-06-03T22:00:56.7576872Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-03T22:00:56.7576962Z               "line": 23
2026-06-03T22:00:56.7577044Z             },
2026-06-03T22:00:56.7577123Z             {
2026-06-03T22:00:56.7577251Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-03T22:00:56.7577336Z               "line": 60
2026-06-03T22:00:56.7577420Z             },
2026-06-03T22:00:56.7577505Z             {
2026-06-03T22:00:56.7577634Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-03T22:00:56.7577725Z               "line": 79
2026-06-03T22:00:56.7577805Z             },
2026-06-03T22:00:56.7577888Z             {
2026-06-03T22:00:56.7578023Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-03T22:00:56.7578112Z               "line": 162
2026-06-03T22:00:56.7578193Z             },
2026-06-03T22:00:56.7578273Z             {
2026-06-03T22:00:56.7578394Z               "path": "crates/spt-store/src/info.rs",
2026-06-03T22:00:56.7578478Z               "line": 106
2026-06-03T22:00:56.7578558Z             }
2026-06-03T22:00:56.7578636Z           ]
2026-06-03T22:00:56.7578715Z         },
2026-06-03T22:00:56.7578795Z         "int": {
2026-06-03T22:00:56.7578887Z           "complete": false,
2026-06-03T22:00:56.7578975Z           "evidence": []
2026-06-03T22:00:56.7579052Z         },
2026-06-03T22:00:56.7579135Z         "unit": {
2026-06-03T22:00:56.7579231Z           "complete": true,
2026-06-03T22:00:56.7579323Z           "evidence": [
2026-06-03T22:00:56.7579520Z             {
2026-06-03T22:00:56.7579654Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-03T22:00:56.7579742Z               "line": 182
2026-06-03T22:00:56.7579822Z             },
2026-06-03T22:00:56.7579903Z             {
2026-06-03T22:00:56.7580026Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-03T22:00:56.7580114Z               "line": 118
2026-06-03T22:00:56.7580197Z             },
2026-06-03T22:00:56.7580281Z             {
2026-06-03T22:00:56.7580408Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-03T22:00:56.7580494Z               "line": 133
2026-06-03T22:00:56.7580577Z             },
2026-06-03T22:00:56.7580655Z             {
2026-06-03T22:00:56.7580780Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-03T22:00:56.7580868Z               "line": 152
2026-06-03T22:00:56.7580945Z             },
2026-06-03T22:00:56.7581025Z             {
2026-06-03T22:00:56.7581264Z               "path": "crates/spt-store/src/info.rs",
2026-06-03T22:00:56.7581453Z               "line": 234
2026-06-03T22:00:56.7581532Z             },
2026-06-03T22:00:56.7581613Z             {
2026-06-03T22:00:56.7581739Z               "path": "crates/spt-store/src/perch.rs",
2026-06-03T22:00:56.7581824Z               "line": 381
2026-06-03T22:00:56.7581902Z             }
2026-06-03T22:00:56.7581979Z           ]
2026-06-03T22:00:56.7582059Z         }
2026-06-03T22:00:56.7582135Z       }
2026-06-03T22:00:56.7582214Z     },
2026-06-03T22:00:56.7582293Z     {
2026-06-03T22:00:56.7582380Z       "id": "REQ-UPD-5",
2026-06-03T22:00:56.7582545Z       "title": "spt-core ripple-updates registered adapters",
2026-06-03T22:00:56.7582635Z       "requiredStages": [
2026-06-03T22:00:56.7582719Z         "impl",
2026-06-03T22:00:56.7582798Z         "unit"
2026-06-03T22:00:56.7582880Z       ],
2026-06-03T22:00:56.7582968Z       "stages": {
2026-06-03T22:00:56.7583049Z         "doc": {
2026-06-03T22:00:56.7583146Z           "complete": false,
2026-06-03T22:00:56.7583233Z           "evidence": []
2026-06-03T22:00:56.7583318Z         },
2026-06-03T22:00:56.7583400Z         "impl": {
2026-06-03T22:00:56.7583491Z           "complete": true,
2026-06-03T22:00:56.7583580Z           "evidence": [
2026-06-03T22:00:56.7583659Z             {
2026-06-03T22:00:56.7583807Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-03T22:00:56.7583892Z               "line": 27
2026-06-03T22:00:56.7583971Z             },
2026-06-03T22:00:56.7584050Z             {
2026-06-03T22:00:56.7584190Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-03T22:00:56.7584275Z               "line": 82
2026-06-03T22:00:56.7584353Z             },
2026-06-03T22:00:56.7584433Z             {
2026-06-03T22:00:56.7584571Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-03T22:00:56.7584660Z               "line": 134
2026-06-03T22:00:56.7584738Z             },
2026-06-03T22:00:56.7584825Z             {
2026-06-03T22:00:56.7584952Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7585044Z               "line": 198
2026-06-03T22:00:56.7585124Z             },
2026-06-03T22:00:56.7585203Z             {
2026-06-03T22:00:56.7585329Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-03T22:00:56.7585414Z               "line": 226
2026-06-03T22:00:56.7585493Z             }
2026-06-03T22:00:56.7585575Z           ]
2026-06-03T22:00:56.7585652Z         },
2026-06-03T22:00:56.7585733Z         "int": {
2026-06-03T22:00:56.7585823Z           "complete": false,
2026-06-03T22:00:56.7585911Z           "evidence": []
2026-06-03T22:00:56.7585989Z         },
2026-06-03T22:00:56.7586074Z         "unit": {
2026-06-03T22:00:56.7586165Z           "complete": true,
2026-06-03T22:00:56.7586253Z           "evidence": [
2026-06-03T22:00:56.7586334Z             {
2026-06-03T22:00:56.7586471Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-03T22:00:56.7586565Z               "line": 194
2026-06-03T22:00:56.7586648Z             },
2026-06-03T22:00:56.7586730Z             {
2026-06-03T22:00:56.7586869Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-03T22:00:56.7586954Z               "line": 208
2026-06-03T22:00:56.7587038Z             },
2026-06-03T22:00:56.7587116Z             {
2026-06-03T22:00:56.7587253Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-03T22:00:56.7587341Z               "line": 222
2026-06-03T22:00:56.7587420Z             },
2026-06-03T22:00:56.7587500Z             {
2026-06-03T22:00:56.7587636Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-03T22:00:56.7587722Z               "line": 236
2026-06-03T22:00:56.7587802Z             },
2026-06-03T22:00:56.7587884Z             {
2026-06-03T22:00:56.7588023Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-03T22:00:56.7588107Z               "line": 270
2026-06-03T22:00:56.7588188Z             },
2026-06-03T22:00:56.7588348Z             {
2026-06-03T22:00:56.7588489Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-03T22:00:56.7588646Z               "line": 729
2026-06-03T22:00:56.7588729Z             }
2026-06-03T22:00:56.7588810Z           ]
2026-06-03T22:00:56.7588887Z         }
2026-06-03T22:00:56.7588965Z       }
2026-06-03T22:00:56.7589043Z     }
2026-06-03T22:00:56.7589120Z   ],
2026-06-03T22:00:56.7589204Z   "findings": []
2026-06-03T22:00:56.7589291Z }
2026-06-03T22:00:56.7615829Z ##[group]Run ./traceable-reqs lint || true
2026-06-03T22:00:56.7615992Z [36;1m./traceable-reqs lint || true[0m
2026-06-03T22:00:56.7641512Z shell: /usr/bin/bash -e {0}
2026-06-03T22:00:56.7641613Z ##[endgroup]
2026-06-03T22:00:56.7760418Z Requirement quality findings (15); 125 requirements queued for agent review:
2026-06-03T22:00:56.7762151Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7763042Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-03T22:00:56.7764113Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7765108Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7766013Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-03T22:00:56.7766799Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-03T22:00:56.7767803Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7768884Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7769913Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-03T22:00:56.7770565Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-03T22:00:56.7771160Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-03T22:00:56.7772029Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7772820Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7773478Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-03T22:00:56.7774091Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-03T22:00:56.7774113Z 
2026-06-03T22:00:56.7774292Z # Requirement quality review
2026-06-03T22:00:56.7774307Z 
2026-06-03T22:00:56.7774764Z You are reviewing 125 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-03T22:00:56.7775187Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-03T22:00:56.7775609Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-03T22:00:56.7775932Z this command's output. Your task is the rubric items below.
2026-06-03T22:00:56.7775951Z 
2026-06-03T22:00:56.7776099Z ## Rubric
2026-06-03T22:00:56.7776115Z 
2026-06-03T22:00:56.7776769Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-03T22:00:56.7777393Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-03T22:00:56.7777918Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-03T22:00:56.7778284Z - **active-voice** — clear subject and active verb.
2026-06-03T22:00:56.7778307Z 
2026-06-03T22:00:56.7778862Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-03T22:00:56.7779304Z clear concerns.
2026-06-03T22:00:56.7780393Z 
2026-06-03T22:00:56.7780586Z ## Requirements
2026-06-03T22:00:56.7780605Z 
2026-06-03T22:00:56.7780761Z ### REQ-ARCH-1
2026-06-03T22:00:56.7781006Z - Title: Many small acyclically-layered crates
2026-06-03T22:00:56.7781180Z - Required stages: impl
2026-06-03T22:00:56.7781195Z 
2026-06-03T22:00:56.7781622Z ### REQ-ARCH-2
2026-06-03T22:00:56.7781976Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-03T22:00:56.7782156Z - Required stages: impl
2026-06-03T22:00:56.7782173Z 
2026-06-03T22:00:56.7782338Z ### REQ-ARCH-3
2026-06-03T22:00:56.7782760Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-03T22:00:56.7782961Z - Required stages: impl, unit
2026-06-03T22:00:56.7782980Z 
2026-06-03T22:00:56.7783147Z ### REQ-ARCH-4
2026-06-03T22:00:56.7783490Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-03T22:00:56.7783691Z - Required stages: impl, unit
2026-06-03T22:00:56.7783724Z 
2026-06-03T22:00:56.7783881Z ### REQ-DAEMON-1
2026-06-03T22:00:56.7784193Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-03T22:00:56.7784374Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7784397Z 
2026-06-03T22:00:56.7784547Z ### REQ-DAEMON-2
2026-06-03T22:00:56.7784803Z - Title: Broker/brain split for seamless self-update
2026-06-03T22:00:56.7784978Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7784990Z 
2026-06-03T22:00:56.7785147Z ### REQ-DAEMON-3
2026-06-03T22:00:56.7785420Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-03T22:00:56.7785599Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7785613Z 
2026-06-03T22:00:56.7785765Z ### REQ-DAEMON-4
2026-06-03T22:00:56.7785968Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-03T22:00:56.7786145Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7786159Z 
2026-06-03T22:00:56.7786306Z ### REQ-STORE-1
2026-06-03T22:00:56.7787697Z - 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-03T22:00:56.7787801Z - Required stages: 
2026-06-03T22:00:56.7787817Z 
2026-06-03T22:00:56.7787911Z ### REQ-MANIFEST-1
2026-06-03T22:00:56.7788121Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-03T22:00:56.7788224Z - Required stages: doc, impl, unit
2026-06-03T22:00:56.7788240Z 
2026-06-03T22:00:56.7788331Z ### REQ-SEAM-SPAWN
2026-06-03T22:00:56.7788443Z - Title: spawn-session seam
2026-06-03T22:00:56.7788545Z - Required stages: impl, unit
2026-06-03T22:00:56.7788554Z 
2026-06-03T22:00:56.7788653Z ### REQ-SEAM-POSTSPAWN
2026-06-03T22:00:56.7788789Z - Title: post-spawn / api bind seam with boot nonce
2026-06-03T22:00:56.7788894Z - Required stages: impl, unit
2026-06-03T22:00:56.7788909Z 
2026-06-03T22:00:56.7789004Z ### REQ-SEAM-PSYCHE
2026-06-03T22:00:56.7789150Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-03T22:00:56.7789254Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7789263Z 
2026-06-03T22:00:56.7789353Z ### REQ-SEAM-HISTORY
2026-06-03T22:00:56.7789959Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-03T22:00:56.7790146Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7790162Z 
2026-06-03T22:00:56.7790318Z ### REQ-SEAM-ACTIVITY
2026-06-03T22:00:56.7790660Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-03T22:00:56.7790840Z - Required stages: impl, unit
2026-06-03T22:00:56.7790854Z 
2026-06-03T22:00:56.7791003Z ### REQ-SEAM-INJECT
2026-06-03T22:00:56.7791307Z - Title: inject-input methods configurable per activity-state
2026-06-03T22:00:56.7791477Z - Required stages: impl, unit
2026-06-03T22:00:56.7791490Z 
2026-06-03T22:00:56.7791651Z ### REQ-SEAM-RESUME
2026-06-03T22:00:56.7792152Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-03T22:00:56.7792262Z - Required stages: impl, unit
2026-06-03T22:00:56.7792271Z 
2026-06-03T22:00:56.7792369Z ### REQ-SEAM-CAPABILITY
2026-06-03T22:00:56.7792526Z - Title: Hostable endpoint-types capability declaration
2026-06-03T22:00:56.7792626Z - Required stages: impl, unit
2026-06-03T22:00:56.7792764Z 
2026-06-03T22:00:56.7792860Z ### REQ-SEAM-UPDATE
2026-06-03T22:00:56.7793041Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-03T22:00:56.7793138Z - Required stages: impl, unit
2026-06-03T22:00:56.7793150Z 
2026-06-03T22:00:56.7793235Z ### REQ-API-1
2026-06-03T22:00:56.7793424Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-03T22:00:56.7793528Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7793538Z 
2026-06-03T22:00:56.7793628Z ### REQ-API-2
2026-06-03T22:00:56.7793872Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-03T22:00:56.7793985Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7793995Z 
2026-06-03T22:00:56.7794080Z ### REQ-API-3
2026-06-03T22:00:56.7794227Z - Title: commune/signoff are file-drops, not commands
2026-06-03T22:00:56.7794331Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7794340Z 
2026-06-03T22:00:56.7794426Z ### REQ-START-1
2026-06-03T22:00:56.7794649Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-03T22:00:56.7794750Z - Required stages: impl, unit
2026-06-03T22:00:56.7794759Z 
2026-06-03T22:00:56.7794843Z ### REQ-START-2
2026-06-03T22:00:56.7794995Z - Title: Harness-hosted startup: api seed then listen
2026-06-03T22:00:56.7795100Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7795109Z 
2026-06-03T22:00:56.7795194Z ### REQ-START-3
2026-06-03T22:00:56.7795377Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-03T22:00:56.7795482Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7795491Z 
2026-06-03T22:00:56.7795581Z ### REQ-START-4
2026-06-03T22:00:56.7795722Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-03T22:00:56.7795820Z - Required stages: impl, unit
2026-06-03T22:00:56.7795830Z 
2026-06-03T22:00:56.7795917Z ### REQ-EP-1
2026-06-03T22:00:56.7796053Z - Title: Day-one endpoint types; open type system
2026-06-03T22:00:56.7796151Z - Required stages: impl, unit
2026-06-03T22:00:56.7796160Z 
2026-06-03T22:00:56.7796245Z ### REQ-EP-2
2026-06-03T22:00:56.7796419Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-03T22:00:56.7796519Z - Required stages: impl, unit
2026-06-03T22:00:56.7796529Z 
2026-06-03T22:00:56.7796611Z ### REQ-EP-3
2026-06-03T22:00:56.7796808Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-03T22:00:56.7796908Z - Required stages: impl, unit
2026-06-03T22:00:56.7796917Z 
2026-06-03T22:00:56.7797000Z ### REQ-EP-4
2026-06-03T22:00:56.7797165Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-03T22:00:56.7797273Z - Required stages: 
2026-06-03T22:00:56.7797288Z 
2026-06-03T22:00:56.7797371Z ### REQ-EP-5
2026-06-03T22:00:56.7798220Z - 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-03T22:00:56.7798316Z - Required stages: 
2026-06-03T22:00:56.7798325Z 
2026-06-03T22:00:56.7798413Z ### REQ-INST-1
2026-06-03T22:00:56.7798584Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-03T22:00:56.7798672Z - Required stages: 
2026-06-03T22:00:56.7798680Z 
2026-06-03T22:00:56.7798767Z ### REQ-INST-2
2026-06-03T22:00:56.7798886Z - Title: Per-node files, synced Psyche mind
2026-06-03T22:00:56.7798978Z - Required stages: 
2026-06-03T22:00:56.7798987Z 
2026-06-03T22:00:56.7799070Z ### REQ-INST-3
2026-06-03T22:00:56.7799227Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-03T22:00:56.7799671Z - Required stages: 
2026-06-03T22:00:56.7799687Z 
2026-06-03T22:00:56.7799784Z ### REQ-INST-4
2026-06-03T22:00:56.7799992Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-03T22:00:56.7800086Z - Required stages: 
2026-06-03T22:00:56.7800095Z 
2026-06-03T22:00:56.7800185Z ### REQ-INST-5
2026-06-03T22:00:56.7800515Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-03T22:00:56.7800613Z - Required stages: 
2026-06-03T22:00:56.7800623Z 
2026-06-03T22:00:56.7800714Z ### REQ-INST-6
2026-06-03T22:00:56.7800917Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-03T22:00:56.7801013Z - Required stages: 
2026-06-03T22:00:56.7801022Z 
2026-06-03T22:00:56.7801115Z ### REQ-INST-7
2026-06-03T22:00:56.7801270Z - Title: Subnet registry + bare-id resolution policy
2026-06-03T22:00:56.7801364Z - Required stages: 
2026-06-03T22:00:56.7801373Z 
2026-06-03T22:00:56.7801456Z ### REQ-INST-8
2026-06-03T22:00:56.7801617Z - Title: Remote-control mode distinct from local operation
2026-06-03T22:00:56.7801711Z - Required stages: 
2026-06-03T22:00:56.7801725Z 
2026-06-03T22:00:56.7801808Z ### REQ-INST-9
2026-06-03T22:00:56.7802008Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-03T22:00:56.7802095Z - Required stages: 
2026-06-03T22:00:56.7802103Z 
2026-06-03T22:00:56.7802195Z ### REQ-INST-10
2026-06-03T22:00:56.7802438Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-03T22:00:56.7802538Z - Required stages: 
2026-06-03T22:00:56.7802548Z 
2026-06-03T22:00:56.7802643Z ### REQ-INST-11
2026-06-03T22:00:56.7802886Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-03T22:00:56.7802980Z - Required stages: 
2026-06-03T22:00:56.7802990Z 
2026-06-03T22:00:56.7803075Z ### REQ-INST-12
2026-06-03T22:00:56.7803422Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-03T22:00:56.7803520Z - Required stages: 
2026-06-03T22:00:56.7803529Z 
2026-06-03T22:00:56.7803614Z ### REQ-INST-13
2026-06-03T22:00:56.7803824Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-03T22:00:56.7803916Z - Required stages: 
2026-06-03T22:00:56.7803925Z 
2026-06-03T22:00:56.7804014Z ### REQ-INST-14
2026-06-03T22:00:56.7804479Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-03T22:00:56.7804568Z - Required stages: 
2026-06-03T22:00:56.7804577Z 
2026-06-03T22:00:56.7804667Z ### REQ-INST-15
2026-06-03T22:00:56.7805567Z - 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-03T22:00:56.7805662Z - Required stages: 
2026-06-03T22:00:56.7805670Z 
2026-06-03T22:00:56.7805765Z ### REQ-REACH-1
2026-06-03T22:00:56.7805919Z - Title: Off-node remote-drive detection + file transfer
2026-06-03T22:00:56.7806014Z - Required stages: 
2026-06-03T22:00:56.7806023Z 
2026-06-03T22:00:56.7806108Z ### REQ-REACH-2
2026-06-03T22:00:56.7806275Z - Title: Remote command execution (deferred, consent-gated)
2026-06-03T22:00:56.7806372Z - Required stages: 
2026-06-03T22:00:56.7806381Z 
2026-06-03T22:00:56.7806471Z ### REQ-MSG-1
2026-06-03T22:00:56.7807018Z - 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-03T22:00:56.7807124Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7807133Z 
2026-06-03T22:00:56.7807225Z ### REQ-MSG-2
2026-06-03T22:00:56.7807535Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-03T22:00:56.7807640Z - Required stages: impl, unit
2026-06-03T22:00:56.7807648Z 
2026-06-03T22:00:56.7807854Z ### REQ-MSG-3
2026-06-03T22:00:56.7808312Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-03T22:00:56.7808422Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7808432Z 
2026-06-03T22:00:56.7808529Z ### REQ-NODE-IDENTITY
2026-06-03T22:00:56.7808856Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-03T22:00:56.7808963Z - Required stages: impl, unit
2026-06-03T22:00:56.7808973Z 
2026-06-03T22:00:56.7809056Z ### REQ-NET-1
2026-06-03T22:00:56.7809258Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-03T22:00:56.7809593Z - Required stages: impl, unit
2026-06-03T22:00:56.7809610Z 
2026-06-03T22:00:56.7809745Z ### REQ-NET-2
2026-06-03T22:00:56.7809960Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-03T22:00:56.7810059Z - Required stages: impl
2026-06-03T22:00:56.7810068Z 
2026-06-03T22:00:56.7810163Z ### REQ-NET-3
2026-06-03T22:00:56.7810347Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-03T22:00:56.7810438Z - Required stages: 
2026-06-03T22:00:56.7810447Z 
2026-06-03T22:00:56.7810539Z ### REQ-PAIR-1
2026-06-03T22:00:56.7810646Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-03T22:00:56.7810748Z - Required stages: impl, unit
2026-06-03T22:00:56.7810757Z 
2026-06-03T22:00:56.7810863Z ### REQ-PAIR-2
2026-06-03T22:00:56.7811009Z - Title: Local trust store with TOFU + warn-on-change
2026-06-03T22:00:56.7811112Z - Required stages: impl, unit
2026-06-03T22:00:56.7811122Z 
2026-06-03T22:00:56.7811208Z ### REQ-PAIR-3
2026-06-03T22:00:56.7811363Z - Title: Fetch current pairing code from any paired node
2026-06-03T22:00:56.7811459Z - Required stages: impl, unit
2026-06-03T22:00:56.7811474Z 
2026-06-03T22:00:56.7811560Z ### REQ-PAIR-4
2026-06-03T22:00:56.7811675Z - Title: Subnet naming on first pairing
2026-06-03T22:00:56.7811771Z - Required stages: impl, unit
2026-06-03T22:00:56.7811786Z 
2026-06-03T22:00:56.7811875Z ### REQ-PAIR-5
2026-06-03T22:00:56.7812234Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-03T22:00:56.7812335Z - Required stages: impl, unit
2026-06-03T22:00:56.7812344Z 
2026-06-03T22:00:56.7812434Z ### REQ-PAIR-6
2026-06-03T22:00:56.7812731Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-03T22:00:56.7812834Z - Required stages: impl, unit
2026-06-03T22:00:56.7812843Z 
2026-06-03T22:00:56.7812928Z ### REQ-PAIR-7
2026-06-03T22:00:56.7813101Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-03T22:00:56.7813195Z - Required stages: 
2026-06-03T22:00:56.7813204Z 
2026-06-03T22:00:56.7813287Z ### REQ-SEC-1
2026-06-03T22:00:56.7813757Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-03T22:00:56.7813846Z - Required stages: 
2026-06-03T22:00:56.7813860Z 
2026-06-03T22:00:56.7813950Z ### REQ-NOTIF-1
2026-06-03T22:00:56.7814385Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-03T22:00:56.7814475Z - Required stages: 
2026-06-03T22:00:56.7814484Z 
2026-06-03T22:00:56.7814572Z ### REQ-NOTIF-2
2026-06-03T22:00:56.7814880Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-03T22:00:56.7814975Z - Required stages: 
2026-06-03T22:00:56.7814984Z 
2026-06-03T22:00:56.7815076Z ### REQ-UPD-1
2026-06-03T22:00:56.7815197Z - Title: Peer-propagated update over P2P
2026-06-03T22:00:56.7815292Z - Required stages: 
2026-06-03T22:00:56.7815301Z 
2026-06-03T22:00:56.7815384Z ### REQ-UPD-2
2026-06-03T22:00:56.7815534Z - Title: All binaries signature-verified before handoff
2026-06-03T22:00:56.7815636Z - Required stages: impl, unit
2026-06-03T22:00:56.7815646Z 
2026-06-03T22:00:56.7815729Z ### REQ-UPD-3
2026-06-03T22:00:56.7816074Z - Title: No endpoint process terminates/suspends during self-update
2026-06-03T22:00:56.7816178Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7816187Z 
2026-06-03T22:00:56.7816273Z ### REQ-UPD-4
2026-06-03T22:00:56.7816470Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-03T22:00:56.7816569Z - Required stages: impl, unit
2026-06-03T22:00:56.7816676Z 
2026-06-03T22:00:56.7816768Z ### REQ-UPD-5
2026-06-03T22:00:56.7816913Z - Title: spt-core ripple-updates registered adapters
2026-06-03T22:00:56.7817015Z - Required stages: impl, unit
2026-06-03T22:00:56.7817024Z 
2026-06-03T22:00:56.7817109Z ### REQ-TERM-1
2026-06-03T22:00:56.7817296Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-03T22:00:56.7817398Z - Required stages: impl, unit
2026-06-03T22:00:56.7817407Z 
2026-06-03T22:00:56.7817491Z ### REQ-TERM-2
2026-06-03T22:00:56.7817692Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-03T22:00:56.7817795Z - Required stages: impl, unit
2026-06-03T22:00:56.7817804Z 
2026-06-03T22:00:56.7817892Z ### REQ-TERM-3
2026-06-03T22:00:56.7818040Z - Title: Byte-stream remote terminal streaming for v1
2026-06-03T22:00:56.7818139Z - Required stages: impl, unit
2026-06-03T22:00:56.7818147Z 
2026-06-03T22:00:56.7818235Z ### REQ-TERM-4
2026-06-03T22:00:56.7818662Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-03T22:00:56.7818773Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7818783Z 
2026-06-03T22:00:56.7818877Z ### REQ-FRONT-1
2026-06-03T22:00:56.7819060Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-03T22:00:56.7819155Z - Required stages: 
2026-06-03T22:00:56.7819164Z 
2026-06-03T22:00:56.7819255Z ### REQ-INSTALL-1
2026-06-03T22:00:56.7819796Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-03T22:00:56.7819908Z - Required stages: 
2026-06-03T22:00:56.7819926Z 
2026-06-03T22:00:56.7820017Z ### REQ-INSTALL-2
2026-06-03T22:00:56.7820175Z - Title: Marketplace-repackaging-friendly install
2026-06-03T22:00:56.7820268Z - Required stages: 
2026-06-03T22:00:56.7820278Z 
2026-06-03T22:00:56.7820371Z ### REQ-INSTALL-3
2026-06-03T22:00:56.7820529Z - Title: Idempotent + interactive-optional first run
2026-06-03T22:00:56.7820626Z - Required stages: 
2026-06-03T22:00:56.7820635Z 
2026-06-03T22:00:56.7820728Z ### REQ-INSTALL-4
2026-06-03T22:00:56.7821576Z - 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-03T22:00:56.7821674Z - Required stages: 
2026-06-03T22:00:56.7821684Z 
2026-06-03T22:00:56.7821774Z ### REQ-MIGRATE-1
2026-06-03T22:00:56.7821963Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-03T22:00:56.7822068Z - Required stages: 
2026-06-03T22:00:56.7822082Z 
2026-06-03T22:00:56.7822172Z ### REQ-INFRA-1
2026-06-03T22:00:56.7822372Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-03T22:00:56.7822468Z - Required stages: 
2026-06-03T22:00:56.7822478Z 
2026-06-03T22:00:56.7822562Z ### REQ-DOCS-1
2026-06-03T22:00:56.7822792Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-03T22:00:56.7822881Z - Required stages: 
2026-06-03T22:00:56.7822890Z 
2026-06-03T22:00:56.7822983Z ### REQ-DOCS-2
2026-06-03T22:00:56.7823155Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-03T22:00:56.7823248Z - Required stages: 
2026-06-03T22:00:56.7823257Z 
2026-06-03T22:00:56.7823344Z ### REQ-DOCS-3
2026-06-03T22:00:56.7823612Z - Title: Diátaxis structure; one canonical way to do X
2026-06-03T22:00:56.7823707Z - Required stages: 
2026-06-03T22:00:56.7823716Z 
2026-06-03T22:00:56.7823802Z ### REQ-DOCS-4
2026-06-03T22:00:56.7824024Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-03T22:00:56.7824267Z - Required stages: 
2026-06-03T22:00:56.7824276Z 
2026-06-03T22:00:56.7824364Z ### REQ-DOCS-5
2026-06-03T22:00:56.7824583Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-03T22:00:56.7824673Z - Required stages: 
2026-06-03T22:00:56.7824682Z 
2026-06-03T22:00:56.7824806Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-03T22:00:56.7825126Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-03T22:00:56.7825233Z - Required stages: impl, unit
2026-06-03T22:00:56.7825242Z 
2026-06-03T22:00:56.7825359Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-03T22:00:56.7825525Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-03T22:00:56.7825634Z - Required stages: impl, unit
2026-06-03T22:00:56.7825644Z 
2026-06-03T22:00:56.7825755Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-03T22:00:56.7825897Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-03T22:00:56.7825992Z - Required stages: 
2026-06-03T22:00:56.7826006Z 
2026-06-03T22:00:56.7826110Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-03T22:00:56.7826314Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-03T22:00:56.7826422Z - Required stages: impl, unit
2026-06-03T22:00:56.7826432Z 
2026-06-03T22:00:56.7826535Z ### REQ-HAZARD-WORKER-PATH
2026-06-03T22:00:56.7826740Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-03T22:00:56.7826839Z - Required stages: impl, unit
2026-06-03T22:00:56.7826849Z 
2026-06-03T22:00:56.7826966Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-03T22:00:56.7827176Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-03T22:00:56.7827267Z - Required stages: 
2026-06-03T22:00:56.7827276Z 
2026-06-03T22:00:56.7827386Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-03T22:00:56.7827522Z - Title: Stdin session_id precedence over env (2.2)
2026-06-03T22:00:56.7827615Z - Required stages: 
2026-06-03T22:00:56.7827623Z 
2026-06-03T22:00:56.7827735Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-03T22:00:56.7827918Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-03T22:00:56.7828020Z - Required stages: impl, unit
2026-06-03T22:00:56.7828029Z 
2026-06-03T22:00:56.7828133Z ### REQ-HAZARD-GEN-START-NOW
2026-06-03T22:00:56.7828288Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-03T22:00:56.7828390Z - Required stages: impl, int
2026-06-03T22:00:56.7828399Z 
2026-06-03T22:00:56.7828512Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-03T22:00:56.7828689Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-03T22:00:56.7828789Z - Required stages: impl, unit
2026-06-03T22:00:56.7828798Z 
2026-06-03T22:00:56.7828917Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-03T22:00:56.7829093Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-03T22:00:56.7829195Z - Required stages: impl, unit
2026-06-03T22:00:56.7829204Z 
2026-06-03T22:00:56.7829314Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-03T22:00:56.7829810Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-03T22:00:56.7829921Z - Required stages: impl, unit
2026-06-03T22:00:56.7829931Z 
2026-06-03T22:00:56.7830046Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-03T22:00:56.7830220Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-03T22:00:56.7830324Z - Required stages: impl, unit
2026-06-03T22:00:56.7830339Z 
2026-06-03T22:00:56.7830454Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-03T22:00:56.7830648Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-03T22:00:56.7830747Z - Required stages: impl, unit
2026-06-03T22:00:56.7830755Z 
2026-06-03T22:00:56.7830900Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-03T22:00:56.7831151Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-03T22:00:56.7831250Z - Required stages: impl, unit
2026-06-03T22:00:56.7831259Z 
2026-06-03T22:00:56.7831363Z ### REQ-HAZARD-ID-CHARSET
2026-06-03T22:00:56.7831646Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-03T22:00:56.7831881Z - Required stages: impl, unit
2026-06-03T22:00:56.7831890Z 
2026-06-03T22:00:56.7832002Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-03T22:00:56.7832204Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-03T22:00:56.7832453Z - Required stages: impl, unit
2026-06-03T22:00:56.7832465Z 
2026-06-03T22:00:56.7832576Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-03T22:00:56.7832872Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-03T22:00:56.7832976Z - Required stages: impl, unit
2026-06-03T22:00:56.7832985Z 
2026-06-03T22:00:56.7833102Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-03T22:00:56.7833235Z - Title: Deferred rows survive poll drain (4.4)
2026-06-03T22:00:56.7833336Z - Required stages: impl, unit
2026-06-03T22:00:56.7833345Z 
2026-06-03T22:00:56.7833458Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-03T22:00:56.7833604Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-03T22:00:56.7833702Z - Required stages: impl, unit
2026-06-03T22:00:56.7833711Z 
2026-06-03T22:00:56.7833826Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-03T22:00:56.7833992Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-03T22:00:56.7834097Z - Required stages: impl, unit
2026-06-03T22:00:56.7834106Z 
2026-06-03T22:00:56.7834223Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-03T22:00:56.7834405Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-03T22:00:56.7834510Z - Required stages: impl, unit
2026-06-03T22:00:56.7834519Z 
2026-06-03T22:00:56.7834628Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-03T22:00:56.7834783Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-03T22:00:56.7834883Z - Required stages: impl, unit
2026-06-03T22:00:56.7834897Z 
2026-06-03T22:00:56.7835001Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-03T22:00:56.7835165Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-03T22:00:56.7835271Z - Required stages: impl, unit
2026-06-03T22:00:56.7835280Z 
2026-06-03T22:00:56.7835393Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-03T22:00:56.7835591Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-03T22:00:56.7835692Z - Required stages: impl, unit
2026-06-03T22:00:56.7835702Z 
2026-06-03T22:00:56.7835805Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-03T22:00:56.7836016Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-03T22:00:56.7836119Z - Required stages: impl, unit
2026-06-03T22:00:56.7836128Z 
2026-06-03T22:00:56.7836235Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-03T22:00:56.7836423Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-03T22:00:56.7836526Z - Required stages: impl, unit
2026-06-03T22:00:56.7836535Z 
2026-06-03T22:00:56.7836652Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-03T22:00:56.7836811Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-03T22:00:56.7836909Z - Required stages: impl, unit
2026-06-03T22:00:56.7836923Z 
2026-06-03T22:00:56.7837043Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-03T22:00:56.7837285Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-03T22:00:56.7837383Z - Required stages: impl, unit
2026-06-03T22:00:56.7837392Z 
2026-06-03T22:00:56.7837495Z ### REQ-HAZARD-CONPTY-DSR
2026-06-03T22:00:56.7837734Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-03T22:00:56.7837835Z - Required stages: impl, unit
2026-06-03T22:00:56.7837843Z 
2026-06-03T22:00:56.7837945Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-03T22:00:56.7838174Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-03T22:00:56.7838274Z - Required stages: impl, unit
2026-06-03T22:00:56.7838284Z 
2026-06-03T22:00:56.7838389Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-03T22:00:56.7838696Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-03T22:00:56.7838888Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7838897Z 
2026-06-03T22:00:56.7839002Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-03T22:00:56.7839301Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-03T22:00:56.7839710Z - Required stages: impl, unit
2026-06-03T22:00:56.7839724Z 
2026-06-03T22:00:56.7840014Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-03T22:00:56.7840580Z - 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-03T22:00:56.7840689Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7840700Z 
2026-06-03T22:00:56.7840824Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-03T22:00:56.7841939Z - 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-03T22:00:56.7842045Z - Required stages: 
2026-06-03T22:00:56.7842055Z 
2026-06-03T22:00:56.7842175Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-03T22:00:56.7843008Z - 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-03T22:00:56.7843102Z - Required stages: 
2026-06-03T22:00:56.7843113Z 
2026-06-03T22:00:56.7843229Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-03T22:00:56.7844061Z - 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-03T22:00:56.7844166Z - Required stages: impl, unit
2026-06-03T22:00:56.7844175Z 
2026-06-03T22:00:56.7844283Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-03T22:00:56.7844948Z - 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-03T22:00:56.7845051Z - Required stages: impl, unit
2026-06-03T22:00:56.7845061Z 
2026-06-03T22:00:56.7845174Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-03T22:00:56.7846296Z - 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-03T22:00:56.7846400Z - Required stages: impl, unit
2026-06-03T22:00:56.7846410Z 
2026-06-03T22:00:56.7846500Z ## How to report back
2026-06-03T22:00:56.7846509Z 
2026-06-03T22:00:56.7846711Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-03T22:00:56.7846721Z 
2026-06-03T22:00:56.7846809Z     {
2026-06-03T22:00:56.7846922Z       "code": "requirement_quality",
2026-06-03T22:00:56.7847028Z       "requirementId": "REQ-...",
2026-06-03T22:00:56.7847219Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-03T22:00:56.7847324Z       "message": "<short reason>",
2026-06-03T22:00:56.7847449Z       "suggestedRevision": "<optional rewrite>"
2026-06-03T22:00:56.7847544Z     }
2026-06-03T22:00:56.7847553Z 
2026-06-03T22:00:56.7847768Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-03T22:00:56.7847925Z deterministic findings above don't need to be repeated.
2026-06-03T22:00:56.7933923Z Post job cleanup.
2026-06-03T22:00:56.8903186Z [command]/usr/bin/git version
2026-06-03T22:00:56.8943296Z git version 2.54.0
2026-06-03T22:00:56.8990048Z Temporarily overriding HOME='/home/runner/work/_temp/0b7f5ea3-906f-47c4-8ae1-db44f8669d2a' before making global git config changes
2026-06-03T22:00:56.8991793Z Adding repository directory to the temporary git global config as a safe directory
2026-06-03T22:00:56.8997079Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/spt-core/spt-core
2026-06-03T22:00:56.9041054Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-03T22:00:56.9075997Z [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-03T22:00:56.9311991Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-03T22:00:56.9338590Z http.https://github.com/.extraheader
2026-06-03T22:00:56.9351267Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-03T22:00:56.9384690Z [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-03T22:00:56.9680383Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-03T22:00:56.9733400Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-03T22:00:57.0254600Z Cleaning up orphan processes
2026-06-03T22:00:57.0497401Z ##[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/
