﻿2026-06-04T00:09:14.6345721Z Current runner version: '2.334.0'
2026-06-04T00:09:14.6376656Z ##[group]Runner Image Provisioner
2026-06-04T00:09:14.6377829Z Hosted Compute Agent
2026-06-04T00:09:14.6378588Z Version: 20260520.533
2026-06-04T00:09:14.6379514Z Commit: 189110e25284a9812c124fd27b339e2fb4f2f9db
2026-06-04T00:09:14.6380430Z Build Date: 2026-05-20T17:44:04Z
2026-06-04T00:09:14.6381682Z Worker ID: {81fc6f36-cfcf-460d-911a-ccd0b49e7c57}
2026-06-04T00:09:14.6382694Z Azure Region: westus
2026-06-04T00:09:14.6383434Z ##[endgroup]
2026-06-04T00:09:14.6385355Z ##[group]Operating System
2026-06-04T00:09:14.6386165Z Ubuntu
2026-06-04T00:09:14.6386976Z 24.04.4
2026-06-04T00:09:14.6387651Z LTS
2026-06-04T00:09:14.6388296Z ##[endgroup]
2026-06-04T00:09:14.6389064Z ##[group]Runner Image
2026-06-04T00:09:14.6389850Z Image: ubuntu-24.04
2026-06-04T00:09:14.6390533Z Version: 20260525.161.1
2026-06-04T00:09:14.6392543Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260525.161/images/ubuntu/Ubuntu2404-Readme.md
2026-06-04T00:09:14.6394603Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260525.161
2026-06-04T00:09:14.6395860Z ##[endgroup]
2026-06-04T00:09:14.6397503Z ##[group]GITHUB_TOKEN Permissions
2026-06-04T00:09:14.6399726Z Contents: read
2026-06-04T00:09:14.6401424Z Metadata: read
2026-06-04T00:09:14.6402310Z Packages: read
2026-06-04T00:09:14.6403038Z ##[endgroup]
2026-06-04T00:09:14.6405650Z Secret source: Actions
2026-06-04T00:09:14.6406647Z Prepare workflow directory
2026-06-04T00:09:14.8292033Z Prepare all required actions
2026-06-04T00:09:14.8335685Z Getting action download info
2026-06-04T00:09:15.2707891Z Download action repository 'actions/checkout@v4' (SHA:34e114876b0b11c390a56381ad16ebd13914f8d5)
2026-06-04T00:09:16.0678430Z Complete job name: traceability
2026-06-04T00:09:16.1357296Z ##[group]Run actions/checkout@v4
2026-06-04T00:09:16.1358035Z with:
2026-06-04T00:09:16.1358472Z   repository: SaberMage/spt-core
2026-06-04T00:09:16.1362401Z   token: ***
2026-06-04T00:09:16.1363000Z   ssh-strict: true
2026-06-04T00:09:16.1363521Z   ssh-user: git
2026-06-04T00:09:16.1363940Z   persist-credentials: true
2026-06-04T00:09:16.1364402Z   clean: true
2026-06-04T00:09:16.1364830Z   sparse-checkout-cone-mode: true
2026-06-04T00:09:16.1365317Z   fetch-depth: 1
2026-06-04T00:09:16.1365724Z   fetch-tags: false
2026-06-04T00:09:16.1366144Z   show-progress: true
2026-06-04T00:09:16.1366561Z   lfs: false
2026-06-04T00:09:16.1366958Z   submodules: false
2026-06-04T00:09:16.1367375Z   set-safe-directory: true
2026-06-04T00:09:16.1368003Z ##[endgroup]
2026-06-04T00:09:16.2347192Z Syncing repository: SaberMage/spt-core
2026-06-04T00:09:16.2349342Z ##[group]Getting Git version info
2026-06-04T00:09:16.2350194Z Working directory is '/home/runner/work/spt-core/spt-core'
2026-06-04T00:09:16.2352060Z [command]/usr/bin/git version
2026-06-04T00:09:16.2378258Z git version 2.54.0
2026-06-04T00:09:16.2406357Z ##[endgroup]
2026-06-04T00:09:16.2414690Z Temporarily overriding HOME='/home/runner/work/_temp/120bbd9d-dff9-4efd-b01a-277c85084112' before making global git config changes
2026-06-04T00:09:16.2428023Z Adding repository directory to the temporary git global config as a safe directory
2026-06-04T00:09:16.2432039Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/spt-core/spt-core
2026-06-04T00:09:16.2492871Z Deleting the contents of '/home/runner/work/spt-core/spt-core'
2026-06-04T00:09:16.2496698Z ##[group]Initializing the repository
2026-06-04T00:09:16.2501372Z [command]/usr/bin/git init /home/runner/work/spt-core/spt-core
2026-06-04T00:09:16.2716329Z hint: Using 'master' as the name for the initial branch. This default branch name
2026-06-04T00:09:16.2718102Z hint: will change to "main" in Git 3.0. To configure the initial branch name
2026-06-04T00:09:16.2719513Z hint: to use in all of your new repositories, which will suppress this warning,
2026-06-04T00:09:16.2721330Z hint: call:
2026-06-04T00:09:16.2722423Z hint:
2026-06-04T00:09:16.2723313Z hint: 	git config --global init.defaultBranch <name>
2026-06-04T00:09:16.2724718Z hint:
2026-06-04T00:09:16.2725656Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
2026-06-04T00:09:16.2727044Z hint: 'development'. The just-created branch can be renamed via this command:
2026-06-04T00:09:16.2728213Z hint:
2026-06-04T00:09:16.2728968Z hint: 	git branch -m <name>
2026-06-04T00:09:16.2729757Z hint:
2026-06-04T00:09:16.2730673Z hint: Disable this message with "git config set advice.defaultBranchName false"
2026-06-04T00:09:16.2732515Z Initialized empty Git repository in /home/runner/work/spt-core/spt-core/.git/
2026-06-04T00:09:16.2737164Z [command]/usr/bin/git remote add origin https://github.com/SaberMage/spt-core
2026-06-04T00:09:16.3208105Z ##[endgroup]
2026-06-04T00:09:16.3209648Z ##[group]Disabling automatic garbage collection
2026-06-04T00:09:16.3212518Z [command]/usr/bin/git config --local gc.auto 0
2026-06-04T00:09:16.3354931Z ##[endgroup]
2026-06-04T00:09:16.3356434Z ##[group]Setting up auth
2026-06-04T00:09:16.3360633Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-04T00:09:16.3402999Z [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-04T00:09:16.3654271Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-04T00:09:16.3682332Z [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-04T00:09:16.3884658Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-04T00:09:16.3913184Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-04T00:09:16.4123995Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-04T00:09:16.4548181Z ##[endgroup]
2026-06-04T00:09:16.4550402Z ##[group]Fetching the repository
2026-06-04T00:09:16.4557100Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +20b05788920237d2df7a6da452d55dc9e510947c:refs/remotes/origin/dev-freeform
2026-06-04T00:09:17.1351566Z From https://github.com/SaberMage/spt-core
2026-06-04T00:09:17.1363096Z  * [new ref]         20b05788920237d2df7a6da452d55dc9e510947c -> origin/dev-freeform
2026-06-04T00:09:17.1373548Z ##[endgroup]
2026-06-04T00:09:17.1375268Z ##[group]Determining the checkout info
2026-06-04T00:09:17.1377516Z ##[endgroup]
2026-06-04T00:09:17.1378885Z [command]/usr/bin/git sparse-checkout disable
2026-06-04T00:09:17.1403167Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-04T00:09:17.1439756Z ##[group]Checking out the ref
2026-06-04T00:09:17.1441876Z [command]/usr/bin/git checkout --progress --force -B dev-freeform refs/remotes/origin/dev-freeform
2026-06-04T00:09:17.1590445Z Switched to a new branch 'dev-freeform'
2026-06-04T00:09:17.1601611Z branch 'dev-freeform' set up to track 'origin/dev-freeform'.
2026-06-04T00:09:17.1604997Z ##[endgroup]
2026-06-04T00:09:17.1636938Z [command]/usr/bin/git log -1 --format=%H
2026-06-04T00:09:17.1658710Z 20b05788920237d2df7a6da452d55dc9e510947c
2026-06-04T00:09:17.1865901Z ##[group]Run gh release download --repo BigscreenVR/traceable-reqs \
2026-06-04T00:09:17.1867523Z [36;1mgh release download --repo BigscreenVR/traceable-reqs \[0m
2026-06-04T00:09:17.1868903Z [36;1m  --pattern '*linux-x86_64' --output traceable-reqs[0m
2026-06-04T00:09:17.1870004Z [36;1mchmod +x traceable-reqs[0m
2026-06-04T00:09:17.1898012Z shell: /usr/bin/bash -e {0}
2026-06-04T00:09:17.1898825Z env:
2026-06-04T00:09:17.1900633Z   GH_TOKEN: ***
2026-06-04T00:09:17.1901573Z ##[endgroup]
2026-06-04T00:09:18.1916188Z ##[group]Run ./traceable-reqs check --json
2026-06-04T00:09:18.1916710Z [36;1m./traceable-reqs check --json[0m
2026-06-04T00:09:18.1939109Z shell: /usr/bin/bash -e {0}
2026-06-04T00:09:18.1939341Z ##[endgroup]
2026-06-04T00:09:18.2043862Z {
2026-06-04T00:09:18.2044137Z   "schemaVersion": 1,
2026-06-04T00:09:18.2044558Z   "summary": {
2026-06-04T00:09:18.2044908Z     "requirementCount": 126,
2026-06-04T00:09:18.2045280Z     "completeCount": 126,
2026-06-04T00:09:18.2045643Z     "incompleteCount": 0,
2026-06-04T00:09:18.2046003Z     "findingCount": 0
2026-06-04T00:09:18.2046334Z   },
2026-06-04T00:09:18.2046696Z   "requirements": [
2026-06-04T00:09:18.2047185Z     {
2026-06-04T00:09:18.2047452Z       "id": "REQ-API-1",
2026-06-04T00:09:18.2047929Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-04T00:09:18.2048440Z       "requiredStages": [
2026-06-04T00:09:18.2048757Z         "impl",
2026-06-04T00:09:18.2049034Z         "unit",
2026-06-04T00:09:18.2049347Z         "int"
2026-06-04T00:09:18.2049621Z       ],
2026-06-04T00:09:18.2049875Z       "stages": {
2026-06-04T00:09:18.2050154Z         "doc": {
2026-06-04T00:09:18.2050454Z           "complete": false,
2026-06-04T00:09:18.2050953Z           "evidence": []
2026-06-04T00:09:18.2051259Z         },
2026-06-04T00:09:18.2051537Z         "impl": {
2026-06-04T00:09:18.2051817Z           "complete": true,
2026-06-04T00:09:18.2052135Z           "evidence": [
2026-06-04T00:09:18.2052449Z             {
2026-06-04T00:09:18.2052789Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T00:09:18.2053189Z               "line": 15
2026-06-04T00:09:18.2053482Z             }
2026-06-04T00:09:18.2053739Z           ]
2026-06-04T00:09:18.2054670Z         },
2026-06-04T00:09:18.2054914Z         "int": {
2026-06-04T00:09:18.2055189Z           "complete": true,
2026-06-04T00:09:18.2056239Z           "evidence": [
2026-06-04T00:09:18.2056534Z             {
2026-06-04T00:09:18.2056862Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:09:18.2057302Z               "line": 13
2026-06-04T00:09:18.2057591Z             }
2026-06-04T00:09:18.2057848Z           ]
2026-06-04T00:09:18.2058087Z         },
2026-06-04T00:09:18.2058329Z         "unit": {
2026-06-04T00:09:18.2058607Z           "complete": true,
2026-06-04T00:09:18.2058917Z           "evidence": [
2026-06-04T00:09:18.2059201Z             {
2026-06-04T00:09:18.2059496Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T00:09:18.2059869Z               "line": 329
2026-06-04T00:09:18.2060161Z             },
2026-06-04T00:09:18.2060419Z             {
2026-06-04T00:09:18.2060706Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T00:09:18.2076007Z               "line": 335
2026-06-04T00:09:18.2076300Z             },
2026-06-04T00:09:18.2076556Z             {
2026-06-04T00:09:18.2076845Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T00:09:18.2077215Z               "line": 346
2026-06-04T00:09:18.2077498Z             }
2026-06-04T00:09:18.2077739Z           ]
2026-06-04T00:09:18.2077971Z         }
2026-06-04T00:09:18.2078209Z       }
2026-06-04T00:09:18.2078437Z     },
2026-06-04T00:09:18.2078664Z     {
2026-06-04T00:09:18.2078915Z       "id": "REQ-API-2",
2026-06-04T00:09:18.2079405Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-04T00:09:18.2079994Z       "requiredStages": [
2026-06-04T00:09:18.2080282Z         "impl",
2026-06-04T00:09:18.2080528Z         "unit",
2026-06-04T00:09:18.2080911Z         "int"
2026-06-04T00:09:18.2081164Z       ],
2026-06-04T00:09:18.2081392Z       "stages": {
2026-06-04T00:09:18.2081645Z         "doc": {
2026-06-04T00:09:18.2081906Z           "complete": false,
2026-06-04T00:09:18.2082212Z           "evidence": []
2026-06-04T00:09:18.2082481Z         },
2026-06-04T00:09:18.2082715Z         "impl": {
2026-06-04T00:09:18.2082973Z           "complete": true,
2026-06-04T00:09:18.2083264Z           "evidence": [
2026-06-04T00:09:18.2083797Z             {
2026-06-04T00:09:18.2084100Z               "path": "crates/spt-store/src/history.rs",
2026-06-04T00:09:18.2084606Z               "line": 15
2026-06-04T00:09:18.2084868Z             },
2026-06-04T00:09:18.2085033Z             {
2026-06-04T00:09:18.2085234Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:09:18.2085477Z               "line": 20
2026-06-04T00:09:18.2085659Z             },
2026-06-04T00:09:18.2085829Z             {
2026-06-04T00:09:18.2086018Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:09:18.2086257Z               "line": 125
2026-06-04T00:09:18.2086445Z             },
2026-06-04T00:09:18.2086612Z             {
2026-06-04T00:09:18.2086810Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2087055Z               "line": 21
2026-06-04T00:09:18.2087231Z             },
2026-06-04T00:09:18.2087407Z             {
2026-06-04T00:09:18.2087622Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2087899Z               "line": 36
2026-06-04T00:09:18.2088099Z             },
2026-06-04T00:09:18.2088279Z             {
2026-06-04T00:09:18.2088491Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2088765Z               "line": 101
2026-06-04T00:09:18.2148600Z             },
2026-06-04T00:09:18.2148892Z             {
2026-06-04T00:09:18.2149221Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2149622Z               "line": 123
2026-06-04T00:09:18.2149905Z             },
2026-06-04T00:09:18.2150147Z             {
2026-06-04T00:09:18.2150451Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2151078Z               "line": 147
2026-06-04T00:09:18.2151370Z             },
2026-06-04T00:09:18.2151595Z             {
2026-06-04T00:09:18.2151792Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:09:18.2152046Z               "line": 17
2026-06-04T00:09:18.2152240Z             },
2026-06-04T00:09:18.2152441Z             {
2026-06-04T00:09:18.2152640Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:09:18.2152892Z               "line": 30
2026-06-04T00:09:18.2153083Z             },
2026-06-04T00:09:18.2153252Z             {
2026-06-04T00:09:18.2153437Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:09:18.2153676Z               "line": 63
2026-06-04T00:09:18.2153856Z             },
2026-06-04T00:09:18.2154026Z             {
2026-06-04T00:09:18.2154229Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:09:18.2154485Z               "line": 76
2026-06-04T00:09:18.2154680Z             }
2026-06-04T00:09:18.2154841Z           ]
2026-06-04T00:09:18.2154998Z         },
2026-06-04T00:09:18.2155190Z         "int": {
2026-06-04T00:09:18.2155374Z           "complete": true,
2026-06-04T00:09:18.2155581Z           "evidence": [
2026-06-04T00:09:18.2155759Z             {
2026-06-04T00:09:18.2155963Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:09:18.2156217Z               "line": 14
2026-06-04T00:09:18.2156399Z             },
2026-06-04T00:09:18.2156566Z             {
2026-06-04T00:09:18.2156759Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:09:18.2156999Z               "line": 151
2026-06-04T00:09:18.2157175Z             }
2026-06-04T00:09:18.2157336Z           ]
2026-06-04T00:09:18.2157493Z         },
2026-06-04T00:09:18.2157651Z         "unit": {
2026-06-04T00:09:18.2157833Z           "complete": true,
2026-06-04T00:09:18.2158030Z           "evidence": [
2026-06-04T00:09:18.2158209Z             {
2026-06-04T00:09:18.2158430Z               "path": "crates/spt-store/src/history.rs",
2026-06-04T00:09:18.2158683Z               "line": 42
2026-06-04T00:09:18.2158864Z             },
2026-06-04T00:09:18.2159031Z             {
2026-06-04T00:09:18.2159229Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:09:18.2159476Z               "line": 204
2026-06-04T00:09:18.2159668Z             },
2026-06-04T00:09:18.2160065Z             {
2026-06-04T00:09:18.2160269Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2160635Z               "line": 220
2026-06-04T00:09:18.2161024Z             },
2026-06-04T00:09:18.2161196Z             {
2026-06-04T00:09:18.2161391Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2161637Z               "line": 231
2026-06-04T00:09:18.2161812Z             },
2026-06-04T00:09:18.2161970Z             {
2026-06-04T00:09:18.2162163Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2162406Z               "line": 267
2026-06-04T00:09:18.2162591Z             },
2026-06-04T00:09:18.2162755Z             {
2026-06-04T00:09:18.2162953Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2163201Z               "line": 279
2026-06-04T00:09:18.2163383Z             },
2026-06-04T00:09:18.2163543Z             {
2026-06-04T00:09:18.2163737Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:09:18.2163985Z               "line": 137
2026-06-04T00:09:18.2164169Z             },
2026-06-04T00:09:18.2164328Z             {
2026-06-04T00:09:18.2164511Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:09:18.2164743Z               "line": 172
2026-06-04T00:09:18.2164918Z             }
2026-06-04T00:09:18.2165082Z           ]
2026-06-04T00:09:18.2165242Z         }
2026-06-04T00:09:18.2165403Z       }
2026-06-04T00:09:18.2165558Z     },
2026-06-04T00:09:18.2165717Z     {
2026-06-04T00:09:18.2165882Z       "id": "REQ-API-3",
2026-06-04T00:09:18.2166138Z       "title": "commune/signoff are file-drops, not commands",
2026-06-04T00:09:18.2166419Z       "requiredStages": [
2026-06-04T00:09:18.2166611Z         "impl",
2026-06-04T00:09:18.2166790Z         "unit",
2026-06-04T00:09:18.2166956Z         "int"
2026-06-04T00:09:18.2167121Z       ],
2026-06-04T00:09:18.2167284Z       "stages": {
2026-06-04T00:09:18.2167464Z         "doc": {
2026-06-04T00:09:18.2167650Z           "complete": false,
2026-06-04T00:09:18.2167862Z           "evidence": []
2026-06-04T00:09:18.2168076Z         },
2026-06-04T00:09:18.2168245Z         "impl": {
2026-06-04T00:09:18.2168426Z           "complete": true,
2026-06-04T00:09:18.2168627Z           "evidence": [
2026-06-04T00:09:18.2168814Z             {
2026-06-04T00:09:18.2169035Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T00:09:18.2169286Z               "line": 14
2026-06-04T00:09:18.2169478Z             },
2026-06-04T00:09:18.2169646Z             {
2026-06-04T00:09:18.2169849Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2170105Z               "line": 157
2026-06-04T00:09:18.2170297Z             }
2026-06-04T00:09:18.2170466Z           ]
2026-06-04T00:09:18.2170634Z         },
2026-06-04T00:09:18.2171856Z         "int": {
2026-06-04T00:09:18.2172184Z           "complete": true,
2026-06-04T00:09:18.2172525Z           "evidence": [
2026-06-04T00:09:18.2172839Z             {
2026-06-04T00:09:18.2173231Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:09:18.2173597Z               "line": 203
2026-06-04T00:09:18.2173854Z             }
2026-06-04T00:09:18.2174078Z           ]
2026-06-04T00:09:18.2174297Z         },
2026-06-04T00:09:18.2174553Z         "unit": {
2026-06-04T00:09:18.2174803Z           "complete": true,
2026-06-04T00:09:18.2175075Z           "evidence": [
2026-06-04T00:09:18.2175326Z             {
2026-06-04T00:09:18.2175606Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T00:09:18.2175957Z               "line": 117
2026-06-04T00:09:18.2176216Z             },
2026-06-04T00:09:18.2176442Z             {
2026-06-04T00:09:18.2176726Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2177081Z               "line": 288
2026-06-04T00:09:18.2177384Z             }
2026-06-04T00:09:18.2177617Z           ]
2026-06-04T00:09:18.2177849Z         }
2026-06-04T00:09:18.2178070Z       }
2026-06-04T00:09:18.2178302Z     },
2026-06-04T00:09:18.2178521Z     {
2026-06-04T00:09:18.2178966Z       "id": "REQ-ARCH-1",
2026-06-04T00:09:18.2179348Z       "title": "Many small acyclically-layered crates",
2026-06-04T00:09:18.2179902Z       "requiredStages": [
2026-06-04T00:09:18.2180195Z         "impl"
2026-06-04T00:09:18.2180440Z       ],
2026-06-04T00:09:18.2180684Z       "stages": {
2026-06-04T00:09:18.2181262Z         "doc": {
2026-06-04T00:09:18.2181551Z           "complete": false,
2026-06-04T00:09:18.2181865Z           "evidence": []
2026-06-04T00:09:18.2182172Z         },
2026-06-04T00:09:18.2182428Z         "impl": {
2026-06-04T00:09:18.2182711Z           "complete": true,
2026-06-04T00:09:18.2183021Z           "evidence": [
2026-06-04T00:09:18.2183313Z             {
2026-06-04T00:09:18.2183621Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-04T00:09:18.2184004Z               "line": 16
2026-06-04T00:09:18.2184296Z             },
2026-06-04T00:09:18.2184566Z             {
2026-06-04T00:09:18.2184894Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-04T00:09:18.2185293Z               "line": 12
2026-06-04T00:09:18.2185579Z             },
2026-06-04T00:09:18.2185842Z             {
2026-06-04T00:09:18.2186178Z               "path": "crates/spt-store/src/lib.rs",
2026-06-04T00:09:18.2186564Z               "line": 12
2026-06-04T00:09:18.2186841Z             }
2026-06-04T00:09:18.2187094Z           ]
2026-06-04T00:09:18.2187298Z         },
2026-06-04T00:09:18.2187467Z         "int": {
2026-06-04T00:09:18.2187657Z           "complete": false,
2026-06-04T00:09:18.2187869Z           "evidence": []
2026-06-04T00:09:18.2188061Z         },
2026-06-04T00:09:18.2188222Z         "unit": {
2026-06-04T00:09:18.2188405Z           "complete": false,
2026-06-04T00:09:18.2188612Z           "evidence": []
2026-06-04T00:09:18.2188797Z         }
2026-06-04T00:09:18.2188961Z       }
2026-06-04T00:09:18.2189117Z     },
2026-06-04T00:09:18.2189280Z     {
2026-06-04T00:09:18.2189456Z       "id": "REQ-ARCH-2",
2026-06-04T00:09:18.2189746Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-04T00:09:18.2190060Z       "requiredStages": [
2026-06-04T00:09:18.2190255Z         "impl"
2026-06-04T00:09:18.2190430Z       ],
2026-06-04T00:09:18.2190600Z       "stages": {
2026-06-04T00:09:18.2190959Z         "doc": {
2026-06-04T00:09:18.2191183Z           "complete": false,
2026-06-04T00:09:18.2191390Z           "evidence": []
2026-06-04T00:09:18.2191579Z         },
2026-06-04T00:09:18.2191749Z         "impl": {
2026-06-04T00:09:18.2191936Z           "complete": true,
2026-06-04T00:09:18.2192145Z           "evidence": [
2026-06-04T00:09:18.2192336Z             {
2026-06-04T00:09:18.2192562Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-04T00:09:18.2192840Z               "line": 18
2026-06-04T00:09:18.2193026Z             }
2026-06-04T00:09:18.2193199Z           ]
2026-06-04T00:09:18.2193362Z         },
2026-06-04T00:09:18.2193524Z         "int": {
2026-06-04T00:09:18.2193706Z           "complete": false,
2026-06-04T00:09:18.2193914Z           "evidence": []
2026-06-04T00:09:18.2194101Z         },
2026-06-04T00:09:18.2194260Z         "unit": {
2026-06-04T00:09:18.2194442Z           "complete": false,
2026-06-04T00:09:18.2194640Z           "evidence": []
2026-06-04T00:09:18.2194821Z         }
2026-06-04T00:09:18.2194978Z       }
2026-06-04T00:09:18.2195135Z     },
2026-06-04T00:09:18.2195292Z     {
2026-06-04T00:09:18.2195458Z       "id": "REQ-ARCH-3",
2026-06-04T00:09:18.2195776Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-04T00:09:18.2196120Z       "requiredStages": [
2026-06-04T00:09:18.2196311Z         "impl",
2026-06-04T00:09:18.2196481Z         "unit"
2026-06-04T00:09:18.2196645Z       ],
2026-06-04T00:09:18.2196812Z       "stages": {
2026-06-04T00:09:18.2196984Z         "doc": {
2026-06-04T00:09:18.2197161Z           "complete": false,
2026-06-04T00:09:18.2197359Z           "evidence": []
2026-06-04T00:09:18.2197546Z         },
2026-06-04T00:09:18.2197703Z         "impl": {
2026-06-04T00:09:18.2198039Z           "complete": true,
2026-06-04T00:09:18.2198241Z           "evidence": [
2026-06-04T00:09:18.2198510Z             {
2026-06-04T00:09:18.2198713Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T00:09:18.2198962Z               "line": 34
2026-06-04T00:09:18.2199137Z             },
2026-06-04T00:09:18.2199303Z             {
2026-06-04T00:09:18.2199505Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T00:09:18.2199742Z               "line": 41
2026-06-04T00:09:18.2199914Z             }
2026-06-04T00:09:18.2200076Z           ]
2026-06-04T00:09:18.2200231Z         },
2026-06-04T00:09:18.2200384Z         "int": {
2026-06-04T00:09:18.2200556Z           "complete": false,
2026-06-04T00:09:18.2200896Z           "evidence": []
2026-06-04T00:09:18.2201115Z         },
2026-06-04T00:09:18.2201271Z         "unit": {
2026-06-04T00:09:18.2201449Z           "complete": true,
2026-06-04T00:09:18.2201642Z           "evidence": [
2026-06-04T00:09:18.2201823Z             {
2026-06-04T00:09:18.2202016Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T00:09:18.2202255Z               "line": 51
2026-06-04T00:09:18.2202438Z             },
2026-06-04T00:09:18.2202606Z             {
2026-06-04T00:09:18.2202829Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T00:09:18.2203068Z               "line": 65
2026-06-04T00:09:18.2203250Z             },
2026-06-04T00:09:18.2203420Z             {
2026-06-04T00:09:18.2203612Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T00:09:18.2203849Z               "line": 74
2026-06-04T00:09:18.2204038Z             }
2026-06-04T00:09:18.2204218Z           ]
2026-06-04T00:09:18.2204389Z         }
2026-06-04T00:09:18.2204554Z       }
2026-06-04T00:09:18.2204715Z     },
2026-06-04T00:09:18.2204880Z     {
2026-06-04T00:09:18.2205044Z       "id": "REQ-ARCH-4",
2026-06-04T00:09:18.2205325Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-04T00:09:18.2205636Z       "requiredStages": [
2026-06-04T00:09:18.2205823Z         "impl",
2026-06-04T00:09:18.2205992Z         "unit"
2026-06-04T00:09:18.2206166Z       ],
2026-06-04T00:09:18.2206323Z       "stages": {
2026-06-04T00:09:18.2206488Z         "doc": {
2026-06-04T00:09:18.2206657Z           "complete": false,
2026-06-04T00:09:18.2206850Z           "evidence": []
2026-06-04T00:09:18.2207027Z         },
2026-06-04T00:09:18.2207183Z         "impl": {
2026-06-04T00:09:18.2207352Z           "complete": true,
2026-06-04T00:09:18.2207544Z           "evidence": [
2026-06-04T00:09:18.2207721Z             {
2026-06-04T00:09:18.2207910Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2208143Z               "line": 32
2026-06-04T00:09:18.2208318Z             },
2026-06-04T00:09:18.2208473Z             {
2026-06-04T00:09:18.2208658Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2208885Z               "line": 46
2026-06-04T00:09:18.2209057Z             },
2026-06-04T00:09:18.2209216Z             {
2026-06-04T00:09:18.2209399Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2209632Z               "line": 66
2026-06-04T00:09:18.2209803Z             },
2026-06-04T00:09:18.2209961Z             {
2026-06-04T00:09:18.2210143Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2210369Z               "line": 81
2026-06-04T00:09:18.2210537Z             },
2026-06-04T00:09:18.2210701Z             {
2026-06-04T00:09:18.2211049Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2211286Z               "line": 131
2026-06-04T00:09:18.2211469Z             }
2026-06-04T00:09:18.2211630Z           ]
2026-06-04T00:09:18.2211785Z         },
2026-06-04T00:09:18.2211942Z         "int": {
2026-06-04T00:09:18.2212117Z           "complete": false,
2026-06-04T00:09:18.2212316Z           "evidence": []
2026-06-04T00:09:18.2212501Z         },
2026-06-04T00:09:18.2212658Z         "unit": {
2026-06-04T00:09:18.2212970Z           "complete": true,
2026-06-04T00:09:18.2213173Z           "evidence": [
2026-06-04T00:09:18.2213356Z             {
2026-06-04T00:09:18.2213632Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2213867Z               "line": 195
2026-06-04T00:09:18.2214056Z             },
2026-06-04T00:09:18.2214228Z             {
2026-06-04T00:09:18.2214418Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2214655Z               "line": 205
2026-06-04T00:09:18.2214836Z             },
2026-06-04T00:09:18.2215001Z             {
2026-06-04T00:09:18.2215189Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2215425Z               "line": 216
2026-06-04T00:09:18.2215603Z             },
2026-06-04T00:09:18.2215766Z             {
2026-06-04T00:09:18.2215959Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2216193Z               "line": 227
2026-06-04T00:09:18.2216374Z             },
2026-06-04T00:09:18.2216537Z             {
2026-06-04T00:09:18.2216727Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2216966Z               "line": 239
2026-06-04T00:09:18.2217153Z             },
2026-06-04T00:09:18.2217317Z             {
2026-06-04T00:09:18.2217511Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2217745Z               "line": 252
2026-06-04T00:09:18.2217925Z             },
2026-06-04T00:09:18.2218086Z             {
2026-06-04T00:09:18.2218276Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2218507Z               "line": 263
2026-06-04T00:09:18.2218686Z             },
2026-06-04T00:09:18.2218846Z             {
2026-06-04T00:09:18.2219040Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2219278Z               "line": 277
2026-06-04T00:09:18.2219458Z             },
2026-06-04T00:09:18.2219617Z             {
2026-06-04T00:09:18.2219802Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:09:18.2220033Z               "line": 286
2026-06-04T00:09:18.2220216Z             }
2026-06-04T00:09:18.2220375Z           ]
2026-06-04T00:09:18.2220546Z         }
2026-06-04T00:09:18.2220727Z       }
2026-06-04T00:09:18.2221102Z     },
2026-06-04T00:09:18.2221263Z     {
2026-06-04T00:09:18.2221438Z       "id": "REQ-DAEMON-1",
2026-06-04T00:09:18.2221730Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-04T00:09:18.2222044Z       "requiredStages": [
2026-06-04T00:09:18.2222246Z         "impl",
2026-06-04T00:09:18.2222423Z         "unit",
2026-06-04T00:09:18.2222601Z         "int"
2026-06-04T00:09:18.2222769Z       ],
2026-06-04T00:09:18.2222932Z       "stages": {
2026-06-04T00:09:18.2223106Z         "doc": {
2026-06-04T00:09:18.2223290Z           "complete": false,
2026-06-04T00:09:18.2223498Z           "evidence": []
2026-06-04T00:09:18.2223687Z         },
2026-06-04T00:09:18.2223853Z         "impl": {
2026-06-04T00:09:18.2224034Z           "complete": true,
2026-06-04T00:09:18.2224241Z           "evidence": [
2026-06-04T00:09:18.2224427Z             {
2026-06-04T00:09:18.2224629Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:09:18.2224910Z               "line": 12
2026-06-04T00:09:18.2225093Z             },
2026-06-04T00:09:18.2225265Z             {
2026-06-04T00:09:18.2225468Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2225728Z               "line": 16
2026-06-04T00:09:18.2225916Z             },
2026-06-04T00:09:18.2226082Z             {
2026-06-04T00:09:18.2226279Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-04T00:09:18.2226524Z               "line": 15
2026-06-04T00:09:18.2226706Z             },
2026-06-04T00:09:18.2226867Z             {
2026-06-04T00:09:18.2227064Z               "path": "crates/spt/src/api/live.rs",
2026-06-04T00:09:18.2227313Z               "line": 13
2026-06-04T00:09:18.2227493Z             }
2026-06-04T00:09:18.2227665Z           ]
2026-06-04T00:09:18.2227825Z         },
2026-06-04T00:09:18.2227994Z         "int": {
2026-06-04T00:09:18.2228341Z           "complete": true,
2026-06-04T00:09:18.2228539Z           "evidence": [
2026-06-04T00:09:18.2228810Z             {
2026-06-04T00:09:18.2229022Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T00:09:18.2229284Z               "line": 32
2026-06-04T00:09:18.2229479Z             }
2026-06-04T00:09:18.2229640Z           ]
2026-06-04T00:09:18.2229799Z         },
2026-06-04T00:09:18.2229957Z         "unit": {
2026-06-04T00:09:18.2230136Z           "complete": true,
2026-06-04T00:09:18.2230333Z           "evidence": [
2026-06-04T00:09:18.2230512Z             {
2026-06-04T00:09:18.2230706Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:09:18.2231150Z               "line": 173
2026-06-04T00:09:18.2231343Z             },
2026-06-04T00:09:18.2231508Z             {
2026-06-04T00:09:18.2231703Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:09:18.2231945Z               "line": 181
2026-06-04T00:09:18.2232133Z             },
2026-06-04T00:09:18.2232296Z             {
2026-06-04T00:09:18.2232489Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:09:18.2232736Z               "line": 194
2026-06-04T00:09:18.2232925Z             },
2026-06-04T00:09:18.2233089Z             {
2026-06-04T00:09:18.2233281Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:09:18.2233524Z               "line": 202
2026-06-04T00:09:18.2233717Z             },
2026-06-04T00:09:18.2233884Z             {
2026-06-04T00:09:18.2234081Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2234335Z               "line": 451
2026-06-04T00:09:18.2234530Z             },
2026-06-04T00:09:18.2234693Z             {
2026-06-04T00:09:18.2234889Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2235149Z               "line": 510
2026-06-04T00:09:18.2235337Z             },
2026-06-04T00:09:18.2235502Z             {
2026-06-04T00:09:18.2235709Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-04T00:09:18.2235950Z               "line": 100
2026-06-04T00:09:18.2236137Z             },
2026-06-04T00:09:18.2236306Z             {
2026-06-04T00:09:18.2236497Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-04T00:09:18.2236735Z               "line": 125
2026-06-04T00:09:18.2236932Z             }
2026-06-04T00:09:18.2237091Z           ]
2026-06-04T00:09:18.2237262Z         }
2026-06-04T00:09:18.2237428Z       }
2026-06-04T00:09:18.2237589Z     },
2026-06-04T00:09:18.2237752Z     {
2026-06-04T00:09:18.2237929Z       "id": "REQ-DAEMON-2",
2026-06-04T00:09:18.2238194Z       "title": "Broker/brain split for seamless self-update",
2026-06-04T00:09:18.2238475Z       "requiredStages": [
2026-06-04T00:09:18.2238678Z         "impl",
2026-06-04T00:09:18.2238850Z         "unit",
2026-06-04T00:09:18.2239019Z         "int"
2026-06-04T00:09:18.2239188Z       ],
2026-06-04T00:09:18.2239349Z       "stages": {
2026-06-04T00:09:18.2239531Z         "doc": {
2026-06-04T00:09:18.2239715Z           "complete": false,
2026-06-04T00:09:18.2239924Z           "evidence": []
2026-06-04T00:09:18.2240110Z         },
2026-06-04T00:09:18.2240274Z         "impl": {
2026-06-04T00:09:18.2240453Z           "complete": true,
2026-06-04T00:09:18.2240649Z           "evidence": [
2026-06-04T00:09:18.2240995Z             {
2026-06-04T00:09:18.2241205Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:09:18.2241467Z               "line": 23
2026-06-04T00:09:18.2241653Z             },
2026-06-04T00:09:18.2241819Z             {
2026-06-04T00:09:18.2242019Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:09:18.2242257Z               "line": 363
2026-06-04T00:09:18.2242442Z             },
2026-06-04T00:09:18.2242603Z             {
2026-06-04T00:09:18.2242797Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T00:09:18.2243048Z               "line": 32
2026-06-04T00:09:18.2243225Z             },
2026-06-04T00:09:18.2243389Z             {
2026-06-04T00:09:18.2243691Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T00:09:18.2244024Z               "line": 181
2026-06-04T00:09:18.2244207Z             },
2026-06-04T00:09:18.2244370Z             {
2026-06-04T00:09:18.2244565Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T00:09:18.2244814Z               "line": 439
2026-06-04T00:09:18.2244999Z             },
2026-06-04T00:09:18.2245162Z             {
2026-06-04T00:09:18.2245354Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T00:09:18.2245591Z               "line": 11
2026-06-04T00:09:18.2245769Z             },
2026-06-04T00:09:18.2245936Z             {
2026-06-04T00:09:18.2246129Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-04T00:09:18.2246371Z               "line": 53
2026-06-04T00:09:18.2246559Z             },
2026-06-04T00:09:18.2246720Z             {
2026-06-04T00:09:18.2246915Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T00:09:18.2247162Z               "line": 13
2026-06-04T00:09:18.2247344Z             },
2026-06-04T00:09:18.2247507Z             {
2026-06-04T00:09:18.2247705Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:09:18.2247950Z               "line": 27
2026-06-04T00:09:18.2248138Z             },
2026-06-04T00:09:18.2248302Z             {
2026-06-04T00:09:18.2248498Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:09:18.2248745Z               "line": 109
2026-06-04T00:09:18.2248928Z             },
2026-06-04T00:09:18.2249094Z             {
2026-06-04T00:09:18.2249285Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:09:18.2249532Z               "line": 170
2026-06-04T00:09:18.2249718Z             },
2026-06-04T00:09:18.2249882Z             {
2026-06-04T00:09:18.2250083Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T00:09:18.2250339Z               "line": 10
2026-06-04T00:09:18.2250521Z             }
2026-06-04T00:09:18.2250715Z           ]
2026-06-04T00:09:18.2250974Z         },
2026-06-04T00:09:18.2251140Z         "int": {
2026-06-04T00:09:18.2251325Z           "complete": true,
2026-06-04T00:09:18.2251529Z           "evidence": [
2026-06-04T00:09:18.2251712Z             {
2026-06-04T00:09:18.2251919Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-04T00:09:18.2252171Z               "line": 17
2026-06-04T00:09:18.2252356Z             },
2026-06-04T00:09:18.2252519Z             {
2026-06-04T00:09:18.2252733Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T00:09:18.2253002Z               "line": 33
2026-06-04T00:09:18.2253219Z             },
2026-06-04T00:09:18.2253388Z             {
2026-06-04T00:09:18.2253587Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-04T00:09:18.2253847Z               "line": 19
2026-06-04T00:09:18.2254034Z             },
2026-06-04T00:09:18.2254203Z             {
2026-06-04T00:09:18.2254413Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T00:09:18.2254672Z               "line": 70
2026-06-04T00:09:18.2254860Z             },
2026-06-04T00:09:18.2255038Z             {
2026-06-04T00:09:18.2255241Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T00:09:18.2255495Z               "line": 90
2026-06-04T00:09:18.2255681Z             },
2026-06-04T00:09:18.2255842Z             {
2026-06-04T00:09:18.2256040Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T00:09:18.2256292Z               "line": 160
2026-06-04T00:09:18.2256482Z             },
2026-06-04T00:09:18.2256650Z             {
2026-06-04T00:09:18.2256855Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T00:09:18.2257109Z               "line": 196
2026-06-04T00:09:18.2257295Z             }
2026-06-04T00:09:18.2257459Z           ]
2026-06-04T00:09:18.2257626Z         },
2026-06-04T00:09:18.2257794Z         "unit": {
2026-06-04T00:09:18.2257980Z           "complete": true,
2026-06-04T00:09:18.2258321Z           "evidence": [
2026-06-04T00:09:18.2258511Z             {
2026-06-04T00:09:18.2258709Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T00:09:18.2259047Z               "line": 62
2026-06-04T00:09:18.2259235Z             },
2026-06-04T00:09:18.2259400Z             {
2026-06-04T00:09:18.2259594Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T00:09:18.2259841Z               "line": 76
2026-06-04T00:09:18.2260039Z             },
2026-06-04T00:09:18.2260218Z             {
2026-06-04T00:09:18.2260411Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T00:09:18.2260678Z               "line": 88
2026-06-04T00:09:18.2260974Z             },
2026-06-04T00:09:18.2261141Z             {
2026-06-04T00:09:18.2261346Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T00:09:18.2261631Z               "line": 260
2026-06-04T00:09:18.2261822Z             },
2026-06-04T00:09:18.2261996Z             {
2026-06-04T00:09:18.2262205Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T00:09:18.2262463Z               "line": 274
2026-06-04T00:09:18.2262646Z             },
2026-06-04T00:09:18.2262820Z             {
2026-06-04T00:09:18.2263010Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T00:09:18.2263251Z               "line": 282
2026-06-04T00:09:18.2263435Z             },
2026-06-04T00:09:18.2263604Z             {
2026-06-04T00:09:18.2263806Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T00:09:18.2264041Z               "line": 299
2026-06-04T00:09:18.2264225Z             },
2026-06-04T00:09:18.2264390Z             {
2026-06-04T00:09:18.2264579Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T00:09:18.2264815Z               "line": 319
2026-06-04T00:09:18.2264999Z             },
2026-06-04T00:09:18.2265167Z             {
2026-06-04T00:09:18.2265371Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:09:18.2265616Z               "line": 212
2026-06-04T00:09:18.2265802Z             },
2026-06-04T00:09:18.2265968Z             {
2026-06-04T00:09:18.2266164Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:09:18.2266410Z               "line": 224
2026-06-04T00:09:18.2266593Z             },
2026-06-04T00:09:18.2266761Z             {
2026-06-04T00:09:18.2266972Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T00:09:18.2267220Z               "line": 112
2026-06-04T00:09:18.2267401Z             }
2026-06-04T00:09:18.2267568Z           ]
2026-06-04T00:09:18.2267736Z         }
2026-06-04T00:09:18.2267899Z       }
2026-06-04T00:09:18.2268062Z     },
2026-06-04T00:09:18.2268225Z     {
2026-06-04T00:09:18.2268396Z       "id": "REQ-DAEMON-3",
2026-06-04T00:09:18.2268672Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-04T00:09:18.2268966Z       "requiredStages": [
2026-06-04T00:09:18.2269158Z         "impl",
2026-06-04T00:09:18.2269333Z         "unit",
2026-06-04T00:09:18.2269503Z         "int"
2026-06-04T00:09:18.2269668Z       ],
2026-06-04T00:09:18.2269836Z       "stages": {
2026-06-04T00:09:18.2270015Z         "doc": {
2026-06-04T00:09:18.2270197Z           "complete": false,
2026-06-04T00:09:18.2270410Z           "evidence": []
2026-06-04T00:09:18.2270595Z         },
2026-06-04T00:09:18.2270844Z         "impl": {
2026-06-04T00:09:18.2271025Z           "complete": true,
2026-06-04T00:09:18.2271225Z           "evidence": [
2026-06-04T00:09:18.2271405Z             {
2026-06-04T00:09:18.2271600Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-04T00:09:18.2271845Z               "line": 14
2026-06-04T00:09:18.2272033Z             },
2026-06-04T00:09:18.2272196Z             {
2026-06-04T00:09:18.2272397Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-04T00:09:18.2272645Z               "line": 11
2026-06-04T00:09:18.2272825Z             },
2026-06-04T00:09:18.2272987Z             {
2026-06-04T00:09:18.2273181Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T00:09:18.2273549Z               "line": 203
2026-06-04T00:09:18.2273753Z             },
2026-06-04T00:09:18.2273919Z             {
2026-06-04T00:09:18.2274193Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2274429Z               "line": 233
2026-06-04T00:09:18.2274612Z             }
2026-06-04T00:09:18.2274775Z           ]
2026-06-04T00:09:18.2274938Z         },
2026-06-04T00:09:18.2275102Z         "int": {
2026-06-04T00:09:18.2275285Z           "complete": true,
2026-06-04T00:09:18.2275489Z           "evidence": [
2026-06-04T00:09:18.2275672Z             {
2026-06-04T00:09:18.2275870Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:09:18.2276116Z               "line": 43
2026-06-04T00:09:18.2276300Z             },
2026-06-04T00:09:18.2276466Z             {
2026-06-04T00:09:18.2276662Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:09:18.2276906Z               "line": 315
2026-06-04T00:09:18.2277096Z             }
2026-06-04T00:09:18.2277258Z           ]
2026-06-04T00:09:18.2277423Z         },
2026-06-04T00:09:18.2277586Z         "unit": {
2026-06-04T00:09:18.2277769Z           "complete": true,
2026-06-04T00:09:18.2277969Z           "evidence": [
2026-06-04T00:09:18.2278153Z             {
2026-06-04T00:09:18.2278348Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-04T00:09:18.2278588Z               "line": 217
2026-06-04T00:09:18.2278775Z             }
2026-06-04T00:09:18.2278943Z           ]
2026-06-04T00:09:18.2279104Z         }
2026-06-04T00:09:18.2279266Z       }
2026-06-04T00:09:18.2279431Z     },
2026-06-04T00:09:18.2279592Z     {
2026-06-04T00:09:18.2279760Z       "id": "REQ-DAEMON-4",
2026-06-04T00:09:18.2279987Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-04T00:09:18.2280242Z       "requiredStages": [
2026-06-04T00:09:18.2280443Z         "impl",
2026-06-04T00:09:18.2280615Z         "unit",
2026-06-04T00:09:18.2280875Z         "int"
2026-06-04T00:09:18.2281042Z       ],
2026-06-04T00:09:18.2281207Z       "stages": {
2026-06-04T00:09:18.2281389Z         "doc": {
2026-06-04T00:09:18.2281569Z           "complete": false,
2026-06-04T00:09:18.2281777Z           "evidence": []
2026-06-04T00:09:18.2281965Z         },
2026-06-04T00:09:18.2282137Z         "impl": {
2026-06-04T00:09:18.2282317Z           "complete": true,
2026-06-04T00:09:18.2282516Z           "evidence": [
2026-06-04T00:09:18.2282699Z             {
2026-06-04T00:09:18.2282899Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2283148Z               "line": 262
2026-06-04T00:09:18.2283331Z             },
2026-06-04T00:09:18.2283501Z             {
2026-06-04T00:09:18.2283707Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2283954Z               "line": 324
2026-06-04T00:09:18.2284140Z             },
2026-06-04T00:09:18.2284306Z             {
2026-06-04T00:09:18.2284506Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2284756Z               "line": 346
2026-06-04T00:09:18.2284940Z             }
2026-06-04T00:09:18.2285108Z           ]
2026-06-04T00:09:18.2285268Z         },
2026-06-04T00:09:18.2285438Z         "int": {
2026-06-04T00:09:18.2285617Z           "complete": true,
2026-06-04T00:09:18.2285812Z           "evidence": [
2026-06-04T00:09:18.2285992Z             {
2026-06-04T00:09:18.2298518Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T00:09:18.2298861Z               "line": 34
2026-06-04T00:09:18.2299066Z             }
2026-06-04T00:09:18.2299247Z           ]
2026-06-04T00:09:18.2299424Z         },
2026-06-04T00:09:18.2299599Z         "unit": {
2026-06-04T00:09:18.2299796Z           "complete": true,
2026-06-04T00:09:18.2300013Z           "evidence": [
2026-06-04T00:09:18.2300207Z             {
2026-06-04T00:09:18.2300432Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:09:18.2300695Z               "line": 248
2026-06-04T00:09:18.2300998Z             },
2026-06-04T00:09:18.2301180Z             {
2026-06-04T00:09:18.2301559Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2301831Z               "line": 533
2026-06-04T00:09:18.2302112Z             },
2026-06-04T00:09:18.2302283Z             {
2026-06-04T00:09:18.2302486Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2302736Z               "line": 584
2026-06-04T00:09:18.2302924Z             },
2026-06-04T00:09:18.2303096Z             {
2026-06-04T00:09:18.2303301Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2303544Z               "line": 608
2026-06-04T00:09:18.2303726Z             },
2026-06-04T00:09:18.2303889Z             {
2026-06-04T00:09:18.2304087Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2304332Z               "line": 638
2026-06-04T00:09:18.2304517Z             }
2026-06-04T00:09:18.2304682Z           ]
2026-06-04T00:09:18.2304847Z         }
2026-06-04T00:09:18.2305023Z       }
2026-06-04T00:09:18.2305185Z     },
2026-06-04T00:09:18.2305350Z     {
2026-06-04T00:09:18.2305525Z       "id": "REQ-DOCS-1",
2026-06-04T00:09:18.2305837Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-04T00:09:18.2306189Z       "requiredStages": [],
2026-06-04T00:09:18.2306393Z       "stages": {
2026-06-04T00:09:18.2306573Z         "doc": {
2026-06-04T00:09:18.2306766Z           "complete": false,
2026-06-04T00:09:18.2306976Z           "evidence": []
2026-06-04T00:09:18.2307166Z         },
2026-06-04T00:09:18.2307330Z         "impl": {
2026-06-04T00:09:18.2307512Z           "complete": false,
2026-06-04T00:09:18.2307714Z           "evidence": []
2026-06-04T00:09:18.2307902Z         },
2026-06-04T00:09:18.2308065Z         "int": {
2026-06-04T00:09:18.2308246Z           "complete": false,
2026-06-04T00:09:18.2308451Z           "evidence": []
2026-06-04T00:09:18.2308637Z         },
2026-06-04T00:09:18.2308801Z         "unit": {
2026-06-04T00:09:18.2308979Z           "complete": false,
2026-06-04T00:09:18.2309182Z           "evidence": []
2026-06-04T00:09:18.2309364Z         }
2026-06-04T00:09:18.2309530Z       }
2026-06-04T00:09:18.2309695Z     },
2026-06-04T00:09:18.2309858Z     {
2026-06-04T00:09:18.2310033Z       "id": "REQ-DOCS-2",
2026-06-04T00:09:18.2310299Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-04T00:09:18.2310596Z       "requiredStages": [],
2026-06-04T00:09:18.2310885Z       "stages": {
2026-06-04T00:09:18.2311058Z         "doc": {
2026-06-04T00:09:18.2311233Z           "complete": false,
2026-06-04T00:09:18.2311428Z           "evidence": []
2026-06-04T00:09:18.2311614Z         },
2026-06-04T00:09:18.2311782Z         "impl": {
2026-06-04T00:09:18.2311963Z           "complete": false,
2026-06-04T00:09:18.2312160Z           "evidence": []
2026-06-04T00:09:18.2312347Z         },
2026-06-04T00:09:18.2312507Z         "int": {
2026-06-04T00:09:18.2312682Z           "complete": false,
2026-06-04T00:09:18.2312879Z           "evidence": []
2026-06-04T00:09:18.2313063Z         },
2026-06-04T00:09:18.2313230Z         "unit": {
2026-06-04T00:09:18.2313413Z           "complete": false,
2026-06-04T00:09:18.2313614Z           "evidence": []
2026-06-04T00:09:18.2313808Z         }
2026-06-04T00:09:18.2313972Z       }
2026-06-04T00:09:18.2314132Z     },
2026-06-04T00:09:18.2314291Z     {
2026-06-04T00:09:18.2314458Z       "id": "REQ-DOCS-3",
2026-06-04T00:09:18.2315175Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-04T00:09:18.2315485Z       "requiredStages": [],
2026-06-04T00:09:18.2315696Z       "stages": {
2026-06-04T00:09:18.2315872Z         "doc": {
2026-06-04T00:09:18.2316057Z           "complete": false,
2026-06-04T00:09:18.2316259Z           "evidence": []
2026-06-04T00:09:18.2316445Z         },
2026-06-04T00:09:18.2316608Z         "impl": {
2026-06-04T00:09:18.2316785Z           "complete": false,
2026-06-04T00:09:18.2316988Z           "evidence": []
2026-06-04T00:09:18.2317176Z         },
2026-06-04T00:09:18.2317352Z         "int": {
2026-06-04T00:09:18.2317636Z           "complete": false,
2026-06-04T00:09:18.2317837Z           "evidence": []
2026-06-04T00:09:18.2318110Z         },
2026-06-04T00:09:18.2318271Z         "unit": {
2026-06-04T00:09:18.2318447Z           "complete": false,
2026-06-04T00:09:18.2318645Z           "evidence": []
2026-06-04T00:09:18.2318829Z         }
2026-06-04T00:09:18.2318998Z       }
2026-06-04T00:09:18.2319153Z     },
2026-06-04T00:09:18.2319310Z     {
2026-06-04T00:09:18.2319477Z       "id": "REQ-DOCS-4",
2026-06-04T00:09:18.2319783Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-04T00:09:18.2320125Z       "requiredStages": [],
2026-06-04T00:09:18.2320323Z       "stages": {
2026-06-04T00:09:18.2320498Z         "doc": {
2026-06-04T00:09:18.2320675Z           "complete": false,
2026-06-04T00:09:18.2320976Z           "evidence": []
2026-06-04T00:09:18.2321163Z         },
2026-06-04T00:09:18.2321325Z         "impl": {
2026-06-04T00:09:18.2321502Z           "complete": false,
2026-06-04T00:09:18.2321703Z           "evidence": []
2026-06-04T00:09:18.2321888Z         },
2026-06-04T00:09:18.2322054Z         "int": {
2026-06-04T00:09:18.2322233Z           "complete": false,
2026-06-04T00:09:18.2322438Z           "evidence": []
2026-06-04T00:09:18.2322623Z         },
2026-06-04T00:09:18.2322782Z         "unit": {
2026-06-04T00:09:18.2322957Z           "complete": false,
2026-06-04T00:09:18.2323152Z           "evidence": []
2026-06-04T00:09:18.2323331Z         }
2026-06-04T00:09:18.2323490Z       }
2026-06-04T00:09:18.2323649Z     },
2026-06-04T00:09:18.2323808Z     {
2026-06-04T00:09:18.2323985Z       "id": "REQ-DOCS-5",
2026-06-04T00:09:18.2324294Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-04T00:09:18.2324627Z       "requiredStages": [],
2026-06-04T00:09:18.2324824Z       "stages": {
2026-06-04T00:09:18.2324997Z         "doc": {
2026-06-04T00:09:18.2325171Z           "complete": false,
2026-06-04T00:09:18.2325367Z           "evidence": []
2026-06-04T00:09:18.2325554Z         },
2026-06-04T00:09:18.2325716Z         "impl": {
2026-06-04T00:09:18.2325901Z           "complete": false,
2026-06-04T00:09:18.2326098Z           "evidence": []
2026-06-04T00:09:18.2326285Z         },
2026-06-04T00:09:18.2326447Z         "int": {
2026-06-04T00:09:18.2326621Z           "complete": false,
2026-06-04T00:09:18.2326816Z           "evidence": []
2026-06-04T00:09:18.2326997Z         },
2026-06-04T00:09:18.2327158Z         "unit": {
2026-06-04T00:09:18.2327340Z           "complete": false,
2026-06-04T00:09:18.2327535Z           "evidence": []
2026-06-04T00:09:18.2327721Z         }
2026-06-04T00:09:18.2327880Z       }
2026-06-04T00:09:18.2328040Z     },
2026-06-04T00:09:18.2328196Z     {
2026-06-04T00:09:18.2328364Z       "id": "REQ-EP-1",
2026-06-04T00:09:18.2328603Z       "title": "Day-one endpoint types; open type system",
2026-06-04T00:09:18.2328871Z       "requiredStages": [
2026-06-04T00:09:18.2329069Z         "impl",
2026-06-04T00:09:18.2329246Z         "unit"
2026-06-04T00:09:18.2329421Z       ],
2026-06-04T00:09:18.2329587Z       "stages": {
2026-06-04T00:09:18.2329761Z         "doc": {
2026-06-04T00:09:18.2329941Z           "complete": false,
2026-06-04T00:09:18.2330142Z           "evidence": []
2026-06-04T00:09:18.2330327Z         },
2026-06-04T00:09:18.2330492Z         "impl": {
2026-06-04T00:09:18.2330680Z           "complete": true,
2026-06-04T00:09:18.2330969Z           "evidence": [
2026-06-04T00:09:18.2331155Z             {
2026-06-04T00:09:18.2331368Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:09:18.2331617Z               "line": 77
2026-06-04T00:09:18.2331798Z             },
2026-06-04T00:09:18.2331963Z             {
2026-06-04T00:09:18.2332168Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:09:18.2332413Z               "line": 94
2026-06-04T00:09:18.2332593Z             }
2026-06-04T00:09:18.2332757Z           ]
2026-06-04T00:09:18.2332920Z         },
2026-06-04T00:09:18.2333078Z         "int": {
2026-06-04T00:09:18.2333361Z           "complete": false,
2026-06-04T00:09:18.2333564Z           "evidence": []
2026-06-04T00:09:18.2333830Z         },
2026-06-04T00:09:18.2333993Z         "unit": {
2026-06-04T00:09:18.2334167Z           "complete": true,
2026-06-04T00:09:18.2334363Z           "evidence": [
2026-06-04T00:09:18.2334541Z             {
2026-06-04T00:09:18.2334734Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:09:18.2334974Z               "line": 161
2026-06-04T00:09:18.2335157Z             },
2026-06-04T00:09:18.2335332Z             {
2026-06-04T00:09:18.2335550Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:09:18.2335807Z               "line": 178
2026-06-04T00:09:18.2335992Z             }
2026-06-04T00:09:18.2336159Z           ]
2026-06-04T00:09:18.2336324Z         }
2026-06-04T00:09:18.2336485Z       }
2026-06-04T00:09:18.2336647Z     },
2026-06-04T00:09:18.2336806Z     {
2026-06-04T00:09:18.2336975Z       "id": "REQ-EP-2",
2026-06-04T00:09:18.2337256Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-04T00:09:18.2337559Z       "requiredStages": [
2026-06-04T00:09:18.2337756Z         "impl",
2026-06-04T00:09:18.2337926Z         "unit"
2026-06-04T00:09:18.2338095Z       ],
2026-06-04T00:09:18.2338258Z       "stages": {
2026-06-04T00:09:18.2338433Z         "doc": {
2026-06-04T00:09:18.2338615Z           "complete": false,
2026-06-04T00:09:18.2338824Z           "evidence": []
2026-06-04T00:09:18.2339010Z         },
2026-06-04T00:09:18.2339172Z         "impl": {
2026-06-04T00:09:18.2339352Z           "complete": true,
2026-06-04T00:09:18.2339554Z           "evidence": [
2026-06-04T00:09:18.2339759Z             {
2026-06-04T00:09:18.2339961Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:09:18.2340213Z               "line": 114
2026-06-04T00:09:18.2340396Z             },
2026-06-04T00:09:18.2340565Z             {
2026-06-04T00:09:18.2340846Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:09:18.2341099Z               "line": 131
2026-06-04T00:09:18.2341279Z             },
2026-06-04T00:09:18.2341445Z             {
2026-06-04T00:09:18.2341639Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:09:18.2341880Z               "line": 138
2026-06-04T00:09:18.2342058Z             }
2026-06-04T00:09:18.2342226Z           ]
2026-06-04T00:09:18.2342384Z         },
2026-06-04T00:09:18.2342547Z         "int": {
2026-06-04T00:09:18.2342728Z           "complete": false,
2026-06-04T00:09:18.2342934Z           "evidence": []
2026-06-04T00:09:18.2343117Z         },
2026-06-04T00:09:18.2343275Z         "unit": {
2026-06-04T00:09:18.2343453Z           "complete": true,
2026-06-04T00:09:18.2343647Z           "evidence": [
2026-06-04T00:09:18.2343830Z             {
2026-06-04T00:09:18.2344025Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:09:18.2344264Z               "line": 193
2026-06-04T00:09:18.2344443Z             },
2026-06-04T00:09:18.2344605Z             {
2026-06-04T00:09:18.2344798Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:09:18.2345039Z               "line": 211
2026-06-04T00:09:18.2345219Z             },
2026-06-04T00:09:18.2345388Z             {
2026-06-04T00:09:18.2345584Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:09:18.2345822Z               "line": 224
2026-06-04T00:09:18.2346003Z             }
2026-06-04T00:09:18.2346164Z           ]
2026-06-04T00:09:18.2346323Z         }
2026-06-04T00:09:18.2346481Z       }
2026-06-04T00:09:18.2346641Z     },
2026-06-04T00:09:18.2346803Z     {
2026-06-04T00:09:18.2346975Z       "id": "REQ-EP-3",
2026-06-04T00:09:18.2347257Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-04T00:09:18.2347579Z       "requiredStages": [
2026-06-04T00:09:18.2347767Z         "impl",
2026-06-04T00:09:18.2347938Z         "unit"
2026-06-04T00:09:18.2348102Z       ],
2026-06-04T00:09:18.2348263Z       "stages": {
2026-06-04T00:09:18.2348545Z         "doc": {
2026-06-04T00:09:18.2348728Z           "complete": false,
2026-06-04T00:09:18.2348929Z           "evidence": []
2026-06-04T00:09:18.2349240Z         },
2026-06-04T00:09:18.2349403Z         "impl": {
2026-06-04T00:09:18.2349579Z           "complete": true,
2026-06-04T00:09:18.2349774Z           "evidence": [
2026-06-04T00:09:18.2349954Z             {
2026-06-04T00:09:18.2350151Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:09:18.2350395Z               "line": 31
2026-06-04T00:09:18.2350576Z             },
2026-06-04T00:09:18.2350824Z             {
2026-06-04T00:09:18.2351019Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:09:18.2351288Z               "line": 49
2026-06-04T00:09:18.2351469Z             }
2026-06-04T00:09:18.2351630Z           ]
2026-06-04T00:09:18.2351788Z         },
2026-06-04T00:09:18.2351947Z         "int": {
2026-06-04T00:09:18.2352126Z           "complete": false,
2026-06-04T00:09:18.2352206Z           "evidence": []
2026-06-04T00:09:18.2352284Z         },
2026-06-04T00:09:18.2352357Z         "unit": {
2026-06-04T00:09:18.2352445Z           "complete": true,
2026-06-04T00:09:18.2352521Z           "evidence": [
2026-06-04T00:09:18.2352596Z             {
2026-06-04T00:09:18.2352700Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:09:18.2352779Z               "line": 156
2026-06-04T00:09:18.2352852Z             },
2026-06-04T00:09:18.2352921Z             {
2026-06-04T00:09:18.2353026Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:09:18.2353098Z               "line": 164
2026-06-04T00:09:18.2353171Z             },
2026-06-04T00:09:18.2353245Z             {
2026-06-04T00:09:18.2353346Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:09:18.2353423Z               "line": 177
2026-06-04T00:09:18.2353494Z             },
2026-06-04T00:09:18.2353568Z             {
2026-06-04T00:09:18.2353667Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:09:18.2353749Z               "line": 197
2026-06-04T00:09:18.2353822Z             },
2026-06-04T00:09:18.2353894Z             {
2026-06-04T00:09:18.2354002Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:09:18.2354077Z               "line": 213
2026-06-04T00:09:18.2354152Z             },
2026-06-04T00:09:18.2354220Z             {
2026-06-04T00:09:18.2354326Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:09:18.2354405Z               "line": 227
2026-06-04T00:09:18.2354475Z             }
2026-06-04T00:09:18.2354549Z           ]
2026-06-04T00:09:18.2354617Z         }
2026-06-04T00:09:18.2354696Z       }
2026-06-04T00:09:18.2354764Z     },
2026-06-04T00:09:18.2354839Z     {
2026-06-04T00:09:18.2354923Z       "id": "REQ-EP-4",
2026-06-04T00:09:18.2355060Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-04T00:09:18.2355147Z       "requiredStages": [],
2026-06-04T00:09:18.2355219Z       "stages": {
2026-06-04T00:09:18.2355293Z         "doc": {
2026-06-04T00:09:18.2355375Z           "complete": false,
2026-06-04T00:09:18.2355459Z           "evidence": []
2026-06-04T00:09:18.2355537Z         },
2026-06-04T00:09:18.2355610Z         "impl": {
2026-06-04T00:09:18.2355690Z           "complete": false,
2026-06-04T00:09:18.2355766Z           "evidence": []
2026-06-04T00:09:18.2355842Z         },
2026-06-04T00:09:18.2355911Z         "int": {
2026-06-04T00:09:18.2355994Z           "complete": false,
2026-06-04T00:09:18.2356074Z           "evidence": []
2026-06-04T00:09:18.2356145Z         },
2026-06-04T00:09:18.2356219Z         "unit": {
2026-06-04T00:09:18.2356296Z           "complete": false,
2026-06-04T00:09:18.2356376Z           "evidence": []
2026-06-04T00:09:18.2356445Z         }
2026-06-04T00:09:18.2356521Z       }
2026-06-04T00:09:18.2356591Z     },
2026-06-04T00:09:18.2356666Z     {
2026-06-04T00:09:18.2356745Z       "id": "REQ-EP-5",
2026-06-04T00:09:18.2357504Z       "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-04T00:09:18.2357700Z       "requiredStages": [],
2026-06-04T00:09:18.2357774Z       "stages": {
2026-06-04T00:09:18.2357850Z         "doc": {
2026-06-04T00:09:18.2357934Z           "complete": false,
2026-06-04T00:09:18.2358008Z           "evidence": []
2026-06-04T00:09:18.2358083Z         },
2026-06-04T00:09:18.2358156Z         "impl": {
2026-06-04T00:09:18.2358238Z           "complete": false,
2026-06-04T00:09:18.2358314Z           "evidence": []
2026-06-04T00:09:18.2358387Z         },
2026-06-04T00:09:18.2358468Z         "int": {
2026-06-04T00:09:18.2358547Z           "complete": false,
2026-06-04T00:09:18.2358631Z           "evidence": []
2026-06-04T00:09:18.2358701Z         },
2026-06-04T00:09:18.2358778Z         "unit": {
2026-06-04T00:09:18.2358857Z           "complete": false,
2026-06-04T00:09:18.2358939Z           "evidence": []
2026-06-04T00:09:18.2359017Z         }
2026-06-04T00:09:18.2359092Z       }
2026-06-04T00:09:18.2359169Z     },
2026-06-04T00:09:18.2359239Z     {
2026-06-04T00:09:18.2359322Z       "id": "REQ-FRONT-1",
2026-06-04T00:09:18.2359489Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-04T00:09:18.2359577Z       "requiredStages": [],
2026-06-04T00:09:18.2359654Z       "stages": {
2026-06-04T00:09:18.2359725Z         "doc": {
2026-06-04T00:09:18.2359807Z           "complete": false,
2026-06-04T00:09:18.2359883Z           "evidence": []
2026-06-04T00:09:18.2359959Z         },
2026-06-04T00:09:18.2360030Z         "impl": {
2026-06-04T00:09:18.2360111Z           "complete": false,
2026-06-04T00:09:18.2360189Z           "evidence": []
2026-06-04T00:09:18.2360257Z         },
2026-06-04T00:09:18.2360333Z         "int": {
2026-06-04T00:09:18.2360411Z           "complete": false,
2026-06-04T00:09:18.2360489Z           "evidence": []
2026-06-04T00:09:18.2360557Z         },
2026-06-04T00:09:18.2360638Z         "unit": {
2026-06-04T00:09:18.2360721Z           "complete": false,
2026-06-04T00:09:18.2360895Z           "evidence": []
2026-06-04T00:09:18.2360969Z         }
2026-06-04T00:09:18.2361041Z       }
2026-06-04T00:09:18.2361115Z     },
2026-06-04T00:09:18.2361183Z     {
2026-06-04T00:09:18.2361294Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-04T00:09:18.2361459Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-04T00:09:18.2361540Z       "requiredStages": [
2026-06-04T00:09:18.2361617Z         "impl",
2026-06-04T00:09:18.2361689Z         "unit"
2026-06-04T00:09:18.2361764Z       ],
2026-06-04T00:09:18.2361838Z       "stages": {
2026-06-04T00:09:18.2361923Z         "doc": {
2026-06-04T00:09:18.2362007Z           "complete": false,
2026-06-04T00:09:18.2362083Z           "evidence": []
2026-06-04T00:09:18.2362157Z         },
2026-06-04T00:09:18.2362229Z         "impl": {
2026-06-04T00:09:18.2362315Z           "complete": true,
2026-06-04T00:09:18.2362395Z           "evidence": [
2026-06-04T00:09:18.2362474Z             {
2026-06-04T00:09:18.2362590Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2362670Z               "line": 60
2026-06-04T00:09:18.2362749Z             },
2026-06-04T00:09:18.2362818Z             {
2026-06-04T00:09:18.2362927Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:09:18.2363000Z               "line": 18
2026-06-04T00:09:18.2363077Z             },
2026-06-04T00:09:18.2363153Z             {
2026-06-04T00:09:18.2363250Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:09:18.2363330Z               "line": 94
2026-06-04T00:09:18.2363400Z             }
2026-06-04T00:09:18.2363474Z           ]
2026-06-04T00:09:18.2363543Z         },
2026-06-04T00:09:18.2363621Z         "int": {
2026-06-04T00:09:18.2363703Z           "complete": false,
2026-06-04T00:09:18.2363778Z           "evidence": []
2026-06-04T00:09:18.2363853Z         },
2026-06-04T00:09:18.2363924Z         "unit": {
2026-06-04T00:09:18.2364114Z           "complete": true,
2026-06-04T00:09:18.2364193Z           "evidence": [
2026-06-04T00:09:18.2364349Z             {
2026-06-04T00:09:18.2364457Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2364533Z               "line": 255
2026-06-04T00:09:18.2364608Z             },
2026-06-04T00:09:18.2364678Z             {
2026-06-04T00:09:18.2364778Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:09:18.2364852Z               "line": 152
2026-06-04T00:09:18.2364930Z             },
2026-06-04T00:09:18.2365001Z             {
2026-06-04T00:09:18.2365096Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:09:18.2365176Z               "line": 188
2026-06-04T00:09:18.2365245Z             }
2026-06-04T00:09:18.2365321Z           ]
2026-06-04T00:09:18.2365392Z         }
2026-06-04T00:09:18.2365468Z       }
2026-06-04T00:09:18.2365543Z     },
2026-06-04T00:09:18.2365614Z     {
2026-06-04T00:09:18.2365714Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-04T00:09:18.2365919Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-04T00:09:18.2366010Z       "requiredStages": [
2026-06-04T00:09:18.2366083Z         "impl",
2026-06-04T00:09:18.2366161Z         "unit"
2026-06-04T00:09:18.2366236Z       ],
2026-06-04T00:09:18.2366310Z       "stages": {
2026-06-04T00:09:18.2366386Z         "doc": {
2026-06-04T00:09:18.2366467Z           "complete": false,
2026-06-04T00:09:18.2366552Z           "evidence": []
2026-06-04T00:09:18.2366622Z         },
2026-06-04T00:09:18.2366703Z         "impl": {
2026-06-04T00:09:18.2366787Z           "complete": true,
2026-06-04T00:09:18.2366864Z           "evidence": [
2026-06-04T00:09:18.2366938Z             {
2026-06-04T00:09:18.2367041Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T00:09:18.2367125Z               "line": 164
2026-06-04T00:09:18.2367195Z             }
2026-06-04T00:09:18.2367281Z           ]
2026-06-04T00:09:18.2367357Z         },
2026-06-04T00:09:18.2367431Z         "int": {
2026-06-04T00:09:18.2367513Z           "complete": true,
2026-06-04T00:09:18.2367593Z           "evidence": [
2026-06-04T00:09:18.2367669Z             {
2026-06-04T00:09:18.2367768Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-04T00:09:18.2367849Z               "line": 44
2026-06-04T00:09:18.2367923Z             },
2026-06-04T00:09:18.2367990Z             {
2026-06-04T00:09:18.2368091Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-04T00:09:18.2368164Z               "line": 66
2026-06-04T00:09:18.2368241Z             }
2026-06-04T00:09:18.2368311Z           ]
2026-06-04T00:09:18.2368385Z         },
2026-06-04T00:09:18.2368461Z         "unit": {
2026-06-04T00:09:18.2368537Z           "complete": true,
2026-06-04T00:09:18.2368619Z           "evidence": [
2026-06-04T00:09:18.2368689Z             {
2026-06-04T00:09:18.2368791Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T00:09:18.2368867Z               "line": 181
2026-06-04T00:09:18.2368942Z             },
2026-06-04T00:09:18.2369016Z             {
2026-06-04T00:09:18.2369114Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T00:09:18.2369195Z               "line": 233
2026-06-04T00:09:18.2369266Z             },
2026-06-04T00:09:18.2369341Z             {
2026-06-04T00:09:18.2369436Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T00:09:18.2369517Z               "line": 261
2026-06-04T00:09:18.2369590Z             }
2026-06-04T00:09:18.2369661Z           ]
2026-06-04T00:09:18.2369739Z         }
2026-06-04T00:09:18.2369809Z       }
2026-06-04T00:09:18.2369883Z     },
2026-06-04T00:09:18.2369955Z     {
2026-06-04T00:09:18.2370069Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-04T00:09:18.2370491Z       "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-04T00:09:18.2370575Z       "requiredStages": [
2026-06-04T00:09:18.2370913Z         "impl",
2026-06-04T00:09:18.2371022Z         "unit",
2026-06-04T00:09:18.2371213Z         "int"
2026-06-04T00:09:18.2371288Z       ],
2026-06-04T00:09:18.2371362Z       "stages": {
2026-06-04T00:09:18.2371438Z         "doc": {
2026-06-04T00:09:18.2371519Z           "complete": false,
2026-06-04T00:09:18.2371601Z           "evidence": []
2026-06-04T00:09:18.2371672Z         },
2026-06-04T00:09:18.2371752Z         "impl": {
2026-06-04T00:09:18.2371835Z           "complete": true,
2026-06-04T00:09:18.2371913Z           "evidence": [
2026-06-04T00:09:18.2371990Z             {
2026-06-04T00:09:18.2372110Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2372191Z               "line": 133
2026-06-04T00:09:18.2372263Z             },
2026-06-04T00:09:18.2372339Z             {
2026-06-04T00:09:18.2372449Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2372524Z               "line": 152
2026-06-04T00:09:18.2372602Z             },
2026-06-04T00:09:18.2372672Z             {
2026-06-04T00:09:18.2372775Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2372852Z               "line": 79
2026-06-04T00:09:18.2372931Z             },
2026-06-04T00:09:18.2373004Z             {
2026-06-04T00:09:18.2373101Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:09:18.2373182Z               "line": 51
2026-06-04T00:09:18.2373252Z             },
2026-06-04T00:09:18.2373327Z             {
2026-06-04T00:09:18.2373425Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:09:18.2373509Z               "line": 93
2026-06-04T00:09:18.2373585Z             },
2026-06-04T00:09:18.2373655Z             {
2026-06-04T00:09:18.2373770Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:09:18.2373846Z               "line": 27
2026-06-04T00:09:18.2373928Z             },
2026-06-04T00:09:18.2374000Z             {
2026-06-04T00:09:18.2374112Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:09:18.2374190Z               "line": 79
2026-06-04T00:09:18.2374259Z             },
2026-06-04T00:09:18.2374341Z             {
2026-06-04T00:09:18.2374442Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:09:18.2374524Z               "line": 102
2026-06-04T00:09:18.2374593Z             },
2026-06-04T00:09:18.2374671Z             {
2026-06-04T00:09:18.2374777Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2374849Z               "line": 102
2026-06-04T00:09:18.2374926Z             }
2026-06-04T00:09:18.2374994Z           ]
2026-06-04T00:09:18.2375069Z         },
2026-06-04T00:09:18.2375141Z         "int": {
2026-06-04T00:09:18.2375230Z           "complete": true,
2026-06-04T00:09:18.2375310Z           "evidence": [
2026-06-04T00:09:18.2375380Z             {
2026-06-04T00:09:18.2375502Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T00:09:18.2375575Z               "line": 35
2026-06-04T00:09:18.2375655Z             }
2026-06-04T00:09:18.2375722Z           ]
2026-06-04T00:09:18.2375798Z         },
2026-06-04T00:09:18.2375878Z         "unit": {
2026-06-04T00:09:18.2375957Z           "complete": true,
2026-06-04T00:09:18.2376040Z           "evidence": [
2026-06-04T00:09:18.2376109Z             {
2026-06-04T00:09:18.2376221Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2376296Z               "line": 467
2026-06-04T00:09:18.2376372Z             },
2026-06-04T00:09:18.2376447Z             {
2026-06-04T00:09:18.2376548Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:09:18.2376630Z               "line": 212
2026-06-04T00:09:18.2376701Z             },
2026-06-04T00:09:18.2376779Z             {
2026-06-04T00:09:18.2376886Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:09:18.2376974Z               "line": 124
2026-06-04T00:09:18.2377051Z             },
2026-06-04T00:09:18.2377121Z             {
2026-06-04T00:09:18.2377331Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:09:18.2377407Z               "line": 136
2026-06-04T00:09:18.2377544Z             },
2026-06-04T00:09:18.2377620Z             {
2026-06-04T00:09:18.2377724Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:09:18.2377805Z               "line": 146
2026-06-04T00:09:18.2377876Z             },
2026-06-04T00:09:18.2377951Z             {
2026-06-04T00:09:18.2378053Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:09:18.2378135Z               "line": 159
2026-06-04T00:09:18.2378209Z             },
2026-06-04T00:09:18.2378280Z             {
2026-06-04T00:09:18.2378385Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:09:18.2378460Z               "line": 171
2026-06-04T00:09:18.2378535Z             },
2026-06-04T00:09:18.2378604Z             {
2026-06-04T00:09:18.2378712Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2378791Z               "line": 201
2026-06-04T00:09:18.2378864Z             }
2026-06-04T00:09:18.2378943Z           ]
2026-06-04T00:09:18.2379016Z         }
2026-06-04T00:09:18.2379092Z       }
2026-06-04T00:09:18.2379163Z     },
2026-06-04T00:09:18.2379238Z     {
2026-06-04T00:09:18.2379357Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-04T00:09:18.2379986Z       "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-04T00:09:18.2380072Z       "requiredStages": [],
2026-06-04T00:09:18.2380145Z       "stages": {
2026-06-04T00:09:18.2380222Z         "doc": {
2026-06-04T00:09:18.2380305Z           "complete": false,
2026-06-04T00:09:18.2380383Z           "evidence": []
2026-06-04T00:09:18.2380456Z         },
2026-06-04T00:09:18.2380530Z         "impl": {
2026-06-04T00:09:18.2380615Z           "complete": false,
2026-06-04T00:09:18.2380695Z           "evidence": []
2026-06-04T00:09:18.2380856Z         },
2026-06-04T00:09:18.2380936Z         "int": {
2026-06-04T00:09:18.2381018Z           "complete": false,
2026-06-04T00:09:18.2381099Z           "evidence": []
2026-06-04T00:09:18.2381169Z         },
2026-06-04T00:09:18.2381249Z         "unit": {
2026-06-04T00:09:18.2381326Z           "complete": false,
2026-06-04T00:09:18.2381406Z           "evidence": []
2026-06-04T00:09:18.2381478Z         }
2026-06-04T00:09:18.2381554Z       }
2026-06-04T00:09:18.2381627Z     },
2026-06-04T00:09:18.2381697Z     {
2026-06-04T00:09:18.2381797Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-04T00:09:18.2381971Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-04T00:09:18.2382058Z       "requiredStages": [
2026-06-04T00:09:18.2382137Z         "impl",
2026-06-04T00:09:18.2382210Z         "unit"
2026-06-04T00:09:18.2382283Z       ],
2026-06-04T00:09:18.2382356Z       "stages": {
2026-06-04T00:09:18.2382433Z         "doc": {
2026-06-04T00:09:18.2382515Z           "complete": false,
2026-06-04T00:09:18.2382599Z           "evidence": []
2026-06-04T00:09:18.2382670Z         },
2026-06-04T00:09:18.2382750Z         "impl": {
2026-06-04T00:09:18.2382836Z           "complete": true,
2026-06-04T00:09:18.2382910Z           "evidence": [
2026-06-04T00:09:18.2382986Z             {
2026-06-04T00:09:18.2383087Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:09:18.2383167Z               "line": 40
2026-06-04T00:09:18.2383237Z             },
2026-06-04T00:09:18.2383313Z             {
2026-06-04T00:09:18.2383418Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:09:18.2383492Z               "line": 88
2026-06-04T00:09:18.2383567Z             },
2026-06-04T00:09:18.2383638Z             {
2026-06-04T00:09:18.2383741Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:09:18.2383821Z               "line": 133
2026-06-04T00:09:18.2383894Z             },
2026-06-04T00:09:18.2384077Z             {
2026-06-04T00:09:18.2384176Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:09:18.2384344Z               "line": 215
2026-06-04T00:09:18.2384413Z             }
2026-06-04T00:09:18.2384489Z           ]
2026-06-04T00:09:18.2384564Z         },
2026-06-04T00:09:18.2384636Z         "int": {
2026-06-04T00:09:18.2384718Z           "complete": false,
2026-06-04T00:09:18.2384794Z           "evidence": []
2026-06-04T00:09:18.2384868Z         },
2026-06-04T00:09:18.2384939Z         "unit": {
2026-06-04T00:09:18.2385023Z           "complete": true,
2026-06-04T00:09:18.2385110Z           "evidence": [
2026-06-04T00:09:18.2385181Z             {
2026-06-04T00:09:18.2385286Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:09:18.2385361Z               "line": 250
2026-06-04T00:09:18.2385435Z             },
2026-06-04T00:09:18.2385505Z             {
2026-06-04T00:09:18.2385609Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:09:18.2385692Z               "line": 296
2026-06-04T00:09:18.2385764Z             },
2026-06-04T00:09:18.2385837Z             {
2026-06-04T00:09:18.2385937Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:09:18.2386019Z               "line": 337
2026-06-04T00:09:18.2386089Z             },
2026-06-04T00:09:18.2386170Z             {
2026-06-04T00:09:18.2386273Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:09:18.2386346Z               "line": 356
2026-06-04T00:09:18.2386423Z             }
2026-06-04T00:09:18.2386494Z           ]
2026-06-04T00:09:18.2386568Z         }
2026-06-04T00:09:18.2386638Z       }
2026-06-04T00:09:18.2386712Z     },
2026-06-04T00:09:18.2386788Z     {
2026-06-04T00:09:18.2386895Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-04T00:09:18.2387014Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-04T00:09:18.2387094Z       "requiredStages": [
2026-06-04T00:09:18.2387168Z         "impl",
2026-06-04T00:09:18.2387240Z         "unit"
2026-06-04T00:09:18.2387322Z       ],
2026-06-04T00:09:18.2387399Z       "stages": {
2026-06-04T00:09:18.2387471Z         "doc": {
2026-06-04T00:09:18.2387558Z           "complete": false,
2026-06-04T00:09:18.2387634Z           "evidence": []
2026-06-04T00:09:18.2387708Z         },
2026-06-04T00:09:18.2387781Z         "impl": {
2026-06-04T00:09:18.2387867Z           "complete": true,
2026-06-04T00:09:18.2387949Z           "evidence": [
2026-06-04T00:09:18.2388020Z             {
2026-06-04T00:09:18.2388124Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:09:18.2388199Z               "line": 101
2026-06-04T00:09:18.2388274Z             },
2026-06-04T00:09:18.2388342Z             {
2026-06-04T00:09:18.2388446Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:09:18.2388524Z               "line": 126
2026-06-04T00:09:18.2388594Z             }
2026-06-04T00:09:18.2388669Z           ]
2026-06-04T00:09:18.2388738Z         },
2026-06-04T00:09:18.2388817Z         "int": {
2026-06-04T00:09:18.2388898Z           "complete": false,
2026-06-04T00:09:18.2388981Z           "evidence": []
2026-06-04T00:09:18.2389057Z         },
2026-06-04T00:09:18.2389128Z         "unit": {
2026-06-04T00:09:18.2389208Z           "complete": true,
2026-06-04T00:09:18.2389283Z           "evidence": [
2026-06-04T00:09:18.2389359Z             {
2026-06-04T00:09:18.2389455Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:09:18.2389536Z               "line": 271
2026-06-04T00:09:18.2389610Z             },
2026-06-04T00:09:18.2389679Z             {
2026-06-04T00:09:18.2389781Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:09:18.2389855Z               "line": 315
2026-06-04T00:09:18.2389930Z             }
2026-06-04T00:09:18.2389998Z           ]
2026-06-04T00:09:18.2390075Z         }
2026-06-04T00:09:18.2390157Z       }
2026-06-04T00:09:18.2390226Z     },
2026-06-04T00:09:18.2390301Z     {
2026-06-04T00:09:18.2390410Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-04T00:09:18.2390706Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-04T00:09:18.2390942Z       "requiredStages": [
2026-06-04T00:09:18.2391020Z         "impl",
2026-06-04T00:09:18.2391097Z         "unit"
2026-06-04T00:09:18.2391170Z       ],
2026-06-04T00:09:18.2391251Z       "stages": {
2026-06-04T00:09:18.2391323Z         "doc": {
2026-06-04T00:09:18.2391408Z           "complete": false,
2026-06-04T00:09:18.2391483Z           "evidence": []
2026-06-04T00:09:18.2391562Z         },
2026-06-04T00:09:18.2391639Z         "impl": {
2026-06-04T00:09:18.2391716Z           "complete": true,
2026-06-04T00:09:18.2391797Z           "evidence": [
2026-06-04T00:09:18.2391867Z             {
2026-06-04T00:09:18.2391982Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:09:18.2392055Z               "line": 21
2026-06-04T00:09:18.2392132Z             },
2026-06-04T00:09:18.2392208Z             {
2026-06-04T00:09:18.2392313Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:09:18.2392393Z               "line": 152
2026-06-04T00:09:18.2392461Z             }
2026-06-04T00:09:18.2392539Z           ]
2026-06-04T00:09:18.2392609Z         },
2026-06-04T00:09:18.2392685Z         "int": {
2026-06-04T00:09:18.2392769Z           "complete": false,
2026-06-04T00:09:18.2392845Z           "evidence": []
2026-06-04T00:09:18.2392919Z         },
2026-06-04T00:09:18.2392991Z         "unit": {
2026-06-04T00:09:18.2393076Z           "complete": true,
2026-06-04T00:09:18.2393152Z           "evidence": [
2026-06-04T00:09:18.2393227Z             {
2026-06-04T00:09:18.2393329Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:09:18.2393406Z               "line": 169
2026-06-04T00:09:18.2393482Z             },
2026-06-04T00:09:18.2393552Z             {
2026-06-04T00:09:18.2393655Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:09:18.2393730Z               "line": 176
2026-06-04T00:09:18.2393804Z             },
2026-06-04T00:09:18.2393882Z             {
2026-06-04T00:09:18.2393980Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:09:18.2394065Z               "line": 185
2026-06-04T00:09:18.2394136Z             },
2026-06-04T00:09:18.2394214Z             {
2026-06-04T00:09:18.2394313Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:09:18.2394395Z               "line": 194
2026-06-04T00:09:18.2394471Z             },
2026-06-04T00:09:18.2394540Z             {
2026-06-04T00:09:18.2394643Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:09:18.2394717Z               "line": 203
2026-06-04T00:09:18.2394795Z             },
2026-06-04T00:09:18.2394865Z             {
2026-06-04T00:09:18.2394970Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:09:18.2395049Z               "line": 212
2026-06-04T00:09:18.2395118Z             },
2026-06-04T00:09:18.2395192Z             {
2026-06-04T00:09:18.2395290Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T00:09:18.2395374Z               "line": 132
2026-06-04T00:09:18.2395445Z             },
2026-06-04T00:09:18.2395525Z             {
2026-06-04T00:09:18.2395626Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:09:18.2395699Z               "line": 211
2026-06-04T00:09:18.2395774Z             }
2026-06-04T00:09:18.2395843Z           ]
2026-06-04T00:09:18.2395920Z         }
2026-06-04T00:09:18.2395990Z       }
2026-06-04T00:09:18.2396068Z     },
2026-06-04T00:09:18.2396140Z     {
2026-06-04T00:09:18.2396248Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-04T00:09:18.2396391Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-04T00:09:18.2396481Z       "requiredStages": [
2026-06-04T00:09:18.2396557Z         "impl",
2026-06-04T00:09:18.2396627Z         "unit"
2026-06-04T00:09:18.2396703Z       ],
2026-06-04T00:09:18.2396781Z       "stages": {
2026-06-04T00:09:18.2396851Z         "doc": {
2026-06-04T00:09:18.2396935Z           "complete": false,
2026-06-04T00:09:18.2397115Z           "evidence": []
2026-06-04T00:09:18.2397193Z         },
2026-06-04T00:09:18.2397337Z         "impl": {
2026-06-04T00:09:18.2397421Z           "complete": true,
2026-06-04T00:09:18.2397507Z           "evidence": [
2026-06-04T00:09:18.2397578Z             {
2026-06-04T00:09:18.2397685Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:09:18.2397764Z               "line": 25
2026-06-04T00:09:18.2397839Z             },
2026-06-04T00:09:18.2397906Z             {
2026-06-04T00:09:18.2398020Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T00:09:18.2398099Z               "line": 13
2026-06-04T00:09:18.2398171Z             },
2026-06-04T00:09:18.2398246Z             {
2026-06-04T00:09:18.2398345Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T00:09:18.2398428Z               "line": 78
2026-06-04T00:09:18.2398506Z             }
2026-06-04T00:09:18.2398577Z           ]
2026-06-04T00:09:18.2398650Z         },
2026-06-04T00:09:18.2398723Z         "int": {
2026-06-04T00:09:18.2398808Z           "complete": false,
2026-06-04T00:09:18.2398885Z           "evidence": []
2026-06-04T00:09:18.2398963Z         },
2026-06-04T00:09:18.2399035Z         "unit": {
2026-06-04T00:09:18.2399119Z           "complete": true,
2026-06-04T00:09:18.2399199Z           "evidence": [
2026-06-04T00:09:18.2399270Z             {
2026-06-04T00:09:18.2399372Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:09:18.2399451Z               "line": 180
2026-06-04T00:09:18.2399530Z             },
2026-06-04T00:09:18.2399598Z             {
2026-06-04T00:09:18.2399699Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:09:18.2399779Z               "line": 205
2026-06-04T00:09:18.2399850Z             },
2026-06-04T00:09:18.2399926Z             {
2026-06-04T00:09:18.2400022Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T00:09:18.2400105Z               "line": 96
2026-06-04T00:09:18.2400183Z             }
2026-06-04T00:09:18.2400278Z           ]
2026-06-04T00:09:18.2400357Z         }
2026-06-04T00:09:18.2400429Z       }
2026-06-04T00:09:18.2400507Z     },
2026-06-04T00:09:18.2400576Z     {
2026-06-04T00:09:18.2400679Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-04T00:09:18.2400923Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-04T00:09:18.2401006Z       "requiredStages": [
2026-06-04T00:09:18.2401084Z         "impl",
2026-06-04T00:09:18.2401154Z         "unit"
2026-06-04T00:09:18.2401228Z       ],
2026-06-04T00:09:18.2401302Z       "stages": {
2026-06-04T00:09:18.2401379Z         "doc": {
2026-06-04T00:09:18.2401460Z           "complete": false,
2026-06-04T00:09:18.2401547Z           "evidence": []
2026-06-04T00:09:18.2401624Z         },
2026-06-04T00:09:18.2401698Z         "impl": {
2026-06-04T00:09:18.2401784Z           "complete": true,
2026-06-04T00:09:18.2401860Z           "evidence": [
2026-06-04T00:09:18.2401939Z             {
2026-06-04T00:09:18.2402051Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:09:18.2402133Z               "line": 48
2026-06-04T00:09:18.2402209Z             },
2026-06-04T00:09:18.2402284Z             {
2026-06-04T00:09:18.2402389Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:09:18.2402463Z               "line": 55
2026-06-04T00:09:18.2402543Z             },
2026-06-04T00:09:18.2402620Z             {
2026-06-04T00:09:18.2402721Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:09:18.2402801Z               "line": 74
2026-06-04T00:09:18.2402872Z             },
2026-06-04T00:09:18.2402948Z             {
2026-06-04T00:09:18.2403049Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:09:18.2403131Z               "line": 91
2026-06-04T00:09:18.2403207Z             }
2026-06-04T00:09:18.2403278Z           ]
2026-06-04T00:09:18.2403351Z         },
2026-06-04T00:09:18.2403422Z         "int": {
2026-06-04T00:09:18.2403509Z           "complete": false,
2026-06-04T00:09:18.2403588Z           "evidence": []
2026-06-04T00:09:18.2403801Z         },
2026-06-04T00:09:18.2403880Z         "unit": {
2026-06-04T00:09:18.2404045Z           "complete": true,
2026-06-04T00:09:18.2404126Z           "evidence": [
2026-06-04T00:09:18.2404198Z             {
2026-06-04T00:09:18.2404303Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:09:18.2404379Z               "line": 149
2026-06-04T00:09:18.2404458Z             },
2026-06-04T00:09:18.2404534Z             {
2026-06-04T00:09:18.2404632Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:09:18.2404712Z               "line": 163
2026-06-04T00:09:18.2404780Z             },
2026-06-04T00:09:18.2404854Z             {
2026-06-04T00:09:18.2404952Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:09:18.2405035Z               "line": 173
2026-06-04T00:09:18.2405113Z             },
2026-06-04T00:09:18.2405182Z             {
2026-06-04T00:09:18.2405289Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:09:18.2405370Z               "line": 191
2026-06-04T00:09:18.2405448Z             },
2026-06-04T00:09:18.2405520Z             {
2026-06-04T00:09:18.2405624Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:09:18.2405705Z               "line": 204
2026-06-04T00:09:18.2405774Z             }
2026-06-04T00:09:18.2405847Z           ]
2026-06-04T00:09:18.2405917Z         }
2026-06-04T00:09:18.2405993Z       }
2026-06-04T00:09:18.2406063Z     },
2026-06-04T00:09:18.2406139Z     {
2026-06-04T00:09:18.2406252Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-04T00:09:18.2406431Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-04T00:09:18.2406517Z       "requiredStages": [
2026-06-04T00:09:18.2406589Z         "impl",
2026-06-04T00:09:18.2406664Z         "unit"
2026-06-04T00:09:18.2406733Z       ],
2026-06-04T00:09:18.2406812Z       "stages": {
2026-06-04T00:09:18.2406887Z         "doc": {
2026-06-04T00:09:18.2406969Z           "complete": false,
2026-06-04T00:09:18.2407053Z           "evidence": []
2026-06-04T00:09:18.2407123Z         },
2026-06-04T00:09:18.2407204Z         "impl": {
2026-06-04T00:09:18.2407282Z           "complete": true,
2026-06-04T00:09:18.2407365Z           "evidence": [
2026-06-04T00:09:18.2407442Z             {
2026-06-04T00:09:18.2407559Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2407641Z               "line": 264
2026-06-04T00:09:18.2407711Z             },
2026-06-04T00:09:18.2407788Z             {
2026-06-04T00:09:18.2407889Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:09:18.2407972Z               "line": 26
2026-06-04T00:09:18.2408049Z             }
2026-06-04T00:09:18.2408121Z           ]
2026-06-04T00:09:18.2408195Z         },
2026-06-04T00:09:18.2408267Z         "int": {
2026-06-04T00:09:18.2408350Z           "complete": false,
2026-06-04T00:09:18.2408426Z           "evidence": []
2026-06-04T00:09:18.2408502Z         },
2026-06-04T00:09:18.2408580Z         "unit": {
2026-06-04T00:09:18.2408662Z           "complete": true,
2026-06-04T00:09:18.2408742Z           "evidence": [
2026-06-04T00:09:18.2408813Z             {
2026-06-04T00:09:18.2408918Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:09:18.2408993Z               "line": 138
2026-06-04T00:09:18.2409068Z             },
2026-06-04T00:09:18.2409140Z             {
2026-06-04T00:09:18.2409238Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:09:18.2409318Z               "line": 181
2026-06-04T00:09:18.2409387Z             }
2026-06-04T00:09:18.2409464Z           ]
2026-06-04T00:09:18.2409536Z         }
2026-06-04T00:09:18.2409613Z       }
2026-06-04T00:09:18.2409684Z     },
2026-06-04T00:09:18.2409753Z     {
2026-06-04T00:09:18.2409870Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-04T00:09:18.2410016Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-04T00:09:18.2410102Z       "requiredStages": [
2026-06-04T00:09:18.2410173Z         "impl",
2026-06-04T00:09:18.2410331Z         "unit"
2026-06-04T00:09:18.2410410Z       ],
2026-06-04T00:09:18.2410547Z       "stages": {
2026-06-04T00:09:18.2410625Z         "doc": {
2026-06-04T00:09:18.2410706Z           "complete": false,
2026-06-04T00:09:18.2410876Z           "evidence": []
2026-06-04T00:09:18.2410947Z         },
2026-06-04T00:09:18.2411028Z         "impl": {
2026-06-04T00:09:18.2411108Z           "complete": true,
2026-06-04T00:09:18.2411183Z           "evidence": [
2026-06-04T00:09:18.2411259Z             {
2026-06-04T00:09:18.2411371Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:09:18.2411454Z               "line": 36
2026-06-04T00:09:18.2411527Z             },
2026-06-04T00:09:18.2411605Z             {
2026-06-04T00:09:18.2411722Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:09:18.2411796Z               "line": 68
2026-06-04T00:09:18.2411874Z             }
2026-06-04T00:09:18.2411948Z           ]
2026-06-04T00:09:18.2412025Z         },
2026-06-04T00:09:18.2412100Z         "int": {
2026-06-04T00:09:18.2412188Z           "complete": false,
2026-06-04T00:09:18.2412275Z           "evidence": []
2026-06-04T00:09:18.2412346Z         },
2026-06-04T00:09:18.2412422Z         "unit": {
2026-06-04T00:09:18.2412503Z           "complete": true,
2026-06-04T00:09:18.2412587Z           "evidence": [
2026-06-04T00:09:18.2412659Z             {
2026-06-04T00:09:18.2412776Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:09:18.2412860Z               "line": 143
2026-06-04T00:09:18.2412931Z             },
2026-06-04T00:09:18.2413006Z             {
2026-06-04T00:09:18.2413109Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:09:18.2413194Z               "line": 160
2026-06-04T00:09:18.2413265Z             },
2026-06-04T00:09:18.2413340Z             {
2026-06-04T00:09:18.2413450Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:09:18.2413523Z               "line": 168
2026-06-04T00:09:18.2413601Z             }
2026-06-04T00:09:18.2413672Z           ]
2026-06-04T00:09:18.2413747Z         }
2026-06-04T00:09:18.2413821Z       }
2026-06-04T00:09:18.2413897Z     },
2026-06-04T00:09:18.2413970Z     {
2026-06-04T00:09:18.2414085Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-04T00:09:18.2414260Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-04T00:09:18.2414342Z       "requiredStages": [
2026-06-04T00:09:18.2414423Z         "impl",
2026-06-04T00:09:18.2414493Z         "unit"
2026-06-04T00:09:18.2414569Z       ],
2026-06-04T00:09:18.2414649Z       "stages": {
2026-06-04T00:09:18.2414719Z         "doc": {
2026-06-04T00:09:18.2414804Z           "complete": false,
2026-06-04T00:09:18.2414881Z           "evidence": []
2026-06-04T00:09:18.2414958Z         },
2026-06-04T00:09:18.2415031Z         "impl": {
2026-06-04T00:09:18.2415118Z           "complete": true,
2026-06-04T00:09:18.2415199Z           "evidence": [
2026-06-04T00:09:18.2415271Z             {
2026-06-04T00:09:18.2415387Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:09:18.2415465Z               "line": 107
2026-06-04T00:09:18.2415542Z             }
2026-06-04T00:09:18.2415614Z           ]
2026-06-04T00:09:18.2415692Z         },
2026-06-04T00:09:18.2415772Z         "int": {
2026-06-04T00:09:18.2415850Z           "complete": false,
2026-06-04T00:09:18.2415933Z           "evidence": []
2026-06-04T00:09:18.2416006Z         },
2026-06-04T00:09:18.2416084Z         "unit": {
2026-06-04T00:09:18.2416161Z           "complete": true,
2026-06-04T00:09:18.2416246Z           "evidence": [
2026-06-04T00:09:18.2416321Z             {
2026-06-04T00:09:18.2416426Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:09:18.2416506Z               "line": 184
2026-06-04T00:09:18.2416576Z             },
2026-06-04T00:09:18.2416658Z             {
2026-06-04T00:09:18.2416761Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:09:18.2416843Z               "line": 193
2026-06-04T00:09:18.2417025Z             },
2026-06-04T00:09:18.2417100Z             {
2026-06-04T00:09:18.2417299Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:09:18.2417373Z               "line": 201
2026-06-04T00:09:18.2417450Z             },
2026-06-04T00:09:18.2417519Z             {
2026-06-04T00:09:18.2417630Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:09:18.2417708Z               "line": 210
2026-06-04T00:09:18.2417779Z             },
2026-06-04T00:09:18.2417853Z             {
2026-06-04T00:09:18.2417957Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:09:18.2418043Z               "line": 219
2026-06-04T00:09:18.2418400Z             }
2026-06-04T00:09:18.2418545Z           ]
2026-06-04T00:09:18.2418651Z         }
2026-06-04T00:09:18.2462033Z       }
2026-06-04T00:09:18.2462203Z     },
2026-06-04T00:09:18.2462299Z     {
2026-06-04T00:09:18.2462462Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-04T00:09:18.2462700Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-04T00:09:18.2462794Z       "requiredStages": [
2026-06-04T00:09:18.2462870Z         "impl",
2026-06-04T00:09:18.2462946Z         "unit"
2026-06-04T00:09:18.2463017Z       ],
2026-06-04T00:09:18.2463090Z       "stages": {
2026-06-04T00:09:18.2463168Z         "doc": {
2026-06-04T00:09:18.2463250Z           "complete": false,
2026-06-04T00:09:18.2463332Z           "evidence": []
2026-06-04T00:09:18.2463399Z         },
2026-06-04T00:09:18.2463474Z         "impl": {
2026-06-04T00:09:18.2463555Z           "complete": true,
2026-06-04T00:09:18.2463627Z           "evidence": [
2026-06-04T00:09:18.2463700Z             {
2026-06-04T00:09:18.2463805Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:09:18.2463883Z               "line": 14
2026-06-04T00:09:18.2463951Z             },
2026-06-04T00:09:18.2464023Z             {
2026-06-04T00:09:18.2464121Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:09:18.2464195Z               "line": 62
2026-06-04T00:09:18.2464266Z             }
2026-06-04T00:09:18.2464332Z           ]
2026-06-04T00:09:18.2464409Z         },
2026-06-04T00:09:18.2464477Z         "int": {
2026-06-04T00:09:18.2464562Z           "complete": false,
2026-06-04T00:09:18.2464640Z           "evidence": []
2026-06-04T00:09:18.2464709Z         },
2026-06-04T00:09:18.2464782Z         "unit": {
2026-06-04T00:09:18.2464857Z           "complete": true,
2026-06-04T00:09:18.2464936Z           "evidence": [
2026-06-04T00:09:18.2465005Z             {
2026-06-04T00:09:18.2465102Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:09:18.2465179Z               "line": 160
2026-06-04T00:09:18.2465245Z             },
2026-06-04T00:09:18.2465313Z             {
2026-06-04T00:09:18.2465410Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:09:18.2465491Z               "line": 197
2026-06-04T00:09:18.2465559Z             },
2026-06-04T00:09:18.2465636Z             {
2026-06-04T00:09:18.2465738Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:09:18.2465811Z               "line": 213
2026-06-04T00:09:18.2465886Z             }
2026-06-04T00:09:18.2465952Z           ]
2026-06-04T00:09:18.2466026Z         }
2026-06-04T00:09:18.2466093Z       }
2026-06-04T00:09:18.2466168Z     },
2026-06-04T00:09:18.2466238Z     {
2026-06-04T00:09:18.2466344Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-04T00:09:18.2466562Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-04T00:09:18.2466641Z       "requiredStages": [
2026-06-04T00:09:18.2466720Z         "impl",
2026-06-04T00:09:18.2466788Z         "unit"
2026-06-04T00:09:18.2466862Z       ],
2026-06-04T00:09:18.2466937Z       "stages": {
2026-06-04T00:09:18.2467006Z         "doc": {
2026-06-04T00:09:18.2467091Z           "complete": false,
2026-06-04T00:09:18.2467166Z           "evidence": []
2026-06-04T00:09:18.2467243Z         },
2026-06-04T00:09:18.2467315Z         "impl": {
2026-06-04T00:09:18.2467610Z           "complete": true,
2026-06-04T00:09:18.2467691Z           "evidence": [
2026-06-04T00:09:18.2467883Z             {
2026-06-04T00:09:18.2467997Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:09:18.2468071Z               "line": 76
2026-06-04T00:09:18.2468144Z             },
2026-06-04T00:09:18.2468209Z             {
2026-06-04T00:09:18.2468313Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:09:18.2468390Z               "line": 163
2026-06-04T00:09:18.2468457Z             },
2026-06-04T00:09:18.2468528Z             {
2026-06-04T00:09:18.2468622Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:09:18.2468698Z               "line": 229
2026-06-04T00:09:18.2468767Z             },
2026-06-04T00:09:18.2468843Z             {
2026-06-04T00:09:18.2468945Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:09:18.2469020Z               "line": 265
2026-06-04T00:09:18.2469095Z             }
2026-06-04T00:09:18.2469166Z           ]
2026-06-04T00:09:18.2469242Z         },
2026-06-04T00:09:18.2469309Z         "int": {
2026-06-04T00:09:18.2469396Z           "complete": false,
2026-06-04T00:09:18.2469476Z           "evidence": []
2026-06-04T00:09:18.2469543Z         },
2026-06-04T00:09:18.2469616Z         "unit": {
2026-06-04T00:09:18.2469693Z           "complete": true,
2026-06-04T00:09:18.2469770Z           "evidence": [
2026-06-04T00:09:18.2469837Z             {
2026-06-04T00:09:18.2469938Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:09:18.2470014Z               "line": 310
2026-06-04T00:09:18.2470081Z             },
2026-06-04T00:09:18.2470152Z             {
2026-06-04T00:09:18.2470247Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:09:18.2470324Z               "line": 318
2026-06-04T00:09:18.2470391Z             },
2026-06-04T00:09:18.2470463Z             {
2026-06-04T00:09:18.2470560Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:09:18.2470633Z               "line": 341
2026-06-04T00:09:18.2470702Z             },
2026-06-04T00:09:18.2470971Z             {
2026-06-04T00:09:18.2471074Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:09:18.2471144Z               "line": 378
2026-06-04T00:09:18.2471217Z             },
2026-06-04T00:09:18.2471290Z             {
2026-06-04T00:09:18.2471384Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:09:18.2471459Z               "line": 389
2026-06-04T00:09:18.2471526Z             },
2026-06-04T00:09:18.2471597Z             {
2026-06-04T00:09:18.2471695Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:09:18.2471764Z               "line": 401
2026-06-04T00:09:18.2471836Z             },
2026-06-04T00:09:18.2471902Z             {
2026-06-04T00:09:18.2472001Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:09:18.2472071Z               "line": 413
2026-06-04T00:09:18.2472142Z             }
2026-06-04T00:09:18.2472215Z           ]
2026-06-04T00:09:18.2472285Z         }
2026-06-04T00:09:18.2472356Z       }
2026-06-04T00:09:18.2472423Z     },
2026-06-04T00:09:18.2472497Z     {
2026-06-04T00:09:18.2472592Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-04T00:09:18.2472732Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-04T00:09:18.2472819Z       "requiredStages": [
2026-06-04T00:09:18.2472890Z         "impl",
2026-06-04T00:09:18.2472963Z         "int"
2026-06-04T00:09:18.2473030Z       ],
2026-06-04T00:09:18.2473108Z       "stages": {
2026-06-04T00:09:18.2473178Z         "doc": {
2026-06-04T00:09:18.2473263Z           "complete": false,
2026-06-04T00:09:18.2473345Z           "evidence": []
2026-06-04T00:09:18.2473414Z         },
2026-06-04T00:09:18.2473490Z         "impl": {
2026-06-04T00:09:18.2473567Z           "complete": true,
2026-06-04T00:09:18.2473644Z           "evidence": [
2026-06-04T00:09:18.2473713Z             {
2026-06-04T00:09:18.2473827Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:09:18.2474021Z               "line": 22
2026-06-04T00:09:18.2474093Z             }
2026-06-04T00:09:18.2474283Z           ]
2026-06-04T00:09:18.2474348Z         },
2026-06-04T00:09:18.2474422Z         "int": {
2026-06-04T00:09:18.2474498Z           "complete": true,
2026-06-04T00:09:18.2474576Z           "evidence": [
2026-06-04T00:09:18.2474643Z             {
2026-06-04T00:09:18.2474763Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-04T00:09:18.2474838Z               "line": 18
2026-06-04T00:09:18.2474907Z             }
2026-06-04T00:09:18.2474977Z           ]
2026-06-04T00:09:18.2475043Z         },
2026-06-04T00:09:18.2475119Z         "unit": {
2026-06-04T00:09:18.2475195Z           "complete": false,
2026-06-04T00:09:18.2475275Z           "evidence": []
2026-06-04T00:09:18.2475347Z         }
2026-06-04T00:09:18.2475415Z       }
2026-06-04T00:09:18.2475487Z     },
2026-06-04T00:09:18.2475553Z     {
2026-06-04T00:09:18.2475663Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-04T00:09:18.2475842Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-04T00:09:18.2475932Z       "requiredStages": [
2026-06-04T00:09:18.2476008Z         "impl",
2026-06-04T00:09:18.2476077Z         "unit"
2026-06-04T00:09:18.2476150Z       ],
2026-06-04T00:09:18.2476223Z       "stages": {
2026-06-04T00:09:18.2476297Z         "doc": {
2026-06-04T00:09:18.2476372Z           "complete": false,
2026-06-04T00:09:18.2476453Z           "evidence": []
2026-06-04T00:09:18.2476525Z         },
2026-06-04T00:09:18.2476596Z         "impl": {
2026-06-04T00:09:18.2476675Z           "complete": true,
2026-06-04T00:09:18.2476751Z           "evidence": [
2026-06-04T00:09:18.2476825Z             {
2026-06-04T00:09:18.2476935Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2477014Z               "line": 263
2026-06-04T00:09:18.2477088Z             },
2026-06-04T00:09:18.2477155Z             {
2026-06-04T00:09:18.2477266Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:09:18.2477337Z               "line": 27
2026-06-04T00:09:18.2477409Z             }
2026-06-04T00:09:18.2477484Z           ]
2026-06-04T00:09:18.2477552Z         },
2026-06-04T00:09:18.2477627Z         "int": {
2026-06-04T00:09:18.2477704Z           "complete": false,
2026-06-04T00:09:18.2477781Z           "evidence": []
2026-06-04T00:09:18.2477850Z         },
2026-06-04T00:09:18.2477924Z         "unit": {
2026-06-04T00:09:18.2478000Z           "complete": true,
2026-06-04T00:09:18.2478079Z           "evidence": [
2026-06-04T00:09:18.2478151Z             {
2026-06-04T00:09:18.2478253Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2478330Z               "line": 561
2026-06-04T00:09:18.2478398Z             },
2026-06-04T00:09:18.2478471Z             {
2026-06-04T00:09:18.2478574Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:09:18.2478647Z               "line": 163
2026-06-04T00:09:18.2478717Z             }
2026-06-04T00:09:18.2478787Z           ]
2026-06-04T00:09:18.2478858Z         }
2026-06-04T00:09:18.2478928Z       }
2026-06-04T00:09:18.2479003Z     },
2026-06-04T00:09:18.2479071Z     {
2026-06-04T00:09:18.2479183Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-04T00:09:18.2479340Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-04T00:09:18.2479418Z       "requiredStages": [
2026-06-04T00:09:18.2479492Z         "impl",
2026-06-04T00:09:18.2479561Z         "unit"
2026-06-04T00:09:18.2479636Z       ],
2026-06-04T00:09:18.2479713Z       "stages": {
2026-06-04T00:09:18.2479782Z         "doc": {
2026-06-04T00:09:18.2479865Z           "complete": false,
2026-06-04T00:09:18.2479939Z           "evidence": []
2026-06-04T00:09:18.2480012Z         },
2026-06-04T00:09:18.2480082Z         "impl": {
2026-06-04T00:09:18.2480162Z           "complete": true,
2026-06-04T00:09:18.2480234Z           "evidence": [
2026-06-04T00:09:18.2480306Z             {
2026-06-04T00:09:18.2480493Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:09:18.2480566Z               "line": 20
2026-06-04T00:09:18.2480699Z             },
2026-06-04T00:09:18.2480858Z             {
2026-06-04T00:09:18.2480966Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:09:18.2481042Z               "line": 94
2026-06-04T00:09:18.2481110Z             },
2026-06-04T00:09:18.2481180Z             {
2026-06-04T00:09:18.2481287Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T00:09:18.2481363Z               "line": 70
2026-06-04T00:09:18.2481431Z             },
2026-06-04T00:09:18.2481505Z             {
2026-06-04T00:09:18.2481609Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T00:09:18.2481681Z               "line": 82
2026-06-04T00:09:18.2481751Z             }
2026-06-04T00:09:18.2481818Z           ]
2026-06-04T00:09:18.2481891Z         },
2026-06-04T00:09:18.2481961Z         "int": {
2026-06-04T00:09:18.2482042Z           "complete": false,
2026-06-04T00:09:18.2482121Z           "evidence": []
2026-06-04T00:09:18.2482189Z         },
2026-06-04T00:09:18.2482266Z         "unit": {
2026-06-04T00:09:18.2482343Z           "complete": true,
2026-06-04T00:09:18.2482421Z           "evidence": [
2026-06-04T00:09:18.2482489Z             {
2026-06-04T00:09:18.2482592Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:09:18.2482668Z               "line": 139
2026-06-04T00:09:18.2482736Z             },
2026-06-04T00:09:18.2482810Z             {
2026-06-04T00:09:18.2482905Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:09:18.2482982Z               "line": 162
2026-06-04T00:09:18.2483050Z             },
2026-06-04T00:09:18.2483124Z             {
2026-06-04T00:09:18.2483222Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:09:18.2483293Z               "line": 173
2026-06-04T00:09:18.2483367Z             },
2026-06-04T00:09:18.2483435Z             {
2026-06-04T00:09:18.2483538Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:09:18.2483611Z               "line": 189
2026-06-04T00:09:18.2483684Z             },
2026-06-04T00:09:18.2483758Z             {
2026-06-04T00:09:18.2483854Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:09:18.2483932Z               "line": 200
2026-06-04T00:09:18.2484000Z             },
2026-06-04T00:09:18.2484074Z             {
2026-06-04T00:09:18.2484179Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T00:09:18.2484256Z               "line": 139
2026-06-04T00:09:18.2484327Z             }
2026-06-04T00:09:18.2484394Z           ]
2026-06-04T00:09:18.2484467Z         }
2026-06-04T00:09:18.2484536Z       }
2026-06-04T00:09:18.2484607Z     },
2026-06-04T00:09:18.2484672Z     {
2026-06-04T00:09:18.2484766Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-04T00:09:18.2485016Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-04T00:09:18.2485094Z       "requiredStages": [
2026-06-04T00:09:18.2485173Z         "impl",
2026-06-04T00:09:18.2485243Z         "unit"
2026-06-04T00:09:18.2485319Z       ],
2026-06-04T00:09:18.2485390Z       "stages": {
2026-06-04T00:09:18.2485465Z         "doc": {
2026-06-04T00:09:18.2485548Z           "complete": true,
2026-06-04T00:09:18.2485621Z           "evidence": [
2026-06-04T00:09:18.2485691Z             {
2026-06-04T00:09:18.2485789Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T00:09:18.2485866Z               "line": 131
2026-06-04T00:09:18.2485934Z             }
2026-06-04T00:09:18.2486009Z           ]
2026-06-04T00:09:18.2486081Z         },
2026-06-04T00:09:18.2486151Z         "impl": {
2026-06-04T00:09:18.2486232Z           "complete": true,
2026-06-04T00:09:18.2486305Z           "evidence": [
2026-06-04T00:09:18.2486379Z             {
2026-06-04T00:09:18.2486481Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:09:18.2486557Z               "line": 50
2026-06-04T00:09:18.2486633Z             },
2026-06-04T00:09:18.2486826Z             {
2026-06-04T00:09:18.2486933Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:09:18.2487088Z               "line": 17
2026-06-04T00:09:18.2487158Z             },
2026-06-04T00:09:18.2487226Z             {
2026-06-04T00:09:18.2487335Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2487410Z               "line": 171
2026-06-04T00:09:18.2487479Z             },
2026-06-04T00:09:18.2487552Z             {
2026-06-04T00:09:18.2487650Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2487729Z               "line": 259
2026-06-04T00:09:18.2487796Z             },
2026-06-04T00:09:18.2487868Z             {
2026-06-04T00:09:18.2487971Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:09:18.2488040Z               "line": 32
2026-06-04T00:09:18.2488113Z             }
2026-06-04T00:09:18.2488179Z           ]
2026-06-04T00:09:18.2488252Z         },
2026-06-04T00:09:18.2488319Z         "int": {
2026-06-04T00:09:18.2488405Z           "complete": false,
2026-06-04T00:09:18.2488481Z           "evidence": []
2026-06-04T00:09:18.2488551Z         },
2026-06-04T00:09:18.2488627Z         "unit": {
2026-06-04T00:09:18.2488702Z           "complete": true,
2026-06-04T00:09:18.2488781Z           "evidence": [
2026-06-04T00:09:18.2488847Z             {
2026-06-04T00:09:18.2488947Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:09:18.2489023Z               "line": 94
2026-06-04T00:09:18.2489089Z             },
2026-06-04T00:09:18.2489160Z             {
2026-06-04T00:09:18.2489257Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:09:18.2489334Z               "line": 111
2026-06-04T00:09:18.2489404Z             },
2026-06-04T00:09:18.2489471Z             {
2026-06-04T00:09:18.2489567Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:09:18.2489637Z               "line": 124
2026-06-04T00:09:18.2489707Z             },
2026-06-04T00:09:18.2489772Z             {
2026-06-04T00:09:18.2489871Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:09:18.2489945Z               "line": 134
2026-06-04T00:09:18.2490012Z             },
2026-06-04T00:09:18.2490082Z             {
2026-06-04T00:09:18.2490173Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:09:18.2490252Z               "line": 142
2026-06-04T00:09:18.2490318Z             },
2026-06-04T00:09:18.2490390Z             {
2026-06-04T00:09:18.2490482Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:09:18.2490554Z               "line": 154
2026-06-04T00:09:18.2490624Z             }
2026-06-04T00:09:18.2490689Z           ]
2026-06-04T00:09:18.2490846Z         }
2026-06-04T00:09:18.2490914Z       }
2026-06-04T00:09:18.2490987Z     },
2026-06-04T00:09:18.2491056Z     {
2026-06-04T00:09:18.2491157Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-04T00:09:18.2491284Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-04T00:09:18.2491364Z       "requiredStages": [
2026-06-04T00:09:18.2491442Z         "impl",
2026-06-04T00:09:18.2491508Z         "unit"
2026-06-04T00:09:18.2491577Z       ],
2026-06-04T00:09:18.2491654Z       "stages": {
2026-06-04T00:09:18.2491724Z         "doc": {
2026-06-04T00:09:18.2491806Z           "complete": false,
2026-06-04T00:09:18.2491878Z           "evidence": []
2026-06-04T00:09:18.2491950Z         },
2026-06-04T00:09:18.2492019Z         "impl": {
2026-06-04T00:09:18.2492099Z           "complete": true,
2026-06-04T00:09:18.2492179Z           "evidence": [
2026-06-04T00:09:18.2492247Z             {
2026-06-04T00:09:18.2492353Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2492423Z               "line": 93
2026-06-04T00:09:18.2492494Z             }
2026-06-04T00:09:18.2492561Z           ]
2026-06-04T00:09:18.2492632Z         },
2026-06-04T00:09:18.2492704Z         "int": {
2026-06-04T00:09:18.2492780Z           "complete": false,
2026-06-04T00:09:18.2492859Z           "evidence": []
2026-06-04T00:09:18.2492925Z         },
2026-06-04T00:09:18.2493102Z         "unit": {
2026-06-04T00:09:18.2493177Z           "complete": true,
2026-06-04T00:09:18.2493341Z           "evidence": [
2026-06-04T00:09:18.2493413Z             {
2026-06-04T00:09:18.2493512Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2493593Z               "line": 190
2026-06-04T00:09:18.2493659Z             }
2026-06-04T00:09:18.2493733Z           ]
2026-06-04T00:09:18.2493798Z         }
2026-06-04T00:09:18.2493871Z       }
2026-06-04T00:09:18.2493939Z     },
2026-06-04T00:09:18.2494003Z     {
2026-06-04T00:09:18.2494109Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-04T00:09:18.2494253Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-04T00:09:18.2494338Z       "requiredStages": [
2026-06-04T00:09:18.2494408Z         "impl",
2026-06-04T00:09:18.2494481Z         "unit"
2026-06-04T00:09:18.2494550Z       ],
2026-06-04T00:09:18.2494619Z       "stages": {
2026-06-04T00:09:18.2494690Z         "doc": {
2026-06-04T00:09:18.2494769Z           "complete": false,
2026-06-04T00:09:18.2494849Z           "evidence": []
2026-06-04T00:09:18.2494918Z         },
2026-06-04T00:09:18.2494993Z         "impl": {
2026-06-04T00:09:18.2495072Z           "complete": true,
2026-06-04T00:09:18.2495144Z           "evidence": [
2026-06-04T00:09:18.2495214Z             {
2026-06-04T00:09:18.2495314Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:09:18.2495392Z               "line": 120
2026-06-04T00:09:18.2495460Z             },
2026-06-04T00:09:18.2495531Z             {
2026-06-04T00:09:18.2495631Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:09:18.2495703Z               "line": 131
2026-06-04T00:09:18.2495774Z             },
2026-06-04T00:09:18.2495843Z             {
2026-06-04T00:09:18.2495943Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:09:18.2496014Z               "line": 149
2026-06-04T00:09:18.2496085Z             }
2026-06-04T00:09:18.2496157Z           ]
2026-06-04T00:09:18.2496223Z         },
2026-06-04T00:09:18.2496296Z         "int": {
2026-06-04T00:09:18.2496373Z           "complete": false,
2026-06-04T00:09:18.2496453Z           "evidence": []
2026-06-04T00:09:18.2496519Z         },
2026-06-04T00:09:18.2496596Z         "unit": {
2026-06-04T00:09:18.2496676Z           "complete": true,
2026-06-04T00:09:18.2496750Z           "evidence": [
2026-06-04T00:09:18.2496822Z             {
2026-06-04T00:09:18.2496915Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:09:18.2496991Z               "line": 173
2026-06-04T00:09:18.2497056Z             },
2026-06-04T00:09:18.2497127Z             {
2026-06-04T00:09:18.2497226Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:09:18.2497297Z               "line": 191
2026-06-04T00:09:18.2497368Z             },
2026-06-04T00:09:18.2497434Z             {
2026-06-04T00:09:18.2497531Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:09:18.2497602Z               "line": 253
2026-06-04T00:09:18.2497676Z             },
2026-06-04T00:09:18.2497749Z             {
2026-06-04T00:09:18.2497841Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:09:18.2497920Z               "line": 264
2026-06-04T00:09:18.2497986Z             },
2026-06-04T00:09:18.2498057Z             {
2026-06-04T00:09:18.2498147Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:09:18.2498224Z               "line": 277
2026-06-04T00:09:18.2498295Z             }
2026-06-04T00:09:18.2498361Z           ]
2026-06-04T00:09:18.2498432Z         }
2026-06-04T00:09:18.2498499Z       }
2026-06-04T00:09:18.2498572Z     },
2026-06-04T00:09:18.2498638Z     {
2026-06-04T00:09:18.2498735Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-04T00:09:18.2498978Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-04T00:09:18.2499057Z       "requiredStages": [
2026-06-04T00:09:18.2499130Z         "impl",
2026-06-04T00:09:18.2499199Z         "unit"
2026-06-04T00:09:18.2499387Z       ],
2026-06-04T00:09:18.2499459Z       "stages": {
2026-06-04T00:09:18.2499531Z         "doc": {
2026-06-04T00:09:18.2499676Z           "complete": false,
2026-06-04T00:09:18.2499750Z           "evidence": []
2026-06-04T00:09:18.2499819Z         },
2026-06-04T00:09:18.2499888Z         "impl": {
2026-06-04T00:09:18.2499969Z           "complete": true,
2026-06-04T00:09:18.2500040Z           "evidence": [
2026-06-04T00:09:18.2500112Z             {
2026-06-04T00:09:18.2500216Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:09:18.2500286Z               "line": 14
2026-06-04T00:09:18.2500357Z             },
2026-06-04T00:09:18.2500423Z             {
2026-06-04T00:09:18.2500522Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T00:09:18.2500593Z               "line": 298
2026-06-04T00:09:18.2500663Z             }
2026-06-04T00:09:18.2500893Z           ]
2026-06-04T00:09:18.2500997Z         },
2026-06-04T00:09:18.2501106Z         "int": {
2026-06-04T00:09:18.2501197Z           "complete": false,
2026-06-04T00:09:18.2501276Z           "evidence": []
2026-06-04T00:09:18.2501341Z         },
2026-06-04T00:09:18.2501417Z         "unit": {
2026-06-04T00:09:18.2501496Z           "complete": true,
2026-06-04T00:09:18.2501569Z           "evidence": [
2026-06-04T00:09:18.2501640Z             {
2026-06-04T00:09:18.2501734Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:09:18.2501812Z               "line": 130
2026-06-04T00:09:18.2501878Z             },
2026-06-04T00:09:18.2501948Z             {
2026-06-04T00:09:18.2502042Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:09:18.2502114Z               "line": 138
2026-06-04T00:09:18.2502187Z             },
2026-06-04T00:09:18.2502252Z             {
2026-06-04T00:09:18.2502345Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:09:18.2502417Z               "line": 146
2026-06-04T00:09:18.2502493Z             },
2026-06-04T00:09:18.2502565Z             {
2026-06-04T00:09:18.2502660Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:09:18.2502735Z               "line": 154
2026-06-04T00:09:18.2502806Z             },
2026-06-04T00:09:18.2502877Z             {
2026-06-04T00:09:18.2502971Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:09:18.2503041Z               "line": 162
2026-06-04T00:09:18.2503112Z             },
2026-06-04T00:09:18.2503179Z             {
2026-06-04T00:09:18.2503271Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:09:18.2503342Z               "line": 170
2026-06-04T00:09:18.2503414Z             }
2026-06-04T00:09:18.2503486Z           ]
2026-06-04T00:09:18.2503553Z         }
2026-06-04T00:09:18.2503626Z       }
2026-06-04T00:09:18.2503692Z     },
2026-06-04T00:09:18.2503762Z     {
2026-06-04T00:09:18.2503858Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-04T00:09:18.2504971Z       "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-04T00:09:18.2505061Z       "requiredStages": [
2026-06-04T00:09:18.2505128Z         "impl",
2026-06-04T00:09:18.2505198Z         "unit"
2026-06-04T00:09:18.2505264Z       ],
2026-06-04T00:09:18.2505336Z       "stages": {
2026-06-04T00:09:18.2505405Z         "doc": {
2026-06-04T00:09:18.2505488Z           "complete": false,
2026-06-04T00:09:18.2505568Z           "evidence": []
2026-06-04T00:09:18.2505633Z         },
2026-06-04T00:09:18.2505705Z         "impl": {
2026-06-04T00:09:18.2505782Z           "complete": true,
2026-06-04T00:09:18.2505859Z           "evidence": [
2026-06-04T00:09:18.2505925Z             {
2026-06-04T00:09:18.2506071Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:09:18.2506147Z               "line": 34
2026-06-04T00:09:18.2506212Z             }
2026-06-04T00:09:18.2506282Z           ]
2026-06-04T00:09:18.2506479Z         },
2026-06-04T00:09:18.2506554Z         "int": {
2026-06-04T00:09:18.2506631Z           "complete": false,
2026-06-04T00:09:18.2506793Z           "evidence": []
2026-06-04T00:09:18.2506864Z         },
2026-06-04T00:09:18.2506931Z         "unit": {
2026-06-04T00:09:18.2507012Z           "complete": true,
2026-06-04T00:09:18.2507084Z           "evidence": [
2026-06-04T00:09:18.2507156Z             {
2026-06-04T00:09:18.2507285Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:09:18.2507366Z               "line": 188
2026-06-04T00:09:18.2507436Z             },
2026-06-04T00:09:18.2507503Z             {
2026-06-04T00:09:18.2507632Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:09:18.2507704Z               "line": 200
2026-06-04T00:09:18.2507774Z             },
2026-06-04T00:09:18.2507840Z             {
2026-06-04T00:09:18.2507969Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:09:18.2508047Z               "line": 211
2026-06-04T00:09:18.2508113Z             },
2026-06-04T00:09:18.2508181Z             {
2026-06-04T00:09:18.2508298Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:09:18.2508374Z               "line": 245
2026-06-04T00:09:18.2508443Z             },
2026-06-04T00:09:18.2508509Z             {
2026-06-04T00:09:18.2508626Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:09:18.2508695Z               "line": 267
2026-06-04T00:09:18.2508765Z             },
2026-06-04T00:09:18.2508832Z             {
2026-06-04T00:09:18.2508952Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:09:18.2509028Z               "line": 288
2026-06-04T00:09:18.2509097Z             },
2026-06-04T00:09:18.2509169Z             {
2026-06-04T00:09:18.2509282Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:09:18.2509358Z               "line": 304
2026-06-04T00:09:18.2509424Z             }
2026-06-04T00:09:18.2509499Z           ]
2026-06-04T00:09:18.2509567Z         }
2026-06-04T00:09:18.2509637Z       }
2026-06-04T00:09:18.2509706Z     },
2026-06-04T00:09:18.2509774Z     {
2026-06-04T00:09:18.2509876Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-04T00:09:18.2510390Z       "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-04T00:09:18.2510471Z       "requiredStages": [
2026-06-04T00:09:18.2510540Z         "impl",
2026-06-04T00:09:18.2510606Z         "unit"
2026-06-04T00:09:18.2510676Z       ],
2026-06-04T00:09:18.2510856Z       "stages": {
2026-06-04T00:09:18.2510935Z         "doc": {
2026-06-04T00:09:18.2511015Z           "complete": false,
2026-06-04T00:09:18.2511093Z           "evidence": []
2026-06-04T00:09:18.2511164Z         },
2026-06-04T00:09:18.2511234Z         "impl": {
2026-06-04T00:09:18.2511318Z           "complete": true,
2026-06-04T00:09:18.2511390Z           "evidence": [
2026-06-04T00:09:18.2511462Z             {
2026-06-04T00:09:18.2511567Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2511643Z               "line": 29
2026-06-04T00:09:18.2511713Z             },
2026-06-04T00:09:18.2511781Z             {
2026-06-04T00:09:18.2511881Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2511954Z               "line": 154
2026-06-04T00:09:18.2512026Z             },
2026-06-04T00:09:18.2512094Z             {
2026-06-04T00:09:18.2512189Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2512263Z               "line": 173
2026-06-04T00:09:18.2512329Z             },
2026-06-04T00:09:18.2512400Z             {
2026-06-04T00:09:18.2512494Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2512571Z               "line": 200
2026-06-04T00:09:18.2512640Z             }
2026-06-04T00:09:18.2512705Z           ]
2026-06-04T00:09:18.2512889Z         },
2026-06-04T00:09:18.2512958Z         "int": {
2026-06-04T00:09:18.2513122Z           "complete": false,
2026-06-04T00:09:18.2513195Z           "evidence": []
2026-06-04T00:09:18.2513266Z         },
2026-06-04T00:09:18.2513339Z         "unit": {
2026-06-04T00:09:18.2513415Z           "complete": true,
2026-06-04T00:09:18.2513491Z           "evidence": [
2026-06-04T00:09:18.2513556Z             {
2026-06-04T00:09:18.2513659Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2513729Z               "line": 276
2026-06-04T00:09:18.2513802Z             },
2026-06-04T00:09:18.2513872Z             {
2026-06-04T00:09:18.2513967Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2514043Z               "line": 291
2026-06-04T00:09:18.2514111Z             },
2026-06-04T00:09:18.2514181Z             {
2026-06-04T00:09:18.2514274Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2514350Z               "line": 310
2026-06-04T00:09:18.2514423Z             },
2026-06-04T00:09:18.2514488Z             {
2026-06-04T00:09:18.2514590Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2514660Z               "line": 326
2026-06-04T00:09:18.2514732Z             },
2026-06-04T00:09:18.2514797Z             {
2026-06-04T00:09:18.2514896Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2514968Z               "line": 376
2026-06-04T00:09:18.2515034Z             },
2026-06-04T00:09:18.2515110Z             {
2026-06-04T00:09:18.2515202Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2515277Z               "line": 390
2026-06-04T00:09:18.2515343Z             },
2026-06-04T00:09:18.2515412Z             {
2026-06-04T00:09:18.2515509Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2515581Z               "line": 401
2026-06-04T00:09:18.2515650Z             },
2026-06-04T00:09:18.2515715Z             {
2026-06-04T00:09:18.2515815Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2515885Z               "line": 412
2026-06-04T00:09:18.2515956Z             }
2026-06-04T00:09:18.2516024Z           ]
2026-06-04T00:09:18.2516091Z         }
2026-06-04T00:09:18.2516158Z       }
2026-06-04T00:09:18.2516223Z     },
2026-06-04T00:09:18.2516291Z     {
2026-06-04T00:09:18.2516394Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-04T00:09:18.2517069Z       "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-04T00:09:18.2517153Z       "requiredStages": [
2026-06-04T00:09:18.2517223Z         "impl",
2026-06-04T00:09:18.2517294Z         "unit"
2026-06-04T00:09:18.2517359Z       ],
2026-06-04T00:09:18.2517432Z       "stages": {
2026-06-04T00:09:18.2517506Z         "doc": {
2026-06-04T00:09:18.2517590Z           "complete": false,
2026-06-04T00:09:18.2517678Z           "evidence": []
2026-06-04T00:09:18.2517748Z         },
2026-06-04T00:09:18.2517828Z         "impl": {
2026-06-04T00:09:18.2517905Z           "complete": true,
2026-06-04T00:09:18.2517983Z           "evidence": [
2026-06-04T00:09:18.2518056Z             {
2026-06-04T00:09:18.2518179Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2518255Z               "line": 27
2026-06-04T00:09:18.2518322Z             },
2026-06-04T00:09:18.2518394Z             {
2026-06-04T00:09:18.2518513Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2518593Z               "line": 110
2026-06-04T00:09:18.2518665Z             },
2026-06-04T00:09:18.2518731Z             {
2026-06-04T00:09:18.2518849Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2518923Z               "line": 153
2026-06-04T00:09:18.2518995Z             },
2026-06-04T00:09:18.2519062Z             {
2026-06-04T00:09:18.2519255Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2519335Z               "line": 182
2026-06-04T00:09:18.2519465Z             },
2026-06-04T00:09:18.2519538Z             {
2026-06-04T00:09:18.2519669Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:09:18.2519747Z               "line": 31
2026-06-04T00:09:18.2519816Z             },
2026-06-04T00:09:18.2519889Z             {
2026-06-04T00:09:18.2520016Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:09:18.2520090Z               "line": 113
2026-06-04T00:09:18.2520161Z             },
2026-06-04T00:09:18.2520227Z             {
2026-06-04T00:09:18.2520349Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:09:18.2520422Z               "line": 138
2026-06-04T00:09:18.2520495Z             }
2026-06-04T00:09:18.2520570Z           ]
2026-06-04T00:09:18.2520638Z         },
2026-06-04T00:09:18.2520711Z         "int": {
2026-06-04T00:09:18.2520881Z           "complete": false,
2026-06-04T00:09:18.2520961Z           "evidence": []
2026-06-04T00:09:18.2521029Z         },
2026-06-04T00:09:18.2521106Z         "unit": {
2026-06-04T00:09:18.2521188Z           "complete": true,
2026-06-04T00:09:18.2521260Z           "evidence": [
2026-06-04T00:09:18.2521335Z             {
2026-06-04T00:09:18.2521456Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2521535Z               "line": 261
2026-06-04T00:09:18.2521603Z             },
2026-06-04T00:09:18.2521675Z             {
2026-06-04T00:09:18.2521791Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2521861Z               "line": 276
2026-06-04T00:09:18.2521932Z             },
2026-06-04T00:09:18.2521998Z             {
2026-06-04T00:09:18.2522830Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2522908Z               "line": 293
2026-06-04T00:09:18.2522974Z             },
2026-06-04T00:09:18.2523051Z             {
2026-06-04T00:09:18.2523159Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2523240Z               "line": 310
2026-06-04T00:09:18.2523307Z             },
2026-06-04T00:09:18.2523378Z             {
2026-06-04T00:09:18.2523489Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2523561Z               "line": 327
2026-06-04T00:09:18.2523632Z             },
2026-06-04T00:09:18.2523700Z             {
2026-06-04T00:09:18.2523817Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2523887Z               "line": 366
2026-06-04T00:09:18.2523960Z             },
2026-06-04T00:09:18.2524030Z             {
2026-06-04T00:09:18.2524152Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:09:18.2524228Z               "line": 179
2026-06-04T00:09:18.2524295Z             },
2026-06-04T00:09:18.2524366Z             {
2026-06-04T00:09:18.2524488Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:09:18.2524565Z               "line": 194
2026-06-04T00:09:18.2524639Z             },
2026-06-04T00:09:18.2524706Z             {
2026-06-04T00:09:18.2524829Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:09:18.2524900Z               "line": 204
2026-06-04T00:09:18.2524973Z             },
2026-06-04T00:09:18.2525042Z             {
2026-06-04T00:09:18.2525163Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:09:18.2525241Z               "line": 259
2026-06-04T00:09:18.2525307Z             },
2026-06-04T00:09:18.2525378Z             {
2026-06-04T00:09:18.2525495Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:09:18.2525574Z               "line": 269
2026-06-04T00:09:18.2525644Z             },
2026-06-04T00:09:18.2525710Z             {
2026-06-04T00:09:18.2525831Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:09:18.2526044Z               "line": 283
2026-06-04T00:09:18.2526119Z             }
2026-06-04T00:09:18.2526271Z           ]
2026-06-04T00:09:18.2526344Z         }
2026-06-04T00:09:18.2526416Z       }
2026-06-04T00:09:18.2526484Z     },
2026-06-04T00:09:18.2526558Z     {
2026-06-04T00:09:18.2526660Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-04T00:09:18.2526844Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-04T00:09:18.2526926Z       "requiredStages": [],
2026-06-04T00:09:18.2527000Z       "stages": {
2026-06-04T00:09:18.2527073Z         "doc": {
2026-06-04T00:09:18.2527152Z           "complete": false,
2026-06-04T00:09:18.2527233Z           "evidence": []
2026-06-04T00:09:18.2527301Z         },
2026-06-04T00:09:18.2527377Z         "impl": {
2026-06-04T00:09:18.2527453Z           "complete": false,
2026-06-04T00:09:18.2527533Z           "evidence": []
2026-06-04T00:09:18.2527608Z         },
2026-06-04T00:09:18.2527678Z         "int": {
2026-06-04T00:09:18.2527759Z           "complete": false,
2026-06-04T00:09:18.2527833Z           "evidence": []
2026-06-04T00:09:18.2527910Z         },
2026-06-04T00:09:18.2527980Z         "unit": {
2026-06-04T00:09:18.2528062Z           "complete": false,
2026-06-04T00:09:18.2528138Z           "evidence": []
2026-06-04T00:09:18.2528206Z         }
2026-06-04T00:09:18.2528279Z       }
2026-06-04T00:09:18.2528346Z     },
2026-06-04T00:09:18.2528418Z     {
2026-06-04T00:09:18.2528529Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-04T00:09:18.2533715Z       "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-04T00:09:18.2533826Z       "requiredStages": [],
2026-06-04T00:09:18.2533905Z       "stages": {
2026-06-04T00:09:18.2533983Z         "doc": {
2026-06-04T00:09:18.2534068Z           "complete": false,
2026-06-04T00:09:18.2534164Z           "evidence": []
2026-06-04T00:09:18.2534241Z         },
2026-06-04T00:09:18.2534319Z         "impl": {
2026-06-04T00:09:18.2534403Z           "complete": false,
2026-06-04T00:09:18.2534479Z           "evidence": []
2026-06-04T00:09:18.2534555Z         },
2026-06-04T00:09:18.2534624Z         "int": {
2026-06-04T00:09:18.2534707Z           "complete": false,
2026-06-04T00:09:18.2534788Z           "evidence": []
2026-06-04T00:09:18.2534857Z         },
2026-06-04T00:09:18.2534931Z         "unit": {
2026-06-04T00:09:18.2535006Z           "complete": false,
2026-06-04T00:09:18.2535086Z           "evidence": []
2026-06-04T00:09:18.2535153Z         }
2026-06-04T00:09:18.2535227Z       }
2026-06-04T00:09:18.2535299Z     },
2026-06-04T00:09:18.2535373Z     {
2026-06-04T00:09:18.2535501Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-04T00:09:18.2535751Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-04T00:09:18.2535845Z       "requiredStages": [
2026-06-04T00:09:18.2535918Z         "impl",
2026-06-04T00:09:18.2535996Z         "unit"
2026-06-04T00:09:18.2536074Z       ],
2026-06-04T00:09:18.2536146Z       "stages": {
2026-06-04T00:09:18.2536219Z         "doc": {
2026-06-04T00:09:18.2536301Z           "complete": true,
2026-06-04T00:09:18.2536383Z           "evidence": [
2026-06-04T00:09:18.2536453Z             {
2026-06-04T00:09:18.2536562Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T00:09:18.2536643Z               "line": 137
2026-06-04T00:09:18.2536717Z             }
2026-06-04T00:09:18.2536794Z           ]
2026-06-04T00:09:18.2536864Z         },
2026-06-04T00:09:18.2536943Z         "impl": {
2026-06-04T00:09:18.2537023Z           "complete": true,
2026-06-04T00:09:18.2537108Z           "evidence": [
2026-06-04T00:09:18.2537179Z             {
2026-06-04T00:09:18.2537282Z               "path": "crates/spt-store/src/db.rs",
2026-06-04T00:09:18.2537363Z               "line": 29
2026-06-04T00:09:18.2537636Z             },
2026-06-04T00:09:18.2537716Z             {
2026-06-04T00:09:18.2537830Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2538006Z               "line": 24
2026-06-04T00:09:18.2538083Z             },
2026-06-04T00:09:18.2538152Z             {
2026-06-04T00:09:18.2538267Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:09:18.2538342Z               "line": 48
2026-06-04T00:09:18.2538417Z             }
2026-06-04T00:09:18.2538486Z           ]
2026-06-04T00:09:18.2538560Z         },
2026-06-04T00:09:18.2538634Z         "int": {
2026-06-04T00:09:18.2538715Z           "complete": false,
2026-06-04T00:09:18.2538795Z           "evidence": []
2026-06-04T00:09:18.2538863Z         },
2026-06-04T00:09:18.2538940Z         "unit": {
2026-06-04T00:09:18.2539018Z           "complete": true,
2026-06-04T00:09:18.2539100Z           "evidence": [
2026-06-04T00:09:18.2539172Z             {
2026-06-04T00:09:18.2539278Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2539362Z               "line": 146
2026-06-04T00:09:18.2539431Z             }
2026-06-04T00:09:18.2539507Z           ]
2026-06-04T00:09:18.2539576Z         }
2026-06-04T00:09:18.2539653Z       }
2026-06-04T00:09:18.2539725Z     },
2026-06-04T00:09:18.2539793Z     {
2026-06-04T00:09:18.2539905Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-04T00:09:18.2540369Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-04T00:09:18.2540461Z       "requiredStages": [
2026-06-04T00:09:18.2540531Z         "impl",
2026-06-04T00:09:18.2540608Z         "unit"
2026-06-04T00:09:18.2540683Z       ],
2026-06-04T00:09:18.2540974Z       "stages": {
2026-06-04T00:09:18.2541086Z         "doc": {
2026-06-04T00:09:18.2541208Z           "complete": true,
2026-06-04T00:09:18.2541304Z           "evidence": [
2026-06-04T00:09:18.2541374Z             {
2026-06-04T00:09:18.2541487Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T00:09:18.2541568Z               "line": 143
2026-06-04T00:09:18.2541640Z             }
2026-06-04T00:09:18.2541712Z           ]
2026-06-04T00:09:18.2541779Z         },
2026-06-04T00:09:18.2541856Z         "impl": {
2026-06-04T00:09:18.2541931Z           "complete": true,
2026-06-04T00:09:18.2542010Z           "evidence": [
2026-06-04T00:09:18.2542084Z             {
2026-06-04T00:09:18.2542198Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2542279Z               "line": 117
2026-06-04T00:09:18.2542349Z             },
2026-06-04T00:09:18.2542424Z             {
2026-06-04T00:09:18.2542529Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T00:09:18.2542610Z               "line": 15
2026-06-04T00:09:18.2542685Z             }
2026-06-04T00:09:18.2542754Z           ]
2026-06-04T00:09:18.2542826Z         },
2026-06-04T00:09:18.2542895Z         "int": {
2026-06-04T00:09:18.2542981Z           "complete": false,
2026-06-04T00:09:18.2543059Z           "evidence": []
2026-06-04T00:09:18.2543133Z         },
2026-06-04T00:09:18.2543209Z         "unit": {
2026-06-04T00:09:18.2543289Z           "complete": true,
2026-06-04T00:09:18.2543368Z           "evidence": [
2026-06-04T00:09:18.2543436Z             {
2026-06-04T00:09:18.2543553Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2543626Z               "line": 508
2026-06-04T00:09:18.2543704Z             },
2026-06-04T00:09:18.2543774Z             {
2026-06-04T00:09:18.2543877Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2543956Z               "line": 527
2026-06-04T00:09:18.2544023Z             },
2026-06-04T00:09:18.2544100Z             {
2026-06-04T00:09:18.2544203Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T00:09:18.2544276Z               "line": 74
2026-06-04T00:09:18.2544351Z             },
2026-06-04T00:09:18.2544419Z             {
2026-06-04T00:09:18.2544639Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T00:09:18.2544712Z               "line": 88
2026-06-04T00:09:18.2544788Z             },
2026-06-04T00:09:18.2544947Z             {
2026-06-04T00:09:18.2545044Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T00:09:18.2545123Z               "line": 104
2026-06-04T00:09:18.2545193Z             }
2026-06-04T00:09:18.2545268Z           ]
2026-06-04T00:09:18.2545338Z         }
2026-06-04T00:09:18.2545413Z       }
2026-06-04T00:09:18.2545486Z     },
2026-06-04T00:09:18.2545554Z     {
2026-06-04T00:09:18.2545663Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-04T00:09:18.2545840Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-04T00:09:18.2545927Z       "requiredStages": [
2026-06-04T00:09:18.2545998Z         "impl",
2026-06-04T00:09:18.2546075Z         "unit"
2026-06-04T00:09:18.2546150Z       ],
2026-06-04T00:09:18.2546225Z       "stages": {
2026-06-04T00:09:18.2546304Z         "doc": {
2026-06-04T00:09:18.2546387Z           "complete": false,
2026-06-04T00:09:18.2546466Z           "evidence": []
2026-06-04T00:09:18.2546538Z         },
2026-06-04T00:09:18.2546614Z         "impl": {
2026-06-04T00:09:18.2546695Z           "complete": true,
2026-06-04T00:09:18.2546769Z           "evidence": [
2026-06-04T00:09:18.2546843Z             {
2026-06-04T00:09:18.2546946Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T00:09:18.2547023Z               "line": 15
2026-06-04T00:09:18.2547092Z             },
2026-06-04T00:09:18.2547169Z             {
2026-06-04T00:09:18.2547312Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2547385Z               "line": 49
2026-06-04T00:09:18.2547459Z             },
2026-06-04T00:09:18.2547527Z             {
2026-06-04T00:09:18.2547633Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2547706Z               "line": 56
2026-06-04T00:09:18.2547778Z             },
2026-06-04T00:09:18.2547848Z             {
2026-06-04T00:09:18.2547952Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2548030Z               "line": 101
2026-06-04T00:09:18.2548101Z             },
2026-06-04T00:09:18.2548174Z             {
2026-06-04T00:09:18.2548274Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2548356Z               "line": 122
2026-06-04T00:09:18.2548428Z             }
2026-06-04T00:09:18.2548497Z           ]
2026-06-04T00:09:18.2548569Z         },
2026-06-04T00:09:18.2548638Z         "int": {
2026-06-04T00:09:18.2548720Z           "complete": false,
2026-06-04T00:09:18.2548795Z           "evidence": []
2026-06-04T00:09:18.2548868Z         },
2026-06-04T00:09:18.2548943Z         "unit": {
2026-06-04T00:09:18.2549020Z           "complete": true,
2026-06-04T00:09:18.2549101Z           "evidence": [
2026-06-04T00:09:18.2549170Z             {
2026-06-04T00:09:18.2549271Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T00:09:18.2549343Z               "line": 113
2026-06-04T00:09:18.2549422Z             },
2026-06-04T00:09:18.2549496Z             {
2026-06-04T00:09:18.2549588Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T00:09:18.2549672Z               "line": 119
2026-06-04T00:09:18.2549741Z             },
2026-06-04T00:09:18.2549818Z             {
2026-06-04T00:09:18.2549913Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T00:09:18.2549992Z               "line": 130
2026-06-04T00:09:18.2550064Z             },
2026-06-04T00:09:18.2550131Z             {
2026-06-04T00:09:18.2550237Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2550312Z               "line": 177
2026-06-04T00:09:18.2550387Z             },
2026-06-04T00:09:18.2550454Z             {
2026-06-04T00:09:18.2550560Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2550636Z               "line": 187
2026-06-04T00:09:18.2550705Z             },
2026-06-04T00:09:18.2550962Z             {
2026-06-04T00:09:18.2551168Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2551247Z               "line": 231
2026-06-04T00:09:18.2551399Z             },
2026-06-04T00:09:18.2551481Z             {
2026-06-04T00:09:18.2551588Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2551660Z               "line": 243
2026-06-04T00:09:18.2551734Z             },
2026-06-04T00:09:18.2551801Z             {
2026-06-04T00:09:18.2551906Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2551982Z               "line": 251
2026-06-04T00:09:18.2552050Z             }
2026-06-04T00:09:18.2552123Z           ]
2026-06-04T00:09:18.2552193Z         }
2026-06-04T00:09:18.2552270Z       }
2026-06-04T00:09:18.2552339Z     },
2026-06-04T00:09:18.2552416Z     {
2026-06-04T00:09:18.2552517Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-04T00:09:18.2552780Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-04T00:09:18.2552865Z       "requiredStages": [
2026-06-04T00:09:18.2552936Z         "impl",
2026-06-04T00:09:18.2553013Z         "unit",
2026-06-04T00:09:18.2553083Z         "int"
2026-06-04T00:09:18.2553158Z       ],
2026-06-04T00:09:18.2553236Z       "stages": {
2026-06-04T00:09:18.2553308Z         "doc": {
2026-06-04T00:09:18.2553393Z           "complete": false,
2026-06-04T00:09:18.2553467Z           "evidence": []
2026-06-04T00:09:18.2553542Z         },
2026-06-04T00:09:18.2553614Z         "impl": {
2026-06-04T00:09:18.2553697Z           "complete": true,
2026-06-04T00:09:18.2553777Z           "evidence": [
2026-06-04T00:09:18.2553845Z             {
2026-06-04T00:09:18.2553952Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:09:18.2554025Z               "line": 197
2026-06-04T00:09:18.2554100Z             },
2026-06-04T00:09:18.2554168Z             {
2026-06-04T00:09:18.2554272Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:09:18.2554346Z               "line": 380
2026-06-04T00:09:18.2554418Z             },
2026-06-04T00:09:18.2554489Z             {
2026-06-04T00:09:18.2554595Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T00:09:18.2554672Z               "line": 392
2026-06-04T00:09:18.2554741Z             },
2026-06-04T00:09:18.2554814Z             {
2026-06-04T00:09:18.2554918Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T00:09:18.2554992Z               "line": 473
2026-06-04T00:09:18.2555064Z             },
2026-06-04T00:09:18.2555133Z             {
2026-06-04T00:09:18.2555238Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T00:09:18.2555310Z               "line": 46
2026-06-04T00:09:18.2555384Z             },
2026-06-04T00:09:18.2555457Z             {
2026-06-04T00:09:18.2555555Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T00:09:18.2555640Z               "line": 156
2026-06-04T00:09:18.2555707Z             }
2026-06-04T00:09:18.2555781Z           ]
2026-06-04T00:09:18.2555847Z         },
2026-06-04T00:09:18.2555926Z         "int": {
2026-06-04T00:09:18.2556008Z           "complete": true,
2026-06-04T00:09:18.2556086Z           "evidence": [
2026-06-04T00:09:18.2556158Z             {
2026-06-04T00:09:18.2556296Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-04T00:09:18.2556375Z               "line": 27
2026-06-04T00:09:18.2556445Z             },
2026-06-04T00:09:18.2556520Z             {
2026-06-04T00:09:18.2556642Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T00:09:18.2556717Z               "line": 125
2026-06-04T00:09:18.2556789Z             }
2026-06-04T00:09:18.2556855Z           ]
2026-06-04T00:09:18.2556926Z         },
2026-06-04T00:09:18.2556998Z         "unit": {
2026-06-04T00:09:18.2557081Z           "complete": true,
2026-06-04T00:09:18.2557159Z           "evidence": [
2026-06-04T00:09:18.2557225Z             {
2026-06-04T00:09:18.2557333Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T00:09:18.2557489Z               "line": 278
2026-06-04T00:09:18.2557567Z             },
2026-06-04T00:09:18.2557634Z             {
2026-06-04T00:09:18.2557808Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T00:09:18.2557886Z               "line": 296
2026-06-04T00:09:18.2557953Z             },
2026-06-04T00:09:18.2558024Z             {
2026-06-04T00:09:18.2558122Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T00:09:18.2558202Z               "line": 314
2026-06-04T00:09:18.2558270Z             }
2026-06-04T00:09:18.2558344Z           ]
2026-06-04T00:09:18.2558416Z         }
2026-06-04T00:09:18.2558483Z       }
2026-06-04T00:09:18.2558556Z     },
2026-06-04T00:09:18.2558622Z     {
2026-06-04T00:09:18.2558730Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-04T00:09:18.2558907Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-04T00:09:18.2558991Z       "requiredStages": [
2026-06-04T00:09:18.2559067Z         "impl",
2026-06-04T00:09:18.2559138Z         "unit"
2026-06-04T00:09:18.2559212Z       ],
2026-06-04T00:09:18.2559282Z       "stages": {
2026-06-04T00:09:18.2559361Z         "doc": {
2026-06-04T00:09:18.2559440Z           "complete": false,
2026-06-04T00:09:18.2559524Z           "evidence": []
2026-06-04T00:09:18.2559596Z         },
2026-06-04T00:09:18.2559665Z         "impl": {
2026-06-04T00:09:18.2559748Z           "complete": true,
2026-06-04T00:09:18.2559822Z           "evidence": [
2026-06-04T00:09:18.2559897Z             {
2026-06-04T00:09:18.2559999Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2560078Z               "line": 33
2026-06-04T00:09:18.2560153Z             },
2026-06-04T00:09:18.2560220Z             {
2026-06-04T00:09:18.2560321Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2560393Z               "line": 61
2026-06-04T00:09:18.2560469Z             },
2026-06-04T00:09:18.2560537Z             {
2026-06-04T00:09:18.2560638Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2560718Z               "line": 70
2026-06-04T00:09:18.2560884Z             },
2026-06-04T00:09:18.2560960Z             {
2026-06-04T00:09:18.2561056Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2561137Z               "line": 79
2026-06-04T00:09:18.2561206Z             },
2026-06-04T00:09:18.2561279Z             {
2026-06-04T00:09:18.2561378Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2561450Z               "line": 88
2026-06-04T00:09:18.2561523Z             },
2026-06-04T00:09:18.2561589Z             {
2026-06-04T00:09:18.2561691Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2561765Z               "line": 96
2026-06-04T00:09:18.2561835Z             },
2026-06-04T00:09:18.2561908Z             {
2026-06-04T00:09:18.2562003Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2562081Z               "line": 105
2026-06-04T00:09:18.2562150Z             },
2026-06-04T00:09:18.2562224Z             {
2026-06-04T00:09:18.2562324Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2562399Z               "line": 112
2026-06-04T00:09:18.2562473Z             },
2026-06-04T00:09:18.2562541Z             {
2026-06-04T00:09:18.2562641Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2562713Z               "line": 119
2026-06-04T00:09:18.2562788Z             },
2026-06-04T00:09:18.2562860Z             {
2026-06-04T00:09:18.2562954Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2563033Z               "line": 186
2026-06-04T00:09:18.2563101Z             },
2026-06-04T00:09:18.2563176Z             {
2026-06-04T00:09:18.2563274Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2563353Z               "line": 198
2026-06-04T00:09:18.2563425Z             },
2026-06-04T00:09:18.2563496Z             {
2026-06-04T00:09:18.2563598Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2563781Z               "line": 285
2026-06-04T00:09:18.2563858Z             }
2026-06-04T00:09:18.2564013Z           ]
2026-06-04T00:09:18.2564085Z         },
2026-06-04T00:09:18.2564161Z         "int": {
2026-06-04T00:09:18.2564242Z           "complete": false,
2026-06-04T00:09:18.2564321Z           "evidence": []
2026-06-04T00:09:18.2564389Z         },
2026-06-04T00:09:18.2564463Z         "unit": {
2026-06-04T00:09:18.2564539Z           "complete": true,
2026-06-04T00:09:18.2564619Z           "evidence": [
2026-06-04T00:09:18.2564695Z             {
2026-06-04T00:09:18.2564795Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2564874Z               "line": 355
2026-06-04T00:09:18.2564942Z             },
2026-06-04T00:09:18.2565018Z             {
2026-06-04T00:09:18.2565114Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2565194Z               "line": 381
2026-06-04T00:09:18.2565268Z             },
2026-06-04T00:09:18.2565336Z             {
2026-06-04T00:09:18.2565437Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2565511Z               "line": 394
2026-06-04T00:09:18.2565584Z             },
2026-06-04T00:09:18.2565652Z             {
2026-06-04T00:09:18.2565753Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2565830Z               "line": 436
2026-06-04T00:09:18.2565897Z             }
2026-06-04T00:09:18.2565971Z           ]
2026-06-04T00:09:18.2566038Z         }
2026-06-04T00:09:18.2566111Z       }
2026-06-04T00:09:18.2566178Z     },
2026-06-04T00:09:18.2566252Z     {
2026-06-04T00:09:18.2566354Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-04T00:09:18.2566533Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-04T00:09:18.2566617Z       "requiredStages": [
2026-06-04T00:09:18.2566687Z         "impl",
2026-06-04T00:09:18.2566762Z         "unit"
2026-06-04T00:09:18.2566830Z       ],
2026-06-04T00:09:18.2566908Z       "stages": {
2026-06-04T00:09:18.2566984Z         "doc": {
2026-06-04T00:09:18.2567060Z           "complete": false,
2026-06-04T00:09:18.2567142Z           "evidence": []
2026-06-04T00:09:18.2567210Z         },
2026-06-04T00:09:18.2567287Z         "impl": {
2026-06-04T00:09:18.2567362Z           "complete": true,
2026-06-04T00:09:18.2567440Z           "evidence": [
2026-06-04T00:09:18.2567513Z             {
2026-06-04T00:09:18.2567611Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:09:18.2567687Z               "line": 107
2026-06-04T00:09:18.2567755Z             },
2026-06-04T00:09:18.2567828Z             {
2026-06-04T00:09:18.2567931Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2568009Z               "line": 59
2026-06-04T00:09:18.2568085Z             }
2026-06-04T00:09:18.2568152Z           ]
2026-06-04T00:09:18.2568226Z         },
2026-06-04T00:09:18.2568297Z         "int": {
2026-06-04T00:09:18.2568378Z           "complete": false,
2026-06-04T00:09:18.2568452Z           "evidence": []
2026-06-04T00:09:18.2568527Z         },
2026-06-04T00:09:18.2568603Z         "unit": {
2026-06-04T00:09:18.2568682Z           "complete": true,
2026-06-04T00:09:18.2568760Z           "evidence": [
2026-06-04T00:09:18.2568829Z             {
2026-06-04T00:09:18.2568931Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:09:18.2569005Z               "line": 225
2026-06-04T00:09:18.2569083Z             },
2026-06-04T00:09:18.2569160Z             {
2026-06-04T00:09:18.2569261Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2569341Z               "line": 237
2026-06-04T00:09:18.2569409Z             },
2026-06-04T00:09:18.2569484Z             {
2026-06-04T00:09:18.2569583Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2569660Z               "line": 247
2026-06-04T00:09:18.2569731Z             }
2026-06-04T00:09:18.2569798Z           ]
2026-06-04T00:09:18.2569871Z         }
2026-06-04T00:09:18.2569939Z       }
2026-06-04T00:09:18.2570011Z     },
2026-06-04T00:09:18.2570157Z     {
2026-06-04T00:09:18.2570261Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-04T00:09:18.2570452Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-04T00:09:18.2570531Z       "requiredStages": [],
2026-06-04T00:09:18.2570617Z       "stages": {
2026-06-04T00:09:18.2570687Z         "doc": {
2026-06-04T00:09:18.2570857Z           "complete": false,
2026-06-04T00:09:18.2570933Z           "evidence": []
2026-06-04T00:09:18.2571006Z         },
2026-06-04T00:09:18.2571085Z         "impl": {
2026-06-04T00:09:18.2571163Z           "complete": false,
2026-06-04T00:09:18.2571243Z           "evidence": []
2026-06-04T00:09:18.2571310Z         },
2026-06-04T00:09:18.2571386Z         "int": {
2026-06-04T00:09:18.2571459Z           "complete": false,
2026-06-04T00:09:18.2571539Z           "evidence": []
2026-06-04T00:09:18.2571612Z         },
2026-06-04T00:09:18.2571681Z         "unit": {
2026-06-04T00:09:18.2571762Z           "complete": false,
2026-06-04T00:09:18.2571840Z           "evidence": []
2026-06-04T00:09:18.2571914Z         }
2026-06-04T00:09:18.2571980Z       }
2026-06-04T00:09:18.2572059Z     },
2026-06-04T00:09:18.2572134Z     {
2026-06-04T00:09:18.2572242Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-04T00:09:18.2572394Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-04T00:09:18.2572476Z       "requiredStages": [
2026-06-04T00:09:18.2572555Z         "impl",
2026-06-04T00:09:18.2572624Z         "unit"
2026-06-04T00:09:18.2572699Z       ],
2026-06-04T00:09:18.2572778Z       "stages": {
2026-06-04T00:09:18.2572850Z         "doc": {
2026-06-04T00:09:18.2572934Z           "complete": false,
2026-06-04T00:09:18.2573009Z           "evidence": []
2026-06-04T00:09:18.2573083Z         },
2026-06-04T00:09:18.2573152Z         "impl": {
2026-06-04T00:09:18.2573236Z           "complete": true,
2026-06-04T00:09:18.2573317Z           "evidence": [
2026-06-04T00:09:18.2573385Z             {
2026-06-04T00:09:18.2573507Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2573583Z               "line": 347
2026-06-04T00:09:18.2573659Z             },
2026-06-04T00:09:18.2573726Z             {
2026-06-04T00:09:18.2573834Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:09:18.2573911Z               "line": 28
2026-06-04T00:09:18.2573980Z             }
2026-06-04T00:09:18.2574053Z           ]
2026-06-04T00:09:18.2574122Z         },
2026-06-04T00:09:18.2574196Z         "int": {
2026-06-04T00:09:18.2574273Z           "complete": false,
2026-06-04T00:09:18.2574354Z           "evidence": []
2026-06-04T00:09:18.2574427Z         },
2026-06-04T00:09:18.2574498Z         "unit": {
2026-06-04T00:09:18.2574580Z           "complete": true,
2026-06-04T00:09:18.2574655Z           "evidence": [
2026-06-04T00:09:18.2574730Z             {
2026-06-04T00:09:18.2574830Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:09:18.2574912Z               "line": 199
2026-06-04T00:09:18.2574992Z             }
2026-06-04T00:09:18.2575063Z           ]
2026-06-04T00:09:18.2575138Z         }
2026-06-04T00:09:18.2575209Z       }
2026-06-04T00:09:18.2575287Z     },
2026-06-04T00:09:18.2575354Z     {
2026-06-04T00:09:18.2575454Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-04T00:09:18.2575578Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-04T00:09:18.2575657Z       "requiredStages": [],
2026-06-04T00:09:18.2575733Z       "stages": {
2026-06-04T00:09:18.2575802Z         "doc": {
2026-06-04T00:09:18.2575884Z           "complete": false,
2026-06-04T00:09:18.2575958Z           "evidence": []
2026-06-04T00:09:18.2576033Z         },
2026-06-04T00:09:18.2576108Z         "impl": {
2026-06-04T00:09:18.2576183Z           "complete": false,
2026-06-04T00:09:18.2576262Z           "evidence": []
2026-06-04T00:09:18.2576330Z         },
2026-06-04T00:09:18.2576407Z         "int": {
2026-06-04T00:09:18.2576483Z           "complete": false,
2026-06-04T00:09:18.2576565Z           "evidence": []
2026-06-04T00:09:18.2576752Z         },
2026-06-04T00:09:18.2576826Z         "unit": {
2026-06-04T00:09:18.2577028Z           "complete": false,
2026-06-04T00:09:18.2577102Z           "evidence": []
2026-06-04T00:09:18.2577174Z         }
2026-06-04T00:09:18.2577243Z       }
2026-06-04T00:09:18.2577315Z     },
2026-06-04T00:09:18.2577387Z     {
2026-06-04T00:09:18.2577493Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-04T00:09:18.2577639Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-04T00:09:18.2577718Z       "requiredStages": [
2026-06-04T00:09:18.2577795Z         "impl",
2026-06-04T00:09:18.2577867Z         "unit"
2026-06-04T00:09:18.2577942Z       ],
2026-06-04T00:09:18.2578021Z       "stages": {
2026-06-04T00:09:18.2578090Z         "doc": {
2026-06-04T00:09:18.2578172Z           "complete": false,
2026-06-04T00:09:18.2578244Z           "evidence": []
2026-06-04T00:09:18.2578317Z         },
2026-06-04T00:09:18.2578387Z         "impl": {
2026-06-04T00:09:18.2584984Z           "complete": true,
2026-06-04T00:09:18.2585091Z           "evidence": [
2026-06-04T00:09:18.2585171Z             {
2026-06-04T00:09:18.2585308Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:09:18.2585388Z               "line": 325
2026-06-04T00:09:18.2585466Z             },
2026-06-04T00:09:18.2585536Z             {
2026-06-04T00:09:18.2585658Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:09:18.2585733Z               "line": 361
2026-06-04T00:09:18.2585807Z             }
2026-06-04T00:09:18.2585881Z           ]
2026-06-04T00:09:18.2585951Z         },
2026-06-04T00:09:18.2586028Z         "int": {
2026-06-04T00:09:18.2586113Z           "complete": false,
2026-06-04T00:09:18.2586195Z           "evidence": []
2026-06-04T00:09:18.2586263Z         },
2026-06-04T00:09:18.2586339Z         "unit": {
2026-06-04T00:09:18.2586421Z           "complete": true,
2026-06-04T00:09:18.2586495Z           "evidence": [
2026-06-04T00:09:18.2586568Z             {
2026-06-04T00:09:18.2586683Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:09:18.2586766Z               "line": 453
2026-06-04T00:09:18.2586836Z             }
2026-06-04T00:09:18.2586911Z           ]
2026-06-04T00:09:18.2586983Z         }
2026-06-04T00:09:18.2587050Z       }
2026-06-04T00:09:18.2587124Z     },
2026-06-04T00:09:18.2587192Z     {
2026-06-04T00:09:18.2587299Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-04T00:09:18.2587451Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-04T00:09:18.2587539Z       "requiredStages": [
2026-06-04T00:09:18.2587617Z         "impl",
2026-06-04T00:09:18.2587686Z         "unit"
2026-06-04T00:09:18.2587762Z       ],
2026-06-04T00:09:18.2587835Z       "stages": {
2026-06-04T00:09:18.2587911Z         "doc": {
2026-06-04T00:09:18.2587988Z           "complete": false,
2026-06-04T00:09:18.2588070Z           "evidence": []
2026-06-04T00:09:18.2588145Z         },
2026-06-04T00:09:18.2588219Z         "impl": {
2026-06-04T00:09:18.2588307Z           "complete": true,
2026-06-04T00:09:18.2588383Z           "evidence": [
2026-06-04T00:09:18.2588462Z             {
2026-06-04T00:09:18.2588572Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:09:18.2588655Z               "line": 35
2026-06-04T00:09:18.2588730Z             }
2026-06-04T00:09:18.2588801Z           ]
2026-06-04T00:09:18.2588876Z         },
2026-06-04T00:09:18.2588948Z         "int": {
2026-06-04T00:09:18.2589033Z           "complete": false,
2026-06-04T00:09:18.2589106Z           "evidence": []
2026-06-04T00:09:18.2589182Z         },
2026-06-04T00:09:18.2589262Z         "unit": {
2026-06-04T00:09:18.2589337Z           "complete": true,
2026-06-04T00:09:18.2589418Z           "evidence": [
2026-06-04T00:09:18.2589487Z             {
2026-06-04T00:09:18.2589592Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:09:18.2589667Z               "line": 217
2026-06-04T00:09:18.2589742Z             }
2026-06-04T00:09:18.2589815Z           ]
2026-06-04T00:09:18.2590031Z         }
2026-06-04T00:09:18.2590109Z       }
2026-06-04T00:09:18.2590179Z     },
2026-06-04T00:09:18.2590339Z     {
2026-06-04T00:09:18.2590437Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-04T00:09:18.2590695Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-04T00:09:18.2590908Z       "requiredStages": [
2026-06-04T00:09:18.2590981Z         "impl",
2026-06-04T00:09:18.2591055Z         "unit"
2026-06-04T00:09:18.2591123Z       ],
2026-06-04T00:09:18.2591200Z       "stages": {
2026-06-04T00:09:18.2591268Z         "doc": {
2026-06-04T00:09:18.2591353Z           "complete": false,
2026-06-04T00:09:18.2591432Z           "evidence": []
2026-06-04T00:09:18.2591500Z         },
2026-06-04T00:09:18.2591575Z         "impl": {
2026-06-04T00:09:18.2591651Z           "complete": true,
2026-06-04T00:09:18.2591733Z           "evidence": [
2026-06-04T00:09:18.2591800Z             {
2026-06-04T00:09:18.2591924Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2592001Z               "line": 159
2026-06-04T00:09:18.2592074Z             },
2026-06-04T00:09:18.2592149Z             {
2026-06-04T00:09:18.2592254Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:09:18.2592334Z               "line": 150
2026-06-04T00:09:18.2592402Z             }
2026-06-04T00:09:18.2592480Z           ]
2026-06-04T00:09:18.2592556Z         },
2026-06-04T00:09:18.2592625Z         "int": {
2026-06-04T00:09:18.2592707Z           "complete": false,
2026-06-04T00:09:18.2592783Z           "evidence": []
2026-06-04T00:09:18.2592858Z         },
2026-06-04T00:09:18.2592929Z         "unit": {
2026-06-04T00:09:18.2593013Z           "complete": true,
2026-06-04T00:09:18.2593091Z           "evidence": [
2026-06-04T00:09:18.2593160Z             {
2026-06-04T00:09:18.2593269Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2593342Z               "line": 382
2026-06-04T00:09:18.2593417Z             },
2026-06-04T00:09:18.2593488Z             {
2026-06-04T00:09:18.2593598Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2593676Z               "line": 393
2026-06-04T00:09:18.2593744Z             },
2026-06-04T00:09:18.2593818Z             {
2026-06-04T00:09:18.2593916Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2593996Z               "line": 409
2026-06-04T00:09:18.2594071Z             },
2026-06-04T00:09:18.2594139Z             {
2026-06-04T00:09:18.2594256Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2594331Z               "line": 423
2026-06-04T00:09:18.2594403Z             }
2026-06-04T00:09:18.2594472Z           ]
2026-06-04T00:09:18.2594548Z         }
2026-06-04T00:09:18.2594619Z       }
2026-06-04T00:09:18.2594696Z     },
2026-06-04T00:09:18.2594769Z     {
2026-06-04T00:09:18.2594874Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-04T00:09:18.2595032Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-04T00:09:18.2595110Z       "requiredStages": [
2026-06-04T00:09:18.2595191Z         "impl",
2026-06-04T00:09:18.2595266Z         "unit"
2026-06-04T00:09:18.2595335Z       ],
2026-06-04T00:09:18.2595411Z       "stages": {
2026-06-04T00:09:18.2595480Z         "doc": {
2026-06-04T00:09:18.2595565Z           "complete": false,
2026-06-04T00:09:18.2595643Z           "evidence": []
2026-06-04T00:09:18.2595718Z         },
2026-06-04T00:09:18.2595791Z         "impl": {
2026-06-04T00:09:18.2595876Z           "complete": true,
2026-06-04T00:09:18.2595956Z           "evidence": [
2026-06-04T00:09:18.2596025Z             {
2026-06-04T00:09:18.2596133Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2596207Z               "line": 92
2026-06-04T00:09:18.2596283Z             },
2026-06-04T00:09:18.2596354Z             {
2026-06-04T00:09:18.2596454Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2596531Z               "line": 96
2026-06-04T00:09:18.2596702Z             }
2026-06-04T00:09:18.2596779Z           ]
2026-06-04T00:09:18.2596931Z         },
2026-06-04T00:09:18.2597007Z         "int": {
2026-06-04T00:09:18.2597086Z           "complete": false,
2026-06-04T00:09:18.2597167Z           "evidence": []
2026-06-04T00:09:18.2597239Z         },
2026-06-04T00:09:18.2597309Z         "unit": {
2026-06-04T00:09:18.2597391Z           "complete": true,
2026-06-04T00:09:18.2597467Z           "evidence": [
2026-06-04T00:09:18.2597539Z             {
2026-06-04T00:09:18.2597641Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2597722Z               "line": 235
2026-06-04T00:09:18.2597796Z             },
2026-06-04T00:09:18.2597864Z             {
2026-06-04T00:09:18.2597976Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T00:09:18.2598049Z               "line": 139
2026-06-04T00:09:18.2598127Z             },
2026-06-04T00:09:18.2598201Z             {
2026-06-04T00:09:18.2598303Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2598380Z               "line": 375
2026-06-04T00:09:18.2598452Z             },
2026-06-04T00:09:18.2598525Z             {
2026-06-04T00:09:18.2598627Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2598709Z               "line": 405
2026-06-04T00:09:18.2598785Z             }
2026-06-04T00:09:18.2598853Z           ]
2026-06-04T00:09:18.2598929Z         }
2026-06-04T00:09:18.2599001Z       }
2026-06-04T00:09:18.2599074Z     },
2026-06-04T00:09:18.2599144Z     {
2026-06-04T00:09:18.2599244Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-04T00:09:18.2599419Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-04T00:09:18.2599501Z       "requiredStages": [
2026-06-04T00:09:18.2599580Z         "impl",
2026-06-04T00:09:18.2599649Z         "unit"
2026-06-04T00:09:18.2599721Z       ],
2026-06-04T00:09:18.2599794Z       "stages": {
2026-06-04T00:09:18.2599872Z         "doc": {
2026-06-04T00:09:18.2599959Z           "complete": false,
2026-06-04T00:09:18.2600036Z           "evidence": []
2026-06-04T00:09:18.2600114Z         },
2026-06-04T00:09:18.2600185Z         "impl": {
2026-06-04T00:09:18.2600268Z           "complete": true,
2026-06-04T00:09:18.2600343Z           "evidence": [
2026-06-04T00:09:18.2600420Z             {
2026-06-04T00:09:18.2600525Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2600600Z               "line": 142
2026-06-04T00:09:18.2600673Z             },
2026-06-04T00:09:18.2600832Z             {
2026-06-04T00:09:18.2600939Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2601014Z               "line": 187
2026-06-04T00:09:18.2601091Z             },
2026-06-04T00:09:18.2601165Z             {
2026-06-04T00:09:18.2601262Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2601340Z               "line": 199
2026-06-04T00:09:18.2601410Z             }
2026-06-04T00:09:18.2601487Z           ]
2026-06-04T00:09:18.2601559Z         },
2026-06-04T00:09:18.2601638Z         "int": {
2026-06-04T00:09:18.2601720Z           "complete": false,
2026-06-04T00:09:18.2601800Z           "evidence": []
2026-06-04T00:09:18.2601874Z         },
2026-06-04T00:09:18.2601946Z         "unit": {
2026-06-04T00:09:18.2602030Z           "complete": true,
2026-06-04T00:09:18.2602106Z           "evidence": [
2026-06-04T00:09:18.2602182Z             {
2026-06-04T00:09:18.2602282Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2602356Z               "line": 335
2026-06-04T00:09:18.2602431Z             },
2026-06-04T00:09:18.2602499Z             {
2026-06-04T00:09:18.2602602Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2602675Z               "line": 364
2026-06-04T00:09:18.2602752Z             }
2026-06-04T00:09:18.2602825Z           ]
2026-06-04T00:09:18.2602893Z         }
2026-06-04T00:09:18.2602968Z       }
2026-06-04T00:09:18.2603038Z     },
2026-06-04T00:09:18.2603114Z     {
2026-06-04T00:09:18.2603300Z       "id": "REQ-INFRA-1",
2026-06-04T00:09:18.2603469Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-04T00:09:18.2603639Z       "requiredStages": [],
2026-06-04T00:09:18.2603712Z       "stages": {
2026-06-04T00:09:18.2603791Z         "doc": {
2026-06-04T00:09:18.2603871Z           "complete": false,
2026-06-04T00:09:18.2603949Z           "evidence": []
2026-06-04T00:09:18.2604020Z         },
2026-06-04T00:09:18.2604095Z         "impl": {
2026-06-04T00:09:18.2604175Z           "complete": false,
2026-06-04T00:09:18.2604249Z           "evidence": []
2026-06-04T00:09:18.2604322Z         },
2026-06-04T00:09:18.2604392Z         "int": {
2026-06-04T00:09:18.2604476Z           "complete": false,
2026-06-04T00:09:18.2604551Z           "evidence": []
2026-06-04T00:09:18.2604625Z         },
2026-06-04T00:09:18.2604700Z         "unit": {
2026-06-04T00:09:18.2604776Z           "complete": false,
2026-06-04T00:09:18.2604857Z           "evidence": []
2026-06-04T00:09:18.2604929Z         }
2026-06-04T00:09:18.2605006Z       }
2026-06-04T00:09:18.2605074Z     },
2026-06-04T00:09:18.2605152Z     {
2026-06-04T00:09:18.2605234Z       "id": "REQ-INST-1",
2026-06-04T00:09:18.2605382Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-04T00:09:18.2605469Z       "requiredStages": [],
2026-06-04T00:09:18.2605540Z       "stages": {
2026-06-04T00:09:18.2605615Z         "doc": {
2026-06-04T00:09:18.2605691Z           "complete": false,
2026-06-04T00:09:18.2605772Z           "evidence": []
2026-06-04T00:09:18.2605846Z         },
2026-06-04T00:09:18.2605916Z         "impl": {
2026-06-04T00:09:18.2605998Z           "complete": false,
2026-06-04T00:09:18.2606071Z           "evidence": []
2026-06-04T00:09:18.2606145Z         },
2026-06-04T00:09:18.2606214Z         "int": {
2026-06-04T00:09:18.2606300Z           "complete": false,
2026-06-04T00:09:18.2606381Z           "evidence": []
2026-06-04T00:09:18.2606450Z         },
2026-06-04T00:09:18.2606526Z         "unit": {
2026-06-04T00:09:18.2606604Z           "complete": false,
2026-06-04T00:09:18.2606683Z           "evidence": []
2026-06-04T00:09:18.2606753Z         }
2026-06-04T00:09:18.2606829Z       }
2026-06-04T00:09:18.2606904Z     },
2026-06-04T00:09:18.2606972Z     {
2026-06-04T00:09:18.2607058Z       "id": "REQ-INST-10",
2026-06-04T00:09:18.2607253Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-04T00:09:18.2607339Z       "requiredStages": [
2026-06-04T00:09:18.2607410Z         "impl",
2026-06-04T00:09:18.2607487Z         "unit"
2026-06-04T00:09:18.2607563Z       ],
2026-06-04T00:09:18.2607635Z       "stages": {
2026-06-04T00:09:18.2607712Z         "doc": {
2026-06-04T00:09:18.2607791Z           "complete": false,
2026-06-04T00:09:18.2607869Z           "evidence": []
2026-06-04T00:09:18.2607937Z         },
2026-06-04T00:09:18.2608013Z         "impl": {
2026-06-04T00:09:18.2608098Z           "complete": true,
2026-06-04T00:09:18.2608173Z           "evidence": [
2026-06-04T00:09:18.2608248Z             {
2026-06-04T00:09:18.2608363Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2608449Z               "line": 351
2026-06-04T00:09:18.2608521Z             },
2026-06-04T00:09:18.2608595Z             {
2026-06-04T00:09:18.2608702Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2608777Z               "line": 406
2026-06-04T00:09:18.2608854Z             },
2026-06-04T00:09:18.2608922Z             {
2026-06-04T00:09:18.2609030Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T00:09:18.2609104Z               "line": 13
2026-06-04T00:09:18.2609178Z             },
2026-06-04T00:09:18.2609251Z             {
2026-06-04T00:09:18.2609346Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T00:09:18.2609423Z               "line": 67
2026-06-04T00:09:18.2609491Z             }
2026-06-04T00:09:18.2609570Z           ]
2026-06-04T00:09:18.2609638Z         },
2026-06-04T00:09:18.2609828Z         "int": {
2026-06-04T00:09:18.2609914Z           "complete": false,
2026-06-04T00:09:18.2609987Z           "evidence": []
2026-06-04T00:09:18.2610128Z         },
2026-06-04T00:09:18.2610200Z         "unit": {
2026-06-04T00:09:18.2610283Z           "complete": true,
2026-06-04T00:09:18.2610354Z           "evidence": [
2026-06-04T00:09:18.2610431Z             {
2026-06-04T00:09:18.2610541Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2610615Z               "line": 550
2026-06-04T00:09:18.2610691Z             },
2026-06-04T00:09:18.2610843Z             {
2026-06-04T00:09:18.2610952Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2611024Z               "line": 559
2026-06-04T00:09:18.2611098Z             },
2026-06-04T00:09:18.2611171Z             {
2026-06-04T00:09:18.2611273Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2611352Z               "line": 567
2026-06-04T00:09:18.2611421Z             },
2026-06-04T00:09:18.2611501Z             {
2026-06-04T00:09:18.2611603Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2611684Z               "line": 580
2026-06-04T00:09:18.2611759Z             },
2026-06-04T00:09:18.2611829Z             {
2026-06-04T00:09:18.2611938Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2612011Z               "line": 593
2026-06-04T00:09:18.2612085Z             },
2026-06-04T00:09:18.2612155Z             {
2026-06-04T00:09:18.2612261Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2612337Z               "line": 609
2026-06-04T00:09:18.2612412Z             },
2026-06-04T00:09:18.2612489Z             {
2026-06-04T00:09:18.2612588Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2612666Z               "line": 838
2026-06-04T00:09:18.2612739Z             },
2026-06-04T00:09:18.2612809Z             {
2026-06-04T00:09:18.2612915Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T00:09:18.2612985Z               "line": 121
2026-06-04T00:09:18.2613058Z             },
2026-06-04T00:09:18.2613129Z             {
2026-06-04T00:09:18.2613229Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T00:09:18.2613305Z               "line": 142
2026-06-04T00:09:18.2613375Z             },
2026-06-04T00:09:18.2613448Z             {
2026-06-04T00:09:18.2613540Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T00:09:18.2613616Z               "line": 150
2026-06-04T00:09:18.2613682Z             },
2026-06-04T00:09:18.2613757Z             {
2026-06-04T00:09:18.2613855Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T00:09:18.2613928Z               "line": 158
2026-06-04T00:09:18.2614000Z             }
2026-06-04T00:09:18.2614067Z           ]
2026-06-04T00:09:18.2614142Z         }
2026-06-04T00:09:18.2614210Z       }
2026-06-04T00:09:18.2614283Z     },
2026-06-04T00:09:18.2614357Z     {
2026-06-04T00:09:18.2614435Z       "id": "REQ-INST-11",
2026-06-04T00:09:18.2614653Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-04T00:09:18.2614735Z       "requiredStages": [
2026-06-04T00:09:18.2614812Z         "impl",
2026-06-04T00:09:18.2614884Z         "unit"
2026-06-04T00:09:18.2614957Z       ],
2026-06-04T00:09:18.2615035Z       "stages": {
2026-06-04T00:09:18.2615103Z         "doc": {
2026-06-04T00:09:18.2615188Z           "complete": false,
2026-06-04T00:09:18.2615264Z           "evidence": []
2026-06-04T00:09:18.2615337Z         },
2026-06-04T00:09:18.2615410Z         "impl": {
2026-06-04T00:09:18.2615491Z           "complete": true,
2026-06-04T00:09:18.2615569Z           "evidence": [
2026-06-04T00:09:18.2615639Z             {
2026-06-04T00:09:18.2615754Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2615826Z               "line": 253
2026-06-04T00:09:18.2615903Z             },
2026-06-04T00:09:18.2615970Z             {
2026-06-04T00:09:18.2616183Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T00:09:18.2616263Z               "line": 59
2026-06-04T00:09:18.2616416Z             },
2026-06-04T00:09:18.2616488Z             {
2026-06-04T00:09:18.2616586Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2616666Z               "line": 586
2026-06-04T00:09:18.2616733Z             }
2026-06-04T00:09:18.2616807Z           ]
2026-06-04T00:09:18.2616879Z         },
2026-06-04T00:09:18.2616948Z         "int": {
2026-06-04T00:09:18.2617033Z           "complete": false,
2026-06-04T00:09:18.2617108Z           "evidence": []
2026-06-04T00:09:18.2617182Z         },
2026-06-04T00:09:18.2617251Z         "unit": {
2026-06-04T00:09:18.2617332Z           "complete": true,
2026-06-04T00:09:18.2617410Z           "evidence": [
2026-06-04T00:09:18.2617477Z             {
2026-06-04T00:09:18.2617589Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2617664Z               "line": 702
2026-06-04T00:09:18.2617740Z             },
2026-06-04T00:09:18.2617810Z             {
2026-06-04T00:09:18.2617916Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2617996Z               "line": 725
2026-06-04T00:09:18.2618064Z             },
2026-06-04T00:09:18.2618136Z             {
2026-06-04T00:09:18.2618236Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T00:09:18.2618316Z               "line": 152
2026-06-04T00:09:18.2618399Z             },
2026-06-04T00:09:18.2618474Z             {
2026-06-04T00:09:18.2618575Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T00:09:18.2618649Z               "line": 173
2026-06-04T00:09:18.2618721Z             },
2026-06-04T00:09:18.2618789Z             {
2026-06-04T00:09:18.2618890Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T00:09:18.2618965Z               "line": 205
2026-06-04T00:09:18.2619035Z             },
2026-06-04T00:09:18.2619107Z             {
2026-06-04T00:09:18.2619200Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2619276Z               "line": 635
2026-06-04T00:09:18.2619345Z             }
2026-06-04T00:09:18.2619420Z           ]
2026-06-04T00:09:18.2619493Z         }
2026-06-04T00:09:18.2619562Z       }
2026-06-04T00:09:18.2619630Z     },
2026-06-04T00:09:18.2619699Z     {
2026-06-04T00:09:18.2619783Z       "id": "REQ-INST-12",
2026-06-04T00:09:18.2620063Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-04T00:09:18.2620146Z       "requiredStages": [
2026-06-04T00:09:18.2620222Z         "impl",
2026-06-04T00:09:18.2620291Z         "unit"
2026-06-04T00:09:18.2620365Z       ],
2026-06-04T00:09:18.2620436Z       "stages": {
2026-06-04T00:09:18.2620509Z         "doc": {
2026-06-04T00:09:18.2620586Z           "complete": false,
2026-06-04T00:09:18.2620664Z           "evidence": []
2026-06-04T00:09:18.2620879Z         },
2026-06-04T00:09:18.2620995Z         "impl": {
2026-06-04T00:09:18.2621123Z           "complete": true,
2026-06-04T00:09:18.2621200Z           "evidence": [
2026-06-04T00:09:18.2621274Z             {
2026-06-04T00:09:18.2621393Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2621474Z               "line": 305
2026-06-04T00:09:18.2621548Z             },
2026-06-04T00:09:18.2621618Z             {
2026-06-04T00:09:18.2621729Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2621804Z               "line": 362
2026-06-04T00:09:18.2621881Z             },
2026-06-04T00:09:18.2621949Z             {
2026-06-04T00:09:18.2622054Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2622132Z               "line": 420
2026-06-04T00:09:18.2622202Z             },
2026-06-04T00:09:18.2622275Z             {
2026-06-04T00:09:18.2622375Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2622456Z               "line": 87
2026-06-04T00:09:18.2622524Z             },
2026-06-04T00:09:18.2622598Z             {
2026-06-04T00:09:18.2622812Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2622978Z               "line": 216
2026-06-04T00:09:18.2623052Z             },
2026-06-04T00:09:18.2623122Z             {
2026-06-04T00:09:18.2623248Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:09:18.2623325Z               "line": 132
2026-06-04T00:09:18.2623399Z             }
2026-06-04T00:09:18.2623472Z           ]
2026-06-04T00:09:18.2623540Z         },
2026-06-04T00:09:18.2623614Z         "int": {
2026-06-04T00:09:18.2623695Z           "complete": false,
2026-06-04T00:09:18.2623776Z           "evidence": []
2026-06-04T00:09:18.2623844Z         },
2026-06-04T00:09:18.2623920Z         "unit": {
2026-06-04T00:09:18.2624002Z           "complete": true,
2026-06-04T00:09:18.2624078Z           "evidence": [
2026-06-04T00:09:18.2624150Z             {
2026-06-04T00:09:18.2624260Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2624343Z               "line": 760
2026-06-04T00:09:18.2624412Z             },
2026-06-04T00:09:18.2624486Z             {
2026-06-04T00:09:18.2624597Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2624671Z               "line": 777
2026-06-04T00:09:18.2624745Z             },
2026-06-04T00:09:18.2624811Z             {
2026-06-04T00:09:18.2624919Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2624992Z               "line": 808
2026-06-04T00:09:18.2625067Z             },
2026-06-04T00:09:18.2625138Z             {
2026-06-04T00:09:18.2625241Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2625321Z               "line": 350
2026-06-04T00:09:18.2625388Z             },
2026-06-04T00:09:18.2625459Z             {
2026-06-04T00:09:18.2625562Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:09:18.2625638Z               "line": 169
2026-06-04T00:09:18.2625712Z             },
2026-06-04T00:09:18.2625779Z             {
2026-06-04T00:09:18.2625887Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:09:18.2625961Z               "line": 181
2026-06-04T00:09:18.2626036Z             },
2026-06-04T00:09:18.2626103Z             {
2026-06-04T00:09:18.2626212Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:09:18.2626288Z               "line": 198
2026-06-04T00:09:18.2626358Z             }
2026-06-04T00:09:18.2626431Z           ]
2026-06-04T00:09:18.2626501Z         }
2026-06-04T00:09:18.2626577Z       }
2026-06-04T00:09:18.2626643Z     },
2026-06-04T00:09:18.2626715Z     {
2026-06-04T00:09:18.2626797Z       "id": "REQ-INST-13",
2026-06-04T00:09:18.2626969Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-04T00:09:18.2627052Z       "requiredStages": [
2026-06-04T00:09:18.2627122Z         "impl",
2026-06-04T00:09:18.2627195Z         "unit"
2026-06-04T00:09:18.2627263Z       ],
2026-06-04T00:09:18.2627338Z       "stages": {
2026-06-04T00:09:18.2627413Z         "doc": {
2026-06-04T00:09:18.2627494Z           "complete": false,
2026-06-04T00:09:18.2627579Z           "evidence": []
2026-06-04T00:09:18.2627647Z         },
2026-06-04T00:09:18.2627724Z         "impl": {
2026-06-04T00:09:18.2627800Z           "complete": true,
2026-06-04T00:09:18.2627878Z           "evidence": [
2026-06-04T00:09:18.2627951Z             {
2026-06-04T00:09:18.2628058Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:09:18.2628136Z               "line": 155
2026-06-04T00:09:18.2628203Z             }
2026-06-04T00:09:18.2628274Z           ]
2026-06-04T00:09:18.2628342Z         },
2026-06-04T00:09:18.2628418Z         "int": {
2026-06-04T00:09:18.2628501Z           "complete": false,
2026-06-04T00:09:18.2628577Z           "evidence": []
2026-06-04T00:09:18.2628650Z         },
2026-06-04T00:09:18.2628721Z         "unit": {
2026-06-04T00:09:18.2628802Z           "complete": true,
2026-06-04T00:09:18.2628875Z           "evidence": [
2026-06-04T00:09:18.2629028Z             {
2026-06-04T00:09:18.2629137Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:09:18.2629273Z               "line": 221
2026-06-04T00:09:18.2629345Z             },
2026-06-04T00:09:18.2629413Z             {
2026-06-04T00:09:18.2629521Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:09:18.2629599Z               "line": 233
2026-06-04T00:09:18.2629666Z             }
2026-06-04T00:09:18.2629739Z           ]
2026-06-04T00:09:18.2629808Z         }
2026-06-04T00:09:18.2629881Z       }
2026-06-04T00:09:18.2629951Z     },
2026-06-04T00:09:18.2630024Z     {
2026-06-04T00:09:18.2630105Z       "id": "REQ-INST-14",
2026-06-04T00:09:18.2630472Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-04T00:09:18.2630559Z       "requiredStages": [],
2026-06-04T00:09:18.2630633Z       "stages": {
2026-06-04T00:09:18.2630708Z         "doc": {
2026-06-04T00:09:18.2630894Z           "complete": false,
2026-06-04T00:09:18.2630976Z           "evidence": []
2026-06-04T00:09:18.2631054Z         },
2026-06-04T00:09:18.2631126Z         "impl": {
2026-06-04T00:09:18.2631206Z           "complete": false,
2026-06-04T00:09:18.2631282Z           "evidence": []
2026-06-04T00:09:18.2631354Z         },
2026-06-04T00:09:18.2631426Z         "int": {
2026-06-04T00:09:18.2631510Z           "complete": false,
2026-06-04T00:09:18.2631587Z           "evidence": []
2026-06-04T00:09:18.2631657Z         },
2026-06-04T00:09:18.2631731Z         "unit": {
2026-06-04T00:09:18.2631806Z           "complete": false,
2026-06-04T00:09:18.2631884Z           "evidence": []
2026-06-04T00:09:18.2631952Z         }
2026-06-04T00:09:18.2632027Z       }
2026-06-04T00:09:18.2632100Z     },
2026-06-04T00:09:18.2632170Z     {
2026-06-04T00:09:18.2632250Z       "id": "REQ-INST-15",
2026-06-04T00:09:18.2632952Z       "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-04T00:09:18.2633044Z       "requiredStages": [],
2026-06-04T00:09:18.2633116Z       "stages": {
2026-06-04T00:09:18.2633189Z         "doc": {
2026-06-04T00:09:18.2633268Z           "complete": false,
2026-06-04T00:09:18.2633341Z           "evidence": []
2026-06-04T00:09:18.2633414Z         },
2026-06-04T00:09:18.2633483Z         "impl": {
2026-06-04T00:09:18.2633564Z           "complete": false,
2026-06-04T00:09:18.2633637Z           "evidence": []
2026-06-04T00:09:18.2633711Z         },
2026-06-04T00:09:18.2633783Z         "int": {
2026-06-04T00:09:18.2633858Z           "complete": false,
2026-06-04T00:09:18.2633931Z           "evidence": []
2026-06-04T00:09:18.2633999Z         },
2026-06-04T00:09:18.2634074Z         "unit": {
2026-06-04T00:09:18.2634147Z           "complete": false,
2026-06-04T00:09:18.2634227Z           "evidence": []
2026-06-04T00:09:18.2634299Z         }
2026-06-04T00:09:18.2634368Z       }
2026-06-04T00:09:18.2634442Z     },
2026-06-04T00:09:18.2634508Z     {
2026-06-04T00:09:18.2634593Z       "id": "REQ-INST-2",
2026-06-04T00:09:18.2634704Z       "title": "Per-node files, synced Psyche mind",
2026-06-04T00:09:18.2634785Z       "requiredStages": [],
2026-06-04T00:09:18.2634862Z       "stages": {
2026-06-04T00:09:18.2634930Z         "doc": {
2026-06-04T00:09:18.2635010Z           "complete": false,
2026-06-04T00:09:18.2635084Z           "evidence": []
2026-06-04T00:09:18.2635156Z         },
2026-06-04T00:09:18.2635225Z         "impl": {
2026-06-04T00:09:18.2635305Z           "complete": false,
2026-06-04T00:09:18.2635384Z           "evidence": []
2026-06-04T00:09:18.2635451Z         },
2026-06-04T00:09:18.2635524Z         "int": {
2026-06-04T00:09:18.2635599Z           "complete": false,
2026-06-04T00:09:18.2635677Z           "evidence": []
2026-06-04T00:09:18.2635746Z         },
2026-06-04T00:09:18.2635959Z         "unit": {
2026-06-04T00:09:18.2636045Z           "complete": false,
2026-06-04T00:09:18.2636201Z           "evidence": []
2026-06-04T00:09:18.2636273Z         }
2026-06-04T00:09:18.2636342Z       }
2026-06-04T00:09:18.2636417Z     },
2026-06-04T00:09:18.2636485Z     {
2026-06-04T00:09:18.2636567Z       "id": "REQ-INST-3",
2026-06-04T00:09:18.2636714Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-04T00:09:18.2636795Z       "requiredStages": [],
2026-06-04T00:09:18.2636870Z       "stages": {
2026-06-04T00:09:18.2636940Z         "doc": {
2026-06-04T00:09:18.2637024Z           "complete": false,
2026-06-04T00:09:18.2637101Z           "evidence": []
2026-06-04T00:09:18.2637176Z         },
2026-06-04T00:09:18.2637255Z         "impl": {
2026-06-04T00:09:18.2637332Z           "complete": false,
2026-06-04T00:09:18.2637411Z           "evidence": []
2026-06-04T00:09:18.2637479Z         },
2026-06-04T00:09:18.2637554Z         "int": {
2026-06-04T00:09:18.2637633Z           "complete": false,
2026-06-04T00:09:18.2637713Z           "evidence": []
2026-06-04T00:09:18.2637783Z         },
2026-06-04T00:09:18.2637855Z         "unit": {
2026-06-04T00:09:18.2637935Z           "complete": false,
2026-06-04T00:09:18.2638008Z           "evidence": []
2026-06-04T00:09:18.2638081Z         }
2026-06-04T00:09:18.2638148Z       }
2026-06-04T00:09:18.2638222Z     },
2026-06-04T00:09:18.2638294Z     {
2026-06-04T00:09:18.2638370Z       "id": "REQ-INST-4",
2026-06-04T00:09:18.2638534Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-04T00:09:18.2638614Z       "requiredStages": [],
2026-06-04T00:09:18.2638690Z       "stages": {
2026-06-04T00:09:18.2638758Z         "doc": {
2026-06-04T00:09:18.2638837Z           "complete": false,
2026-06-04T00:09:18.2638913Z           "evidence": []
2026-06-04T00:09:18.2638979Z         },
2026-06-04T00:09:18.2639053Z         "impl": {
2026-06-04T00:09:18.2639129Z           "complete": false,
2026-06-04T00:09:18.2639207Z           "evidence": []
2026-06-04T00:09:18.2639274Z         },
2026-06-04T00:09:18.2639347Z         "int": {
2026-06-04T00:09:18.2639429Z           "complete": false,
2026-06-04T00:09:18.2639500Z           "evidence": []
2026-06-04T00:09:18.2639574Z         },
2026-06-04T00:09:18.2639643Z         "unit": {
2026-06-04T00:09:18.2639723Z           "complete": false,
2026-06-04T00:09:18.2639797Z           "evidence": []
2026-06-04T00:09:18.2639870Z         }
2026-06-04T00:09:18.2639942Z       }
2026-06-04T00:09:18.2640009Z     },
2026-06-04T00:09:18.2640087Z     {
2026-06-04T00:09:18.2640164Z       "id": "REQ-INST-5",
2026-06-04T00:09:18.2640335Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-04T00:09:18.2640416Z       "requiredStages": [],
2026-06-04T00:09:18.2640493Z       "stages": {
2026-06-04T00:09:18.2640568Z         "doc": {
2026-06-04T00:09:18.2640645Z           "complete": false,
2026-06-04T00:09:18.2640727Z           "evidence": []
2026-06-04T00:09:18.2640888Z         },
2026-06-04T00:09:18.2640965Z         "impl": {
2026-06-04T00:09:18.2641040Z           "complete": false,
2026-06-04T00:09:18.2641123Z           "evidence": []
2026-06-04T00:09:18.2641194Z         },
2026-06-04T00:09:18.2641263Z         "int": {
2026-06-04T00:09:18.2641342Z           "complete": false,
2026-06-04T00:09:18.2641416Z           "evidence": []
2026-06-04T00:09:18.2641489Z         },
2026-06-04T00:09:18.2641558Z         "unit": {
2026-06-04T00:09:18.2641640Z           "complete": false,
2026-06-04T00:09:18.2641718Z           "evidence": []
2026-06-04T00:09:18.2641789Z         }
2026-06-04T00:09:18.2641863Z       }
2026-06-04T00:09:18.2641929Z     },
2026-06-04T00:09:18.2642002Z     {
2026-06-04T00:09:18.2642076Z       "id": "REQ-INST-6",
2026-06-04T00:09:18.2642249Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-04T00:09:18.2642331Z       "requiredStages": [],
2026-06-04T00:09:18.2642402Z       "stages": {
2026-06-04T00:09:18.2642479Z         "doc": {
2026-06-04T00:09:18.2642661Z           "complete": false,
2026-06-04T00:09:18.2642739Z           "evidence": []
2026-06-04T00:09:18.2642893Z         },
2026-06-04T00:09:18.2642970Z         "impl": {
2026-06-04T00:09:18.2643051Z           "complete": false,
2026-06-04T00:09:18.2643127Z           "evidence": []
2026-06-04T00:09:18.2643200Z         },
2026-06-04T00:09:18.2643270Z         "int": {
2026-06-04T00:09:18.2643353Z           "complete": false,
2026-06-04T00:09:18.2643428Z           "evidence": []
2026-06-04T00:09:18.2643502Z         },
2026-06-04T00:09:18.2643578Z         "unit": {
2026-06-04T00:09:18.2643656Z           "complete": false,
2026-06-04T00:09:18.2643737Z           "evidence": []
2026-06-04T00:09:18.2643805Z         }
2026-06-04T00:09:18.2643878Z       }
2026-06-04T00:09:18.2643945Z     },
2026-06-04T00:09:18.2644019Z     {
2026-06-04T00:09:18.2644094Z       "id": "REQ-INST-7",
2026-06-04T00:09:18.2644230Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-04T00:09:18.2644318Z       "requiredStages": [
2026-06-04T00:09:18.2644389Z         "impl",
2026-06-04T00:09:18.2644464Z         "unit"
2026-06-04T00:09:18.2644536Z       ],
2026-06-04T00:09:18.2644616Z       "stages": {
2026-06-04T00:09:18.2644689Z         "doc": {
2026-06-04T00:09:18.2644769Z           "complete": false,
2026-06-04T00:09:18.2644844Z           "evidence": []
2026-06-04T00:09:18.2644912Z         },
2026-06-04T00:09:18.2644988Z         "impl": {
2026-06-04T00:09:18.2645066Z           "complete": true,
2026-06-04T00:09:18.2645145Z           "evidence": [
2026-06-04T00:09:18.2645245Z             {
2026-06-04T00:09:18.2645364Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2645443Z               "line": 41
2026-06-04T00:09:18.2645513Z             },
2026-06-04T00:09:18.2645585Z             {
2026-06-04T00:09:18.2645689Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:09:18.2645769Z               "line": 123
2026-06-04T00:09:18.2645846Z             }
2026-06-04T00:09:18.2645919Z           ]
2026-06-04T00:09:18.2645992Z         },
2026-06-04T00:09:18.2646063Z         "int": {
2026-06-04T00:09:18.2646147Z           "complete": false,
2026-06-04T00:09:18.2646220Z           "evidence": []
2026-06-04T00:09:18.2646295Z         },
2026-06-04T00:09:18.2646366Z         "unit": {
2026-06-04T00:09:18.2646448Z           "complete": true,
2026-06-04T00:09:18.2646527Z           "evidence": [
2026-06-04T00:09:18.2646596Z             {
2026-06-04T00:09:18.2646706Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2646778Z               "line": 475
2026-06-04T00:09:18.2646854Z             },
2026-06-04T00:09:18.2646932Z             {
2026-06-04T00:09:18.2647034Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2647112Z               "line": 486
2026-06-04T00:09:18.2647184Z             },
2026-06-04T00:09:18.2647260Z             {
2026-06-04T00:09:18.2647361Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2647441Z               "line": 495
2026-06-04T00:09:18.2647518Z             }
2026-06-04T00:09:18.2647590Z           ]
2026-06-04T00:09:18.2647664Z         }
2026-06-04T00:09:18.2647733Z       }
2026-06-04T00:09:18.2647805Z     },
2026-06-04T00:09:18.2647873Z     {
2026-06-04T00:09:18.2647956Z       "id": "REQ-INST-8",
2026-06-04T00:09:18.2648100Z       "title": "Remote-control mode distinct from local operation",
2026-06-04T00:09:18.2648180Z       "requiredStages": [],
2026-06-04T00:09:18.2648257Z       "stages": {
2026-06-04T00:09:18.2648328Z         "doc": {
2026-06-04T00:09:18.2648411Z           "complete": false,
2026-06-04T00:09:18.2648487Z           "evidence": []
2026-06-04T00:09:18.2648561Z         },
2026-06-04T00:09:18.2648635Z         "impl": {
2026-06-04T00:09:18.2648713Z           "complete": false,
2026-06-04T00:09:18.2648791Z           "evidence": []
2026-06-04T00:09:18.2648859Z         },
2026-06-04T00:09:18.2648936Z         "int": {
2026-06-04T00:09:18.2649091Z           "complete": false,
2026-06-04T00:09:18.2649172Z           "evidence": []
2026-06-04T00:09:18.2649243Z         },
2026-06-04T00:09:18.2649378Z         "unit": {
2026-06-04T00:09:18.2649460Z           "complete": false,
2026-06-04T00:09:18.2649534Z           "evidence": []
2026-06-04T00:09:18.2649607Z         }
2026-06-04T00:09:18.2649676Z       }
2026-06-04T00:09:18.2649749Z     },
2026-06-04T00:09:18.2649818Z     {
2026-06-04T00:09:18.2649899Z       "id": "REQ-INST-9",
2026-06-04T00:09:18.2650076Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-04T00:09:18.2650153Z       "requiredStages": [
2026-06-04T00:09:18.2650230Z         "impl",
2026-06-04T00:09:18.2650299Z         "unit"
2026-06-04T00:09:18.2650374Z       ],
2026-06-04T00:09:18.2650447Z       "stages": {
2026-06-04T00:09:18.2650523Z         "doc": {
2026-06-04T00:09:18.2650604Z           "complete": false,
2026-06-04T00:09:18.2650678Z           "evidence": []
2026-06-04T00:09:18.2650840Z         },
2026-06-04T00:09:18.2650915Z         "impl": {
2026-06-04T00:09:18.2651000Z           "complete": true,
2026-06-04T00:09:18.2651078Z           "evidence": [
2026-06-04T00:09:18.2651152Z             {
2026-06-04T00:09:18.2651260Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2651334Z               "line": 191
2026-06-04T00:09:18.2651407Z             }
2026-06-04T00:09:18.2651474Z           ]
2026-06-04T00:09:18.2651550Z         },
2026-06-04T00:09:18.2651621Z         "int": {
2026-06-04T00:09:18.2651707Z           "complete": false,
2026-06-04T00:09:18.2651785Z           "evidence": []
2026-06-04T00:09:18.2651853Z         },
2026-06-04T00:09:18.2651929Z         "unit": {
2026-06-04T00:09:18.2652003Z           "complete": true,
2026-06-04T00:09:18.2652083Z           "evidence": [
2026-06-04T00:09:18.2652151Z             {
2026-06-04T00:09:18.2652258Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2652336Z               "line": 626
2026-06-04T00:09:18.2652403Z             },
2026-06-04T00:09:18.2652481Z             {
2026-06-04T00:09:18.2652582Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2652665Z               "line": 635
2026-06-04T00:09:18.2652739Z             },
2026-06-04T00:09:18.2652809Z             {
2026-06-04T00:09:18.2652917Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2652992Z               "line": 649
2026-06-04T00:09:18.2653064Z             },
2026-06-04T00:09:18.2653132Z             {
2026-06-04T00:09:18.2653243Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2653321Z               "line": 659
2026-06-04T00:09:18.2653391Z             },
2026-06-04T00:09:18.2653464Z             {
2026-06-04T00:09:18.2653565Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:09:18.2653643Z               "line": 678
2026-06-04T00:09:18.2653712Z             }
2026-06-04T00:09:18.2653789Z           ]
2026-06-04T00:09:18.2653861Z         }
2026-06-04T00:09:18.2653933Z       }
2026-06-04T00:09:18.2654008Z     },
2026-06-04T00:09:18.2654078Z     {
2026-06-04T00:09:18.2654168Z       "id": "REQ-INSTALL-1",
2026-06-04T00:09:18.2654345Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-04T00:09:18.2654438Z       "requiredStages": [],
2026-06-04T00:09:18.2654518Z       "stages": {
2026-06-04T00:09:18.2654589Z         "doc": {
2026-06-04T00:09:18.2654674Z           "complete": false,
2026-06-04T00:09:18.2654750Z           "evidence": []
2026-06-04T00:09:18.2654823Z         },
2026-06-04T00:09:18.2654894Z         "impl": {
2026-06-04T00:09:18.2654976Z           "complete": false,
2026-06-04T00:09:18.2655058Z           "evidence": []
2026-06-04T00:09:18.2655130Z         },
2026-06-04T00:09:18.2655207Z         "int": {
2026-06-04T00:09:18.2655285Z           "complete": false,
2026-06-04T00:09:18.2655365Z           "evidence": []
2026-06-04T00:09:18.2655435Z         },
2026-06-04T00:09:18.2655511Z         "unit": {
2026-06-04T00:09:18.2655694Z           "complete": false,
2026-06-04T00:09:18.2655771Z           "evidence": []
2026-06-04T00:09:18.2655930Z         }
2026-06-04T00:09:18.2655999Z       }
2026-06-04T00:09:18.2656076Z     },
2026-06-04T00:09:18.2656144Z     {
2026-06-04T00:09:18.2656231Z       "id": "REQ-INSTALL-2",
2026-06-04T00:09:18.2656365Z       "title": "Marketplace-repackaging-friendly install",
2026-06-04T00:09:18.2656446Z       "requiredStages": [],
2026-06-04T00:09:18.2656522Z       "stages": {
2026-06-04T00:09:18.2656592Z         "doc": {
2026-06-04T00:09:18.2656674Z           "complete": false,
2026-06-04T00:09:18.2656748Z           "evidence": []
2026-06-04T00:09:18.2656825Z         },
2026-06-04T00:09:18.2656901Z         "impl": {
2026-06-04T00:09:18.2656977Z           "complete": false,
2026-06-04T00:09:18.2657056Z           "evidence": []
2026-06-04T00:09:18.2657124Z         },
2026-06-04T00:09:18.2657198Z         "int": {
2026-06-04T00:09:18.2657272Z           "complete": false,
2026-06-04T00:09:18.2657355Z           "evidence": []
2026-06-04T00:09:18.2657430Z         },
2026-06-04T00:09:18.2657502Z         "unit": {
2026-06-04T00:09:18.2657587Z           "complete": false,
2026-06-04T00:09:18.2657661Z           "evidence": []
2026-06-04T00:09:18.2657735Z         }
2026-06-04T00:09:18.2657804Z       }
2026-06-04T00:09:18.2657878Z     },
2026-06-04T00:09:18.2657947Z     {
2026-06-04T00:09:18.2658033Z       "id": "REQ-INSTALL-3",
2026-06-04T00:09:18.2658170Z       "title": "Idempotent + interactive-optional first run",
2026-06-04T00:09:18.2658252Z       "requiredStages": [],
2026-06-04T00:09:18.2658328Z       "stages": {
2026-06-04T00:09:18.2658400Z         "doc": {
2026-06-04T00:09:18.2658482Z           "complete": false,
2026-06-04T00:09:18.2658555Z           "evidence": []
2026-06-04T00:09:18.2658630Z         },
2026-06-04T00:09:18.2658707Z         "impl": {
2026-06-04T00:09:18.2658783Z           "complete": false,
2026-06-04T00:09:18.2658864Z           "evidence": []
2026-06-04T00:09:18.2658932Z         },
2026-06-04T00:09:18.2659010Z         "int": {
2026-06-04T00:09:18.2659088Z           "complete": false,
2026-06-04T00:09:18.2659171Z           "evidence": []
2026-06-04T00:09:18.2659245Z         },
2026-06-04T00:09:18.2659314Z         "unit": {
2026-06-04T00:09:18.2659398Z           "complete": false,
2026-06-04T00:09:18.2659472Z           "evidence": []
2026-06-04T00:09:18.2659548Z         }
2026-06-04T00:09:18.2659617Z       }
2026-06-04T00:09:18.2659691Z     },
2026-06-04T00:09:18.2659765Z     {
2026-06-04T00:09:18.2659841Z       "id": "REQ-INSTALL-4",
2026-06-04T00:09:18.2660461Z       "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-04T00:09:18.2660542Z       "requiredStages": [],
2026-06-04T00:09:18.2660618Z       "stages": {
2026-06-04T00:09:18.2660691Z         "doc": {
2026-06-04T00:09:18.2660856Z           "complete": false,
2026-06-04T00:09:18.2660938Z           "evidence": []
2026-06-04T00:09:18.2661006Z         },
2026-06-04T00:09:18.2661084Z         "impl": {
2026-06-04T00:09:18.2661162Z           "complete": false,
2026-06-04T00:09:18.2661252Z           "evidence": []
2026-06-04T00:09:18.2661322Z         },
2026-06-04T00:09:18.2661391Z         "int": {
2026-06-04T00:09:18.2661473Z           "complete": false,
2026-06-04T00:09:18.2661548Z           "evidence": []
2026-06-04T00:09:18.2661620Z         },
2026-06-04T00:09:18.2661689Z         "unit": {
2026-06-04T00:09:18.2661771Z           "complete": false,
2026-06-04T00:09:18.2661850Z           "evidence": []
2026-06-04T00:09:18.2661919Z         }
2026-06-04T00:09:18.2661995Z       }
2026-06-04T00:09:18.2662061Z     },
2026-06-04T00:09:18.2662135Z     {
2026-06-04T00:09:18.2662218Z       "id": "REQ-MANIFEST-1",
2026-06-04T00:09:18.2662397Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-04T00:09:18.2662581Z       "requiredStages": [
2026-06-04T00:09:18.2662653Z         "doc",
2026-06-04T00:09:18.2662728Z         "impl",
2026-06-04T00:09:18.2662885Z         "unit"
2026-06-04T00:09:18.2662960Z       ],
2026-06-04T00:09:18.2663032Z       "stages": {
2026-06-04T00:09:18.2663109Z         "doc": {
2026-06-04T00:09:18.2663196Z           "complete": true,
2026-06-04T00:09:18.2663273Z           "evidence": [
2026-06-04T00:09:18.2663347Z             {
2026-06-04T00:09:18.2663441Z               "path": "docs/MANIFEST.md",
2026-06-04T00:09:18.2663520Z               "line": 19
2026-06-04T00:09:18.2663592Z             }
2026-06-04T00:09:18.2663667Z           ]
2026-06-04T00:09:18.2663739Z         },
2026-06-04T00:09:18.2663810Z         "impl": {
2026-06-04T00:09:18.2663892Z           "complete": true,
2026-06-04T00:09:18.2663967Z           "evidence": [
2026-06-04T00:09:18.2664041Z             {
2026-06-04T00:09:18.2664157Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2664236Z               "line": 18
2026-06-04T00:09:18.2664312Z             }
2026-06-04T00:09:18.2664381Z           ]
2026-06-04T00:09:18.2664457Z         },
2026-06-04T00:09:18.2664529Z         "int": {
2026-06-04T00:09:18.2664612Z           "complete": false,
2026-06-04T00:09:18.2664688Z           "evidence": []
2026-06-04T00:09:18.2664765Z         },
2026-06-04T00:09:18.2664839Z         "unit": {
2026-06-04T00:09:18.2664917Z           "complete": true,
2026-06-04T00:09:18.2664998Z           "evidence": [
2026-06-04T00:09:18.2665066Z             {
2026-06-04T00:09:18.2665176Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2665252Z               "line": 695
2026-06-04T00:09:18.2665328Z             },
2026-06-04T00:09:18.2665404Z             {
2026-06-04T00:09:18.2665507Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2665586Z               "line": 791
2026-06-04T00:09:18.2665655Z             },
2026-06-04T00:09:18.2665728Z             {
2026-06-04T00:09:18.2665832Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2665914Z               "line": 803
2026-06-04T00:09:18.2665992Z             },
2026-06-04T00:09:18.2666061Z             {
2026-06-04T00:09:18.2666170Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2666245Z               "line": 811
2026-06-04T00:09:18.2666321Z             },
2026-06-04T00:09:18.2666393Z             {
2026-06-04T00:09:18.2666502Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2666582Z               "line": 828
2026-06-04T00:09:18.2666650Z             },
2026-06-04T00:09:18.2666727Z             {
2026-06-04T00:09:18.2666828Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2666909Z               "line": 842
2026-06-04T00:09:18.2666980Z             },
2026-06-04T00:09:18.2667056Z             {
2026-06-04T00:09:18.2667165Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2667241Z               "line": 857
2026-06-04T00:09:18.2667319Z             },
2026-06-04T00:09:18.2667388Z             {
2026-06-04T00:09:18.2667501Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2667582Z               "line": 872
2026-06-04T00:09:18.2667662Z             },
2026-06-04T00:09:18.2667737Z             {
2026-06-04T00:09:18.2667839Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2667919Z               "line": 887
2026-06-04T00:09:18.2667989Z             },
2026-06-04T00:09:18.2668063Z             {
2026-06-04T00:09:18.2668173Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2668246Z               "line": 898
2026-06-04T00:09:18.2668321Z             }
2026-06-04T00:09:18.2668389Z           ]
2026-06-04T00:09:18.2668466Z         }
2026-06-04T00:09:18.2668534Z       }
2026-06-04T00:09:18.2668609Z     },
2026-06-04T00:09:18.2668677Z     {
2026-06-04T00:09:18.2668764Z       "id": "REQ-MIGRATE-1",
2026-06-04T00:09:18.2669007Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-04T00:09:18.2669091Z       "requiredStages": [],
2026-06-04T00:09:18.2669244Z       "stages": {
2026-06-04T00:09:18.2669316Z         "doc": {
2026-06-04T00:09:18.2669397Z           "complete": false,
2026-06-04T00:09:18.2669476Z           "evidence": []
2026-06-04T00:09:18.2669546Z         },
2026-06-04T00:09:18.2669623Z         "impl": {
2026-06-04T00:09:18.2669699Z           "complete": false,
2026-06-04T00:09:18.2669776Z           "evidence": []
2026-06-04T00:09:18.2669844Z         },
2026-06-04T00:09:18.2669921Z         "int": {
2026-06-04T00:09:18.2669998Z           "complete": false,
2026-06-04T00:09:18.2670079Z           "evidence": []
2026-06-04T00:09:18.2670151Z         },
2026-06-04T00:09:18.2670220Z         "unit": {
2026-06-04T00:09:18.2670299Z           "complete": false,
2026-06-04T00:09:18.2670374Z           "evidence": []
2026-06-04T00:09:18.2670450Z         }
2026-06-04T00:09:18.2670517Z       }
2026-06-04T00:09:18.2670596Z     },
2026-06-04T00:09:18.2670672Z     {
2026-06-04T00:09:18.2670831Z       "id": "REQ-MSG-1",
2026-06-04T00:09:18.2671268Z       "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-04T00:09:18.2671350Z       "requiredStages": [
2026-06-04T00:09:18.2671428Z         "impl",
2026-06-04T00:09:18.2671503Z         "unit",
2026-06-04T00:09:18.2671573Z         "int"
2026-06-04T00:09:18.2671651Z       ],
2026-06-04T00:09:18.2671723Z       "stages": {
2026-06-04T00:09:18.2671799Z         "doc": {
2026-06-04T00:09:18.2671878Z           "complete": false,
2026-06-04T00:09:18.2671963Z           "evidence": []
2026-06-04T00:09:18.2672041Z         },
2026-06-04T00:09:18.2672112Z         "impl": {
2026-06-04T00:09:18.2672198Z           "complete": true,
2026-06-04T00:09:18.2672275Z           "evidence": [
2026-06-04T00:09:18.2672351Z             {
2026-06-04T00:09:18.2672464Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2672547Z               "line": 28
2026-06-04T00:09:18.2672622Z             },
2026-06-04T00:09:18.2672696Z             {
2026-06-04T00:09:18.2672802Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2672874Z               "line": 91
2026-06-04T00:09:18.2672948Z             },
2026-06-04T00:09:18.2673018Z             {
2026-06-04T00:09:18.2673119Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2673199Z               "line": 134
2026-06-04T00:09:18.2673271Z             },
2026-06-04T00:09:18.2673344Z             {
2026-06-04T00:09:18.2673438Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2673522Z               "line": 159
2026-06-04T00:09:18.2673606Z             },
2026-06-04T00:09:18.2673684Z             {
2026-06-04T00:09:18.2673793Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T00:09:18.2673865Z               "line": 18
2026-06-04T00:09:18.2673944Z             },
2026-06-04T00:09:18.2674012Z             {
2026-06-04T00:09:18.2674114Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:09:18.2674189Z               "line": 13
2026-06-04T00:09:18.2674264Z             },
2026-06-04T00:09:18.2674338Z             {
2026-06-04T00:09:18.2674431Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:09:18.2674508Z               "line": 61
2026-06-04T00:09:18.2674579Z             },
2026-06-04T00:09:18.2674654Z             {
2026-06-04T00:09:18.2674746Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T00:09:18.2674825Z               "line": 10
2026-06-04T00:09:18.2674897Z             }
2026-06-04T00:09:18.2674967Z           ]
2026-06-04T00:09:18.2675040Z         },
2026-06-04T00:09:18.2675109Z         "int": {
2026-06-04T00:09:18.2675196Z           "complete": true,
2026-06-04T00:09:18.2675273Z           "evidence": [
2026-06-04T00:09:18.2675349Z             {
2026-06-04T00:09:18.2675584Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T00:09:18.2675661Z               "line": 9
2026-06-04T00:09:18.2675818Z             },
2026-06-04T00:09:18.2675887Z             {
2026-06-04T00:09:18.2676012Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T00:09:18.2676085Z               "line": 66
2026-06-04T00:09:18.2676161Z             },
2026-06-04T00:09:18.2676235Z             {
2026-06-04T00:09:18.2676348Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T00:09:18.2676428Z               "line": 116
2026-06-04T00:09:18.2676499Z             }
2026-06-04T00:09:18.2676576Z           ]
2026-06-04T00:09:18.2676645Z         },
2026-06-04T00:09:18.2676722Z         "unit": {
2026-06-04T00:09:18.2676803Z           "complete": true,
2026-06-04T00:09:18.2676877Z           "evidence": [
2026-06-04T00:09:18.2676952Z             {
2026-06-04T00:09:18.2677050Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2677131Z               "line": 188
2026-06-04T00:09:18.2677202Z             },
2026-06-04T00:09:18.2677276Z             {
2026-06-04T00:09:18.2677379Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2677454Z               "line": 217
2026-06-04T00:09:18.2677530Z             },
2026-06-04T00:09:18.2677600Z             {
2026-06-04T00:09:18.2677699Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2677773Z               "line": 262
2026-06-04T00:09:18.2677847Z             },
2026-06-04T00:09:18.2677923Z             {
2026-06-04T00:09:18.2678016Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2678095Z               "line": 285
2026-06-04T00:09:18.2678164Z             },
2026-06-04T00:09:18.2678238Z             {
2026-06-04T00:09:18.2678338Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:09:18.2678413Z               "line": 307
2026-06-04T00:09:18.2678487Z             },
2026-06-04T00:09:18.2678555Z             {
2026-06-04T00:09:18.2678664Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T00:09:18.2678737Z               "line": 203
2026-06-04T00:09:18.2678814Z             },
2026-06-04T00:09:18.2678887Z             {
2026-06-04T00:09:18.2678984Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T00:09:18.2679067Z               "line": 233
2026-06-04T00:09:18.2679139Z             },
2026-06-04T00:09:18.2679221Z             {
2026-06-04T00:09:18.2679318Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T00:09:18.2679399Z               "line": 247
2026-06-04T00:09:18.2679475Z             },
2026-06-04T00:09:18.2679544Z             {
2026-06-04T00:09:18.2679643Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T00:09:18.2679715Z               "line": 259
2026-06-04T00:09:18.2679791Z             },
2026-06-04T00:09:18.2679860Z             {
2026-06-04T00:09:18.2679962Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:09:18.2680039Z               "line": 158
2026-06-04T00:09:18.2680111Z             },
2026-06-04T00:09:18.2680187Z             {
2026-06-04T00:09:18.2680281Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:09:18.2680363Z               "line": 235
2026-06-04T00:09:18.2680430Z             },
2026-06-04T00:09:18.2680507Z             {
2026-06-04T00:09:18.2680603Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T00:09:18.2680678Z               "line": 68
2026-06-04T00:09:18.2680838Z             },
2026-06-04T00:09:18.2680909Z             {
2026-06-04T00:09:18.2681009Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T00:09:18.2681083Z               "line": 74
2026-06-04T00:09:18.2681159Z             },
2026-06-04T00:09:18.2681232Z             {
2026-06-04T00:09:18.2681320Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T00:09:18.2681398Z               "line": 80
2026-06-04T00:09:18.2681469Z             },
2026-06-04T00:09:18.2681544Z             {
2026-06-04T00:09:18.2681739Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T00:09:18.2681819Z               "line": 99
2026-06-04T00:09:18.2681972Z             }
2026-06-04T00:09:18.2682040Z           ]
2026-06-04T00:09:18.2682115Z         }
2026-06-04T00:09:18.2682185Z       }
2026-06-04T00:09:18.2682263Z     },
2026-06-04T00:09:18.2682331Z     {
2026-06-04T00:09:18.2682417Z       "id": "REQ-MSG-2",
2026-06-04T00:09:18.2682679Z       "title": "spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes",
2026-06-04T00:09:18.2682762Z       "requiredStages": [
2026-06-04T00:09:18.2682842Z         "impl",
2026-06-04T00:09:18.2682912Z         "unit"
2026-06-04T00:09:18.2682988Z       ],
2026-06-04T00:09:18.2683060Z       "stages": {
2026-06-04T00:09:18.2683141Z         "doc": {
2026-06-04T00:09:18.2683228Z           "complete": false,
2026-06-04T00:09:18.2683304Z           "evidence": []
2026-06-04T00:09:18.2683380Z         },
2026-06-04T00:09:18.2683453Z         "impl": {
2026-06-04T00:09:18.2683540Z           "complete": true,
2026-06-04T00:09:18.2683614Z           "evidence": [
2026-06-04T00:09:18.2683687Z             {
2026-06-04T00:09:18.2683790Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2683863Z               "line": 11
2026-06-04T00:09:18.2683937Z             },
2026-06-04T00:09:18.2684005Z             {
2026-06-04T00:09:18.2684106Z               "path": "crates/spt/src/main.rs",
2026-06-04T00:09:18.2684180Z               "line": 8
2026-06-04T00:09:18.2684255Z             }
2026-06-04T00:09:18.2684329Z           ]
2026-06-04T00:09:18.2684397Z         },
2026-06-04T00:09:18.2684472Z         "int": {
2026-06-04T00:09:18.2684550Z           "complete": false,
2026-06-04T00:09:18.2684628Z           "evidence": []
2026-06-04T00:09:18.2684696Z         },
2026-06-04T00:09:18.2684773Z         "unit": {
2026-06-04T00:09:18.2684855Z           "complete": true,
2026-06-04T00:09:18.2684930Z           "evidence": [
2026-06-04T00:09:18.2685003Z             {
2026-06-04T00:09:18.2685095Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2685177Z               "line": 622
2026-06-04T00:09:18.2685248Z             },
2026-06-04T00:09:18.2685324Z             {
2026-06-04T00:09:18.2685419Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2685494Z               "line": 659
2026-06-04T00:09:18.2685570Z             },
2026-06-04T00:09:18.2685641Z             {
2026-06-04T00:09:18.2685735Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2685810Z               "line": 668
2026-06-04T00:09:18.2685885Z             },
2026-06-04T00:09:18.2685960Z             {
2026-06-04T00:09:18.2686045Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2686125Z               "line": 680
2026-06-04T00:09:18.2686194Z             }
2026-06-04T00:09:18.2686269Z           ]
2026-06-04T00:09:18.2686338Z         }
2026-06-04T00:09:18.2686410Z       }
2026-06-04T00:09:18.2686483Z     },
2026-06-04T00:09:18.2686552Z     {
2026-06-04T00:09:18.2686634Z       "id": "REQ-MSG-3",
2026-06-04T00:09:18.2687002Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-04T00:09:18.2687096Z       "requiredStages": [
2026-06-04T00:09:18.2687175Z         "impl",
2026-06-04T00:09:18.2687246Z         "unit",
2026-06-04T00:09:18.2687323Z         "int"
2026-06-04T00:09:18.2687392Z       ],
2026-06-04T00:09:18.2687470Z       "stages": {
2026-06-04T00:09:18.2687543Z         "doc": {
2026-06-04T00:09:18.2687631Z           "complete": false,
2026-06-04T00:09:18.2687706Z           "evidence": []
2026-06-04T00:09:18.2687780Z         },
2026-06-04T00:09:18.2687854Z         "impl": {
2026-06-04T00:09:18.2687931Z           "complete": true,
2026-06-04T00:09:18.2688012Z           "evidence": [
2026-06-04T00:09:18.2688081Z             {
2026-06-04T00:09:18.2688193Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T00:09:18.2688269Z               "line": 19
2026-06-04T00:09:18.2688449Z             },
2026-06-04T00:09:18.2688525Z             {
2026-06-04T00:09:18.2688626Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:09:18.2688767Z               "line": 21
2026-06-04T00:09:18.2688836Z             },
2026-06-04T00:09:18.2688910Z             {
2026-06-04T00:09:18.2689006Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:09:18.2689085Z               "line": 48
2026-06-04T00:09:18.2689161Z             },
2026-06-04T00:09:18.2689230Z             {
2026-06-04T00:09:18.2689329Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:09:18.2689406Z               "line": 106
2026-06-04T00:09:18.2689482Z             }
2026-06-04T00:09:18.2689556Z           ]
2026-06-04T00:09:18.2689625Z         },
2026-06-04T00:09:18.2689701Z         "int": {
2026-06-04T00:09:18.2689778Z           "complete": true,
2026-06-04T00:09:18.2689860Z           "evidence": [
2026-06-04T00:09:18.2689928Z             {
2026-06-04T00:09:18.2690063Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T00:09:18.2690142Z               "line": 10
2026-06-04T00:09:18.2690216Z             },
2026-06-04T00:09:18.2690289Z             {
2026-06-04T00:09:18.2690406Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T00:09:18.2690484Z               "line": 66
2026-06-04T00:09:18.2690554Z             }
2026-06-04T00:09:18.2690630Z           ]
2026-06-04T00:09:18.2690704Z         },
2026-06-04T00:09:18.2690865Z         "unit": {
2026-06-04T00:09:18.2690950Z           "complete": true,
2026-06-04T00:09:18.2691024Z           "evidence": [
2026-06-04T00:09:18.2691100Z             {
2026-06-04T00:09:18.2691198Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:09:18.2691277Z               "line": 160
2026-06-04T00:09:18.2691354Z             },
2026-06-04T00:09:18.2691425Z             {
2026-06-04T00:09:18.2691524Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:09:18.2691600Z               "line": 179
2026-06-04T00:09:18.2691677Z             },
2026-06-04T00:09:18.2691745Z             {
2026-06-04T00:09:18.2691844Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:09:18.2691926Z               "line": 198
2026-06-04T00:09:18.2691994Z             }
2026-06-04T00:09:18.2692067Z           ]
2026-06-04T00:09:18.2692135Z         }
2026-06-04T00:09:18.2692211Z       }
2026-06-04T00:09:18.2692279Z     },
2026-06-04T00:09:18.2692353Z     {
2026-06-04T00:09:18.2692435Z       "id": "REQ-NET-1",
2026-06-04T00:09:18.2692607Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-04T00:09:18.2692692Z       "requiredStages": [
2026-06-04T00:09:18.2692764Z         "impl",
2026-06-04T00:09:18.2692839Z         "unit"
2026-06-04T00:09:18.2692907Z       ],
2026-06-04T00:09:18.2692987Z       "stages": {
2026-06-04T00:09:18.2693064Z         "doc": {
2026-06-04T00:09:18.2693144Z           "complete": false,
2026-06-04T00:09:18.2693226Z           "evidence": []
2026-06-04T00:09:18.2693297Z         },
2026-06-04T00:09:18.2693378Z         "impl": {
2026-06-04T00:09:18.2693455Z           "complete": true,
2026-06-04T00:09:18.2693538Z           "evidence": [
2026-06-04T00:09:18.2693612Z             {
2026-06-04T00:09:18.2693728Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2693807Z               "line": 64
2026-06-04T00:09:18.2693877Z             },
2026-06-04T00:09:18.2693951Z             {
2026-06-04T00:09:18.2694057Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2694137Z               "line": 121
2026-06-04T00:09:18.2694212Z             },
2026-06-04T00:09:18.2694279Z             {
2026-06-04T00:09:18.2694388Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2694462Z               "line": 137
2026-06-04T00:09:18.2694538Z             },
2026-06-04T00:09:18.2694607Z             {
2026-06-04T00:09:18.2694713Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2694897Z               "line": 152
2026-06-04T00:09:18.2694969Z             },
2026-06-04T00:09:18.2695045Z             {
2026-06-04T00:09:18.2695233Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2695314Z               "line": 206
2026-06-04T00:09:18.2695388Z             },
2026-06-04T00:09:18.2697680Z             {
2026-06-04T00:09:18.2697819Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2697902Z               "line": 237
2026-06-04T00:09:18.2697976Z             },
2026-06-04T00:09:18.2698047Z             {
2026-06-04T00:09:18.2698163Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2698238Z               "line": 243
2026-06-04T00:09:18.2698313Z             },
2026-06-04T00:09:18.2698389Z             {
2026-06-04T00:09:18.2698495Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2698574Z               "line": 259
2026-06-04T00:09:18.2698643Z             }
2026-06-04T00:09:18.2698718Z           ]
2026-06-04T00:09:18.2698792Z         },
2026-06-04T00:09:18.2698870Z         "int": {
2026-06-04T00:09:18.2698959Z           "complete": false,
2026-06-04T00:09:18.2699036Z           "evidence": []
2026-06-04T00:09:18.2699110Z         },
2026-06-04T00:09:18.2699181Z         "unit": {
2026-06-04T00:09:18.2699268Z           "complete": true,
2026-06-04T00:09:18.2699345Z           "evidence": [
2026-06-04T00:09:18.2699421Z             {
2026-06-04T00:09:18.2699530Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2699604Z               "line": 320
2026-06-04T00:09:18.2699683Z             },
2026-06-04T00:09:18.2699751Z             {
2026-06-04T00:09:18.2699858Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2699931Z               "line": 334
2026-06-04T00:09:18.2700008Z             },
2026-06-04T00:09:18.2700081Z             {
2026-06-04T00:09:18.2700182Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2700264Z               "line": 353
2026-06-04T00:09:18.2700334Z             }
2026-06-04T00:09:18.2700409Z           ]
2026-06-04T00:09:18.2700480Z         }
2026-06-04T00:09:18.2700557Z       }
2026-06-04T00:09:18.2700629Z     },
2026-06-04T00:09:18.2700698Z     {
2026-06-04T00:09:18.2700987Z       "id": "REQ-NET-2",
2026-06-04T00:09:18.2701198Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-04T00:09:18.2701281Z       "requiredStages": [
2026-06-04T00:09:18.2701352Z         "impl"
2026-06-04T00:09:18.2701427Z       ],
2026-06-04T00:09:18.2701504Z       "stages": {
2026-06-04T00:09:18.2701574Z         "doc": {
2026-06-04T00:09:18.2701658Z           "complete": false,
2026-06-04T00:09:18.2701735Z           "evidence": []
2026-06-04T00:09:18.2701809Z         },
2026-06-04T00:09:18.2701881Z         "impl": {
2026-06-04T00:09:18.2701964Z           "complete": true,
2026-06-04T00:09:18.2702042Z           "evidence": [
2026-06-04T00:09:18.2702113Z             {
2026-06-04T00:09:18.2702230Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:09:18.2702303Z               "line": 40
2026-06-04T00:09:18.2702381Z             },
2026-06-04T00:09:18.2702449Z             {
2026-06-04T00:09:18.2702560Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2702637Z               "line": 38
2026-06-04T00:09:18.2702707Z             },
2026-06-04T00:09:18.2702782Z             {
2026-06-04T00:09:18.2702885Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2702963Z               "line": 48
2026-06-04T00:09:18.2703033Z             },
2026-06-04T00:09:18.2703109Z             {
2026-06-04T00:09:18.2703217Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2703291Z               "line": 121
2026-06-04T00:09:18.2703365Z             },
2026-06-04T00:09:18.2703434Z             {
2026-06-04T00:09:18.2703541Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2703764Z               "line": 137
2026-06-04T00:09:18.2703841Z             },
2026-06-04T00:09:18.2703913Z             {
2026-06-04T00:09:18.2704108Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:09:18.2704191Z               "line": 152
2026-06-04T00:09:18.2704261Z             }
2026-06-04T00:09:18.2704337Z           ]
2026-06-04T00:09:18.2704410Z         },
2026-06-04T00:09:18.2704487Z         "int": {
2026-06-04T00:09:18.2704568Z           "complete": false,
2026-06-04T00:09:18.2704646Z           "evidence": []
2026-06-04T00:09:18.2704721Z         },
2026-06-04T00:09:18.2704793Z         "unit": {
2026-06-04T00:09:18.2704877Z           "complete": true,
2026-06-04T00:09:18.2704952Z           "evidence": [
2026-06-04T00:09:18.2705029Z             {
2026-06-04T00:09:18.2705138Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:09:18.2705215Z               "line": 229
2026-06-04T00:09:18.2705292Z             }
2026-06-04T00:09:18.2705360Z           ]
2026-06-04T00:09:18.2705439Z         }
2026-06-04T00:09:18.2705515Z       }
2026-06-04T00:09:18.2705588Z     },
2026-06-04T00:09:18.2705683Z     {
2026-06-04T00:09:18.2705767Z       "id": "REQ-NET-3",
2026-06-04T00:09:18.2705941Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-04T00:09:18.2706027Z       "requiredStages": [],
2026-06-04T00:09:18.2706107Z       "stages": {
2026-06-04T00:09:18.2706176Z         "doc": {
2026-06-04T00:09:18.2706262Z           "complete": false,
2026-06-04T00:09:18.2706357Z           "evidence": []
2026-06-04T00:09:18.2706427Z         },
2026-06-04T00:09:18.2706502Z         "impl": {
2026-06-04T00:09:18.2706579Z           "complete": false,
2026-06-04T00:09:18.2706661Z           "evidence": []
2026-06-04T00:09:18.2706729Z         },
2026-06-04T00:09:18.2706805Z         "int": {
2026-06-04T00:09:18.2706888Z           "complete": false,
2026-06-04T00:09:18.2706963Z           "evidence": []
2026-06-04T00:09:18.2707037Z         },
2026-06-04T00:09:18.2707107Z         "unit": {
2026-06-04T00:09:18.2707194Z           "complete": false,
2026-06-04T00:09:18.2707269Z           "evidence": []
2026-06-04T00:09:18.2707352Z         }
2026-06-04T00:09:18.2707426Z       }
2026-06-04T00:09:18.2707495Z     },
2026-06-04T00:09:18.2707569Z     {
2026-06-04T00:09:18.2707656Z       "id": "REQ-NODE-IDENTITY",
2026-06-04T00:09:18.2707880Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-04T00:09:18.2707961Z       "requiredStages": [
2026-06-04T00:09:18.2708040Z         "impl",
2026-06-04T00:09:18.2708114Z         "unit"
2026-06-04T00:09:18.2708183Z       ],
2026-06-04T00:09:18.2708259Z       "stages": {
2026-06-04T00:09:18.2708329Z         "doc": {
2026-06-04T00:09:18.2708411Z           "complete": false,
2026-06-04T00:09:18.2708487Z           "evidence": []
2026-06-04T00:09:18.2708563Z         },
2026-06-04T00:09:18.2708640Z         "impl": {
2026-06-04T00:09:18.2708716Z           "complete": true,
2026-06-04T00:09:18.2708797Z           "evidence": [
2026-06-04T00:09:18.2708870Z             {
2026-06-04T00:09:18.2708994Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:09:18.2709075Z               "line": 60
2026-06-04T00:09:18.2709150Z             },
2026-06-04T00:09:18.2709224Z             {
2026-06-04T00:09:18.2709329Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:09:18.2709408Z               "line": 68
2026-06-04T00:09:18.2709480Z             },
2026-06-04T00:09:18.2709553Z             {
2026-06-04T00:09:18.2709652Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:09:18.2709732Z               "line": 86
2026-06-04T00:09:18.2709807Z             },
2026-06-04T00:09:18.2709876Z             {
2026-06-04T00:09:18.2709981Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:09:18.2710053Z               "line": 120
2026-06-04T00:09:18.2710128Z             },
2026-06-04T00:09:18.2710198Z             {
2026-06-04T00:09:18.2710392Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:09:18.2710476Z               "line": 127
2026-06-04T00:09:18.2710548Z             },
2026-06-04T00:09:18.2710684Z             {
2026-06-04T00:09:18.2710885Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:09:18.2710969Z               "line": 143
2026-06-04T00:09:18.2711038Z             },
2026-06-04T00:09:18.2711116Z             {
2026-06-04T00:09:18.2711230Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T00:09:18.2711306Z               "line": 16
2026-06-04T00:09:18.2711381Z             }
2026-06-04T00:09:18.2711449Z           ]
2026-06-04T00:09:18.2711525Z         },
2026-06-04T00:09:18.2711601Z         "int": {
2026-06-04T00:09:18.2711689Z           "complete": false,
2026-06-04T00:09:18.2711771Z           "evidence": []
2026-06-04T00:09:18.2711843Z         },
2026-06-04T00:09:18.2711919Z         "unit": {
2026-06-04T00:09:18.2711998Z           "complete": true,
2026-06-04T00:09:18.2712082Z           "evidence": [
2026-06-04T00:09:18.2712155Z             {
2026-06-04T00:09:18.2712266Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:09:18.2712347Z               "line": 199
2026-06-04T00:09:18.2712417Z             },
2026-06-04T00:09:18.2712490Z             {
2026-06-04T00:09:18.2712591Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:09:18.2712671Z               "line": 218
2026-06-04T00:09:18.2712739Z             },
2026-06-04T00:09:18.2712814Z             {
2026-06-04T00:09:18.2712919Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:09:18.2712994Z               "line": 232
2026-06-04T00:09:18.2713071Z             },
2026-06-04T00:09:18.2713141Z             {
2026-06-04T00:09:18.2713245Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:09:18.2713325Z               "line": 248
2026-06-04T00:09:18.2713395Z             },
2026-06-04T00:09:18.2713469Z             {
2026-06-04T00:09:18.2713569Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T00:09:18.2713653Z               "line": 107
2026-06-04T00:09:18.2713723Z             },
2026-06-04T00:09:18.2713801Z             {
2026-06-04T00:09:18.2713903Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T00:09:18.2713979Z               "line": 123
2026-06-04T00:09:18.2714053Z             },
2026-06-04T00:09:18.2714122Z             {
2026-06-04T00:09:18.2714224Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T00:09:18.2714296Z               "line": 135
2026-06-04T00:09:18.2714371Z             }
2026-06-04T00:09:18.2714447Z           ]
2026-06-04T00:09:18.2714515Z         }
2026-06-04T00:09:18.2714590Z       }
2026-06-04T00:09:18.2714660Z     },
2026-06-04T00:09:18.2714733Z     {
2026-06-04T00:09:18.2714815Z       "id": "REQ-NOTIF-1",
2026-06-04T00:09:18.2715179Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-04T00:09:18.2715265Z       "requiredStages": [],
2026-06-04T00:09:18.2715341Z       "stages": {
2026-06-04T00:09:18.2715421Z         "doc": {
2026-06-04T00:09:18.2715506Z           "complete": false,
2026-06-04T00:09:18.2715588Z           "evidence": []
2026-06-04T00:09:18.2715658Z         },
2026-06-04T00:09:18.2715736Z         "impl": {
2026-06-04T00:09:18.2715824Z           "complete": false,
2026-06-04T00:09:18.2715898Z           "evidence": []
2026-06-04T00:09:18.2715973Z         },
2026-06-04T00:09:18.2716044Z         "int": {
2026-06-04T00:09:18.2716127Z           "complete": false,
2026-06-04T00:09:18.2716201Z           "evidence": []
2026-06-04T00:09:18.2716280Z         },
2026-06-04T00:09:18.2716353Z         "unit": {
2026-06-04T00:09:18.2716429Z           "complete": false,
2026-06-04T00:09:18.2716509Z           "evidence": []
2026-06-04T00:09:18.2716579Z         }
2026-06-04T00:09:18.2716654Z       }
2026-06-04T00:09:18.2716720Z     },
2026-06-04T00:09:18.2716794Z     {
2026-06-04T00:09:18.2716877Z       "id": "REQ-NOTIF-2",
2026-06-04T00:09:18.2717231Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-04T00:09:18.2717404Z       "requiredStages": [],
2026-06-04T00:09:18.2717477Z       "stages": {
2026-06-04T00:09:18.2717555Z         "doc": {
2026-06-04T00:09:18.2717636Z           "complete": false,
2026-06-04T00:09:18.2717717Z           "evidence": []
2026-06-04T00:09:18.2717792Z         },
2026-06-04T00:09:18.2717863Z         "impl": {
2026-06-04T00:09:18.2717945Z           "complete": false,
2026-06-04T00:09:18.2718020Z           "evidence": []
2026-06-04T00:09:18.2718094Z         },
2026-06-04T00:09:18.2718164Z         "int": {
2026-06-04T00:09:18.2718247Z           "complete": false,
2026-06-04T00:09:18.2718325Z           "evidence": []
2026-06-04T00:09:18.2718392Z         },
2026-06-04T00:09:18.2718468Z         "unit": {
2026-06-04T00:09:18.2718543Z           "complete": false,
2026-06-04T00:09:18.2718627Z           "evidence": []
2026-06-04T00:09:18.2718701Z         }
2026-06-04T00:09:18.2718781Z       }
2026-06-04T00:09:18.2718856Z     },
2026-06-04T00:09:18.2718923Z     {
2026-06-04T00:09:18.2719013Z       "id": "REQ-PAIR-1",
2026-06-04T00:09:18.2719120Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-04T00:09:18.2719205Z       "requiredStages": [
2026-06-04T00:09:18.2719277Z         "impl",
2026-06-04T00:09:18.2719351Z         "unit"
2026-06-04T00:09:18.2719424Z       ],
2026-06-04T00:09:18.2719497Z       "stages": {
2026-06-04T00:09:18.2719574Z         "doc": {
2026-06-04T00:09:18.2719653Z           "complete": false,
2026-06-04T00:09:18.2719735Z           "evidence": []
2026-06-04T00:09:18.2719806Z         },
2026-06-04T00:09:18.2719885Z         "impl": {
2026-06-04T00:09:18.2719968Z           "complete": true,
2026-06-04T00:09:18.2720045Z           "evidence": [
2026-06-04T00:09:18.2720119Z             {
2026-06-04T00:09:18.2720248Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2720329Z               "line": 27
2026-06-04T00:09:18.2720404Z             },
2026-06-04T00:09:18.2720479Z             {
2026-06-04T00:09:18.2720598Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2720675Z               "line": 88
2026-06-04T00:09:18.2720838Z             },
2026-06-04T00:09:18.2720908Z             {
2026-06-04T00:09:18.2721025Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2721101Z               "line": 110
2026-06-04T00:09:18.2721177Z             },
2026-06-04T00:09:18.2721251Z             {
2026-06-04T00:09:18.2721362Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2721440Z               "line": 153
2026-06-04T00:09:18.2721509Z             },
2026-06-04T00:09:18.2721586Z             {
2026-06-04T00:09:18.2721694Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2721773Z               "line": 182
2026-06-04T00:09:18.2721846Z             },
2026-06-04T00:09:18.2721915Z             {
2026-06-04T00:09:18.2722037Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:09:18.2722114Z               "line": 29
2026-06-04T00:09:18.2722189Z             },
2026-06-04T00:09:18.2722258Z             {
2026-06-04T00:09:18.2722395Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:09:18.2722473Z               "line": 31
2026-06-04T00:09:18.2722541Z             },
2026-06-04T00:09:18.2722615Z             {
2026-06-04T00:09:18.2722725Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2722804Z               "line": 40
2026-06-04T00:09:18.2722878Z             },
2026-06-04T00:09:18.2722949Z             {
2026-06-04T00:09:18.2723062Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2723137Z               "line": 131
2026-06-04T00:09:18.2723210Z             },
2026-06-04T00:09:18.2723278Z             {
2026-06-04T00:09:18.2723390Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2723571Z               "line": 306
2026-06-04T00:09:18.2723641Z             }
2026-06-04T00:09:18.2723799Z           ]
2026-06-04T00:09:18.2723868Z         },
2026-06-04T00:09:18.2723946Z         "int": {
2026-06-04T00:09:18.2724028Z           "complete": false,
2026-06-04T00:09:18.2724110Z           "evidence": []
2026-06-04T00:09:18.2724184Z         },
2026-06-04T00:09:18.2724256Z         "unit": {
2026-06-04T00:09:18.2724337Z           "complete": true,
2026-06-04T00:09:18.2724411Z           "evidence": [
2026-06-04T00:09:18.2724485Z             {
2026-06-04T00:09:18.2724604Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2724685Z               "line": 236
2026-06-04T00:09:18.2724759Z             },
2026-06-04T00:09:18.2724827Z             {
2026-06-04T00:09:18.2724944Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:09:18.2725020Z               "line": 349
2026-06-04T00:09:18.2725095Z             },
2026-06-04T00:09:18.2725165Z             {
2026-06-04T00:09:18.2725280Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:09:18.2725363Z               "line": 194
2026-06-04T00:09:18.2725432Z             },
2026-06-04T00:09:18.2725505Z             {
2026-06-04T00:09:18.2725614Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:09:18.2725694Z               "line": 216
2026-06-04T00:09:18.2725774Z             },
2026-06-04T00:09:18.2725845Z             {
2026-06-04T00:09:18.2725956Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:09:18.2726029Z               "line": 230
2026-06-04T00:09:18.2726102Z             },
2026-06-04T00:09:18.2726168Z             {
2026-06-04T00:09:18.2726281Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:09:18.2726359Z               "line": 242
2026-06-04T00:09:18.2726426Z             },
2026-06-04T00:09:18.2726497Z             {
2026-06-04T00:09:18.2726606Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:09:18.2726683Z               "line": 256
2026-06-04T00:09:18.2726756Z             },
2026-06-04T00:09:18.2726831Z             {
2026-06-04T00:09:18.2726941Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:09:18.2727013Z               "line": 270
2026-06-04T00:09:18.2727086Z             },
2026-06-04T00:09:18.2727151Z             {
2026-06-04T00:09:18.2727265Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:09:18.2727338Z               "line": 277
2026-06-04T00:09:18.2727409Z             },
2026-06-04T00:09:18.2727479Z             {
2026-06-04T00:09:18.2727584Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:09:18.2727665Z               "line": 295
2026-06-04T00:09:18.2727733Z             },
2026-06-04T00:09:18.2727808Z             {
2026-06-04T00:09:18.2727913Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2727993Z               "line": 696
2026-06-04T00:09:18.2728066Z             },
2026-06-04T00:09:18.2728132Z             {
2026-06-04T00:09:18.2728244Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2728316Z               "line": 757
2026-06-04T00:09:18.2728390Z             },
2026-06-04T00:09:18.2728456Z             {
2026-06-04T00:09:18.2728567Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2728643Z               "line": 814
2026-06-04T00:09:18.2728711Z             },
2026-06-04T00:09:18.2728782Z             {
2026-06-04T00:09:18.2728887Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2728965Z               "line": 868
2026-06-04T00:09:18.2729034Z             },
2026-06-04T00:09:18.2729100Z             {
2026-06-04T00:09:18.2729206Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2729278Z               "line": 920
2026-06-04T00:09:18.2729352Z             },
2026-06-04T00:09:18.2729497Z             {
2026-06-04T00:09:18.2729609Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2729752Z               "line": 1084
2026-06-04T00:09:18.2729821Z             }
2026-06-04T00:09:18.2729893Z           ]
2026-06-04T00:09:18.2729962Z         }
2026-06-04T00:09:18.2730035Z       }
2026-06-04T00:09:18.2730104Z     },
2026-06-04T00:09:18.2730178Z     {
2026-06-04T00:09:18.2730265Z       "id": "REQ-PAIR-2",
2026-06-04T00:09:18.2730392Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-04T00:09:18.2730476Z       "requiredStages": [
2026-06-04T00:09:18.2730546Z         "impl",
2026-06-04T00:09:18.2730620Z         "unit"
2026-06-04T00:09:18.2730689Z       ],
2026-06-04T00:09:18.2730854Z       "stages": {
2026-06-04T00:09:18.2730928Z         "doc": {
2026-06-04T00:09:18.2731006Z           "complete": false,
2026-06-04T00:09:18.2731088Z           "evidence": []
2026-06-04T00:09:18.2731155Z         },
2026-06-04T00:09:18.2731232Z         "impl": {
2026-06-04T00:09:18.2731315Z           "complete": true,
2026-06-04T00:09:18.2731395Z           "evidence": [
2026-06-04T00:09:18.2731470Z             {
2026-06-04T00:09:18.2731578Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2731654Z               "line": 42
2026-06-04T00:09:18.2731723Z             },
2026-06-04T00:09:18.2731795Z             {
2026-06-04T00:09:18.2731894Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2731971Z               "line": 151
2026-06-04T00:09:18.2732043Z             },
2026-06-04T00:09:18.2732112Z             {
2026-06-04T00:09:18.2732211Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2732284Z               "line": 171
2026-06-04T00:09:18.2732356Z             },
2026-06-04T00:09:18.2732423Z             {
2026-06-04T00:09:18.2732522Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2732598Z               "line": 209
2026-06-04T00:09:18.2732667Z             },
2026-06-04T00:09:18.2732742Z             {
2026-06-04T00:09:18.2732835Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2732916Z               "line": 232
2026-06-04T00:09:18.2732982Z             }
2026-06-04T00:09:18.2733055Z           ]
2026-06-04T00:09:18.2733127Z         },
2026-06-04T00:09:18.2733197Z         "int": {
2026-06-04T00:09:18.2733278Z           "complete": false,
2026-06-04T00:09:18.2733352Z           "evidence": []
2026-06-04T00:09:18.2733423Z         },
2026-06-04T00:09:18.2733492Z         "unit": {
2026-06-04T00:09:18.2733575Z           "complete": true,
2026-06-04T00:09:18.2733655Z           "evidence": [
2026-06-04T00:09:18.2733722Z             {
2026-06-04T00:09:18.2733818Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2733893Z               "line": 253
2026-06-04T00:09:18.2733962Z             },
2026-06-04T00:09:18.2734028Z             {
2026-06-04T00:09:18.2734127Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2734205Z               "line": 272
2026-06-04T00:09:18.2734274Z             },
2026-06-04T00:09:18.2734349Z             {
2026-06-04T00:09:18.2734444Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2734520Z               "line": 284
2026-06-04T00:09:18.2734590Z             },
2026-06-04T00:09:18.2734660Z             {
2026-06-04T00:09:18.2734755Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2734828Z               "line": 303
2026-06-04T00:09:18.2734899Z             },
2026-06-04T00:09:18.2734967Z             {
2026-06-04T00:09:18.2735068Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2735139Z               "line": 319
2026-06-04T00:09:18.2735214Z             },
2026-06-04T00:09:18.2735286Z             {
2026-06-04T00:09:18.2735382Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2735458Z               "line": 331
2026-06-04T00:09:18.2735528Z             },
2026-06-04T00:09:18.2735600Z             {
2026-06-04T00:09:18.2735801Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2736032Z               "line": 343
2026-06-04T00:09:18.2736106Z             },
2026-06-04T00:09:18.2736175Z             {
2026-06-04T00:09:18.2736276Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2736351Z               "line": 356
2026-06-04T00:09:18.2736425Z             },
2026-06-04T00:09:18.2736491Z             {
2026-06-04T00:09:18.2736593Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:09:18.2736670Z               "line": 370
2026-06-04T00:09:18.2736737Z             }
2026-06-04T00:09:18.2736811Z           ]
2026-06-04T00:09:18.2736879Z         }
2026-06-04T00:09:18.2736953Z       }
2026-06-04T00:09:18.2737024Z     },
2026-06-04T00:09:18.2737098Z     {
2026-06-04T00:09:18.2737181Z       "id": "REQ-PAIR-3",
2026-06-04T00:09:18.2737313Z       "title": "Fetch current pairing code from any paired node",
2026-06-04T00:09:18.2737397Z       "requiredStages": [
2026-06-04T00:09:18.2737470Z         "impl",
2026-06-04T00:09:18.2737546Z         "unit"
2026-06-04T00:09:18.2737614Z       ],
2026-06-04T00:09:18.2737691Z       "stages": {
2026-06-04T00:09:18.2737766Z         "doc": {
2026-06-04T00:09:18.2737845Z           "complete": false,
2026-06-04T00:09:18.2737925Z           "evidence": []
2026-06-04T00:09:18.2737995Z         },
2026-06-04T00:09:18.2738068Z         "impl": {
2026-06-04T00:09:18.2738145Z           "complete": true,
2026-06-04T00:09:18.2738222Z           "evidence": [
2026-06-04T00:09:18.2738292Z             {
2026-06-04T00:09:18.2738384Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2738462Z               "line": 464
2026-06-04T00:09:18.2738530Z             },
2026-06-04T00:09:18.2738604Z             {
2026-06-04T00:09:18.2738692Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2738770Z               "line": 500
2026-06-04T00:09:18.2738840Z             },
2026-06-04T00:09:18.2738908Z             {
2026-06-04T00:09:18.2738998Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2739070Z               "line": 560
2026-06-04T00:09:18.2739147Z             }
2026-06-04T00:09:18.2739215Z           ]
2026-06-04T00:09:18.2739290Z         },
2026-06-04T00:09:18.2739363Z         "int": {
2026-06-04T00:09:18.2739439Z           "complete": false,
2026-06-04T00:09:18.2739519Z           "evidence": []
2026-06-04T00:09:18.2739587Z         },
2026-06-04T00:09:18.2739661Z         "unit": {
2026-06-04T00:09:18.2739738Z           "complete": true,
2026-06-04T00:09:18.2739817Z           "evidence": [
2026-06-04T00:09:18.2739887Z             {
2026-06-04T00:09:18.2739972Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2740049Z               "line": 696
2026-06-04T00:09:18.2740118Z             },
2026-06-04T00:09:18.2740191Z             {
2026-06-04T00:09:18.2740277Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2740356Z               "line": 713
2026-06-04T00:09:18.2740426Z             },
2026-06-04T00:09:18.2740499Z             {
2026-06-04T00:09:18.2740587Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2740660Z               "line": 727
2026-06-04T00:09:18.2740731Z             },
2026-06-04T00:09:18.2740901Z             {
2026-06-04T00:09:18.2740992Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2741068Z               "line": 743
2026-06-04T00:09:18.2741136Z             },
2026-06-04T00:09:18.2741207Z             {
2026-06-04T00:09:18.2741291Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2741366Z               "line": 764
2026-06-04T00:09:18.2741438Z             },
2026-06-04T00:09:18.2741506Z             {
2026-06-04T00:09:18.2741596Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2741669Z               "line": 780
2026-06-04T00:09:18.2741742Z             },
2026-06-04T00:09:18.2741810Z             {
2026-06-04T00:09:18.2741899Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2742076Z               "line": 793
2026-06-04T00:09:18.2742147Z             },
2026-06-04T00:09:18.2742218Z             {
2026-06-04T00:09:18.2742389Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2742465Z               "line": 802
2026-06-04T00:09:18.2742532Z             }
2026-06-04T00:09:18.2742603Z           ]
2026-06-04T00:09:18.2742674Z         }
2026-06-04T00:09:18.2742744Z       }
2026-06-04T00:09:18.2742816Z     },
2026-06-04T00:09:18.2742883Z     {
2026-06-04T00:09:18.2742964Z       "id": "REQ-PAIR-4",
2026-06-04T00:09:18.2743065Z       "title": "Subnet naming on first pairing",
2026-06-04T00:09:18.2743149Z       "requiredStages": [
2026-06-04T00:09:18.2743223Z         "impl",
2026-06-04T00:09:18.2743318Z         "unit"
2026-06-04T00:09:18.2743389Z       ],
2026-06-04T00:09:18.2743460Z       "stages": {
2026-06-04T00:09:18.2743532Z         "doc": {
2026-06-04T00:09:18.2743610Z           "complete": false,
2026-06-04T00:09:18.2743690Z           "evidence": []
2026-06-04T00:09:18.2743756Z         },
2026-06-04T00:09:18.2743834Z         "impl": {
2026-06-04T00:09:18.2743913Z           "complete": true,
2026-06-04T00:09:18.2743990Z           "evidence": [
2026-06-04T00:09:18.2744060Z             {
2026-06-04T00:09:18.2744165Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:09:18.2744240Z               "line": 154
2026-06-04T00:09:18.2744310Z             }
2026-06-04T00:09:18.2744379Z           ]
2026-06-04T00:09:18.2744451Z         },
2026-06-04T00:09:18.2744519Z         "int": {
2026-06-04T00:09:18.2744597Z           "complete": false,
2026-06-04T00:09:18.2744672Z           "evidence": []
2026-06-04T00:09:18.2744743Z         },
2026-06-04T00:09:18.2744813Z         "unit": {
2026-06-04T00:09:18.2744891Z           "complete": true,
2026-06-04T00:09:18.2744966Z           "evidence": [
2026-06-04T00:09:18.2745033Z             {
2026-06-04T00:09:18.2745148Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2745221Z               "line": 972
2026-06-04T00:09:18.2745299Z             }
2026-06-04T00:09:18.2745371Z           ]
2026-06-04T00:09:18.2745442Z         }
2026-06-04T00:09:18.2745514Z       }
2026-06-04T00:09:18.2745580Z     },
2026-06-04T00:09:18.2745649Z     {
2026-06-04T00:09:18.2745726Z       "id": "REQ-PAIR-5",
2026-06-04T00:09:18.2746030Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-04T00:09:18.2746112Z       "requiredStages": [
2026-06-04T00:09:18.2746185Z         "impl",
2026-06-04T00:09:18.2746258Z         "unit"
2026-06-04T00:09:18.2746325Z       ],
2026-06-04T00:09:18.2746400Z       "stages": {
2026-06-04T00:09:18.2746470Z         "doc": {
2026-06-04T00:09:18.2746554Z           "complete": false,
2026-06-04T00:09:18.2746634Z           "evidence": []
2026-06-04T00:09:18.2746701Z         },
2026-06-04T00:09:18.2746774Z         "impl": {
2026-06-04T00:09:18.2746851Z           "complete": true,
2026-06-04T00:09:18.2746930Z           "evidence": [
2026-06-04T00:09:18.2747001Z             {
2026-06-04T00:09:18.2747138Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:09:18.2747220Z               "line": 33
2026-06-04T00:09:18.2747289Z             },
2026-06-04T00:09:18.2747360Z             {
2026-06-04T00:09:18.2747482Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:09:18.2747562Z               "line": 45
2026-06-04T00:09:18.2747633Z             },
2026-06-04T00:09:18.2747705Z             {
2026-06-04T00:09:18.2747827Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:09:18.2747900Z               "line": 59
2026-06-04T00:09:18.2747975Z             },
2026-06-04T00:09:18.2748042Z             {
2026-06-04T00:09:18.2748158Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2748231Z               "line": 306
2026-06-04T00:09:18.2748302Z             }
2026-06-04T00:09:18.2748373Z           ]
2026-06-04T00:09:18.2748440Z         },
2026-06-04T00:09:18.2748648Z         "int": {
2026-06-04T00:09:18.2748727Z           "complete": false,
2026-06-04T00:09:18.2748869Z           "evidence": []
2026-06-04T00:09:18.2748940Z         },
2026-06-04T00:09:18.2749015Z         "unit": {
2026-06-04T00:09:18.2749094Z           "complete": true,
2026-06-04T00:09:18.2749166Z           "evidence": [
2026-06-04T00:09:18.2749238Z             {
2026-06-04T00:09:18.2749362Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:09:18.2749438Z               "line": 72
2026-06-04T00:09:18.2749505Z             },
2026-06-04T00:09:18.2749577Z             {
2026-06-04T00:09:18.2749701Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:09:18.2749775Z               "line": 82
2026-06-04T00:09:18.2749850Z             },
2026-06-04T00:09:18.2749917Z             {
2026-06-04T00:09:18.2750041Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:09:18.2750113Z               "line": 92
2026-06-04T00:09:18.2750189Z             },
2026-06-04T00:09:18.2750261Z             {
2026-06-04T00:09:18.2750380Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:09:18.2750459Z               "line": 102
2026-06-04T00:09:18.2750531Z             },
2026-06-04T00:09:18.2750604Z             {
2026-06-04T00:09:18.2750722Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:09:18.2750893Z               "line": 117
2026-06-04T00:09:18.2750967Z             },
2026-06-04T00:09:18.2751036Z             {
2026-06-04T00:09:18.2751150Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2751223Z               "line": 750
2026-06-04T00:09:18.2751296Z             },
2026-06-04T00:09:18.2751367Z             {
2026-06-04T00:09:18.2751473Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2751548Z               "line": 806
2026-06-04T00:09:18.2751616Z             },
2026-06-04T00:09:18.2751692Z             {
2026-06-04T00:09:18.2751799Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:09:18.2751880Z               "line": 1026
2026-06-04T00:09:18.2751951Z             }
2026-06-04T00:09:18.2752019Z           ]
2026-06-04T00:09:18.2752091Z         }
2026-06-04T00:09:18.2752159Z       }
2026-06-04T00:09:18.2752230Z     },
2026-06-04T00:09:18.2752297Z     {
2026-06-04T00:09:18.2752380Z       "id": "REQ-PAIR-6",
2026-06-04T00:09:18.2752637Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-04T00:09:18.2752717Z       "requiredStages": [
2026-06-04T00:09:18.2752797Z         "impl",
2026-06-04T00:09:18.2752868Z         "unit"
2026-06-04T00:09:18.2752944Z       ],
2026-06-04T00:09:18.2753016Z       "stages": {
2026-06-04T00:09:18.2753092Z         "doc": {
2026-06-04T00:09:18.2753173Z           "complete": false,
2026-06-04T00:09:18.2753248Z           "evidence": []
2026-06-04T00:09:18.2753322Z         },
2026-06-04T00:09:18.2753394Z         "impl": {
2026-06-04T00:09:18.2753476Z           "complete": true,
2026-06-04T00:09:18.2753553Z           "evidence": [
2026-06-04T00:09:18.2753627Z             {
2026-06-04T00:09:18.2753725Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2753799Z               "line": 500
2026-06-04T00:09:18.2753871Z             },
2026-06-04T00:09:18.2753940Z             {
2026-06-04T00:09:18.2754031Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2754105Z               "line": 560
2026-06-04T00:09:18.2754179Z             },
2026-06-04T00:09:18.2754249Z             {
2026-06-04T00:09:18.2754348Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T00:09:18.2754426Z               "line": 18
2026-06-04T00:09:18.2754495Z             },
2026-06-04T00:09:18.2754568Z             {
2026-06-04T00:09:18.2754662Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T00:09:18.2754742Z               "line": 49
2026-06-04T00:09:18.2754916Z             },
2026-06-04T00:09:18.2754987Z             {
2026-06-04T00:09:18.2755085Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T00:09:18.2755240Z               "line": 70
2026-06-04T00:09:18.2755313Z             }
2026-06-04T00:09:18.2755382Z           ]
2026-06-04T00:09:18.2755457Z         },
2026-06-04T00:09:18.2755532Z         "int": {
2026-06-04T00:09:18.2755610Z           "complete": false,
2026-06-04T00:09:18.2755690Z           "evidence": []
2026-06-04T00:09:18.2755759Z         },
2026-06-04T00:09:18.2755834Z         "unit": {
2026-06-04T00:09:18.2755914Z           "complete": true,
2026-06-04T00:09:18.2755992Z           "evidence": [
2026-06-04T00:09:18.2756066Z             {
2026-06-04T00:09:18.2756156Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2756233Z               "line": 815
2026-06-04T00:09:18.2756304Z             },
2026-06-04T00:09:18.2756378Z             {
2026-06-04T00:09:18.2756463Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2756545Z               "line": 832
2026-06-04T00:09:18.2756620Z             },
2026-06-04T00:09:18.2756692Z             {
2026-06-04T00:09:18.2756788Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T00:09:18.2756862Z               "line": 132
2026-06-04T00:09:18.2756934Z             },
2026-06-04T00:09:18.2757004Z             {
2026-06-04T00:09:18.2757103Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T00:09:18.2757178Z               "line": 141
2026-06-04T00:09:18.2757247Z             }
2026-06-04T00:09:18.2757318Z           ]
2026-06-04T00:09:18.2757386Z         }
2026-06-04T00:09:18.2757464Z       }
2026-06-04T00:09:18.2757532Z     },
2026-06-04T00:09:18.2757608Z     {
2026-06-04T00:09:18.2757690Z       "id": "REQ-PAIR-7",
2026-06-04T00:09:18.2757838Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-04T00:09:18.2757927Z       "requiredStages": [],
2026-06-04T00:09:18.2758000Z       "stages": {
2026-06-04T00:09:18.2758075Z         "doc": {
2026-06-04T00:09:18.2758156Z           "complete": false,
2026-06-04T00:09:18.2758238Z           "evidence": []
2026-06-04T00:09:18.2758313Z         },
2026-06-04T00:09:18.2758383Z         "impl": {
2026-06-04T00:09:18.2758466Z           "complete": false,
2026-06-04T00:09:18.2758543Z           "evidence": []
2026-06-04T00:09:18.2758618Z         },
2026-06-04T00:09:18.2758689Z         "int": {
2026-06-04T00:09:18.2758772Z           "complete": false,
2026-06-04T00:09:18.2758852Z           "evidence": []
2026-06-04T00:09:18.2758921Z         },
2026-06-04T00:09:18.2758996Z         "unit": {
2026-06-04T00:09:18.2759072Z           "complete": false,
2026-06-04T00:09:18.2759154Z           "evidence": []
2026-06-04T00:09:18.2759222Z         }
2026-06-04T00:09:18.2759297Z       }
2026-06-04T00:09:18.2759370Z     },
2026-06-04T00:09:18.2759437Z     {
2026-06-04T00:09:18.2759520Z       "id": "REQ-REACH-1",
2026-06-04T00:09:18.2759656Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-04T00:09:18.2759741Z       "requiredStages": [],
2026-06-04T00:09:18.2759812Z       "stages": {
2026-06-04T00:09:18.2759891Z         "doc": {
2026-06-04T00:09:18.2759972Z           "complete": false,
2026-06-04T00:09:18.2760048Z           "evidence": []
2026-06-04T00:09:18.2760122Z         },
2026-06-04T00:09:18.2760192Z         "impl": {
2026-06-04T00:09:18.2760274Z           "complete": false,
2026-06-04T00:09:18.2760348Z           "evidence": []
2026-06-04T00:09:18.2760422Z         },
2026-06-04T00:09:18.2760496Z         "int": {
2026-06-04T00:09:18.2760573Z           "complete": false,
2026-06-04T00:09:18.2760652Z           "evidence": []
2026-06-04T00:09:18.2760721Z         },
2026-06-04T00:09:18.2760884Z         "unit": {
2026-06-04T00:09:18.2760962Z           "complete": false,
2026-06-04T00:09:18.2761041Z           "evidence": []
2026-06-04T00:09:18.2761113Z         }
2026-06-04T00:09:18.2761181Z       }
2026-06-04T00:09:18.2761253Z     },
2026-06-04T00:09:18.2761322Z     {
2026-06-04T00:09:18.2761503Z       "id": "REQ-REACH-2",
2026-06-04T00:09:18.2761643Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-04T00:09:18.2761809Z       "requiredStages": [],
2026-06-04T00:09:18.2761884Z       "stages": {
2026-06-04T00:09:18.2761953Z         "doc": {
2026-06-04T00:09:18.2762034Z           "complete": false,
2026-06-04T00:09:18.2762109Z           "evidence": []
2026-06-04T00:09:18.2762181Z         },
2026-06-04T00:09:18.2762251Z         "impl": {
2026-06-04T00:09:18.2762334Z           "complete": false,
2026-06-04T00:09:18.2762415Z           "evidence": []
2026-06-04T00:09:18.2762484Z         },
2026-06-04T00:09:18.2762560Z         "int": {
2026-06-04T00:09:18.2762638Z           "complete": false,
2026-06-04T00:09:18.2762720Z           "evidence": []
2026-06-04T00:09:18.2762787Z         },
2026-06-04T00:09:18.2762863Z         "unit": {
2026-06-04T00:09:18.2762945Z           "complete": false,
2026-06-04T00:09:18.2763021Z           "evidence": []
2026-06-04T00:09:18.2763094Z         }
2026-06-04T00:09:18.2763165Z       }
2026-06-04T00:09:18.2763237Z     },
2026-06-04T00:09:18.2763307Z     {
2026-06-04T00:09:18.2763410Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-04T00:09:18.2763587Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-04T00:09:18.2763669Z       "requiredStages": [
2026-06-04T00:09:18.2763744Z         "impl",
2026-06-04T00:09:18.2763815Z         "unit"
2026-06-04T00:09:18.2763888Z       ],
2026-06-04T00:09:18.2763961Z       "stages": {
2026-06-04T00:09:18.2764035Z         "doc": {
2026-06-04T00:09:18.2764115Z           "complete": false,
2026-06-04T00:09:18.2764190Z           "evidence": []
2026-06-04T00:09:18.2764265Z         },
2026-06-04T00:09:18.2764334Z         "impl": {
2026-06-04T00:09:18.2764414Z           "complete": true,
2026-06-04T00:09:18.2764488Z           "evidence": [
2026-06-04T00:09:18.2764563Z             {
2026-06-04T00:09:18.2764673Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:09:18.2764749Z               "line": 18
2026-06-04T00:09:18.2764822Z             },
2026-06-04T00:09:18.2764890Z             {
2026-06-04T00:09:18.2764994Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:09:18.2765068Z               "line": 35
2026-06-04T00:09:18.2765142Z             },
2026-06-04T00:09:18.2765217Z             {
2026-06-04T00:09:18.2765316Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:09:18.2765394Z               "line": 65
2026-06-04T00:09:18.2765463Z             }
2026-06-04T00:09:18.2765537Z           ]
2026-06-04T00:09:18.2765606Z         },
2026-06-04T00:09:18.2765680Z         "int": {
2026-06-04T00:09:18.2765761Z           "complete": false,
2026-06-04T00:09:18.2765835Z           "evidence": []
2026-06-04T00:09:18.2765909Z         },
2026-06-04T00:09:18.2765980Z         "unit": {
2026-06-04T00:09:18.2766060Z           "complete": true,
2026-06-04T00:09:18.2766136Z           "evidence": [
2026-06-04T00:09:18.2766210Z             {
2026-06-04T00:09:18.2766313Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:09:18.2766389Z               "line": 170
2026-06-04T00:09:18.2766469Z             },
2026-06-04T00:09:18.2766540Z             {
2026-06-04T00:09:18.2766653Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:09:18.2766731Z               "line": 184
2026-06-04T00:09:18.2766806Z             },
2026-06-04T00:09:18.2766882Z             {
2026-06-04T00:09:18.2766984Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:09:18.2767061Z               "line": 193
2026-06-04T00:09:18.2767130Z             }
2026-06-04T00:09:18.2767202Z           ]
2026-06-04T00:09:18.2767269Z         }
2026-06-04T00:09:18.2767344Z       }
2026-06-04T00:09:18.2767420Z     },
2026-06-04T00:09:18.2767489Z     {
2026-06-04T00:09:18.2767581Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-04T00:09:18.2767715Z       "title": "Hostable endpoint-types capability declaration",
2026-06-04T00:09:18.2767802Z       "requiredStages": [
2026-06-04T00:09:18.2767956Z         "impl",
2026-06-04T00:09:18.2768033Z         "unit"
2026-06-04T00:09:18.2768105Z       ],
2026-06-04T00:09:18.2768243Z       "stages": {
2026-06-04T00:09:18.2768316Z         "doc": {
2026-06-04T00:09:18.2768397Z           "complete": false,
2026-06-04T00:09:18.2768478Z           "evidence": []
2026-06-04T00:09:18.2768547Z         },
2026-06-04T00:09:18.2768625Z         "impl": {
2026-06-04T00:09:18.2768707Z           "complete": true,
2026-06-04T00:09:18.2768784Z           "evidence": [
2026-06-04T00:09:18.2768857Z             {
2026-06-04T00:09:18.2768967Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2769045Z               "line": 186
2026-06-04T00:09:18.2769114Z             }
2026-06-04T00:09:18.2769190Z           ]
2026-06-04T00:09:18.2769264Z         },
2026-06-04T00:09:18.2769334Z         "int": {
2026-06-04T00:09:18.2769416Z           "complete": false,
2026-06-04T00:09:18.2769490Z           "evidence": []
2026-06-04T00:09:18.2769564Z         },
2026-06-04T00:09:18.2769637Z         "unit": {
2026-06-04T00:09:18.2769719Z           "complete": true,
2026-06-04T00:09:18.2769802Z           "evidence": [
2026-06-04T00:09:18.2769870Z             {
2026-06-04T00:09:18.2769975Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2770051Z               "line": 301
2026-06-04T00:09:18.2770125Z             }
2026-06-04T00:09:18.2770194Z           ]
2026-06-04T00:09:18.2770269Z         }
2026-06-04T00:09:18.2770345Z       }
2026-06-04T00:09:18.2770414Z     },
2026-06-04T00:09:18.2770488Z     {
2026-06-04T00:09:18.2770570Z       "id": "REQ-SEAM-HISTORY",
2026-06-04T00:09:18.2770830Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-04T00:09:18.2770911Z       "requiredStages": [
2026-06-04T00:09:18.2770988Z         "impl",
2026-06-04T00:09:18.2771063Z         "unit",
2026-06-04T00:09:18.2771134Z         "int"
2026-06-04T00:09:18.2771210Z       ],
2026-06-04T00:09:18.2771281Z       "stages": {
2026-06-04T00:09:18.2771361Z         "doc": {
2026-06-04T00:09:18.2771439Z           "complete": false,
2026-06-04T00:09:18.2771525Z           "evidence": []
2026-06-04T00:09:18.2771593Z         },
2026-06-04T00:09:18.2771671Z         "impl": {
2026-06-04T00:09:18.2771753Z           "complete": true,
2026-06-04T00:09:18.2771827Z           "evidence": [
2026-06-04T00:09:18.2771900Z             {
2026-06-04T00:09:18.2772002Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:09:18.2772079Z               "line": 24
2026-06-04T00:09:18.2772148Z             },
2026-06-04T00:09:18.2772223Z             {
2026-06-04T00:09:18.2772327Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:09:18.2772400Z               "line": 22
2026-06-04T00:09:18.2772475Z             }
2026-06-04T00:09:18.2772543Z           ]
2026-06-04T00:09:18.2772617Z         },
2026-06-04T00:09:18.2772687Z         "int": {
2026-06-04T00:09:18.2772770Z           "complete": true,
2026-06-04T00:09:18.2772850Z           "evidence": [
2026-06-04T00:09:18.2772921Z             {
2026-06-04T00:09:18.2773031Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:09:18.2773107Z               "line": 202
2026-06-04T00:09:18.2773181Z             }
2026-06-04T00:09:18.2773255Z           ]
2026-06-04T00:09:18.2773323Z         },
2026-06-04T00:09:18.2773399Z         "unit": {
2026-06-04T00:09:18.2773476Z           "complete": true,
2026-06-04T00:09:18.2773555Z           "evidence": [
2026-06-04T00:09:18.2773624Z             {
2026-06-04T00:09:18.2773724Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:09:18.2773803Z               "line": 163
2026-06-04T00:09:18.2773874Z             },
2026-06-04T00:09:18.2773949Z             {
2026-06-04T00:09:18.2774042Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:09:18.2774120Z               "line": 186
2026-06-04T00:09:18.2774189Z             },
2026-06-04T00:09:18.2774264Z             {
2026-06-04T00:09:18.2774467Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:09:18.2774543Z               "line": 195
2026-06-04T00:09:18.2774615Z             },
2026-06-04T00:09:18.2774764Z             {
2026-06-04T00:09:18.2774867Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:09:18.2774939Z               "line": 195
2026-06-04T00:09:18.2775014Z             },
2026-06-04T00:09:18.2775086Z             {
2026-06-04T00:09:18.2775186Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:09:18.2775264Z               "line": 209
2026-06-04T00:09:18.2775335Z             },
2026-06-04T00:09:18.2775409Z             {
2026-06-04T00:09:18.2775503Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:09:18.2775583Z               "line": 228
2026-06-04T00:09:18.2775656Z             },
2026-06-04T00:09:18.2775723Z             {
2026-06-04T00:09:18.2775824Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:09:18.2775897Z               "line": 248
2026-06-04T00:09:18.2775971Z             },
2026-06-04T00:09:18.2776042Z             {
2026-06-04T00:09:18.2776144Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:09:18.2776224Z               "line": 264
2026-06-04T00:09:18.2776292Z             },
2026-06-04T00:09:18.2776365Z             {
2026-06-04T00:09:18.2776468Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:09:18.2776550Z               "line": 279
2026-06-04T00:09:18.2776619Z             }
2026-06-04T00:09:18.2776693Z           ]
2026-06-04T00:09:18.2776766Z         }
2026-06-04T00:09:18.2776834Z       }
2026-06-04T00:09:18.2776909Z     },
2026-06-04T00:09:18.2776976Z     {
2026-06-04T00:09:18.2777064Z       "id": "REQ-SEAM-INJECT",
2026-06-04T00:09:18.2777216Z       "title": "inject-input methods configurable per activity-state",
2026-06-04T00:09:18.2777301Z       "requiredStages": [
2026-06-04T00:09:18.2777380Z         "impl",
2026-06-04T00:09:18.2777451Z         "unit"
2026-06-04T00:09:18.2777523Z       ],
2026-06-04T00:09:18.2777593Z       "stages": {
2026-06-04T00:09:18.2777671Z         "doc": {
2026-06-04T00:09:18.2777748Z           "complete": false,
2026-06-04T00:09:18.2777833Z           "evidence": []
2026-06-04T00:09:18.2777906Z         },
2026-06-04T00:09:18.2777978Z         "impl": {
2026-06-04T00:09:18.2778058Z           "complete": true,
2026-06-04T00:09:18.2778133Z           "evidence": [
2026-06-04T00:09:18.2778210Z             {
2026-06-04T00:09:18.2778308Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:09:18.2778387Z               "line": 19
2026-06-04T00:09:18.2778462Z             },
2026-06-04T00:09:18.2778530Z             {
2026-06-04T00:09:18.2778629Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:09:18.2778704Z               "line": 104
2026-06-04T00:09:18.2778778Z             }
2026-06-04T00:09:18.2778846Z           ]
2026-06-04T00:09:18.2778921Z         },
2026-06-04T00:09:18.2778994Z         "int": {
2026-06-04T00:09:18.2779073Z           "complete": false,
2026-06-04T00:09:18.2779153Z           "evidence": []
2026-06-04T00:09:18.2779221Z         },
2026-06-04T00:09:18.2779303Z         "unit": {
2026-06-04T00:09:18.2779384Z           "complete": true,
2026-06-04T00:09:18.2779464Z           "evidence": [
2026-06-04T00:09:18.2779536Z             {
2026-06-04T00:09:18.2779630Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:09:18.2779710Z               "line": 222
2026-06-04T00:09:18.2779778Z             },
2026-06-04T00:09:18.2779851Z             {
2026-06-04T00:09:18.2779949Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:09:18.2780029Z               "line": 236
2026-06-04T00:09:18.2780104Z             }
2026-06-04T00:09:18.2780172Z           ]
2026-06-04T00:09:18.2780248Z         }
2026-06-04T00:09:18.2780317Z       }
2026-06-04T00:09:18.2780389Z     },
2026-06-04T00:09:18.2780457Z     {
2026-06-04T00:09:18.2780550Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-04T00:09:18.2780676Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-04T00:09:18.2780945Z       "requiredStages": [
2026-06-04T00:09:18.2781025Z         "impl",
2026-06-04T00:09:18.2781184Z         "unit"
2026-06-04T00:09:18.2781259Z       ],
2026-06-04T00:09:18.2781332Z       "stages": {
2026-06-04T00:09:18.2781409Z         "doc": {
2026-06-04T00:09:18.2781489Z           "complete": false,
2026-06-04T00:09:18.2781565Z           "evidence": []
2026-06-04T00:09:18.2781637Z         },
2026-06-04T00:09:18.2781708Z         "impl": {
2026-06-04T00:09:18.2781791Z           "complete": true,
2026-06-04T00:09:18.2781864Z           "evidence": [
2026-06-04T00:09:18.2781938Z             {
2026-06-04T00:09:18.2782044Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2782120Z               "line": 18
2026-06-04T00:09:18.2782197Z             },
2026-06-04T00:09:18.2782264Z             {
2026-06-04T00:09:18.2782368Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2782440Z               "line": 257
2026-06-04T00:09:18.2782515Z             }
2026-06-04T00:09:18.2782594Z           ]
2026-06-04T00:09:18.2782662Z         },
2026-06-04T00:09:18.2782741Z         "int": {
2026-06-04T00:09:18.2782818Z           "complete": false,
2026-06-04T00:09:18.2782897Z           "evidence": []
2026-06-04T00:09:18.2782965Z         },
2026-06-04T00:09:18.2783044Z         "unit": {
2026-06-04T00:09:18.2783127Z           "complete": true,
2026-06-04T00:09:18.2783202Z           "evidence": [
2026-06-04T00:09:18.2783278Z             {
2026-06-04T00:09:18.2783375Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2783455Z               "line": 420
2026-06-04T00:09:18.2783524Z             },
2026-06-04T00:09:18.2783598Z             {
2026-06-04T00:09:18.2783697Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2783770Z               "line": 430
2026-06-04T00:09:18.2783843Z             }
2026-06-04T00:09:18.2783912Z           ]
2026-06-04T00:09:18.2783987Z         }
2026-06-04T00:09:18.2784054Z       }
2026-06-04T00:09:18.2784133Z     },
2026-06-04T00:09:18.2784205Z     {
2026-06-04T00:09:18.2784289Z       "id": "REQ-SEAM-PSYCHE",
2026-06-04T00:09:18.2784423Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-04T00:09:18.2784501Z       "requiredStages": [
2026-06-04T00:09:18.2784577Z         "impl",
2026-06-04T00:09:18.2784647Z         "unit",
2026-06-04T00:09:18.2784722Z         "int"
2026-06-04T00:09:18.2784796Z       ],
2026-06-04T00:09:18.2784867Z       "stages": {
2026-06-04T00:09:18.2784945Z         "doc": {
2026-06-04T00:09:18.2785023Z           "complete": false,
2026-06-04T00:09:18.2785108Z           "evidence": []
2026-06-04T00:09:18.2785178Z         },
2026-06-04T00:09:18.2785257Z         "impl": {
2026-06-04T00:09:18.2785340Z           "complete": true,
2026-06-04T00:09:18.2785414Z           "evidence": [
2026-06-04T00:09:18.2785487Z             {
2026-06-04T00:09:18.2785582Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T00:09:18.2785660Z               "line": 19
2026-06-04T00:09:18.2785737Z             },
2026-06-04T00:09:18.2785811Z             {
2026-06-04T00:09:18.2785918Z               "path": "crates/spt/src/api/live.rs",
2026-06-04T00:09:18.2785994Z               "line": 12
2026-06-04T00:09:18.2786068Z             },
2026-06-04T00:09:18.2786135Z             {
2026-06-04T00:09:18.2786240Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2786314Z               "line": 164
2026-06-04T00:09:18.2786387Z             }
2026-06-04T00:09:18.2786462Z           ]
2026-06-04T00:09:18.2786529Z         },
2026-06-04T00:09:18.2786605Z         "int": {
2026-06-04T00:09:18.2786682Z           "complete": true,
2026-06-04T00:09:18.2786762Z           "evidence": [
2026-06-04T00:09:18.2786831Z             {
2026-06-04T00:09:18.2786946Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:09:18.2787022Z               "line": 201
2026-06-04T00:09:18.2787093Z             }
2026-06-04T00:09:18.2787170Z           ]
2026-06-04T00:09:18.2787240Z         },
2026-06-04T00:09:18.2787390Z         "unit": {
2026-06-04T00:09:18.2787470Z           "complete": true,
2026-06-04T00:09:18.2787642Z           "evidence": [
2026-06-04T00:09:18.2787718Z             {
2026-06-04T00:09:18.2787821Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T00:09:18.2787904Z               "line": 161
2026-06-04T00:09:18.2787974Z             },
2026-06-04T00:09:18.2788047Z             {
2026-06-04T00:09:18.2788146Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T00:09:18.2788226Z               "line": 168
2026-06-04T00:09:18.2788301Z             },
2026-06-04T00:09:18.2788372Z             {
2026-06-04T00:09:18.2788475Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T00:09:18.2788548Z               "line": 191
2026-06-04T00:09:18.2788624Z             },
2026-06-04T00:09:18.2788691Z             {
2026-06-04T00:09:18.2788797Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-04T00:09:18.2788875Z               "line": 105
2026-06-04T00:09:18.2788947Z             },
2026-06-04T00:09:18.2789024Z             {
2026-06-04T00:09:18.2789123Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-04T00:09:18.2789202Z               "line": 122
2026-06-04T00:09:18.2789273Z             },
2026-06-04T00:09:18.2789349Z             {
2026-06-04T00:09:18.2789449Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-04T00:09:18.2789522Z               "line": 136
2026-06-04T00:09:18.2789598Z             }
2026-06-04T00:09:18.2789668Z           ]
2026-06-04T00:09:18.2789754Z         }
2026-06-04T00:09:18.2789823Z       }
2026-06-04T00:09:18.2789899Z     },
2026-06-04T00:09:18.2789977Z     {
2026-06-04T00:09:18.2790063Z       "id": "REQ-SEAM-RESUME",
2026-06-04T00:09:18.2790240Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-04T00:09:18.2790320Z       "requiredStages": [
2026-06-04T00:09:18.2790395Z         "impl",
2026-06-04T00:09:18.2790467Z         "unit"
2026-06-04T00:09:18.2790544Z       ],
2026-06-04T00:09:18.2790623Z       "stages": {
2026-06-04T00:09:18.2790693Z         "doc": {
2026-06-04T00:09:18.2790865Z           "complete": false,
2026-06-04T00:09:18.2790941Z           "evidence": []
2026-06-04T00:09:18.2791016Z         },
2026-06-04T00:09:18.2791088Z         "impl": {
2026-06-04T00:09:18.2791173Z           "complete": true,
2026-06-04T00:09:18.2791252Z           "evidence": [
2026-06-04T00:09:18.2791323Z             {
2026-06-04T00:09:18.2791427Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T00:09:18.2791500Z               "line": 19
2026-06-04T00:09:18.2791576Z             }
2026-06-04T00:09:18.2791645Z           ]
2026-06-04T00:09:18.2791719Z         },
2026-06-04T00:09:18.2791793Z         "int": {
2026-06-04T00:09:18.2791871Z           "complete": false,
2026-06-04T00:09:18.2791954Z           "evidence": []
2026-06-04T00:09:18.2792022Z         },
2026-06-04T00:09:18.2792100Z         "unit": {
2026-06-04T00:09:18.2792178Z           "complete": true,
2026-06-04T00:09:18.2792259Z           "evidence": [
2026-06-04T00:09:18.2792334Z             {
2026-06-04T00:09:18.2792436Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T00:09:18.2792515Z               "line": 145
2026-06-04T00:09:18.2792587Z             },
2026-06-04T00:09:18.2792662Z             {
2026-06-04T00:09:18.2792761Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T00:09:18.2792841Z               "line": 164
2026-06-04T00:09:18.2792916Z             },
2026-06-04T00:09:18.2792984Z             {
2026-06-04T00:09:18.2793090Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T00:09:18.2793165Z               "line": 182
2026-06-04T00:09:18.2793241Z             },
2026-06-04T00:09:18.2793308Z             {
2026-06-04T00:09:18.2793406Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T00:09:18.2793484Z               "line": 206
2026-06-04T00:09:18.2793554Z             }
2026-06-04T00:09:18.2793629Z           ]
2026-06-04T00:09:18.2793698Z         }
2026-06-04T00:09:18.2793875Z       }
2026-06-04T00:09:18.2793946Z     },
2026-06-04T00:09:18.2794021Z     {
2026-06-04T00:09:18.2794189Z       "id": "REQ-SEAM-SPAWN",
2026-06-04T00:09:18.2794279Z       "title": "spawn-session seam",
2026-06-04T00:09:18.2794362Z       "requiredStages": [
2026-06-04T00:09:18.2794432Z         "impl",
2026-06-04T00:09:18.2794507Z         "unit"
2026-06-04T00:09:18.2794575Z       ],
2026-06-04T00:09:18.2794652Z       "stages": {
2026-06-04T00:09:18.2794727Z         "doc": {
2026-06-04T00:09:18.2794804Z           "complete": false,
2026-06-04T00:09:18.2794885Z           "evidence": []
2026-06-04T00:09:18.2794954Z         },
2026-06-04T00:09:18.2795031Z         "impl": {
2026-06-04T00:09:18.2795110Z           "complete": true,
2026-06-04T00:09:18.2795190Z           "evidence": [
2026-06-04T00:09:18.2795263Z             {
2026-06-04T00:09:18.2795375Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:09:18.2795455Z               "line": 20
2026-06-04T00:09:18.2795527Z             }
2026-06-04T00:09:18.2795601Z           ]
2026-06-04T00:09:18.2795670Z         },
2026-06-04T00:09:18.2795748Z         "int": {
2026-06-04T00:09:18.2795830Z           "complete": false,
2026-06-04T00:09:18.2795905Z           "evidence": []
2026-06-04T00:09:18.2795978Z         },
2026-06-04T00:09:18.2796050Z         "unit": {
2026-06-04T00:09:18.2796133Z           "complete": true,
2026-06-04T00:09:18.2796207Z           "evidence": [
2026-06-04T00:09:18.2796284Z             {
2026-06-04T00:09:18.2796392Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:09:18.2796465Z               "line": 397
2026-06-04T00:09:18.2796540Z             },
2026-06-04T00:09:18.2796608Z             {
2026-06-04T00:09:18.2796717Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:09:18.2796791Z               "line": 404
2026-06-04T00:09:18.2796868Z             },
2026-06-04T00:09:18.2796942Z             {
2026-06-04T00:09:18.2797046Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:09:18.2797129Z               "line": 414
2026-06-04T00:09:18.2797197Z             },
2026-06-04T00:09:18.2797274Z             {
2026-06-04T00:09:18.2797375Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:09:18.2797455Z               "line": 420
2026-06-04T00:09:18.2797527Z             },
2026-06-04T00:09:18.2797596Z             {
2026-06-04T00:09:18.2797702Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:09:18.2797775Z               "line": 440
2026-06-04T00:09:18.2797851Z             },
2026-06-04T00:09:18.2797923Z             {
2026-06-04T00:09:18.2798023Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:09:18.2798100Z               "line": 473
2026-06-04T00:09:18.2798168Z             }
2026-06-04T00:09:18.2798246Z           ]
2026-06-04T00:09:18.2798314Z         }
2026-06-04T00:09:18.2798390Z       }
2026-06-04T00:09:18.2798462Z     },
2026-06-04T00:09:18.2798532Z     {
2026-06-04T00:09:18.2798621Z       "id": "REQ-SEAM-UPDATE",
2026-06-04T00:09:18.2798769Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-04T00:09:18.2798857Z       "requiredStages": [
2026-06-04T00:09:18.2798929Z         "impl",
2026-06-04T00:09:18.2799005Z         "unit"
2026-06-04T00:09:18.2799076Z       ],
2026-06-04T00:09:18.2799148Z       "stages": {
2026-06-04T00:09:18.2799223Z         "doc": {
2026-06-04T00:09:18.2799301Z           "complete": false,
2026-06-04T00:09:18.2799382Z           "evidence": []
2026-06-04T00:09:18.2799451Z         },
2026-06-04T00:09:18.2799527Z         "impl": {
2026-06-04T00:09:18.2799613Z           "complete": true,
2026-06-04T00:09:18.2799686Z           "evidence": [
2026-06-04T00:09:18.2799759Z             {
2026-06-04T00:09:18.2799883Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:09:18.2799963Z               "line": 28
2026-06-04T00:09:18.2800032Z             },
2026-06-04T00:09:18.2800111Z             {
2026-06-04T00:09:18.2800323Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:09:18.2800399Z               "line": 83
2026-06-04T00:09:18.2800534Z             }
2026-06-04T00:09:18.2800603Z           ]
2026-06-04T00:09:18.2800679Z         },
2026-06-04T00:09:18.2800836Z         "int": {
2026-06-04T00:09:18.2800917Z           "complete": false,
2026-06-04T00:09:18.2800998Z           "evidence": []
2026-06-04T00:09:18.2801067Z         },
2026-06-04T00:09:18.2801144Z         "unit": {
2026-06-04T00:09:18.2801224Z           "complete": true,
2026-06-04T00:09:18.2801303Z           "evidence": [
2026-06-04T00:09:18.2801374Z             {
2026-06-04T00:09:18.2801497Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:09:18.2801578Z               "line": 248
2026-06-04T00:09:18.2801647Z             },
2026-06-04T00:09:18.2801720Z             {
2026-06-04T00:09:18.2801831Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:09:18.2801912Z               "line": 259
2026-06-04T00:09:18.2801985Z             }
2026-06-04T00:09:18.2802060Z           ]
2026-06-04T00:09:18.2802137Z         }
2026-06-04T00:09:18.2802206Z       }
2026-06-04T00:09:18.2802279Z     },
2026-06-04T00:09:18.2802348Z     {
2026-06-04T00:09:18.2802431Z       "id": "REQ-SEC-1",
2026-06-04T00:09:18.2802806Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-04T00:09:18.2802893Z       "requiredStages": [],
2026-06-04T00:09:18.2802969Z       "stages": {
2026-06-04T00:09:18.2803038Z         "doc": {
2026-06-04T00:09:18.2803121Z           "complete": false,
2026-06-04T00:09:18.2803196Z           "evidence": []
2026-06-04T00:09:18.2803270Z         },
2026-06-04T00:09:18.2803342Z         "impl": {
2026-06-04T00:09:18.2803424Z           "complete": false,
2026-06-04T00:09:18.2803505Z           "evidence": []
2026-06-04T00:09:18.2803574Z         },
2026-06-04T00:09:18.2803648Z         "int": {
2026-06-04T00:09:18.2803727Z           "complete": false,
2026-06-04T00:09:18.2803808Z           "evidence": []
2026-06-04T00:09:18.2803879Z         },
2026-06-04T00:09:18.2803957Z         "unit": {
2026-06-04T00:09:18.2804037Z           "complete": false,
2026-06-04T00:09:18.2804113Z           "evidence": []
2026-06-04T00:09:18.2804191Z         }
2026-06-04T00:09:18.2804260Z       }
2026-06-04T00:09:18.2804333Z     },
2026-06-04T00:09:18.2804403Z     {
2026-06-04T00:09:18.2804491Z       "id": "REQ-START-1",
2026-06-04T00:09:18.2804672Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-04T00:09:18.2804753Z       "requiredStages": [
2026-06-04T00:09:18.2804829Z         "impl",
2026-06-04T00:09:18.2804900Z         "unit"
2026-06-04T00:09:18.2804972Z       ],
2026-06-04T00:09:18.2805044Z       "stages": {
2026-06-04T00:09:18.2805120Z         "doc": {
2026-06-04T00:09:18.2805201Z           "complete": false,
2026-06-04T00:09:18.2805275Z           "evidence": []
2026-06-04T00:09:18.2805348Z         },
2026-06-04T00:09:18.2805421Z         "impl": {
2026-06-04T00:09:18.2805503Z           "complete": true,
2026-06-04T00:09:18.2805580Z           "evidence": [
2026-06-04T00:09:18.2805653Z             {
2026-06-04T00:09:18.2805759Z               "path": "crates/spt-store/src/seed.rs",
2026-06-04T00:09:18.2805833Z               "line": 16
2026-06-04T00:09:18.2805908Z             }
2026-06-04T00:09:18.2805977Z           ]
2026-06-04T00:09:18.2806049Z         },
2026-06-04T00:09:18.2806125Z         "int": {
2026-06-04T00:09:18.2806209Z           "complete": false,
2026-06-04T00:09:18.2806287Z           "evidence": []
2026-06-04T00:09:18.2806354Z         },
2026-06-04T00:09:18.2808512Z         "unit": {
2026-06-04T00:09:18.2808604Z           "complete": true,
2026-06-04T00:09:18.2808689Z           "evidence": [
2026-06-04T00:09:18.2808758Z             {
2026-06-04T00:09:18.2808871Z               "path": "crates/spt-store/src/seed.rs",
2026-06-04T00:09:18.2808946Z               "line": 43
2026-06-04T00:09:18.2809166Z             },
2026-06-04T00:09:18.2809239Z             {
2026-06-04T00:09:18.2809425Z               "path": "crates/spt-store/src/seed.rs",
2026-06-04T00:09:18.2809506Z               "line": 59
2026-06-04T00:09:18.2809574Z             }
2026-06-04T00:09:18.2809648Z           ]
2026-06-04T00:09:18.2809719Z         }
2026-06-04T00:09:18.2809795Z       }
2026-06-04T00:09:18.2809868Z     },
2026-06-04T00:09:18.2809937Z     {
2026-06-04T00:09:18.2810023Z       "id": "REQ-START-2",
2026-06-04T00:09:18.2810159Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-04T00:09:18.2810246Z       "requiredStages": [
2026-06-04T00:09:18.2810316Z         "impl",
2026-06-04T00:09:18.2810393Z         "unit",
2026-06-04T00:09:18.2810467Z         "int"
2026-06-04T00:09:18.2810537Z       ],
2026-06-04T00:09:18.2810612Z       "stages": {
2026-06-04T00:09:18.2810682Z         "doc": {
2026-06-04T00:09:18.2810897Z           "complete": false,
2026-06-04T00:09:18.2810975Z           "evidence": []
2026-06-04T00:09:18.2811053Z         },
2026-06-04T00:09:18.2811130Z         "impl": {
2026-06-04T00:09:18.2811211Z           "complete": true,
2026-06-04T00:09:18.2811291Z           "evidence": [
2026-06-04T00:09:18.2811362Z             {
2026-06-04T00:09:18.2811473Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2811546Z               "line": 16
2026-06-04T00:09:18.2811624Z             },
2026-06-04T00:09:18.2811699Z             {
2026-06-04T00:09:18.2811798Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2811876Z               "line": 94
2026-06-04T00:09:18.2811947Z             },
2026-06-04T00:09:18.2812021Z             {
2026-06-04T00:09:18.2812118Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2812200Z               "line": 163
2026-06-04T00:09:18.2812273Z             }
2026-06-04T00:09:18.2812342Z           ]
2026-06-04T00:09:18.2812415Z         },
2026-06-04T00:09:18.2812486Z         "int": {
2026-06-04T00:09:18.2812571Z           "complete": true,
2026-06-04T00:09:18.2812646Z           "evidence": [
2026-06-04T00:09:18.2812723Z             {
2026-06-04T00:09:18.2812836Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:09:18.2812909Z               "line": 150
2026-06-04T00:09:18.2812982Z             }
2026-06-04T00:09:18.2813051Z           ]
2026-06-04T00:09:18.2813126Z         },
2026-06-04T00:09:18.2813197Z         "unit": {
2026-06-04T00:09:18.2813278Z           "complete": true,
2026-06-04T00:09:18.2813354Z           "evidence": [
2026-06-04T00:09:18.2813423Z             {
2026-06-04T00:09:18.2813526Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2813601Z               "line": 354
2026-06-04T00:09:18.2813679Z             },
2026-06-04T00:09:18.2813748Z             {
2026-06-04T00:09:18.2813852Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2813930Z               "line": 387
2026-06-04T00:09:18.2813999Z             }
2026-06-04T00:09:18.2814074Z           ]
2026-06-04T00:09:18.2814143Z         }
2026-06-04T00:09:18.2814216Z       }
2026-06-04T00:09:18.2814289Z     },
2026-06-04T00:09:18.2814364Z     {
2026-06-04T00:09:18.2814445Z       "id": "REQ-START-3",
2026-06-04T00:09:18.2814606Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-04T00:09:18.2814690Z       "requiredStages": [
2026-06-04T00:09:18.2814764Z         "impl",
2026-06-04T00:09:18.2814840Z         "unit",
2026-06-04T00:09:18.2814909Z         "int"
2026-06-04T00:09:18.2814985Z       ],
2026-06-04T00:09:18.2815062Z       "stages": {
2026-06-04T00:09:18.2815133Z         "doc": {
2026-06-04T00:09:18.2815216Z           "complete": false,
2026-06-04T00:09:18.2815292Z           "evidence": []
2026-06-04T00:09:18.2815364Z         },
2026-06-04T00:09:18.2815434Z         "impl": {
2026-06-04T00:09:18.2815518Z           "complete": true,
2026-06-04T00:09:18.2815598Z           "evidence": [
2026-06-04T00:09:18.2815666Z             {
2026-06-04T00:09:18.2815892Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T00:09:18.2815969Z               "line": 23
2026-06-04T00:09:18.2816129Z             },
2026-06-04T00:09:18.2816199Z             {
2026-06-04T00:09:18.2816307Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T00:09:18.2816385Z               "line": 167
2026-06-04T00:09:18.2816454Z             },
2026-06-04T00:09:18.2816529Z             {
2026-06-04T00:09:18.2816630Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T00:09:18.2816710Z               "line": 180
2026-06-04T00:09:18.2816778Z             },
2026-06-04T00:09:18.2816852Z             {
2026-06-04T00:09:18.2816953Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2817027Z               "line": 17
2026-06-04T00:09:18.2817100Z             },
2026-06-04T00:09:18.2817167Z             {
2026-06-04T00:09:18.2817267Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2817341Z               "line": 43
2026-06-04T00:09:18.2817420Z             },
2026-06-04T00:09:18.2817493Z             {
2026-06-04T00:09:18.2817591Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2817669Z               "line": 95
2026-06-04T00:09:18.2817739Z             }
2026-06-04T00:09:18.2817815Z           ]
2026-06-04T00:09:18.2817884Z         },
2026-06-04T00:09:18.2817959Z         "int": {
2026-06-04T00:09:18.2818040Z           "complete": true,
2026-06-04T00:09:18.2818115Z           "evidence": [
2026-06-04T00:09:18.2818189Z             {
2026-06-04T00:09:18.2818290Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:09:18.2818368Z               "line": 316
2026-06-04T00:09:18.2818437Z             }
2026-06-04T00:09:18.2818512Z           ]
2026-06-04T00:09:18.2818585Z         },
2026-06-04T00:09:18.2818655Z         "unit": {
2026-06-04T00:09:18.2818736Z           "complete": true,
2026-06-04T00:09:18.2818813Z           "evidence": [
2026-06-04T00:09:18.2818887Z             {
2026-06-04T00:09:18.2818991Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T00:09:18.2819072Z               "line": 245
2026-06-04T00:09:18.2819145Z             },
2026-06-04T00:09:18.2819215Z             {
2026-06-04T00:09:18.2819322Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T00:09:18.2819395Z               "line": 263
2026-06-04T00:09:18.2819475Z             },
2026-06-04T00:09:18.2819554Z             {
2026-06-04T00:09:18.2819665Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T00:09:18.2819745Z               "line": 273
2026-06-04T00:09:18.2819815Z             },
2026-06-04T00:09:18.2819891Z             {
2026-06-04T00:09:18.2819985Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2820065Z               "line": 355
2026-06-04T00:09:18.2820138Z             },
2026-06-04T00:09:18.2820207Z             {
2026-06-04T00:09:18.2820308Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2820385Z               "line": 388
2026-06-04T00:09:18.2820459Z             },
2026-06-04T00:09:18.2820526Z             {
2026-06-04T00:09:18.2820630Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:09:18.2820710Z               "line": 396
2026-06-04T00:09:18.2820871Z             }
2026-06-04T00:09:18.2820945Z           ]
2026-06-04T00:09:18.2821014Z         }
2026-06-04T00:09:18.2821089Z       }
2026-06-04T00:09:18.2821160Z     },
2026-06-04T00:09:18.2821233Z     {
2026-06-04T00:09:18.2821322Z       "id": "REQ-START-4",
2026-06-04T00:09:18.2821475Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-04T00:09:18.2821567Z       "requiredStages": [
2026-06-04T00:09:18.2821642Z         "impl",
2026-06-04T00:09:18.2821713Z         "unit"
2026-06-04T00:09:18.2821781Z       ],
2026-06-04T00:09:18.2821858Z       "stages": {
2026-06-04T00:09:18.2821933Z         "doc": {
2026-06-04T00:09:18.2822015Z           "complete": false,
2026-06-04T00:09:18.2822099Z           "evidence": []
2026-06-04T00:09:18.2822277Z         },
2026-06-04T00:09:18.2822357Z         "impl": {
2026-06-04T00:09:18.2822522Z           "complete": true,
2026-06-04T00:09:18.2822607Z           "evidence": [
2026-06-04T00:09:18.2822681Z             {
2026-06-04T00:09:18.2822794Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2822874Z               "line": 173
2026-06-04T00:09:18.2822945Z             }
2026-06-04T00:09:18.2823021Z           ]
2026-06-04T00:09:18.2823090Z         },
2026-06-04T00:09:18.2823167Z         "int": {
2026-06-04T00:09:18.2823249Z           "complete": false,
2026-06-04T00:09:18.2823325Z           "evidence": []
2026-06-04T00:09:18.2823397Z         },
2026-06-04T00:09:18.2823468Z         "unit": {
2026-06-04T00:09:18.2823549Z           "complete": true,
2026-06-04T00:09:18.2823625Z           "evidence": [
2026-06-04T00:09:18.2823698Z             {
2026-06-04T00:09:18.2823804Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:09:18.2823883Z               "line": 314
2026-06-04T00:09:18.2823958Z             }
2026-06-04T00:09:18.2824027Z           ]
2026-06-04T00:09:18.2824103Z         }
2026-06-04T00:09:18.2824171Z       }
2026-06-04T00:09:18.2824244Z     },
2026-06-04T00:09:18.2824310Z     {
2026-06-04T00:09:18.2824396Z       "id": "REQ-STORE-1",
2026-06-04T00:09:18.2825308Z       "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-04T00:09:18.2825393Z       "requiredStages": [],
2026-06-04T00:09:18.2825472Z       "stages": {
2026-06-04T00:09:18.2825549Z         "doc": {
2026-06-04T00:09:18.2825629Z           "complete": false,
2026-06-04T00:09:18.2825709Z           "evidence": []
2026-06-04T00:09:18.2825776Z         },
2026-06-04T00:09:18.2825853Z         "impl": {
2026-06-04T00:09:18.2825933Z           "complete": false,
2026-06-04T00:09:18.2826015Z           "evidence": []
2026-06-04T00:09:18.2826092Z         },
2026-06-04T00:09:18.2826162Z         "int": {
2026-06-04T00:09:18.2826245Z           "complete": false,
2026-06-04T00:09:18.2826320Z           "evidence": []
2026-06-04T00:09:18.2826395Z         },
2026-06-04T00:09:18.2826464Z         "unit": {
2026-06-04T00:09:18.2826545Z           "complete": false,
2026-06-04T00:09:18.2826623Z           "evidence": []
2026-06-04T00:09:18.2826690Z         }
2026-06-04T00:09:18.2826763Z       }
2026-06-04T00:09:18.2826831Z     },
2026-06-04T00:09:18.2826904Z     {
2026-06-04T00:09:18.2826980Z       "id": "REQ-TERM-1",
2026-06-04T00:09:18.2827152Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-04T00:09:18.2827236Z       "requiredStages": [
2026-06-04T00:09:18.2827306Z         "impl",
2026-06-04T00:09:18.2827378Z         "unit"
2026-06-04T00:09:18.2827446Z       ],
2026-06-04T00:09:18.2827523Z       "stages": {
2026-06-04T00:09:18.2827596Z         "doc": {
2026-06-04T00:09:18.2827680Z           "complete": false,
2026-06-04T00:09:18.2827759Z           "evidence": []
2026-06-04T00:09:18.2827830Z         },
2026-06-04T00:09:18.2827904Z         "impl": {
2026-06-04T00:09:18.2827982Z           "complete": true,
2026-06-04T00:09:18.2828062Z           "evidence": [
2026-06-04T00:09:18.2828132Z             {
2026-06-04T00:09:18.2828241Z               "path": "crates/spt-term/src/pty.rs",
2026-06-04T00:09:18.2828319Z               "line": 61
2026-06-04T00:09:18.2828387Z             },
2026-06-04T00:09:18.2828462Z             {
2026-06-04T00:09:18.2828557Z               "path": "crates/spt-term/src/pty.rs",
2026-06-04T00:09:18.2828637Z               "line": 169
2026-06-04T00:09:18.2828705Z             },
2026-06-04T00:09:18.2828778Z             {
2026-06-04T00:09:18.2828887Z               "path": "crates/spt-term/src/surface.rs",
2026-06-04T00:09:18.2828960Z               "line": 95
2026-06-04T00:09:18.2829034Z             }
2026-06-04T00:09:18.2829185Z           ]
2026-06-04T00:09:18.2829263Z         },
2026-06-04T00:09:18.2829398Z         "int": {
2026-06-04T00:09:18.2829484Z           "complete": false,
2026-06-04T00:09:18.2829564Z           "evidence": []
2026-06-04T00:09:18.2829632Z         },
2026-06-04T00:09:18.2829709Z         "unit": {
2026-06-04T00:09:18.2829787Z           "complete": true,
2026-06-04T00:09:18.2829870Z           "evidence": [
2026-06-04T00:09:18.2829939Z             {
2026-06-04T00:09:18.2830054Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-04T00:09:18.2830133Z               "line": 28
2026-06-04T00:09:18.2830201Z             },
2026-06-04T00:09:18.2830274Z             {
2026-06-04T00:09:18.2830377Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-04T00:09:18.2830456Z               "line": 60
2026-06-04T00:09:18.2830524Z             }
2026-06-04T00:09:18.2830599Z           ]
2026-06-04T00:09:18.2830671Z         }
2026-06-04T00:09:18.2830826Z       }
2026-06-04T00:09:18.2830902Z     },
2026-06-04T00:09:18.2830969Z     {
2026-06-04T00:09:18.2831050Z       "id": "REQ-TERM-2",
2026-06-04T00:09:18.2831222Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-04T00:09:18.2831314Z       "requiredStages": [
2026-06-04T00:09:18.2831391Z         "impl",
2026-06-04T00:09:18.2831464Z         "unit"
2026-06-04T00:09:18.2831545Z       ],
2026-06-04T00:09:18.2831620Z       "stages": {
2026-06-04T00:09:18.2831695Z         "doc": {
2026-06-04T00:09:18.2831775Z           "complete": false,
2026-06-04T00:09:18.2831858Z           "evidence": []
2026-06-04T00:09:18.2831931Z         },
2026-06-04T00:09:18.2832003Z         "impl": {
2026-06-04T00:09:18.2832085Z           "complete": true,
2026-06-04T00:09:18.2832160Z           "evidence": [
2026-06-04T00:09:18.2832236Z             {
2026-06-04T00:09:18.2832337Z               "path": "crates/spt-term/src/surface.rs",
2026-06-04T00:09:18.2832418Z               "line": 112
2026-06-04T00:09:18.2832489Z             },
2026-06-04T00:09:18.2832562Z             {
2026-06-04T00:09:18.2832665Z               "path": "crates/spt-term/src/surface.rs",
2026-06-04T00:09:18.2832744Z               "line": 122
2026-06-04T00:09:18.2832817Z             }
2026-06-04T00:09:18.2832885Z           ]
2026-06-04T00:09:18.2832959Z         },
2026-06-04T00:09:18.2833032Z         "int": {
2026-06-04T00:09:18.2833109Z           "complete": false,
2026-06-04T00:09:18.2833203Z           "evidence": []
2026-06-04T00:09:18.2833273Z         },
2026-06-04T00:09:18.2833359Z         "unit": {
2026-06-04T00:09:18.2833437Z           "complete": true,
2026-06-04T00:09:18.2833520Z           "evidence": [
2026-06-04T00:09:18.2833600Z             {
2026-06-04T00:09:18.2833708Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-04T00:09:18.2833786Z               "line": 46
2026-06-04T00:09:18.2833853Z             },
2026-06-04T00:09:18.2833926Z             {
2026-06-04T00:09:18.2834025Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-04T00:09:18.2834107Z               "line": 71
2026-06-04T00:09:18.2834179Z             }
2026-06-04T00:09:18.2834250Z           ]
2026-06-04T00:09:18.2834322Z         }
2026-06-04T00:09:18.2834392Z       }
2026-06-04T00:09:18.2834465Z     },
2026-06-04T00:09:18.2834532Z     {
2026-06-04T00:09:18.2834619Z       "id": "REQ-TERM-3",
2026-06-04T00:09:18.2834753Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-04T00:09:18.2834831Z       "requiredStages": [
2026-06-04T00:09:18.2834906Z         "impl",
2026-06-04T00:09:18.2834976Z         "unit"
2026-06-04T00:09:18.2835050Z       ],
2026-06-04T00:09:18.2835121Z       "stages": {
2026-06-04T00:09:18.2835198Z         "doc": {
2026-06-04T00:09:18.2835280Z           "complete": false,
2026-06-04T00:09:18.2835355Z           "evidence": []
2026-06-04T00:09:18.2835428Z         },
2026-06-04T00:09:18.2835498Z         "impl": {
2026-06-04T00:09:18.2835583Z           "complete": true,
2026-06-04T00:09:18.2835657Z           "evidence": [
2026-06-04T00:09:18.2835840Z             {
2026-06-04T00:09:18.2835949Z               "path": "crates/spt-term/src/stream.rs",
2026-06-04T00:09:18.2836108Z               "line": 71
2026-06-04T00:09:18.2836184Z             }
2026-06-04T00:09:18.2836252Z           ]
2026-06-04T00:09:18.2836325Z         },
2026-06-04T00:09:18.2836394Z         "int": {
2026-06-04T00:09:18.2836481Z           "complete": false,
2026-06-04T00:09:18.2836561Z           "evidence": []
2026-06-04T00:09:18.2836628Z         },
2026-06-04T00:09:18.2836703Z         "unit": {
2026-06-04T00:09:18.2836777Z           "complete": true,
2026-06-04T00:09:18.2836857Z           "evidence": [
2026-06-04T00:09:18.2836925Z             {
2026-06-04T00:09:18.2837029Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-04T00:09:18.2837104Z               "line": 37
2026-06-04T00:09:18.2837171Z             },
2026-06-04T00:09:18.2837244Z             {
2026-06-04T00:09:18.2837343Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-04T00:09:18.2837424Z               "line": 67
2026-06-04T00:09:18.2837493Z             }
2026-06-04T00:09:18.2837569Z           ]
2026-06-04T00:09:18.2837641Z         }
2026-06-04T00:09:18.2837711Z       }
2026-06-04T00:09:18.2837780Z     },
2026-06-04T00:09:18.2837849Z     {
2026-06-04T00:09:18.2837927Z       "id": "REQ-TERM-4",
2026-06-04T00:09:18.2838271Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-04T00:09:18.2838353Z       "requiredStages": [
2026-06-04T00:09:18.2838429Z         "impl",
2026-06-04T00:09:18.2838501Z         "unit",
2026-06-04T00:09:18.2838574Z         "int"
2026-06-04T00:09:18.2838641Z       ],
2026-06-04T00:09:18.2838717Z       "stages": {
2026-06-04T00:09:18.2838786Z         "doc": {
2026-06-04T00:09:18.2838865Z           "complete": true,
2026-06-04T00:09:18.2838945Z           "evidence": [
2026-06-04T00:09:18.2839013Z             {
2026-06-04T00:09:18.2839105Z               "path": "docs/MANIFEST.md",
2026-06-04T00:09:18.2839180Z               "line": 106
2026-06-04T00:09:18.2839254Z             }
2026-06-04T00:09:18.2839325Z           ]
2026-06-04T00:09:18.2839398Z         },
2026-06-04T00:09:18.2839473Z         "impl": {
2026-06-04T00:09:18.2839549Z           "complete": true,
2026-06-04T00:09:18.2839628Z           "evidence": [
2026-06-04T00:09:18.2839697Z             {
2026-06-04T00:09:18.2839801Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:09:18.2839877Z               "line": 337
2026-06-04T00:09:18.2839945Z             },
2026-06-04T00:09:18.2840017Z             {
2026-06-04T00:09:18.2840116Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:09:18.2840194Z               "line": 41
2026-06-04T00:09:18.2840265Z             },
2026-06-04T00:09:18.2840336Z             {
2026-06-04T00:09:18.2840438Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:09:18.2840510Z               "line": 91
2026-06-04T00:09:18.2840584Z             },
2026-06-04T00:09:18.2840651Z             {
2026-06-04T00:09:18.2840837Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:09:18.2840913Z               "line": 152
2026-06-04T00:09:18.2840987Z             },
2026-06-04T00:09:18.2841060Z             {
2026-06-04T00:09:18.2841159Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:09:18.2841237Z               "line": 212
2026-06-04T00:09:18.2841333Z             },
2026-06-04T00:09:18.2841403Z             {
2026-06-04T00:09:18.2841512Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:09:18.2841589Z               "line": 20
2026-06-04T00:09:18.2841659Z             },
2026-06-04T00:09:18.2841728Z             {
2026-06-04T00:09:18.2841836Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:09:18.2841910Z               "line": 212
2026-06-04T00:09:18.2841981Z             },
2026-06-04T00:09:18.2842048Z             {
2026-06-04T00:09:18.2842289Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:09:18.2842366Z               "line": 226
2026-06-04T00:09:18.2842518Z             },
2026-06-04T00:09:18.2842593Z             {
2026-06-04T00:09:18.2842699Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2842777Z               "line": 574
2026-06-04T00:09:18.2842845Z             },
2026-06-04T00:09:18.2842918Z             {
2026-06-04T00:09:18.2843020Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:09:18.2843094Z               "line": 157
2026-06-04T00:09:18.2843163Z             },
2026-06-04T00:09:18.2843230Z             {
2026-06-04T00:09:18.2843331Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:09:18.2843404Z               "line": 199
2026-06-04T00:09:18.2843476Z             },
2026-06-04T00:09:18.2843546Z             {
2026-06-04T00:09:18.2843639Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:09:18.2843717Z               "line": 226
2026-06-04T00:09:18.2843788Z             },
2026-06-04T00:09:18.2843862Z             {
2026-06-04T00:09:18.2843955Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2844036Z               "line": 176
2026-06-04T00:09:18.2844109Z             }
2026-06-04T00:09:18.2844179Z           ]
2026-06-04T00:09:18.2844252Z         },
2026-06-04T00:09:18.2844322Z         "int": {
2026-06-04T00:09:18.2844403Z           "complete": true,
2026-06-04T00:09:18.2844477Z           "evidence": [
2026-06-04T00:09:18.2844550Z             {
2026-06-04T00:09:18.2844660Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-04T00:09:18.2844732Z               "line": 18
2026-06-04T00:09:18.2844804Z             }
2026-06-04T00:09:18.2844872Z           ]
2026-06-04T00:09:18.2844943Z         },
2026-06-04T00:09:18.2845012Z         "unit": {
2026-06-04T00:09:18.2845091Z           "complete": true,
2026-06-04T00:09:18.2845168Z           "evidence": [
2026-06-04T00:09:18.2845236Z             {
2026-06-04T00:09:18.2845342Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:09:18.2845416Z               "line": 250
2026-06-04T00:09:18.2845492Z             },
2026-06-04T00:09:18.2845560Z             {
2026-06-04T00:09:18.2845663Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:09:18.2845741Z               "line": 263
2026-06-04T00:09:18.2845808Z             },
2026-06-04T00:09:18.2845881Z             {
2026-06-04T00:09:18.2845978Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:09:18.2846056Z               "line": 275
2026-06-04T00:09:18.2846128Z             },
2026-06-04T00:09:18.2846195Z             {
2026-06-04T00:09:18.2846297Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:09:18.2846371Z               "line": 290
2026-06-04T00:09:18.2846442Z             },
2026-06-04T00:09:18.2846510Z             {
2026-06-04T00:09:18.2846612Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:09:18.2846687Z               "line": 305
2026-06-04T00:09:18.2846756Z             },
2026-06-04T00:09:18.2846831Z             {
2026-06-04T00:09:18.2846931Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:09:18.2847008Z               "line": 327
2026-06-04T00:09:18.2847080Z             },
2026-06-04T00:09:18.2847152Z             {
2026-06-04T00:09:18.2847252Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:09:18.2847325Z               "line": 337
2026-06-04T00:09:18.2847397Z             },
2026-06-04T00:09:18.2847465Z             {
2026-06-04T00:09:18.2847565Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:09:18.2847638Z               "line": 364
2026-06-04T00:09:18.2847713Z             },
2026-06-04T00:09:18.2847784Z             {
2026-06-04T00:09:18.2847893Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:09:18.2847972Z               "line": 338
2026-06-04T00:09:18.2848042Z             },
2026-06-04T00:09:18.2848116Z             {
2026-06-04T00:09:18.2848297Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:09:18.2848377Z               "line": 350
2026-06-04T00:09:18.2848514Z             },
2026-06-04T00:09:18.2848581Z             {
2026-06-04T00:09:18.2848689Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:09:18.2848762Z               "line": 367
2026-06-04T00:09:18.2848838Z             },
2026-06-04T00:09:18.2848906Z             {
2026-06-04T00:09:18.2849012Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:09:18.2849089Z               "line": 378
2026-06-04T00:09:18.2849158Z             },
2026-06-04T00:09:18.2849229Z             {
2026-06-04T00:09:18.2849330Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2849409Z               "line": 759
2026-06-04T00:09:18.2849477Z             },
2026-06-04T00:09:18.2849551Z             {
2026-06-04T00:09:18.2849655Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2849731Z               "line": 766
2026-06-04T00:09:18.2849803Z             },
2026-06-04T00:09:18.2849872Z             {
2026-06-04T00:09:18.2849979Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2850056Z               "line": 781
2026-06-04T00:09:18.2850127Z             },
2026-06-04T00:09:18.2850199Z             {
2026-06-04T00:09:18.2850299Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:09:18.2850375Z               "line": 381
2026-06-04T00:09:18.2850442Z             },
2026-06-04T00:09:18.2850513Z             {
2026-06-04T00:09:18.2850613Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:09:18.2850685Z               "line": 402
2026-06-04T00:09:18.2850861Z             },
2026-06-04T00:09:18.2850929Z             {
2026-06-04T00:09:18.2851027Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:09:18.2851101Z               "line": 415
2026-06-04T00:09:18.2851170Z             },
2026-06-04T00:09:18.2851240Z             {
2026-06-04T00:09:18.2851340Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:09:18.2851421Z               "line": 434
2026-06-04T00:09:18.2851492Z             },
2026-06-04T00:09:18.2851566Z             {
2026-06-04T00:09:18.2851660Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:09:18.2851738Z               "line": 461
2026-06-04T00:09:18.2851811Z             },
2026-06-04T00:09:18.2851880Z             {
2026-06-04T00:09:18.2851987Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-04T00:09:18.2852063Z               "line": 32
2026-06-04T00:09:18.2852137Z             },
2026-06-04T00:09:18.2852205Z             {
2026-06-04T00:09:18.2852302Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:09:18.2852379Z               "line": 646
2026-06-04T00:09:18.2852448Z             }
2026-06-04T00:09:18.2852519Z           ]
2026-06-04T00:09:18.2852589Z         }
2026-06-04T00:09:18.2852660Z       }
2026-06-04T00:09:18.2852726Z     },
2026-06-04T00:09:18.2852796Z     {
2026-06-04T00:09:18.2852877Z       "id": "REQ-UPD-1",
2026-06-04T00:09:18.2852983Z       "title": "Peer-propagated update over P2P",
2026-06-04T00:09:18.2853069Z       "requiredStages": [],
2026-06-04T00:09:18.2853138Z       "stages": {
2026-06-04T00:09:18.2853212Z         "doc": {
2026-06-04T00:09:18.2853290Z           "complete": false,
2026-06-04T00:09:18.2853369Z           "evidence": []
2026-06-04T00:09:18.2853442Z         },
2026-06-04T00:09:18.2853512Z         "impl": {
2026-06-04T00:09:18.2853593Z           "complete": false,
2026-06-04T00:09:18.2853667Z           "evidence": []
2026-06-04T00:09:18.2853740Z         },
2026-06-04T00:09:18.2853813Z         "int": {
2026-06-04T00:09:18.2853895Z           "complete": false,
2026-06-04T00:09:18.2853973Z           "evidence": []
2026-06-04T00:09:18.2854041Z         },
2026-06-04T00:09:18.2854114Z         "unit": {
2026-06-04T00:09:18.2854191Z           "complete": false,
2026-06-04T00:09:18.2854267Z           "evidence": []
2026-06-04T00:09:18.2854337Z         }
2026-06-04T00:09:18.2854531Z       }
2026-06-04T00:09:18.2854605Z     },
2026-06-04T00:09:18.2854764Z     {
2026-06-04T00:09:18.2854843Z       "id": "REQ-UPD-2",
2026-06-04T00:09:18.2854981Z       "title": "All binaries signature-verified before handoff",
2026-06-04T00:09:18.2855065Z       "requiredStages": [
2026-06-04T00:09:18.2855136Z         "impl",
2026-06-04T00:09:18.2855208Z         "unit"
2026-06-04T00:09:18.2855278Z       ],
2026-06-04T00:09:18.2855347Z       "stages": {
2026-06-04T00:09:18.2855419Z         "doc": {
2026-06-04T00:09:18.2855497Z           "complete": false,
2026-06-04T00:09:18.2855575Z           "evidence": []
2026-06-04T00:09:18.2855642Z         },
2026-06-04T00:09:18.2855718Z         "impl": {
2026-06-04T00:09:18.2855800Z           "complete": true,
2026-06-04T00:09:18.2855875Z           "evidence": [
2026-06-04T00:09:18.2855945Z             {
2026-06-04T00:09:18.2856050Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2856125Z               "line": 29
2026-06-04T00:09:18.2856196Z             },
2026-06-04T00:09:18.2856266Z             {
2026-06-04T00:09:18.2856375Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2856449Z               "line": 158
2026-06-04T00:09:18.2856520Z             },
2026-06-04T00:09:18.2856587Z             {
2026-06-04T00:09:18.2856691Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2856764Z               "line": 239
2026-06-04T00:09:18.2856839Z             },
2026-06-04T00:09:18.2856909Z             {
2026-06-04T00:09:18.2857010Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:09:18.2857089Z               "line": 149
2026-06-04T00:09:18.2857157Z             }
2026-06-04T00:09:18.2857229Z           ]
2026-06-04T00:09:18.2857297Z         },
2026-06-04T00:09:18.2857373Z         "int": {
2026-06-04T00:09:18.2857453Z           "complete": false,
2026-06-04T00:09:18.2857526Z           "evidence": []
2026-06-04T00:09:18.2857600Z         },
2026-06-04T00:09:18.2857671Z         "unit": {
2026-06-04T00:09:18.2857750Z           "complete": true,
2026-06-04T00:09:18.2857826Z           "evidence": [
2026-06-04T00:09:18.2857897Z             {
2026-06-04T00:09:18.2857998Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2858071Z               "line": 336
2026-06-04T00:09:18.2858144Z             },
2026-06-04T00:09:18.2858211Z             {
2026-06-04T00:09:18.2858315Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2858387Z               "line": 350
2026-06-04T00:09:18.2858463Z             },
2026-06-04T00:09:18.2858536Z             {
2026-06-04T00:09:18.2858635Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2858714Z               "line": 361
2026-06-04T00:09:18.2858785Z             },
2026-06-04T00:09:18.2858860Z             {
2026-06-04T00:09:18.2858961Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2859040Z               "line": 437
2026-06-04T00:09:18.2859118Z             },
2026-06-04T00:09:18.2859189Z             {
2026-06-04T00:09:18.2859298Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:09:18.2859370Z               "line": 326
2026-06-04T00:09:18.2859445Z             },
2026-06-04T00:09:18.2859514Z             {
2026-06-04T00:09:18.2859618Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:09:18.2859696Z               "line": 339
2026-06-04T00:09:18.2859765Z             }
2026-06-04T00:09:18.2859839Z           ]
2026-06-04T00:09:18.2859908Z         }
2026-06-04T00:09:18.2859982Z       }
2026-06-04T00:09:18.2860051Z     },
2026-06-04T00:09:18.2860123Z     {
2026-06-04T00:09:18.2860202Z       "id": "REQ-UPD-3",
2026-06-04T00:09:18.2860362Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-04T00:09:18.2860443Z       "requiredStages": [
2026-06-04T00:09:18.2860513Z         "impl",
2026-06-04T00:09:18.2860587Z         "unit",
2026-06-04T00:09:18.2860655Z         "int"
2026-06-04T00:09:18.2860931Z       ],
2026-06-04T00:09:18.2861009Z       "stages": {
2026-06-04T00:09:18.2861164Z         "doc": {
2026-06-04T00:09:18.2861245Z           "complete": false,
2026-06-04T00:09:18.2861323Z           "evidence": []
2026-06-04T00:09:18.2861396Z         },
2026-06-04T00:09:18.2861467Z         "impl": {
2026-06-04T00:09:18.2861550Z           "complete": true,
2026-06-04T00:09:18.2861627Z           "evidence": [
2026-06-04T00:09:18.2861696Z             {
2026-06-04T00:09:18.2861802Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:09:18.2861873Z               "line": 26
2026-06-04T00:09:18.2861944Z             },
2026-06-04T00:09:18.2862011Z             {
2026-06-04T00:09:18.2862113Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:09:18.2862188Z               "line": 111
2026-06-04T00:09:18.2862255Z             },
2026-06-04T00:09:18.2862326Z             {
2026-06-04T00:09:18.2862423Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:09:18.2862501Z               "line": 213
2026-06-04T00:09:18.2862568Z             }
2026-06-04T00:09:18.2862642Z           ]
2026-06-04T00:09:18.2862712Z         },
2026-06-04T00:09:18.2862781Z         "int": {
2026-06-04T00:09:18.2862860Z           "complete": true,
2026-06-04T00:09:18.2862934Z           "evidence": [
2026-06-04T00:09:18.2863004Z             {
2026-06-04T00:09:18.2863118Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-04T00:09:18.2863195Z               "line": 23
2026-06-04T00:09:18.2863272Z             }
2026-06-04T00:09:18.2863343Z           ]
2026-06-04T00:09:18.2863420Z         },
2026-06-04T00:09:18.2863489Z         "unit": {
2026-06-04T00:09:18.2863573Z           "complete": true,
2026-06-04T00:09:18.2863647Z           "evidence": [
2026-06-04T00:09:18.2863721Z             {
2026-06-04T00:09:18.2863825Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:09:18.2863898Z               "line": 238
2026-06-04T00:09:18.2863974Z             },
2026-06-04T00:09:18.2864044Z             {
2026-06-04T00:09:18.2864147Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:09:18.2864223Z               "line": 262
2026-06-04T00:09:18.2864298Z             },
2026-06-04T00:09:18.2864369Z             {
2026-06-04T00:09:18.2864467Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:09:18.2864546Z               "line": 273
2026-06-04T00:09:18.2864615Z             },
2026-06-04T00:09:18.2864688Z             {
2026-06-04T00:09:18.2864788Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:09:18.2864863Z               "line": 286
2026-06-04T00:09:18.2864934Z             }
2026-06-04T00:09:18.2865001Z           ]
2026-06-04T00:09:18.2865075Z         }
2026-06-04T00:09:18.2865145Z       }
2026-06-04T00:09:18.2865220Z     },
2026-06-04T00:09:18.2865287Z     {
2026-06-04T00:09:18.2865369Z       "id": "REQ-UPD-4",
2026-06-04T00:09:18.2865545Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-04T00:09:18.2865624Z       "requiredStages": [
2026-06-04T00:09:18.2865700Z         "impl",
2026-06-04T00:09:18.2865770Z         "unit"
2026-06-04T00:09:18.2865844Z       ],
2026-06-04T00:09:18.2865915Z       "stages": {
2026-06-04T00:09:18.2865989Z         "doc": {
2026-06-04T00:09:18.2866072Z           "complete": false,
2026-06-04T00:09:18.2866148Z           "evidence": []
2026-06-04T00:09:18.2866221Z         },
2026-06-04T00:09:18.2866291Z         "impl": {
2026-06-04T00:09:18.2866375Z           "complete": true,
2026-06-04T00:09:18.2866451Z           "evidence": [
2026-06-04T00:09:18.2866525Z             {
2026-06-04T00:09:18.2866632Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T00:09:18.2866706Z               "line": 23
2026-06-04T00:09:18.2866780Z             },
2026-06-04T00:09:18.2866849Z             {
2026-06-04T00:09:18.2866954Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T00:09:18.2867032Z               "line": 60
2026-06-04T00:09:18.2867202Z             },
2026-06-04T00:09:18.2867278Z             {
2026-06-04T00:09:18.2867443Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T00:09:18.2867521Z               "line": 79
2026-06-04T00:09:18.2867590Z             },
2026-06-04T00:09:18.2867664Z             {
2026-06-04T00:09:18.2867776Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:09:18.2867851Z               "line": 162
2026-06-04T00:09:18.2867923Z             },
2026-06-04T00:09:18.2867991Z             {
2026-06-04T00:09:18.2868095Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:09:18.2868169Z               "line": 106
2026-06-04T00:09:18.2868246Z             }
2026-06-04T00:09:18.2868319Z           ]
2026-06-04T00:09:18.2868388Z         },
2026-06-04T00:09:18.2868461Z         "int": {
2026-06-04T00:09:18.2868538Z           "complete": false,
2026-06-04T00:09:18.2868617Z           "evidence": []
2026-06-04T00:09:18.2868685Z         },
2026-06-04T00:09:18.2868764Z         "unit": {
2026-06-04T00:09:18.2868847Z           "complete": true,
2026-06-04T00:09:18.2868925Z           "evidence": [
2026-06-04T00:09:18.2868997Z             {
2026-06-04T00:09:18.2869098Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:09:18.2869177Z               "line": 217
2026-06-04T00:09:18.2869246Z             },
2026-06-04T00:09:18.2869322Z             {
2026-06-04T00:09:18.2869424Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T00:09:18.2869496Z               "line": 118
2026-06-04T00:09:18.2869572Z             },
2026-06-04T00:09:18.2869640Z             {
2026-06-04T00:09:18.2869743Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T00:09:18.2869816Z               "line": 133
2026-06-04T00:09:18.2869890Z             },
2026-06-04T00:09:18.2869963Z             {
2026-06-04T00:09:18.2870062Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T00:09:18.2870140Z               "line": 152
2026-06-04T00:09:18.2870214Z             },
2026-06-04T00:09:18.2870292Z             {
2026-06-04T00:09:18.2870389Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:09:18.2870470Z               "line": 234
2026-06-04T00:09:18.2870543Z             },
2026-06-04T00:09:18.2870612Z             {
2026-06-04T00:09:18.2870721Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:09:18.2870881Z               "line": 407
2026-06-04T00:09:18.2870957Z             }
2026-06-04T00:09:18.2871026Z           ]
2026-06-04T00:09:18.2871101Z         }
2026-06-04T00:09:18.2871176Z       }
2026-06-04T00:09:18.2871245Z     },
2026-06-04T00:09:18.2871318Z     {
2026-06-04T00:09:18.2871396Z       "id": "REQ-UPD-5",
2026-06-04T00:09:18.2871529Z       "title": "spt-core ripple-updates registered adapters",
2026-06-04T00:09:18.2871607Z       "requiredStages": [
2026-06-04T00:09:18.2871685Z         "impl",
2026-06-04T00:09:18.2871761Z         "unit"
2026-06-04T00:09:18.2871830Z       ],
2026-06-04T00:09:18.2871909Z       "stages": {
2026-06-04T00:09:18.2871979Z         "doc": {
2026-06-04T00:09:18.2872064Z           "complete": false,
2026-06-04T00:09:18.2872141Z           "evidence": []
2026-06-04T00:09:18.2872213Z         },
2026-06-04T00:09:18.2872289Z         "impl": {
2026-06-04T00:09:18.2872367Z           "complete": true,
2026-06-04T00:09:18.2872449Z           "evidence": [
2026-06-04T00:09:18.2872518Z             {
2026-06-04T00:09:18.2872641Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:09:18.2872713Z               "line": 27
2026-06-04T00:09:18.2872785Z             },
2026-06-04T00:09:18.2872857Z             {
2026-06-04T00:09:18.2872968Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:09:18.2873046Z               "line": 82
2026-06-04T00:09:18.2873116Z             },
2026-06-04T00:09:18.2873189Z             {
2026-06-04T00:09:18.2873298Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:09:18.2873481Z               "line": 134
2026-06-04T00:09:18.2873553Z             },
2026-06-04T00:09:18.2873623Z             {
2026-06-04T00:09:18.2873817Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2873890Z               "line": 198
2026-06-04T00:09:18.2873962Z             },
2026-06-04T00:09:18.2874032Z             {
2026-06-04T00:09:18.2874136Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:09:18.2874214Z               "line": 226
2026-06-04T00:09:18.2874281Z             }
2026-06-04T00:09:18.2874354Z           ]
2026-06-04T00:09:18.2874422Z         },
2026-06-04T00:09:18.2874496Z         "int": {
2026-06-04T00:09:18.2874573Z           "complete": false,
2026-06-04T00:09:18.2874655Z           "evidence": []
2026-06-04T00:09:18.2874727Z         },
2026-06-04T00:09:18.2874796Z         "unit": {
2026-06-04T00:09:18.2874879Z           "complete": true,
2026-06-04T00:09:18.2874952Z           "evidence": [
2026-06-04T00:09:18.2875025Z             {
2026-06-04T00:09:18.2875138Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:09:18.2875219Z               "line": 194
2026-06-04T00:09:18.2875294Z             },
2026-06-04T00:09:18.2875363Z             {
2026-06-04T00:09:18.2875477Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:09:18.2875551Z               "line": 208
2026-06-04T00:09:18.2875625Z             },
2026-06-04T00:09:18.2875692Z             {
2026-06-04T00:09:18.2875809Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:09:18.2875886Z               "line": 222
2026-06-04T00:09:18.2875971Z             },
2026-06-04T00:09:18.2876042Z             {
2026-06-04T00:09:18.2876150Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:09:18.2876228Z               "line": 236
2026-06-04T00:09:18.2876303Z             },
2026-06-04T00:09:18.2876371Z             {
2026-06-04T00:09:18.2876485Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:09:18.2876559Z               "line": 270
2026-06-04T00:09:18.2876634Z             },
2026-06-04T00:09:18.2876705Z             {
2026-06-04T00:09:18.2876819Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:09:18.2876902Z               "line": 729
2026-06-04T00:09:18.2876971Z             }
2026-06-04T00:09:18.2877043Z           ]
2026-06-04T00:09:18.2877113Z         }
2026-06-04T00:09:18.2877186Z       }
2026-06-04T00:09:18.2877257Z     }
2026-06-04T00:09:18.2877333Z   ],
2026-06-04T00:09:18.2877415Z   "findings": []
2026-06-04T00:09:18.2877494Z }
2026-06-04T00:09:18.2901062Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T00:09:18.2901248Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T00:09:18.2923853Z shell: /usr/bin/bash -e {0}
2026-06-04T00:09:18.2923936Z ##[endgroup]
2026-06-04T00:09:18.3029645Z Requirement quality findings (15); 126 requirements queued for agent review:
2026-06-04T00:09:18.3030264Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:09:18.3030630Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T00:09:18.3031491Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:09:18.3032220Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:09:18.3032835Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T00:09:18.3033357Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T00:09:18.3034050Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:09:18.3034789Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:09:18.3035587Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T00:09:18.3035975Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T00:09:18.3048364Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T00:09:18.3048813Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:09:18.3049197Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:09:18.3049467Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T00:09:18.3049728Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T00:09:18.3049737Z 
2026-06-04T00:09:18.3049840Z # Requirement quality review
2026-06-04T00:09:18.3049846Z 
2026-06-04T00:09:18.3050034Z You are reviewing 126 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T00:09:18.3050230Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T00:09:18.3050414Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T00:09:18.3050570Z this command's output. Your task is the rubric items below.
2026-06-04T00:09:18.3050578Z 
2026-06-04T00:09:18.3050656Z ## Rubric
2026-06-04T00:09:18.3050663Z 
2026-06-04T00:09:18.3051231Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T00:09:18.3051605Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T00:09:18.3051933Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T00:09:18.3052180Z - **active-voice** — clear subject and active verb.
2026-06-04T00:09:18.3052200Z 
2026-06-04T00:09:18.3052555Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T00:09:18.3052675Z clear concerns.
2026-06-04T00:09:18.3052685Z 
2026-06-04T00:09:18.3052790Z ## Requirements
2026-06-04T00:09:18.3052800Z 
2026-06-04T00:09:18.3052914Z ### REQ-ARCH-1
2026-06-04T00:09:18.3053071Z - Title: Many small acyclically-layered crates
2026-06-04T00:09:18.3053287Z - Required stages: impl
2026-06-04T00:09:18.3053294Z 
2026-06-04T00:09:18.3053555Z ### REQ-ARCH-2
2026-06-04T00:09:18.3053705Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T00:09:18.3053794Z - Required stages: impl
2026-06-04T00:09:18.3053800Z 
2026-06-04T00:09:18.3053881Z ### REQ-ARCH-3
2026-06-04T00:09:18.3054062Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T00:09:18.3054155Z - Required stages: impl, unit
2026-06-04T00:09:18.3054161Z 
2026-06-04T00:09:18.3054233Z ### REQ-ARCH-4
2026-06-04T00:09:18.3054389Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T00:09:18.3054486Z - Required stages: impl, unit
2026-06-04T00:09:18.3054493Z 
2026-06-04T00:09:18.3054565Z ### REQ-DAEMON-1
2026-06-04T00:09:18.3054714Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T00:09:18.3054805Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3054813Z 
2026-06-04T00:09:18.3054890Z ### REQ-DAEMON-2
2026-06-04T00:09:18.3055009Z - Title: Broker/brain split for seamless self-update
2026-06-04T00:09:18.3055104Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3055110Z 
2026-06-04T00:09:18.3055188Z ### REQ-DAEMON-3
2026-06-04T00:09:18.3055319Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T00:09:18.3055407Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3055413Z 
2026-06-04T00:09:18.3055485Z ### REQ-DAEMON-4
2026-06-04T00:09:18.3055594Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T00:09:18.3055681Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3055787Z 
2026-06-04T00:09:18.3055861Z ### REQ-STORE-1
2026-06-04T00:09:18.3056707Z - 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-04T00:09:18.3056789Z - Required stages: 
2026-06-04T00:09:18.3056807Z 
2026-06-04T00:09:18.3056886Z ### REQ-MANIFEST-1
2026-06-04T00:09:18.3057059Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T00:09:18.3057143Z - Required stages: doc, impl, unit
2026-06-04T00:09:18.3057150Z 
2026-06-04T00:09:18.3057231Z ### REQ-SEAM-SPAWN
2026-06-04T00:09:18.3057314Z - Title: spawn-session seam
2026-06-04T00:09:18.3057405Z - Required stages: impl, unit
2026-06-04T00:09:18.3057411Z 
2026-06-04T00:09:18.3057499Z ### REQ-SEAM-POSTSPAWN
2026-06-04T00:09:18.3057612Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T00:09:18.3057704Z - Required stages: impl, unit
2026-06-04T00:09:18.3057710Z 
2026-06-04T00:09:18.3057788Z ### REQ-SEAM-PSYCHE
2026-06-04T00:09:18.3057910Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T00:09:18.3057998Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3058004Z 
2026-06-04T00:09:18.3058082Z ### REQ-SEAM-HISTORY
2026-06-04T00:09:18.3058245Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T00:09:18.3058328Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3058334Z 
2026-06-04T00:09:18.3058419Z ### REQ-SEAM-ACTIVITY
2026-06-04T00:09:18.3058581Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T00:09:18.3058664Z - Required stages: impl, unit
2026-06-04T00:09:18.3058669Z 
2026-06-04T00:09:18.3058754Z ### REQ-SEAM-INJECT
2026-06-04T00:09:18.3058893Z - Title: inject-input methods configurable per activity-state
2026-06-04T00:09:18.3058983Z - Required stages: impl, unit
2026-06-04T00:09:18.3058993Z 
2026-06-04T00:09:18.3059073Z ### REQ-SEAM-RESUME
2026-06-04T00:09:18.3059226Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T00:09:18.3059315Z - Required stages: impl, unit
2026-06-04T00:09:18.3059322Z 
2026-06-04T00:09:18.3059402Z ### REQ-SEAM-CAPABILITY
2026-06-04T00:09:18.3059533Z - Title: Hostable endpoint-types capability declaration
2026-06-04T00:09:18.3059619Z - Required stages: impl, unit
2026-06-04T00:09:18.3059710Z 
2026-06-04T00:09:18.3059791Z ### REQ-SEAM-UPDATE
2026-06-04T00:09:18.3059939Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T00:09:18.3060022Z - Required stages: impl, unit
2026-06-04T00:09:18.3060028Z 
2026-06-04T00:09:18.3060109Z ### REQ-API-1
2026-06-04T00:09:18.3060259Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T00:09:18.3060356Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3060362Z 
2026-06-04T00:09:18.3060440Z ### REQ-API-2
2026-06-04T00:09:18.3060623Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T00:09:18.3060712Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3060718Z 
2026-06-04T00:09:18.3060958Z ### REQ-API-3
2026-06-04T00:09:18.3061096Z - Title: commune/signoff are file-drops, not commands
2026-06-04T00:09:18.3061187Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3061193Z 
2026-06-04T00:09:18.3061265Z ### REQ-START-1
2026-06-04T00:09:18.3061443Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T00:09:18.3061529Z - Required stages: impl, unit
2026-06-04T00:09:18.3061535Z 
2026-06-04T00:09:18.3061613Z ### REQ-START-2
2026-06-04T00:09:18.3061733Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T00:09:18.3061819Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3061825Z 
2026-06-04T00:09:18.3061905Z ### REQ-START-3
2026-06-04T00:09:18.3062049Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T00:09:18.3062241Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3062247Z 
2026-06-04T00:09:18.3062324Z ### REQ-START-4
2026-06-04T00:09:18.3062438Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T00:09:18.3062530Z - Required stages: impl, unit
2026-06-04T00:09:18.3062537Z 
2026-06-04T00:09:18.3062608Z ### REQ-EP-1
2026-06-04T00:09:18.3062726Z - Title: Day-one endpoint types; open type system
2026-06-04T00:09:18.3062812Z - Required stages: impl, unit
2026-06-04T00:09:18.3062824Z 
2026-06-04T00:09:18.3062897Z ### REQ-EP-2
2026-06-04T00:09:18.3063044Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T00:09:18.3063129Z - Required stages: impl, unit
2026-06-04T00:09:18.3063136Z 
2026-06-04T00:09:18.3063215Z ### REQ-EP-3
2026-06-04T00:09:18.3063374Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T00:09:18.3063466Z - Required stages: impl, unit
2026-06-04T00:09:18.3063472Z 
2026-06-04T00:09:18.3063547Z ### REQ-EP-4
2026-06-04T00:09:18.3063673Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T00:09:18.3063758Z - Required stages: 
2026-06-04T00:09:18.3063764Z 
2026-06-04T00:09:18.3063835Z ### REQ-EP-5
2026-06-04T00:09:18.3064467Z - 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-04T00:09:18.3064551Z - Required stages: 
2026-06-04T00:09:18.3064557Z 
2026-06-04T00:09:18.3064630Z ### REQ-INST-1
2026-06-04T00:09:18.3064773Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T00:09:18.3064849Z - Required stages: 
2026-06-04T00:09:18.3064855Z 
2026-06-04T00:09:18.3064933Z ### REQ-INST-2
2026-06-04T00:09:18.3065037Z - Title: Per-node files, synced Psyche mind
2026-06-04T00:09:18.3065112Z - Required stages: 
2026-06-04T00:09:18.3065118Z 
2026-06-04T00:09:18.3065195Z ### REQ-INST-3
2026-06-04T00:09:18.3065322Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T00:09:18.3065411Z - Required stages: 
2026-06-04T00:09:18.3065417Z 
2026-06-04T00:09:18.3065494Z ### REQ-INST-4
2026-06-04T00:09:18.3065648Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T00:09:18.3065732Z - Required stages: 
2026-06-04T00:09:18.3065738Z 
2026-06-04T00:09:18.3065810Z ### REQ-INST-5
2026-06-04T00:09:18.3066113Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T00:09:18.3066199Z - Required stages: 
2026-06-04T00:09:18.3066206Z 
2026-06-04T00:09:18.3066282Z ### REQ-INST-6
2026-06-04T00:09:18.3066447Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T00:09:18.3066521Z - Required stages: 
2026-06-04T00:09:18.3066526Z 
2026-06-04T00:09:18.3066606Z ### REQ-INST-7
2026-06-04T00:09:18.3066723Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T00:09:18.3066816Z - Required stages: impl, unit
2026-06-04T00:09:18.3066823Z 
2026-06-04T00:09:18.3066904Z ### REQ-INST-8
2026-06-04T00:09:18.3067037Z - Title: Remote-control mode distinct from local operation
2026-06-04T00:09:18.3067118Z - Required stages: 
2026-06-04T00:09:18.3067124Z 
2026-06-04T00:09:18.3067197Z ### REQ-INST-9
2026-06-04T00:09:18.3067363Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T00:09:18.3067453Z - Required stages: impl, unit
2026-06-04T00:09:18.3067460Z 
2026-06-04T00:09:18.3067536Z ### REQ-INST-10
2026-06-04T00:09:18.3067723Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T00:09:18.3067805Z - Required stages: impl, unit
2026-06-04T00:09:18.3067812Z 
2026-06-04T00:09:18.3067893Z ### REQ-INST-11
2026-06-04T00:09:18.3068084Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T00:09:18.3068166Z - Required stages: impl, unit
2026-06-04T00:09:18.3068173Z 
2026-06-04T00:09:18.3068250Z ### REQ-INST-12
2026-06-04T00:09:18.3068506Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T00:09:18.3068670Z - Required stages: impl, unit
2026-06-04T00:09:18.3068676Z 
2026-06-04T00:09:18.3068757Z ### REQ-INST-13
2026-06-04T00:09:18.3068915Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T00:09:18.3069005Z - Required stages: impl, unit
2026-06-04T00:09:18.3069011Z 
2026-06-04T00:09:18.3069084Z ### REQ-INST-14
2026-06-04T00:09:18.3069434Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T00:09:18.3069517Z - Required stages: 
2026-06-04T00:09:18.3069522Z 
2026-06-04T00:09:18.3069594Z ### REQ-INST-15
2026-06-04T00:09:18.3070265Z - 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-04T00:09:18.3070347Z - Required stages: 
2026-06-04T00:09:18.3070354Z 
2026-06-04T00:09:18.3070435Z ### REQ-REACH-1
2026-06-04T00:09:18.3070565Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T00:09:18.3070641Z - Required stages: 
2026-06-04T00:09:18.3070647Z 
2026-06-04T00:09:18.3070726Z ### REQ-REACH-2
2026-06-04T00:09:18.3071052Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T00:09:18.3071174Z - Required stages: 
2026-06-04T00:09:18.3071185Z 
2026-06-04T00:09:18.3071294Z ### REQ-MSG-1
2026-06-04T00:09:18.3071716Z - 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-04T00:09:18.3071815Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3071822Z 
2026-06-04T00:09:18.3071892Z ### REQ-MSG-2
2026-06-04T00:09:18.3072141Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T00:09:18.3072237Z - Required stages: impl, unit
2026-06-04T00:09:18.3072243Z 
2026-06-04T00:09:18.3072313Z ### REQ-MSG-3
2026-06-04T00:09:18.3072667Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T00:09:18.3072755Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3072761Z 
2026-06-04T00:09:18.3072954Z ### REQ-NODE-IDENTITY
2026-06-04T00:09:18.3073160Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T00:09:18.3073244Z - Required stages: impl, unit
2026-06-04T00:09:18.3073251Z 
2026-06-04T00:09:18.3073328Z ### REQ-NET-1
2026-06-04T00:09:18.3073482Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T00:09:18.3073571Z - Required stages: impl, unit
2026-06-04T00:09:18.3073576Z 
2026-06-04T00:09:18.3073653Z ### REQ-NET-2
2026-06-04T00:09:18.3073810Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T00:09:18.3073898Z - Required stages: impl
2026-06-04T00:09:18.3073905Z 
2026-06-04T00:09:18.3073976Z ### REQ-NET-3
2026-06-04T00:09:18.3074128Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T00:09:18.3074217Z - Required stages: 
2026-06-04T00:09:18.3074223Z 
2026-06-04T00:09:18.3074299Z ### REQ-PAIR-1
2026-06-04T00:09:18.3074398Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T00:09:18.3074487Z - Required stages: impl, unit
2026-06-04T00:09:18.3074494Z 
2026-06-04T00:09:18.3074578Z ### REQ-PAIR-2
2026-06-04T00:09:18.3074702Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T00:09:18.3074783Z - Required stages: impl, unit
2026-06-04T00:09:18.3074790Z 
2026-06-04T00:09:18.3074867Z ### REQ-PAIR-3
2026-06-04T00:09:18.3074991Z - Title: Fetch current pairing code from any paired node
2026-06-04T00:09:18.3075084Z - Required stages: impl, unit
2026-06-04T00:09:18.3075090Z 
2026-06-04T00:09:18.3075166Z ### REQ-PAIR-4
2026-06-04T00:09:18.3075368Z - Title: Subnet naming on first pairing
2026-06-04T00:09:18.3075456Z - Required stages: impl, unit
2026-06-04T00:09:18.3075462Z 
2026-06-04T00:09:18.3075537Z ### REQ-PAIR-5
2026-06-04T00:09:18.3075833Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T00:09:18.3075919Z - Required stages: impl, unit
2026-06-04T00:09:18.3075926Z 
2026-06-04T00:09:18.3076007Z ### REQ-PAIR-6
2026-06-04T00:09:18.3076243Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T00:09:18.3076328Z - Required stages: impl, unit
2026-06-04T00:09:18.3076334Z 
2026-06-04T00:09:18.3076413Z ### REQ-PAIR-7
2026-06-04T00:09:18.3076550Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T00:09:18.3076634Z - Required stages: 
2026-06-04T00:09:18.3076641Z 
2026-06-04T00:09:18.3076717Z ### REQ-SEC-1
2026-06-04T00:09:18.3077083Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T00:09:18.3077174Z - Required stages: 
2026-06-04T00:09:18.3077183Z 
2026-06-04T00:09:18.3077261Z ### REQ-NOTIF-1
2026-06-04T00:09:18.3077598Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T00:09:18.3077681Z - Required stages: 
2026-06-04T00:09:18.3077687Z 
2026-06-04T00:09:18.3077764Z ### REQ-NOTIF-2
2026-06-04T00:09:18.3078004Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T00:09:18.3078081Z - Required stages: 
2026-06-04T00:09:18.3078087Z 
2026-06-04T00:09:18.3078167Z ### REQ-UPD-1
2026-06-04T00:09:18.3078271Z - Title: Peer-propagated update over P2P
2026-06-04T00:09:18.3078348Z - Required stages: 
2026-06-04T00:09:18.3078354Z 
2026-06-04T00:09:18.3078432Z ### REQ-UPD-2
2026-06-04T00:09:18.3078553Z - Title: All binaries signature-verified before handoff
2026-06-04T00:09:18.3078645Z - Required stages: impl, unit
2026-06-04T00:09:18.3078651Z 
2026-06-04T00:09:18.3078730Z ### REQ-UPD-3
2026-06-04T00:09:18.3078878Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T00:09:18.3078975Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3078981Z 
2026-06-04T00:09:18.3079053Z ### REQ-UPD-4
2026-06-04T00:09:18.3079280Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T00:09:18.3079365Z - Required stages: impl, unit
2026-06-04T00:09:18.3079377Z 
2026-06-04T00:09:18.3079450Z ### REQ-UPD-5
2026-06-04T00:09:18.3079576Z - Title: spt-core ripple-updates registered adapters
2026-06-04T00:09:18.3079657Z - Required stages: impl, unit
2026-06-04T00:09:18.3079662Z 
2026-06-04T00:09:18.3079742Z ### REQ-TERM-1
2026-06-04T00:09:18.3079889Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T00:09:18.3079980Z - Required stages: impl, unit
2026-06-04T00:09:18.3079986Z 
2026-06-04T00:09:18.3080066Z ### REQ-TERM-2
2026-06-04T00:09:18.3080217Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T00:09:18.3080304Z - Required stages: impl, unit
2026-06-04T00:09:18.3080310Z 
2026-06-04T00:09:18.3080382Z ### REQ-TERM-3
2026-06-04T00:09:18.3080504Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T00:09:18.3080594Z - Required stages: impl, unit
2026-06-04T00:09:18.3080601Z 
2026-06-04T00:09:18.3080674Z ### REQ-TERM-4
2026-06-04T00:09:18.3081158Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T00:09:18.3081246Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3081253Z 
2026-06-04T00:09:18.3081335Z ### REQ-FRONT-1
2026-06-04T00:09:18.3081489Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T00:09:18.3081566Z - Required stages: 
2026-06-04T00:09:18.3081571Z 
2026-06-04T00:09:18.3081654Z ### REQ-INSTALL-1
2026-06-04T00:09:18.3081825Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T00:09:18.3082009Z - Required stages: 
2026-06-04T00:09:18.3082015Z 
2026-06-04T00:09:18.3082094Z ### REQ-INSTALL-2
2026-06-04T00:09:18.3082212Z - Title: Marketplace-repackaging-friendly install
2026-06-04T00:09:18.3082293Z - Required stages: 
2026-06-04T00:09:18.3082299Z 
2026-06-04T00:09:18.3082372Z ### REQ-INSTALL-3
2026-06-04T00:09:18.3082498Z - Title: Idempotent + interactive-optional first run
2026-06-04T00:09:18.3082573Z - Required stages: 
2026-06-04T00:09:18.3082586Z 
2026-06-04T00:09:18.3082659Z ### REQ-INSTALL-4
2026-06-04T00:09:18.3083255Z - 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-04T00:09:18.3083329Z - Required stages: 
2026-06-04T00:09:18.3083335Z 
2026-06-04T00:09:18.3083415Z ### REQ-MIGRATE-1
2026-06-04T00:09:18.3083569Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T00:09:18.3083645Z - Required stages: 
2026-06-04T00:09:18.3083651Z 
2026-06-04T00:09:18.3083732Z ### REQ-INFRA-1
2026-06-04T00:09:18.3083885Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T00:09:18.3083967Z - Required stages: 
2026-06-04T00:09:18.3083973Z 
2026-06-04T00:09:18.3084050Z ### REQ-DOCS-1
2026-06-04T00:09:18.3084225Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T00:09:18.3084305Z - Required stages: 
2026-06-04T00:09:18.3084311Z 
2026-06-04T00:09:18.3084383Z ### REQ-DOCS-2
2026-06-04T00:09:18.3084529Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T00:09:18.3084605Z - Required stages: 
2026-06-04T00:09:18.3084611Z 
2026-06-04T00:09:18.3084690Z ### REQ-DOCS-3
2026-06-04T00:09:18.3084920Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T00:09:18.3084998Z - Required stages: 
2026-06-04T00:09:18.3085009Z 
2026-06-04T00:09:18.3085090Z ### REQ-DOCS-4
2026-06-04T00:09:18.3085262Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T00:09:18.3085347Z - Required stages: 
2026-06-04T00:09:18.3085354Z 
2026-06-04T00:09:18.3085434Z ### REQ-DOCS-5
2026-06-04T00:09:18.3085604Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T00:09:18.3085683Z - Required stages: 
2026-06-04T00:09:18.3085690Z 
2026-06-04T00:09:18.3085878Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T00:09:18.3086049Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T00:09:18.3086141Z - Required stages: impl, unit
2026-06-04T00:09:18.3086148Z 
2026-06-04T00:09:18.3086240Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T00:09:18.3086374Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T00:09:18.3086456Z - Required stages: impl, unit
2026-06-04T00:09:18.3086462Z 
2026-06-04T00:09:18.3086558Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T00:09:18.3086679Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T00:09:18.3086753Z - Required stages: 
2026-06-04T00:09:18.3086759Z 
2026-06-04T00:09:18.3086849Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T00:09:18.3087006Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T00:09:18.3087096Z - Required stages: impl, unit
2026-06-04T00:09:18.3087102Z 
2026-06-04T00:09:18.3087194Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T00:09:18.3087349Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T00:09:18.3087437Z - Required stages: impl, unit
2026-06-04T00:09:18.3087442Z 
2026-06-04T00:09:18.3087538Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T00:09:18.3087700Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T00:09:18.3087776Z - Required stages: 
2026-06-04T00:09:18.3087787Z 
2026-06-04T00:09:18.3087875Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T00:09:18.3087991Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T00:09:18.3088138Z - Required stages: 
2026-06-04T00:09:18.3088144Z 
2026-06-04T00:09:18.3088242Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T00:09:18.3088379Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T00:09:18.3088469Z - Required stages: impl, unit
2026-06-04T00:09:18.3088475Z 
2026-06-04T00:09:18.3088569Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T00:09:18.3088692Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T00:09:18.3088783Z - Required stages: impl, int
2026-06-04T00:09:18.3088790Z 
2026-06-04T00:09:18.3088878Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T00:09:18.3089025Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T00:09:18.3089114Z - Required stages: impl, unit
2026-06-04T00:09:18.3089120Z 
2026-06-04T00:09:18.3089216Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T00:09:18.3089366Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T00:09:18.3089453Z - Required stages: impl, unit
2026-06-04T00:09:18.3089462Z 
2026-06-04T00:09:18.3089560Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T00:09:18.3089726Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T00:09:18.3089807Z - Required stages: impl, unit
2026-06-04T00:09:18.3089813Z 
2026-06-04T00:09:18.3089912Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T00:09:18.3090042Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T00:09:18.3090133Z - Required stages: impl, unit
2026-06-04T00:09:18.3090140Z 
2026-06-04T00:09:18.3090239Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T00:09:18.3090390Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T00:09:18.3090480Z - Required stages: impl, unit
2026-06-04T00:09:18.3090487Z 
2026-06-04T00:09:18.3090577Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T00:09:18.3090908Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T00:09:18.3090998Z - Required stages: impl, unit
2026-06-04T00:09:18.3091008Z 
2026-06-04T00:09:18.3091092Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T00:09:18.3091322Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T00:09:18.3091405Z - Required stages: impl, unit
2026-06-04T00:09:18.3091411Z 
2026-06-04T00:09:18.3091509Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T00:09:18.3091810Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T00:09:18.3091891Z - Required stages: impl, unit
2026-06-04T00:09:18.3091897Z 
2026-06-04T00:09:18.3091994Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T00:09:18.3092216Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T00:09:18.3092305Z - Required stages: impl, unit
2026-06-04T00:09:18.3092312Z 
2026-06-04T00:09:18.3092404Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T00:09:18.3092832Z - Title: Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)
2026-06-04T00:09:18.3092934Z - Required stages: impl, unit
2026-06-04T00:09:18.3092940Z 
2026-06-04T00:09:18.3097815Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T00:09:18.3098035Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T00:09:18.3098134Z - Required stages: impl, unit
2026-06-04T00:09:18.3098141Z 
2026-06-04T00:09:18.3098244Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T00:09:18.3098389Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T00:09:18.3098476Z - Required stages: impl, unit
2026-06-04T00:09:18.3098483Z 
2026-06-04T00:09:18.3098584Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T00:09:18.3098736Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T00:09:18.3098831Z - Required stages: impl, unit
2026-06-04T00:09:18.3098837Z 
2026-06-04T00:09:18.3098928Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T00:09:18.3099079Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T00:09:18.3099334Z - Required stages: impl, unit
2026-06-04T00:09:18.3099340Z 
2026-06-04T00:09:18.3099430Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T00:09:18.3099562Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T00:09:18.3099651Z - Required stages: impl, unit
2026-06-04T00:09:18.3099658Z 
2026-06-04T00:09:18.3099743Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T00:09:18.3099879Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T00:09:18.3099961Z - Required stages: impl, unit
2026-06-04T00:09:18.3099968Z 
2026-06-04T00:09:18.3100069Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T00:09:18.3100261Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T00:09:18.3100349Z - Required stages: impl, unit
2026-06-04T00:09:18.3100356Z 
2026-06-04T00:09:18.3100446Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T00:09:18.3100611Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T00:09:18.3100703Z - Required stages: impl, unit
2026-06-04T00:09:18.3100712Z 
2026-06-04T00:09:18.3101040Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T00:09:18.3101198Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T00:09:18.3101286Z - Required stages: impl, unit
2026-06-04T00:09:18.3101293Z 
2026-06-04T00:09:18.3101394Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T00:09:18.3101556Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T00:09:18.3101644Z - Required stages: impl, unit
2026-06-04T00:09:18.3101656Z 
2026-06-04T00:09:18.3101752Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T00:09:18.3101957Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T00:09:18.3102042Z - Required stages: impl, unit
2026-06-04T00:09:18.3102048Z 
2026-06-04T00:09:18.3102140Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T00:09:18.3102327Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T00:09:18.3102415Z - Required stages: impl, unit
2026-06-04T00:09:18.3102427Z 
2026-06-04T00:09:18.3102518Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T00:09:18.3102701Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T00:09:18.3102790Z - Required stages: impl, unit
2026-06-04T00:09:18.3102796Z 
2026-06-04T00:09:18.3102891Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T00:09:18.3103235Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T00:09:18.3103331Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3103337Z 
2026-06-04T00:09:18.3103423Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T00:09:18.3103660Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T00:09:18.3103741Z - Required stages: impl, unit
2026-06-04T00:09:18.3103756Z 
2026-06-04T00:09:18.3103852Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T00:09:18.3104247Z - 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-04T00:09:18.3104356Z - Required stages: impl, unit, int
2026-06-04T00:09:18.3104363Z 
2026-06-04T00:09:18.3104467Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T00:09:18.3105327Z - 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-04T00:09:18.3105407Z - Required stages: 
2026-06-04T00:09:18.3105414Z 
2026-06-04T00:09:18.3105517Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T00:09:18.3106130Z - 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-04T00:09:18.3106214Z - Required stages: 
2026-06-04T00:09:18.3106330Z 
2026-06-04T00:09:18.3106433Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T00:09:18.3107073Z - 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-04T00:09:18.3107163Z - Required stages: impl, unit
2026-06-04T00:09:18.3107169Z 
2026-06-04T00:09:18.3107264Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T00:09:18.3107762Z - 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-04T00:09:18.3107850Z - Required stages: impl, unit
2026-06-04T00:09:18.3107857Z 
2026-06-04T00:09:18.3107946Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T00:09:18.3108811Z - 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-04T00:09:18.3108906Z - Required stages: impl, unit
2026-06-04T00:09:18.3108913Z 
2026-06-04T00:09:18.3108991Z ## How to report back
2026-06-04T00:09:18.3108998Z 
2026-06-04T00:09:18.3109157Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T00:09:18.3109163Z 
2026-06-04T00:09:18.3109241Z     {
2026-06-04T00:09:18.3109328Z       "code": "requirement_quality",
2026-06-04T00:09:18.3109420Z       "requirementId": "REQ-...",
2026-06-04T00:09:18.3109571Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T00:09:18.3109662Z       "message": "<short reason>",
2026-06-04T00:09:18.3109768Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T00:09:18.3109843Z     }
2026-06-04T00:09:18.3109849Z 
2026-06-04T00:09:18.3110019Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T00:09:18.3110151Z deterministic findings above don't need to be repeated.
2026-06-04T00:09:18.3176034Z Post job cleanup.
2026-06-04T00:09:18.3966280Z [command]/usr/bin/git version
2026-06-04T00:09:18.3998730Z git version 2.54.0
2026-06-04T00:09:18.4033760Z Temporarily overriding HOME='/home/runner/work/_temp/101f8036-cbce-4467-abbc-3364210907a2' before making global git config changes
2026-06-04T00:09:18.4035011Z Adding repository directory to the temporary git global config as a safe directory
2026-06-04T00:09:18.4039094Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/spt-core/spt-core
2026-06-04T00:09:18.4075897Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-04T00:09:18.4104912Z [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-04T00:09:18.4306189Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-04T00:09:18.4326689Z http.https://github.com/.extraheader
2026-06-04T00:09:18.4335946Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-04T00:09:18.4363831Z [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-04T00:09:18.4563290Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-04T00:09:18.4587051Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-04T00:09:18.4874736Z Cleaning up orphan processes
2026-06-04T00:09:18.5100487Z ##[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/
